From: Tuan Nguyen Date: Mon, 13 Nov 2023 19:33:49 +0000 (+0000) Subject: SIM-115: update simulator to use latest E2SM KPM version 3 X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?p=sim%2Fe2-interface.git;a=commitdiff_plain;h=f5900596513e4359fc839ba361da085674e90b68;ds=sidebyside SIM-115: update simulator to use latest E2SM KPM version 3 Change-Id: I79978420dd6e2242e16514b81f9817db330725cb Signed-off-by: Tuan Nguyen --- diff --git a/e2sim/CMakeLists.txt b/e2sim/CMakeLists.txt old mode 100644 new mode 100755 index eb833dd..16d28c7 --- a/e2sim/CMakeLists.txt +++ b/e2sim/CMakeLists.txt @@ -91,7 +91,7 @@ unset( GPROF CACHE ) # we don't want this to persist -add_subdirectory(src/ASN1c) +add_subdirectory(./asn1c) add_subdirectory(src/DEF) add_subdirectory(src/SCTP) add_subdirectory(src/messagerouting) diff --git a/e2sim/Dockerfile_kpm b/e2sim/Dockerfile_kpm new file mode 100755 index 0000000..a5ddfa7 --- /dev/null +++ b/e2sim/Dockerfile_kpm @@ -0,0 +1,88 @@ +# vim: ts=4 sw=4 noet: +#================================================================================== +# Copyright (c) 2018-2019 AT&T Intellectual Property. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#================================================================================== + + +# -------------------------------------------------------------------------------------- +# Mnemonic: Dockerfile +# Abstract: This dockerfile is used to create an image that can be used to +# run the traffic steering xAPP in a container. +# +# Building should be as simple as: +# +# docker build -f Dockerfile -t ric-app-ts:[version] +# +# Date: 27 April 2020 +# Author: E. Scott Daniels +# -------------------------------------------------------------------------------------- + +# the builder has: git, wget, cmake, gcc/g++, make, python2/3. v7 dropped nng support +# +ARG CONTAINER_PULL_REGISTRY=nexus3.o-ran-sc.org:10001 +FROM ${CONTAINER_PULL_REGISTRY}/o-ran-sc/bldr-ubuntu18-c-go:1.9.0 as buildenv + +# spaces to save things in the build image to copy to final image +RUN mkdir -p /playpen/assets /playpen/src /playpen/bin /playpen/asn1c +ARG SRC=. + +WORKDIR /playpen + +# versions we snarf from package cloud +ARG E2SIM_VER=1.0.0 + +RUN apt-get update \ + && apt-get install -y \ + build-essential \ + git \ + cmake \ + libsctp-dev \ + lksctp-tools \ + autoconf \ + automake \ + libtool \ + bison \ + flex \ + libboost-all-dev \ + iputils-ping \ + net-tools \ + nano \ + vim \ + tcpdump \ + net-tools \ + nmap \ + && apt-get clean + +COPY e2sm_examples/kpm_e2sm/e2sim_1.0.0_amd64.deb /playpen +COPY e2sm_examples/kpm_e2sm/e2sim-dev_1.0.0_amd64.deb /playpen + +RUN dpkg -i e2sim_1.0.0_amd64.deb e2sim-dev_1.0.0_amd64.deb + +RUN mkdir /usr/local/include/nlohmann +RUN git clone https://github.com/azadkuh/nlohmann_json_release.git +RUN cp nlohmann_json_release/json.hpp /usr/local/include/nlohmann + +COPY ./e2sm_examples/kpm_e2sm/ /playpen/src/ +COPY asn1c/ /playpen/src/asn1c/ +RUN wc -l /playpen/src/reports.json + RUN cd /playpen/src && \ + rm -fr .build &&\ + mkdir .build && \ + cd .build && \ + cmake .. && \ + make install + +#CMD sleep 100000000000 +#CMD kpm_sim 10.111.138.172 36422 diff --git a/e2sim/asn1c/AMF-UE-NGAP-ID.c b/e2sim/asn1c/AMF-UE-NGAP-ID.c new file mode 100644 index 0000000..319c554 --- /dev/null +++ b/e2sim/asn1c/AMF-UE-NGAP-ID.c @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "AMF-UE-NGAP-ID.h" + +int +AMF_UE_NGAP_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 >= 0L && value <= 1099511627775L)) { + /* 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. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_AMF_UE_NGAP_ID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 40, -1, 0, 1099511627775 } /* (0..1099511627775) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_AMF_UE_NGAP_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AMF_UE_NGAP_ID = { + "AMF-UE-NGAP-ID", + "AMF-UE-NGAP-ID", + &asn_OP_INTEGER, + asn_DEF_AMF_UE_NGAP_ID_tags_1, + sizeof(asn_DEF_AMF_UE_NGAP_ID_tags_1) + /sizeof(asn_DEF_AMF_UE_NGAP_ID_tags_1[0]), /* 1 */ + asn_DEF_AMF_UE_NGAP_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_AMF_UE_NGAP_ID_tags_1) + /sizeof(asn_DEF_AMF_UE_NGAP_ID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_AMF_UE_NGAP_ID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + AMF_UE_NGAP_ID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/AMF-UE-NGAP-ID.h b/e2sim/asn1c/AMF-UE-NGAP-ID.h new file mode 100644 index 0000000..5a788ee --- /dev/null +++ b/e2sim/asn1c/AMF-UE-NGAP-ID.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _AMF_UE_NGAP_ID_H_ +#define _AMF_UE_NGAP_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "INTEGER.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* AMF-UE-NGAP-ID */ +typedef INTEGER_t AMF_UE_NGAP_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AMF_UE_NGAP_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AMF_UE_NGAP_ID; +asn_struct_free_f AMF_UE_NGAP_ID_free; +asn_struct_print_f AMF_UE_NGAP_ID_print; +asn_constr_check_f AMF_UE_NGAP_ID_constraint; +ber_type_decoder_f AMF_UE_NGAP_ID_decode_ber; +der_type_encoder_f AMF_UE_NGAP_ID_encode_der; +xer_type_decoder_f AMF_UE_NGAP_ID_decode_xer; +xer_type_encoder_f AMF_UE_NGAP_ID_encode_xer; +jer_type_encoder_f AMF_UE_NGAP_ID_encode_jer; +per_type_decoder_f AMF_UE_NGAP_ID_decode_uper; +per_type_encoder_f AMF_UE_NGAP_ID_encode_uper; +per_type_decoder_f AMF_UE_NGAP_ID_decode_aper; +per_type_encoder_f AMF_UE_NGAP_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AMF_UE_NGAP_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/AMFName.c b/e2sim/asn1c/AMFName.c new file mode 100644 index 0000000..6b20ec2 --- /dev/null +++ b/e2sim/asn1c/AMFName.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#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 >= 1UL && size <= 150UL) + && !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. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_AMFName_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + AMFName_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/AMFName.h b/e2sim/asn1c/AMFName.h new file mode 100644 index 0000000..ee1d031 --- /dev/null +++ b/e2sim/asn1c/AMFName.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _AMFName_H_ +#define _AMFName_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "PrintableString.h" + +#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; +jer_type_encoder_f AMFName_encode_jer; +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 "asn_internal.h" diff --git a/e2sim/asn1c/AMFPointer.c b/e2sim/asn1c/AMFPointer.c new file mode 100644 index 0000000..3959cbd --- /dev/null +++ b/e2sim/asn1c/AMFPointer.c @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "AMFPointer.h" + +int +AMFPointer_constraint(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 == 6UL)) { + /* 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 BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_AMFPointer_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_AMFPointer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AMFPointer = { + "AMFPointer", + "AMFPointer", + &asn_OP_BIT_STRING, + asn_DEF_AMFPointer_tags_1, + sizeof(asn_DEF_AMFPointer_tags_1) + /sizeof(asn_DEF_AMFPointer_tags_1[0]), /* 1 */ + asn_DEF_AMFPointer_tags_1, /* Same as above */ + sizeof(asn_DEF_AMFPointer_tags_1) + /sizeof(asn_DEF_AMFPointer_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_AMFPointer_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + AMFPointer_constraint + }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/e2sim/asn1c/AMFPointer.h b/e2sim/asn1c/AMFPointer.h new file mode 100644 index 0000000..9f57168 --- /dev/null +++ b/e2sim/asn1c/AMFPointer.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _AMFPointer_H_ +#define _AMFPointer_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* AMFPointer */ +typedef BIT_STRING_t AMFPointer_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AMFPointer_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AMFPointer; +asn_struct_free_f AMFPointer_free; +asn_struct_print_f AMFPointer_print; +asn_constr_check_f AMFPointer_constraint; +ber_type_decoder_f AMFPointer_decode_ber; +der_type_encoder_f AMFPointer_encode_der; +xer_type_decoder_f AMFPointer_decode_xer; +xer_type_encoder_f AMFPointer_encode_xer; +jer_type_encoder_f AMFPointer_encode_jer; +per_type_decoder_f AMFPointer_decode_uper; +per_type_encoder_f AMFPointer_encode_uper; +per_type_decoder_f AMFPointer_decode_aper; +per_type_encoder_f AMFPointer_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AMFPointer_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/AMFRegionID.c b/e2sim/asn1c/AMFRegionID.c new file mode 100644 index 0000000..48a2dc8 --- /dev/null +++ b/e2sim/asn1c/AMFRegionID.c @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "AMFRegionID.h" + +int +AMFRegionID_constraint(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 == 8UL)) { + /* 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 BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_AMFRegionID_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_AMFRegionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AMFRegionID = { + "AMFRegionID", + "AMFRegionID", + &asn_OP_BIT_STRING, + asn_DEF_AMFRegionID_tags_1, + sizeof(asn_DEF_AMFRegionID_tags_1) + /sizeof(asn_DEF_AMFRegionID_tags_1[0]), /* 1 */ + asn_DEF_AMFRegionID_tags_1, /* Same as above */ + sizeof(asn_DEF_AMFRegionID_tags_1) + /sizeof(asn_DEF_AMFRegionID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_AMFRegionID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + AMFRegionID_constraint + }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/e2sim/asn1c/AMFRegionID.h b/e2sim/asn1c/AMFRegionID.h new file mode 100644 index 0000000..e2cd7de --- /dev/null +++ b/e2sim/asn1c/AMFRegionID.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _AMFRegionID_H_ +#define _AMFRegionID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* AMFRegionID */ +typedef BIT_STRING_t AMFRegionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AMFRegionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AMFRegionID; +asn_struct_free_f AMFRegionID_free; +asn_struct_print_f AMFRegionID_print; +asn_constr_check_f AMFRegionID_constraint; +ber_type_decoder_f AMFRegionID_decode_ber; +der_type_encoder_f AMFRegionID_encode_der; +xer_type_decoder_f AMFRegionID_decode_xer; +xer_type_encoder_f AMFRegionID_encode_xer; +jer_type_encoder_f AMFRegionID_encode_jer; +per_type_decoder_f AMFRegionID_decode_uper; +per_type_encoder_f AMFRegionID_encode_uper; +per_type_decoder_f AMFRegionID_decode_aper; +per_type_encoder_f AMFRegionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AMFRegionID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/AMFSetID.c b/e2sim/asn1c/AMFSetID.c new file mode 100644 index 0000000..d8a927e --- /dev/null +++ b/e2sim/asn1c/AMFSetID.c @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "AMFSetID.h" + +int +AMFSetID_constraint(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 == 10UL)) { + /* 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 BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_AMFSetID_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_AMFSetID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AMFSetID = { + "AMFSetID", + "AMFSetID", + &asn_OP_BIT_STRING, + asn_DEF_AMFSetID_tags_1, + sizeof(asn_DEF_AMFSetID_tags_1) + /sizeof(asn_DEF_AMFSetID_tags_1[0]), /* 1 */ + asn_DEF_AMFSetID_tags_1, /* Same as above */ + sizeof(asn_DEF_AMFSetID_tags_1) + /sizeof(asn_DEF_AMFSetID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_AMFSetID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + AMFSetID_constraint + }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/e2sim/asn1c/AMFSetID.h b/e2sim/asn1c/AMFSetID.h new file mode 100644 index 0000000..e0f41c6 --- /dev/null +++ b/e2sim/asn1c/AMFSetID.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _AMFSetID_H_ +#define _AMFSetID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* AMFSetID */ +typedef BIT_STRING_t AMFSetID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AMFSetID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AMFSetID; +asn_struct_free_f AMFSetID_free; +asn_struct_print_f AMFSetID_print; +asn_constr_check_f AMFSetID_constraint; +ber_type_decoder_f AMFSetID_decode_ber; +der_type_encoder_f AMFSetID_encode_der; +xer_type_decoder_f AMFSetID_decode_xer; +xer_type_encoder_f AMFSetID_encode_xer; +jer_type_encoder_f AMFSetID_encode_jer; +per_type_decoder_f AMFSetID_decode_uper; +per_type_encoder_f AMFSetID_encode_uper; +per_type_decoder_f AMFSetID_decode_aper; +per_type_encoder_f AMFSetID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AMFSetID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/ANY.c b/e2sim/asn1c/ANY.c new file mode 100644 index 0000000..bf988db --- /dev/null +++ b/e2sim/asn1c/ANY.c @@ -0,0 +1,80 @@ +/* + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_OCTET_STRING_specifics_t asn_SPC_ANY_specs = { + sizeof(ANY_t), + offsetof(ANY_t, _asn_ctx), + ASN_OSUBV_ANY +}; +asn_TYPE_operation_t asn_OP_ANY = { + OCTET_STRING_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + OCTET_STRING_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + OCTET_STRING_compare, +#if !defined(ASN_DISABLE_BER_SUPPORT) + OCTET_STRING_decode_ber, + OCTET_STRING_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + OCTET_STRING_decode_xer_hex, + ANY_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + ANY_encode_jer, +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, + 0, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + ANY_decode_uper, + ANY_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + ANY_decode_aper, + ANY_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + 0, /* Random fill is not defined for ANY type */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_ANY = { + "ANY", + "ANY", + &asn_OP_ANY, + 0, 0, 0, 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + asn_generic_no_constraint + }, /* No constraints */ + 0, 0, /* No members */ + &asn_SPC_ANY_specs, +}; diff --git a/e2sim/asn1c/ANY.h b/e2sim/asn1c/ANY.h new file mode 100644 index 0000000..871ed5e --- /dev/null +++ b/e2sim/asn1c/ANY.h @@ -0,0 +1,84 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_TYPE_ANY_H +#define ASN_TYPE_ANY_H + +#include /* Implemented via OCTET STRING type */ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct ANY { + uint8_t *buf; /* BER-encoded ANY contents */ + int size; /* Size of the above buffer */ + + asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ +} ANY_t; + +extern asn_TYPE_descriptor_t asn_DEF_ANY; +extern asn_TYPE_operation_t asn_OP_ANY; +extern asn_OCTET_STRING_specifics_t asn_SPC_ANY_specs; + +#define ANY_free OCTET_STRING_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +#define ANY_print OCTET_STRING_print +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +#define ANY_compare OCTET_STRING_compare + +#define ANY_constraint asn_generic_no_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#define ANY_decode_ber OCTET_STRING_decode_ber +#define ANY_encode_der OCTET_STRING_encode_der +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +#define ANY_decode_xer OCTET_STRING_decode_xer_hex +xer_type_encoder_f ANY_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_encoder_f ANY_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f ANY_decode_uper; +per_type_encoder_f ANY_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +per_type_decoder_f ANY_decode_aper; +per_type_encoder_f ANY_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +/****************************** + * Handy conversion routines. * + ******************************/ + +/* Convert another ASN.1 type into the ANY. This implies DER encoding. */ +int ANY_fromType(ANY_t *, asn_TYPE_descriptor_t *td, void *struct_ptr); +ANY_t *ANY_new_fromType(asn_TYPE_descriptor_t *td, void *struct_ptr); +#if !defined(ASN_DISABLE_APER_SUPPORT) +int ANY_fromType_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr); +ANY_t *ANY_new_fromType_aper(asn_TYPE_descriptor_t *td, void *sptr); +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +/* Convert the contents of the ANY type into the specified type. */ +int ANY_to_type(ANY_t *, asn_TYPE_descriptor_t *td, void **struct_ptr); +#if !defined(ASN_DISABLE_APER_SUPPORT) +int ANY_to_type_aper(ANY_t *, asn_TYPE_descriptor_t *td, void **struct_ptr); +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#define ANY_fromBuf(s, buf, size) OCTET_STRING_fromBuf((s), (buf), (size)) +#define ANY_new_fromBuf(buf, size) OCTET_STRING_new_fromBuf( \ + &asn_DEF_ANY, (buf), (size)) + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_TYPE_ANY_H */ diff --git a/e2sim/asn1c/ANY_aper.c b/e2sim/asn1c/ANY_aper.c new file mode 100644 index 0000000..91d7277 --- /dev/null +++ b/e2sim/asn1c/ANY_aper.c @@ -0,0 +1,190 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +#undef RETURN +#define RETURN(_code) \ + do { \ + asn_dec_rval_t tmprval; \ + tmprval.code = _code; \ + tmprval.consumed = consumed_myself; \ + return tmprval; \ + } while(0) + +int +ANY_fromType_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr) { + uint8_t *buffer = NULL; + ssize_t erval; + + if(!st || !td) { + errno = EINVAL; + return -1; + } + + if(!sptr) { + if(st->buf) FREEMEM(st->buf); + st->size = 0; + return 0; + } + + erval = aper_encode_to_new_buffer(td, td->encoding_constraints.per_constraints, sptr, (void**)&buffer); + + if(erval == -1) { + if(buffer) FREEMEM(buffer); + return -1; + } + assert((size_t)erval > 0); + + if(st->buf) FREEMEM(st->buf); + st->buf = buffer; + st->size = erval; + + return 0; +} + +ANY_t * +ANY_new_fromType_aper(asn_TYPE_descriptor_t *td, void *sptr) { + ANY_t tmp; + ANY_t *st; + + if(!td || !sptr) { + errno = EINVAL; + return 0; + } + + memset(&tmp, 0, sizeof(tmp)); + + if(ANY_fromType_aper(&tmp, td, sptr)) return 0; + + st = (ANY_t *)CALLOC(1, sizeof(ANY_t)); + if(st) { + *st = tmp; + return st; + } else { + FREEMEM(tmp.buf); + return 0; + } +} + +int +ANY_to_type_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void **struct_ptr) { + asn_dec_rval_t rval; + void *newst = 0; + + if(!st || !td || !struct_ptr) { + errno = EINVAL; + return -1; + } + + if(st->buf == 0) { + /* Nothing to convert, make it empty. */ + *struct_ptr = (void *)0; + return 0; + } + + rval = aper_decode(0, td, (void **)&newst, st->buf, st->size, 0, 0); + if(rval.code == RC_OK) { + *struct_ptr = newst; + return 0; + } else { + /* Remove possibly partially decoded data. */ + ASN_STRUCT_FREE(*td, newst); + return -1; + } +} + +asn_dec_rval_t +ANY_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_OCTET_STRING_specifics_t *specs = + td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_ANY_specs; + size_t consumed_myself = 0; + int repeat; + ANY_t *st = (ANY_t *)*sptr; + + (void)opt_codec_ctx; + (void)constraints; + + /* + * Allocate the structure. + */ + if(!st) { + st = (ANY_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) RETURN(RC_FAIL); + } + + ASN_DEBUG("APER Decoding ANY type"); + + st->size = 0; + do { + ssize_t raw_len; + ssize_t len_bytes; + ssize_t len_bits; + void *p; + int ret; + + /* Get the PER length */ + raw_len = aper_get_length(pd, -1, -1, 0, &repeat); + if(raw_len < 0) RETURN(RC_WMORE); + if(raw_len == 0 && st->buf) break; + + ASN_DEBUG("Got PER length len %" ASN_PRI_SIZE ", %s (%s)", raw_len, + repeat ? "repeat" : "once", td->name); + len_bytes = raw_len; + len_bits = len_bytes * 8; + + p = REALLOC(st->buf, st->size + len_bytes + 1); + if(!p) RETURN(RC_FAIL); + st->buf = (uint8_t *)p; + + ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); + if(ret < 0) RETURN(RC_WMORE); + consumed_myself += len_bits; + st->size += len_bytes; + } while(repeat); + st->buf[st->size] = 0; /* nul-terminate */ + + RETURN(RC_OK); +} + +asn_enc_rval_t +ANY_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const ANY_t *st = (const ANY_t *)sptr; + asn_enc_rval_t er = {0, 0, 0}; + const uint8_t *buf; + size_t size; + int ret; + + (void)constraints; + + if(!st || (!st->buf && st->size)) ASN__ENCODE_FAILED; + + buf = st->buf; + size = st->size; + do { + int need_eom = 0; + ssize_t may_save = aper_put_length(po, -1, -1, size, &need_eom); + if(may_save < 0) ASN__ENCODE_FAILED; + + ret = per_put_many_bits(po, buf, may_save * 8); + if(ret) ASN__ENCODE_FAILED; + + buf += may_save; + size -= may_save; + assert(!(may_save & 0x07) || !size); + if(need_eom && aper_put_length(po, -1, -1, 0, NULL)) + ASN__ENCODE_FAILED; /* End of Message length */ + } while(size); + + ASN__ENCODED_OK(er); +} diff --git a/e2sim/asn1c/ANY_ber.c b/e2sim/asn1c/ANY_ber.c new file mode 100644 index 0000000..2ebe45b --- /dev/null +++ b/e2sim/asn1c/ANY_ber.c @@ -0,0 +1,116 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +struct _callback_arg { + uint8_t *buffer; + size_t offset; + size_t size; +}; + +static int ANY__consume_bytes(const void *buffer, size_t size, void *key) { + struct _callback_arg *arg = (struct _callback_arg *)key; + + if((arg->offset + size) >= arg->size) { + size_t nsize = (arg->size ? arg->size << 2 : 16) + size; + void *p = REALLOC(arg->buffer, nsize); + if(!p) return -1; + arg->buffer = (uint8_t *)p; + arg->size = nsize; + } + + memcpy(arg->buffer + arg->offset, buffer, size); + arg->offset += size; + assert(arg->offset < arg->size); + + return 0; +} + +int +ANY_fromType(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr) { + struct _callback_arg arg; + asn_enc_rval_t erval = {0,0,0}; + + if(!st || !td) { + errno = EINVAL; + return -1; + } + + if(!sptr) { + if(st->buf) FREEMEM(st->buf); + st->size = 0; + return 0; + } + + arg.offset = arg.size = 0; + arg.buffer = 0; + + erval = der_encode(td, sptr, ANY__consume_bytes, &arg); + if(erval.encoded == -1) { + if(arg.buffer) FREEMEM(arg.buffer); + return -1; + } + assert((size_t)erval.encoded == arg.offset); + + if(st->buf) FREEMEM(st->buf); + st->buf = arg.buffer; + st->size = arg.offset; + + return 0; +} + +ANY_t * +ANY_new_fromType(asn_TYPE_descriptor_t *td, void *sptr) { + ANY_t tmp; + ANY_t *st; + + if(!td || !sptr) { + errno = EINVAL; + return 0; + } + + memset(&tmp, 0, sizeof(tmp)); + + if(ANY_fromType(&tmp, td, sptr)) return 0; + + st = (ANY_t *)CALLOC(1, sizeof(ANY_t)); + if(st) { + *st = tmp; + return st; + } else { + FREEMEM(tmp.buf); + return 0; + } +} + +int +ANY_to_type(ANY_t *st, asn_TYPE_descriptor_t *td, void **struct_ptr) { + asn_dec_rval_t rval; + void *newst = 0; + + if(!st || !td || !struct_ptr) { + errno = EINVAL; + return -1; + } + + if(st->buf == 0) { + /* Nothing to convert, make it empty. */ + *struct_ptr = (void *)0; + return 0; + } + + rval = ber_decode(0, td, (void **)&newst, st->buf, st->size); + if(rval.code == RC_OK) { + *struct_ptr = newst; + return 0; + } else { + /* Remove possibly partially decoded data. */ + ASN_STRUCT_FREE(*td, newst); + return -1; + } +} diff --git a/e2sim/asn1c/ANY_jer.c b/e2sim/asn1c/ANY_jer.c new file mode 100644 index 0000000..a86db9c --- /dev/null +++ b/e2sim/asn1c/ANY_jer.c @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_enc_rval_t +ANY_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + enum jer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, + void *app_key) { + ASN__ENCODE_FAILED; + + /* Dump as binary */ + return OCTET_STRING_encode_jer(td, sptr, ilevel, flags, cb, app_key); +} diff --git a/e2sim/asn1c/ANY_uper.c b/e2sim/asn1c/ANY_uper.c new file mode 100644 index 0000000..65f1519 --- /dev/null +++ b/e2sim/asn1c/ANY_uper.c @@ -0,0 +1,108 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +#undef RETURN +#define RETURN(_code) \ + do { \ + asn_dec_rval_t tmprval; \ + tmprval.code = _code; \ + tmprval.consumed = consumed_myself; \ + return tmprval; \ + } while(0) + +asn_dec_rval_t +ANY_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_OCTET_STRING_specifics_t *specs = + td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_ANY_specs; + size_t consumed_myself = 0; + int repeat; + ANY_t *st = (ANY_t *)*sptr; + + (void)opt_codec_ctx; + (void)constraints; + + /* + * Allocate the structure. + */ + if(!st) { + st = (ANY_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) RETURN(RC_FAIL); + } + + ASN_DEBUG("UPER Decoding ANY type"); + + st->size = 0; + do { + ssize_t raw_len; + ssize_t len_bytes; + ssize_t len_bits; + void *p; + int ret; + + /* Get the PER length */ + raw_len = uper_get_length(pd, -1, 0, &repeat); + if(raw_len < 0) RETURN(RC_WMORE); + if(raw_len == 0 && st->buf) break; + + ASN_DEBUG("Got PER length len %" ASN_PRI_SIZE ", %s (%s)", raw_len, + repeat ? "repeat" : "once", td->name); + len_bytes = raw_len; + len_bits = len_bytes * 8; + + p = REALLOC(st->buf, st->size + len_bytes + 1); + if(!p) RETURN(RC_FAIL); + st->buf = (uint8_t *)p; + + ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); + if(ret < 0) RETURN(RC_WMORE); + consumed_myself += len_bits; + st->size += len_bytes; + } while(repeat); + st->buf[st->size] = 0; /* nul-terminate */ + + RETURN(RC_OK); +} + +asn_enc_rval_t +ANY_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const ANY_t *st = (const ANY_t *)sptr; + asn_enc_rval_t er = {0, 0, 0}; + const uint8_t *buf; + size_t size; + int ret; + + (void)constraints; + + if(!st || (!st->buf && st->size)) ASN__ENCODE_FAILED; + + buf = st->buf; + size = st->size; + do { + int need_eom = 0; + ssize_t may_save = uper_put_length(po, size, &need_eom); + if(may_save < 0) ASN__ENCODE_FAILED; + + ret = per_put_many_bits(po, buf, may_save * 8); + if(ret) ASN__ENCODE_FAILED; + + buf += may_save; + size -= may_save; + assert(!(may_save & 0x07) || !size); + if(need_eom && uper_put_length(po, 0, 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + } while(size); + + ASN__ENCODED_OK(er); +} diff --git a/e2sim/asn1c/ANY_xer.c b/e2sim/asn1c/ANY_xer.c new file mode 100644 index 0000000..112c213 --- /dev/null +++ b/e2sim/asn1c/ANY_xer.c @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_enc_rval_t +ANY_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, + void *app_key) { + if(flags & XER_F_CANONICAL) { + /* + * Canonical XER-encoding of ANY type is not supported. + */ + ASN__ENCODE_FAILED; + } + + /* Dump as binary */ + return OCTET_STRING_encode_xer(td, sptr, ilevel, flags, cb, app_key); +} diff --git a/e2sim/asn1c/BIT_STRING.c b/e2sim/asn1c/BIT_STRING.c new file mode 100644 index 0000000..b5ba940 --- /dev/null +++ b/e2sim/asn1c/BIT_STRING.c @@ -0,0 +1,213 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * BIT STRING basic type description. + */ +static const ber_tlv_tag_t asn_DEF_BIT_STRING_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_OCTET_STRING_specifics_t asn_SPC_BIT_STRING_specs = { + sizeof(BIT_STRING_t), + offsetof(BIT_STRING_t, _asn_ctx), + ASN_OSUBV_BIT +}; +asn_TYPE_operation_t asn_OP_BIT_STRING = { + OCTET_STRING_free, /* Implemented in terms of OCTET STRING */ +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + BIT_STRING_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + BIT_STRING_compare, +#if !defined(ASN_DISABLE_BER_SUPPORT) + OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_der, /* Implemented in terms of OCTET STRING */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + OCTET_STRING_decode_xer_binary, + BIT_STRING_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + BIT_STRING_encode_jer, +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + BIT_STRING_decode_oer, + BIT_STRING_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + BIT_STRING_decode_uper, /* Unaligned PER decoder */ + BIT_STRING_encode_uper, /* Unaligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + OCTET_STRING_decode_aper, /* Aligned PER decoder */ + OCTET_STRING_encode_aper, /* Aligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + BIT_STRING_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_BIT_STRING = { + "BIT STRING", + "BIT_STRING", + &asn_OP_BIT_STRING, + asn_DEF_BIT_STRING_tags, + sizeof(asn_DEF_BIT_STRING_tags) + / sizeof(asn_DEF_BIT_STRING_tags[0]), + asn_DEF_BIT_STRING_tags, /* Same as above */ + sizeof(asn_DEF_BIT_STRING_tags) + / sizeof(asn_DEF_BIT_STRING_tags[0]), + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + BIT_STRING_constraint + }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs +}; + +/* + * BIT STRING generic constraint. + */ +int +BIT_STRING_constraint(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; + + if(st && st->buf) { + if((st->size == 0 && st->bits_unused) + || st->bits_unused < 0 || st->bits_unused > 7) { + ASN__CTFAIL(app_key, td, sptr, + "%s: invalid padding byte (%s:%d)", + td->name, __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; +} + +/* + * Non-destructively remove the trailing 0-bits from the given bit string. + */ +const BIT_STRING_t * +BIT_STRING__compactify(const BIT_STRING_t *st, BIT_STRING_t *tmp) { + const uint8_t *b; + union { + const uint8_t *c_buf; + uint8_t *nc_buf; + } unconst; + + if(st->size == 0) { + assert(st->bits_unused == 0); + return st; + } else { + for(b = &st->buf[st->size - 1]; b > st->buf && *b == 0; b--) { + ; + } + /* b points to the last byte which may contain data */ + if(*b) { + int unused = 7; + uint8_t v = *b; + v &= -(int8_t)v; + if(v & 0x0F) unused -= 4; + if(v & 0x33) unused -= 2; + if(v & 0x55) unused -= 1; + tmp->size = b-st->buf + 1; + tmp->bits_unused = unused; + } else { + tmp->size = b-st->buf; + tmp->bits_unused = 0; + } + + assert(b >= st->buf); + } + + unconst.c_buf = st->buf; + tmp->buf = unconst.nc_buf; + return tmp; +} + +/* + * Lexicographically compare the common prefix of both strings, + * and if it is the same return -1 for the smallest string. + */ +int +BIT_STRING_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + /* + * Remove information about trailing bits, since + * X.680 (08/2015) #22.7 "ensure that different semantics are not" + * "associated with [values that differ only in] the trailing 0 bits." + */ + BIT_STRING_t compact_a, compact_b; + const BIT_STRING_t *a = BIT_STRING__compactify(aptr, &compact_a); + const BIT_STRING_t *b = BIT_STRING__compactify(bptr, &compact_b); + const asn_OCTET_STRING_specifics_t *specs = td->specifics; + + (void)specs; + assert(specs && specs->subvariant == ASN_OSUBV_BIT); + + if(a && b) { + size_t common_prefix_size = a->size <= b->size ? a->size : b->size; + int ret = memcmp(a->buf, b->buf, common_prefix_size); + if(ret == 0) { + /* Figure out which string with equal prefixes is longer. */ + if(a->size < b->size) { + return -1; + } else if(a->size > b->size) { + return 1; + } else { + /* Figure out how many unused bits */ + if(a->bits_unused > b->bits_unused) { + return -1; + } else if(a->bits_unused < b->bits_unused) { + return 1; + } else { + return 0; + } + } + } else { + return ret; + } + } else if(!a && !b) { + return 0; + } else if(!a) { + return -1; + } else { + return 1; + } +} diff --git a/e2sim/asn1c/BIT_STRING.h b/e2sim/asn1c/BIT_STRING.h new file mode 100644 index 0000000..e755fe9 --- /dev/null +++ b/e2sim/asn1c/BIT_STRING.h @@ -0,0 +1,75 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _BIT_STRING_H_ +#define _BIT_STRING_H_ + +#include /* Some help from OCTET STRING */ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct BIT_STRING_s { + uint8_t *buf; /* BIT STRING body */ + size_t size; /* Size of the above buffer */ + + int bits_unused;/* Unused trailing bits in the last octet (0..7) */ + + asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ +} BIT_STRING_t; + +extern asn_TYPE_descriptor_t asn_DEF_BIT_STRING; +extern asn_TYPE_operation_t asn_OP_BIT_STRING; +extern asn_OCTET_STRING_specifics_t asn_SPC_BIT_STRING_specs; + +#define BIT_STRING_free OCTET_STRING_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +asn_struct_print_f BIT_STRING_print; /* Human-readable output */ +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +asn_struct_compare_f BIT_STRING_compare; + +asn_constr_check_f BIT_STRING_constraint; + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#define BIT_STRING_decode_ber OCTET_STRING_decode_ber +#define BIT_STRING_encode_der OCTET_STRING_encode_der +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +#define BIT_STRING_decode_xer OCTET_STRING_decode_xer_binary +xer_type_encoder_f BIT_STRING_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_encoder_f BIT_STRING_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +oer_type_decoder_f BIT_STRING_decode_oer; +oer_type_encoder_f BIT_STRING_encode_oer; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f BIT_STRING_decode_uper; +per_type_encoder_f BIT_STRING_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +#define BIT_STRING_decode_aper OCTET_STRING_decode_aper +#define BIT_STRING_encode_aper OCTET_STRING_encode_aper +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +asn_random_fill_f BIT_STRING_random_fill; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +const BIT_STRING_t *BIT_STRING__compactify(const BIT_STRING_t *st, BIT_STRING_t *tmp); + +#ifdef __cplusplus +} +#endif + +#endif /* _BIT_STRING_H_ */ diff --git a/e2sim/asn1c/BIT_STRING_jer.c b/e2sim/asn1c/BIT_STRING_jer.c new file mode 100644 index 0000000..69c320d --- /dev/null +++ b/e2sim/asn1c/BIT_STRING_jer.c @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +static const char *_bit_pattern[16] = { + "0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", + "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111" +}; + +asn_enc_rval_t +BIT_STRING_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum jer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_enc_rval_t er = {0, 0, 0}; + char scratch[128]; + char *p = scratch; + char *scend = scratch + (sizeof(scratch) - 10); + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + int xcan = 0; + uint8_t *buf; + uint8_t *end; + + if(!st || !st->buf) + ASN__ENCODE_FAILED; + + er.encoded = 0; + + buf = st->buf; + end = buf + st->size - 1; /* Last byte is special */ + + /* + * Binary dump + */ + for(; buf < end; buf++) { + int v = *buf; + int nline = xcan?0:(((buf - st->buf) % 8) == 0); + if(p >= scend || nline) { + ASN__CALLBACK(scratch, p - scratch); + p = scratch; + if(nline) ASN__TEXT_INDENT(1, ilevel); + } + memcpy(p + 0, _bit_pattern[v >> 4], 4); + memcpy(p + 4, _bit_pattern[v & 0x0f], 4); + p += 8; + } + + if(!xcan && ((buf - st->buf) % 8) == 0) + ASN__TEXT_INDENT(1, ilevel); + ASN__CALLBACK(scratch, p - scratch); + p = scratch; + + if(buf == end) { + int v = *buf; + int ubits = st->bits_unused; + int i; + for(i = 7; i >= ubits; i--) + *p++ = (v & (1 << i)) ? 0x31 : 0x30; + ASN__CALLBACK(scratch, p - scratch); + } + + if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} diff --git a/e2sim/asn1c/BIT_STRING_print.c b/e2sim/asn1c/BIT_STRING_print.c new file mode 100644 index 0000000..bab1ea5 --- /dev/null +++ b/e2sim/asn1c/BIT_STRING_print.c @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * BIT STRING specific contents printer. + */ +int +BIT_STRING_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + const char * const h2c = "0123456789ABCDEF"; + char scratch[64]; + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + uint8_t *buf; + uint8_t *end; + char *p = scratch; + + (void)td; /* Unused argument */ + + if(!st || !st->buf) + return (cb("", 8, app_key) < 0) ? -1 : 0; + + ilevel++; + buf = st->buf; + end = buf + st->size; + + /* + * Hexadecimal dump. + */ + for(; buf < end; buf++) { + if((buf - st->buf) % 16 == 0 && (st->size > 16) + && buf != st->buf) { + _i_INDENT(1); + /* Dump the string */ + if(cb(scratch, p - scratch, app_key) < 0) return -1; + p = scratch; + } + *p++ = h2c[*buf >> 4]; + *p++ = h2c[*buf & 0x0F]; + *p++ = 0x20; + } + + if(p > scratch) { + p--; /* Eat the tailing space */ + + if((st->size > 16)) { + _i_INDENT(1); + } + + /* Dump the incomplete 16-bytes row */ + if(cb(scratch, p - scratch, app_key) < 0) + return -1; + } + + if(st->bits_unused) { + int ret = snprintf(scratch, sizeof(scratch), " (%d bit%s unused)", + st->bits_unused, st->bits_unused == 1 ? "" : "s"); + assert(ret > 0 && ret < (ssize_t)sizeof(scratch)); + if(ret > 0 && ret < (ssize_t)sizeof(scratch) + && cb(scratch, ret, app_key) < 0) + return -1; + } + + return 0; +} diff --git a/e2sim/asn1c/BIT_STRING_rfill.c b/e2sim/asn1c/BIT_STRING_rfill.c new file mode 100644 index 0000000..a6e6a95 --- /dev/null +++ b/e2sim/asn1c/BIT_STRING_rfill.c @@ -0,0 +1,124 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_random_fill_result_t +BIT_STRING_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + const asn_OCTET_STRING_specifics_t *specs = + td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_BIT_STRING_specs; + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + static unsigned lengths[] = {0, 1, 2, 3, 4, 8, + 126, 127, 128, 16383, 16384, 16385, + 65534, 65535, 65536, 65537}; + uint8_t *buf; + uint8_t *bend; + uint8_t *b; + size_t rnd_bits, rnd_len; + BIT_STRING_t *st; + + if(max_length == 0) return result_skipped; + + switch(specs->subvariant) { + case ASN_OSUBV_ANY: + return result_failed; + case ASN_OSUBV_BIT: + break; + default: + break; + } + + /* Figure out how far we should go */ + rnd_bits = lengths[asn_random_between( + 0, sizeof(lengths) / sizeof(lengths[0]) - 1)]; +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + if(!constraints || !constraints->per_constraints) + constraints = &td->encoding_constraints; + if(constraints->per_constraints) { + const asn_per_constraint_t *pc = &constraints->per_constraints->size; + if(pc->flags & APC_CONSTRAINED) { + long suggested_upper_bound = pc->upper_bound < (ssize_t)max_length + ? pc->upper_bound + : (ssize_t)max_length; + if(max_length < (size_t)pc->lower_bound) { + return result_skipped; + } + if(pc->flags & APC_EXTENSIBLE) { + switch(asn_random_between(0, 5)) { + case 0: + if(pc->lower_bound > 0) { + rnd_bits = pc->lower_bound - 1; + break; + } + /* Fall through */ + case 1: + rnd_bits = pc->upper_bound + 1; + break; + case 2: + /* Keep rnd_bits from the table */ + if(rnd_bits < max_length) { + break; + } + /* Fall through */ + default: + rnd_bits = asn_random_between(pc->lower_bound, + suggested_upper_bound); + } + } else { + rnd_bits = + asn_random_between(pc->lower_bound, suggested_upper_bound); + } + } else { + rnd_bits = asn_random_between(0, max_length - 1); + } + } else { +#else + if(!constraints) constraints = &td->encoding_constraints; + { +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + if(rnd_bits >= max_length) { + rnd_bits = asn_random_between(0, max_length - 1); + } + } + + rnd_len = (rnd_bits + 7) / 8; + buf = CALLOC(1, rnd_len + 1); + if(!buf) return result_failed; + + bend = &buf[rnd_len]; + + for(b = buf; b < bend; b++) { + *(uint8_t *)b = asn_random_between(0, 255); + } + *b = 0; /* Zero-terminate just in case. */ + + if(*sptr) { + st = *sptr; + FREEMEM(st->buf); + } else { + st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) { + FREEMEM(buf); + return result_failed; + } + } + + st->buf = buf; + st->size = rnd_len; + st->bits_unused = (8 - (rnd_bits & 0x7)) & 0x7; + if(st->bits_unused) { + assert(st->size > 0); + st->buf[st->size-1] &= 0xff << st->bits_unused; + } + + result_ok.length = st->size; + return result_ok; +} diff --git a/e2sim/asn1c/BIT_STRING_uper.c b/e2sim/asn1c/BIT_STRING_uper.c new file mode 100644 index 0000000..d82349e --- /dev/null +++ b/e2sim/asn1c/BIT_STRING_uper.c @@ -0,0 +1,244 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +#undef RETURN +#define RETURN(_code) \ + do { \ + asn_dec_rval_t tmprval; \ + tmprval.code = _code; \ + tmprval.consumed = consumed_myself; \ + return tmprval; \ + } while(0) + +static asn_per_constraint_t asn_DEF_BIT_STRING_constraint_size = { + APC_SEMI_CONSTRAINED, -1, -1, 0, 0}; + +asn_dec_rval_t +BIT_STRING_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_BIT_STRING_specs; + const asn_per_constraints_t *pc = + constraints ? constraints : td->encoding_constraints.per_constraints; + const asn_per_constraint_t *csiz; + asn_dec_rval_t rval = { RC_OK, 0 }; + BIT_STRING_t *st = (BIT_STRING_t *)*sptr; + ssize_t consumed_myself = 0; + int repeat; + + (void)opt_codec_ctx; + + if(pc) { + csiz = &pc->size; + } else { + csiz = &asn_DEF_BIT_STRING_constraint_size; + } + + if(specs->subvariant != ASN_OSUBV_BIT) { + ASN_DEBUG("Subvariant %d is not BIT OSUBV_BIT", specs->subvariant); + RETURN(RC_FAIL); + } + + /* + * Allocate the string. + */ + if(!st) { + st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) RETURN(RC_FAIL); + } + + ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d", + csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", + csiz->lower_bound, csiz->upper_bound, csiz->effective_bits); + + if(csiz->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) RETURN(RC_WMORE); + if(inext) { + csiz = &asn_DEF_BIT_STRING_constraint_size; + } + } + + if(csiz->effective_bits >= 0) { + FREEMEM(st->buf); + st->size = (csiz->upper_bound + 7) >> 3; + st->buf = (uint8_t *)MALLOC(st->size + 1); + if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } + } + + /* X.691, #16.5: zero-length encoding */ + /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ + /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ + if(csiz->effective_bits == 0) { + int ret; + ASN_DEBUG("Encoding BIT STRING size %ld", csiz->upper_bound); + ret = per_get_many_bits(pd, st->buf, 0, csiz->upper_bound); + if(ret < 0) RETURN(RC_WMORE); + consumed_myself += csiz->upper_bound; + st->buf[st->size] = 0; + st->bits_unused = (8 - (csiz->upper_bound & 0x7)) & 0x7; + RETURN(RC_OK); + } + + st->size = 0; + do { + ssize_t raw_len; + ssize_t len_bytes; + ssize_t len_bits; + void *p; + int ret; + + /* Get the PER length */ + raw_len = uper_get_length(pd, csiz->effective_bits, csiz->lower_bound, + &repeat); + if(raw_len < 0) RETURN(RC_WMORE); + if(raw_len == 0 && st->buf) break; + + ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", + (long)csiz->effective_bits, (long)raw_len, + repeat ? "repeat" : "once", td->name); + len_bits = raw_len; + len_bytes = (len_bits + 7) >> 3; + if(len_bits & 0x7) st->bits_unused = 8 - (len_bits & 0x7); + /* len_bits be multiple of 16K if repeat is set */ + p = REALLOC(st->buf, st->size + len_bytes + 1); + if(!p) RETURN(RC_FAIL); + st->buf = (uint8_t *)p; + + ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); + if(ret < 0) RETURN(RC_WMORE); + st->size += len_bytes; + } while(repeat); + st->buf[st->size] = 0; /* nul-terminate */ + + return rval; +} + +asn_enc_rval_t +BIT_STRING_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_OCTET_STRING_specifics_t *specs = + td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_BIT_STRING_specs; + const asn_per_constraints_t *pc = + constraints ? constraints : td->encoding_constraints.per_constraints; + const asn_per_constraint_t *csiz; + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + BIT_STRING_t compact_bstr; /* Do not modify this directly! */ + asn_enc_rval_t er = { 0, 0, 0 }; + int inext = 0; /* Lies not within extension root */ + size_t size_in_bits; + const uint8_t *buf; + int ret; + int ct_extensible; + + if(!st || (!st->buf && st->size)) + ASN__ENCODE_FAILED; + + if(specs->subvariant == ASN_OSUBV_BIT) { + if((st->size == 0 && st->bits_unused) || (st->bits_unused & ~7)) + ASN__ENCODE_FAILED; + } else { + ASN__ENCODE_FAILED; + } + + if(pc) { + csiz = &pc->size; + } else { + csiz = &asn_DEF_BIT_STRING_constraint_size; + } + ct_extensible = csiz->flags & APC_EXTENSIBLE; + + /* Figure out the size without the trailing bits */ + st = BIT_STRING__compactify(st, &compact_bstr); + size_in_bits = 8 * st->size - st->bits_unused; + + ASN_DEBUG( + "Encoding %s into %" ASN_PRI_SIZE " bits" + " (%ld..%ld, effective %d)%s", + td->name, size_in_bits, csiz->lower_bound, csiz->upper_bound, + csiz->effective_bits, ct_extensible ? " EXT" : ""); + + /* Figure out whether size lies within PER visible constraint */ + + if(csiz->effective_bits >= 0) { + if((ssize_t)size_in_bits > csiz->upper_bound) { + if(ct_extensible) { + csiz = &asn_DEF_BIT_STRING_constraint_size; + inext = 1; + } else { + ASN__ENCODE_FAILED; + } + } + } else { + inext = 0; + } + + if(ct_extensible) { + /* Declare whether length is [not] within extension root */ + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + } + + if(csiz->effective_bits >= 0 && !inext) { + int add_trailer = (ssize_t)size_in_bits < csiz->lower_bound; + ASN_DEBUG( + "Encoding %" ASN_PRI_SIZE " bytes (%ld), length (in %d bits) trailer %d; actual " + "value %" ASN_PRI_SSIZE "", + st->size, size_in_bits - csiz->lower_bound, csiz->effective_bits, + add_trailer, + add_trailer ? 0 : (ssize_t)size_in_bits - csiz->lower_bound); + ret = per_put_few_bits( + po, add_trailer ? 0 : (ssize_t)size_in_bits - csiz->lower_bound, + csiz->effective_bits); + if(ret) ASN__ENCODE_FAILED; + ret = per_put_many_bits(po, st->buf, size_in_bits); + if(ret) ASN__ENCODE_FAILED; + if(add_trailer) { + static const uint8_t zeros[16]; + size_t trailing_zero_bits = csiz->lower_bound - size_in_bits; + while(trailing_zero_bits > 0) { + if(trailing_zero_bits > 8 * sizeof(zeros)) { + ret = per_put_many_bits(po, zeros, 8 * sizeof(zeros)); + trailing_zero_bits -= 8 * sizeof(zeros); + } else { + ret = per_put_many_bits(po, zeros, trailing_zero_bits); + trailing_zero_bits = 0; + } + if(ret) ASN__ENCODE_FAILED; + } + } + ASN__ENCODED_OK(er); + } + + ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes", st->size); + + buf = st->buf; + do { + int need_eom = 0; + ssize_t maySave = uper_put_length(po, size_in_bits, &need_eom); + if(maySave < 0) ASN__ENCODE_FAILED; + + ASN_DEBUG("Encoding %" ASN_PRI_SSIZE " of %" ASN_PRI_SIZE "", maySave, size_in_bits); + + ret = per_put_many_bits(po, buf, maySave); + if(ret) ASN__ENCODE_FAILED; + + buf += maySave >> 3; + size_in_bits -= maySave; + assert(!(maySave & 0x07) || !size_in_bits); + if(need_eom && uper_put_length(po, 0, 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + } while(size_in_bits); + + ASN__ENCODED_OK(er); +} diff --git a/e2sim/asn1c/BIT_STRING_xer.c b/e2sim/asn1c/BIT_STRING_xer.c new file mode 100644 index 0000000..67d5cb8 --- /dev/null +++ b/e2sim/asn1c/BIT_STRING_xer.c @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +static const char *_bit_pattern[16] = { + "0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", + "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111" +}; + +asn_enc_rval_t +BIT_STRING_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_enc_rval_t er = {0, 0, 0}; + char scratch[128]; + char *p = scratch; + char *scend = scratch + (sizeof(scratch) - 10); + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + int xcan = (flags & XER_F_CANONICAL); + uint8_t *buf; + uint8_t *end; + + if(!st || !st->buf) + ASN__ENCODE_FAILED; + + er.encoded = 0; + + buf = st->buf; + end = buf + st->size - 1; /* Last byte is special */ + + /* + * Binary dump + */ + for(; buf < end; buf++) { + int v = *buf; + int nline = xcan?0:(((buf - st->buf) % 8) == 0); + if(p >= scend || nline) { + ASN__CALLBACK(scratch, p - scratch); + p = scratch; + if(nline) ASN__TEXT_INDENT(1, ilevel); + } + memcpy(p + 0, _bit_pattern[v >> 4], 4); + memcpy(p + 4, _bit_pattern[v & 0x0f], 4); + p += 8; + } + + if(!xcan && ((buf - st->buf) % 8) == 0) + ASN__TEXT_INDENT(1, ilevel); + ASN__CALLBACK(scratch, p - scratch); + p = scratch; + + if(buf == end) { + int v = *buf; + int ubits = st->bits_unused; + int i; + for(i = 7; i >= ubits; i--) + *p++ = (v & (1 << i)) ? 0x31 : 0x30; + ASN__CALLBACK(scratch, p - scratch); + } + + if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} diff --git a/e2sim/asn1c/BOOLEAN.c b/e2sim/asn1c/BOOLEAN.c new file mode 100644 index 0000000..1373a6f --- /dev/null +++ b/e2sim/asn1c/BOOLEAN.c @@ -0,0 +1,128 @@ +/*- + * Copyright (c) 2003, 2005 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * BOOLEAN basic type description. + */ +static const ber_tlv_tag_t asn_DEF_BOOLEAN_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_operation_t asn_OP_BOOLEAN = { + BOOLEAN_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + BOOLEAN_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + BOOLEAN_compare, +#if !defined(ASN_DISABLE_BER_SUPPORT) + BOOLEAN_decode_ber, + BOOLEAN_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + BOOLEAN_decode_xer, + BOOLEAN_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + BOOLEAN_encode_jer, +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + BOOLEAN_decode_oer, + BOOLEAN_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + BOOLEAN_decode_uper, /* Unaligned PER decoder */ + BOOLEAN_encode_uper, /* Unaligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + BOOLEAN_decode_aper, /* Aligned PER decoder */ + BOOLEAN_encode_aper, /* Aligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + BOOLEAN_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_BOOLEAN = { + "BOOLEAN", + "BOOLEAN", + &asn_OP_BOOLEAN, + asn_DEF_BOOLEAN_tags, + sizeof(asn_DEF_BOOLEAN_tags) / sizeof(asn_DEF_BOOLEAN_tags[0]), + asn_DEF_BOOLEAN_tags, /* Same as above */ + sizeof(asn_DEF_BOOLEAN_tags) / sizeof(asn_DEF_BOOLEAN_tags[0]), + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + asn_generic_no_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +void +BOOLEAN_free(const asn_TYPE_descriptor_t *td, void *ptr, + enum asn_struct_free_method method) { + if(td && ptr) { + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(ptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset(ptr, 0, sizeof(BOOLEAN_t)); + break; + } + } +} + +int +BOOLEAN_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + const BOOLEAN_t *a = aptr; + const BOOLEAN_t *b = bptr; + + (void)td; + + if(a && b) { + if(!*a == !*b) { /* TRUE can be encoded by any non-zero byte. */ + return 0; + } else if(!*a) { + return -1; + } else { + return 1; + } + } else if(!a) { + return -1; + } else { + return 1; + } +} diff --git a/e2sim/asn1c/BOOLEAN.h b/e2sim/asn1c/BOOLEAN.h new file mode 100644 index 0000000..2cbbe71 --- /dev/null +++ b/e2sim/asn1c/BOOLEAN.h @@ -0,0 +1,70 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _BOOLEAN_H_ +#define _BOOLEAN_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * The underlying integer may contain various values, but everything + * non-zero is capped to 0xff by the DER encoder. The BER decoder may + * yield non-zero values different from 1, beware. + */ +typedef unsigned BOOLEAN_t; + +extern asn_TYPE_descriptor_t asn_DEF_BOOLEAN; +extern asn_TYPE_operation_t asn_OP_BOOLEAN; + +asn_struct_free_f BOOLEAN_free; + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +asn_struct_print_f BOOLEAN_print; +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +asn_struct_compare_f BOOLEAN_compare; + +#define BOOLEAN_constraint asn_generic_no_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +ber_type_decoder_f BOOLEAN_decode_ber; +der_type_encoder_f BOOLEAN_encode_der; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +xer_type_decoder_f BOOLEAN_decode_xer; +xer_type_encoder_f BOOLEAN_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_encoder_f BOOLEAN_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +oer_type_decoder_f BOOLEAN_decode_oer; +oer_type_encoder_f BOOLEAN_encode_oer; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f BOOLEAN_decode_uper; +per_type_encoder_f BOOLEAN_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +per_type_decoder_f BOOLEAN_decode_aper; +per_type_encoder_f BOOLEAN_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +asn_random_fill_f BOOLEAN_random_fill; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +#ifdef __cplusplus +} +#endif + +#endif /* _BOOLEAN_H_ */ diff --git a/e2sim/asn1c/BOOLEAN_aper.c b/e2sim/asn1c/BOOLEAN_aper.c new file mode 100644 index 0000000..d697cf5 --- /dev/null +++ b/e2sim/asn1c/BOOLEAN_aper.c @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +BOOLEAN_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + asn_dec_rval_t rv; + BOOLEAN_t *st = (BOOLEAN_t *)*sptr; + + (void)opt_codec_ctx; + (void)constraints; + (void)td; + + if(!st) { + st = (BOOLEAN_t *)(*sptr = MALLOC(sizeof(*st))); + if(!st) ASN__DECODE_FAILED; + } + + /* + * Extract a single bit + */ + switch(per_get_few_bits(pd, 1)) { + case 1: + *st = 1; + break; + case 0: + *st = 0; + break; + case -1: + default: + ASN__DECODE_STARVED; + } + + ASN_DEBUG("%s decoded as %s", td->name, *st ? "TRUE" : "FALSE"); + + rv.code = RC_OK; + rv.consumed = 1; + return rv; +} + +asn_enc_rval_t +BOOLEAN_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const BOOLEAN_t *st = (const BOOLEAN_t *)sptr; + asn_enc_rval_t er = { 0, 0, 0 }; + + (void)constraints; + + if(!st) ASN__ENCODE_FAILED; + + if(per_put_few_bits(po, *st ? 1 : 0, 1)) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/e2sim/asn1c/BOOLEAN_ber.c b/e2sim/asn1c/BOOLEAN_ber.c new file mode 100644 index 0000000..176a4a4 --- /dev/null +++ b/e2sim/asn1c/BOOLEAN_ber.c @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * Decode BOOLEAN type. + */ +asn_dec_rval_t +BOOLEAN_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **bool_value, + const void *buf_ptr, size_t size, int tag_mode) { + BOOLEAN_t *st = (BOOLEAN_t *)*bool_value; + asn_dec_rval_t rval; + ber_tlv_len_t length; + ber_tlv_len_t lidx; + + if(st == NULL) { + st = (BOOLEAN_t *)(*bool_value = CALLOC(1, sizeof(*st))); + if(st == NULL) { + rval.code = RC_FAIL; + rval.consumed = 0; + return rval; + } + } + + ASN_DEBUG("Decoding %s as BOOLEAN (tm=%d)", + td->name, tag_mode); + + /* + * Check tags. + */ + rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size, + tag_mode, 0, &length, 0); + if(rval.code != RC_OK) + return rval; + + ASN_DEBUG("Boolean length is %d bytes", (int)length); + + buf_ptr = ((const char *)buf_ptr) + rval.consumed; + size -= rval.consumed; + if(length > (ber_tlv_len_t)size) { + rval.code = RC_WMORE; + rval.consumed = 0; + return rval; + } + + /* + * Compute boolean value. + */ + for(*st = 0, lidx = 0; + (lidx < length) && *st == 0; lidx++) { + /* + * Very simple approach: read bytes until the end or + * value is already TRUE. + * BOOLEAN is not supposed to contain meaningful data anyway. + */ + *st |= ((const uint8_t *)buf_ptr)[lidx]; + } + + rval.code = RC_OK; + rval.consumed += length; + + ASN_DEBUG("Took %ld/%ld bytes to encode %s, value=%d", + (long)rval.consumed, (long)length, + td->name, *st); + + return rval; +} + +asn_enc_rval_t +BOOLEAN_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, + int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, + void *app_key) { + asn_enc_rval_t erval = {0,0,0}; + const BOOLEAN_t *st = (const BOOLEAN_t *)sptr; + + erval.encoded = der_write_tags(td, 1, tag_mode, 0, tag, cb, app_key); + if(erval.encoded == -1) { + erval.failed_type = td; + erval.structure_ptr = sptr; + return erval; + } + + if(cb) { + uint8_t bool_value; + + bool_value = *st ? 0xff : 0; /* 0xff mandated by DER */ + + if(cb(&bool_value, 1, app_key) < 0) { + erval.encoded = -1; + erval.failed_type = td; + erval.structure_ptr = sptr; + return erval; + } + } + + erval.encoded += 1; + + ASN__ENCODED_OK(erval); +} diff --git a/e2sim/asn1c/BOOLEAN_jer.c b/e2sim/asn1c/BOOLEAN_jer.c new file mode 100644 index 0000000..6f4b093 --- /dev/null +++ b/e2sim/asn1c/BOOLEAN_jer.c @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +asn_enc_rval_t +BOOLEAN_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum jer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const BOOLEAN_t *st = (const BOOLEAN_t *)sptr; + asn_enc_rval_t er = {0, 0, 0}; + + (void)ilevel; + (void)flags; + + if(!st) ASN__ENCODE_FAILED; + + if(*st) { + ASN__CALLBACK("true", 4); + } else { + ASN__CALLBACK("false", 5); + } + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} diff --git a/e2sim/asn1c/BOOLEAN_print.c b/e2sim/asn1c/BOOLEAN_print.c new file mode 100644 index 0000000..23aaade --- /dev/null +++ b/e2sim/asn1c/BOOLEAN_print.c @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +int +BOOLEAN_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + const BOOLEAN_t *st = (const BOOLEAN_t *)sptr; + const char *buf; + size_t buflen; + + (void)td; /* Unused argument */ + (void)ilevel; /* Unused argument */ + + if(st) { + if(*st) { + buf = "TRUE"; + buflen = 4; + } else { + buf = "FALSE"; + buflen = 5; + } + } else { + buf = ""; + buflen = 8; + } + + return (cb(buf, buflen, app_key) < 0) ? -1 : 0; +} diff --git a/e2sim/asn1c/BOOLEAN_rfill.c b/e2sim/asn1c/BOOLEAN_rfill.c new file mode 100644 index 0000000..5ec628b --- /dev/null +++ b/e2sim/asn1c/BOOLEAN_rfill.c @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_random_fill_result_t +BOOLEAN_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + BOOLEAN_t *st = *sptr; + + if(max_length == 0) return result_skipped; + + if(st == NULL) { + st = (BOOLEAN_t *)(*sptr = CALLOC(1, sizeof(*st))); + if(st == NULL) { + return result_failed; + } + } + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + if(!constraints || !constraints->per_constraints) + constraints = &td->encoding_constraints; + if(constraints->per_constraints) { + const asn_per_constraint_t *pc = &constraints->per_constraints->value; + if(pc->flags & APC_CONSTRAINED) { + *st = asn_random_between(pc->lower_bound, pc->upper_bound); + return result_ok; + } + } +#else + if(!constraints) constraints = &td->encoding_constraints; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + + /* Simulate booleans that are sloppily set and biased. */ + switch(asn_random_between(0, 7)) { + case 0: + case 1: + case 2: + *st = 0; break; + case 3: *st = -1; break; + case 4: *st = 1; break; + case 5: *st = INT_MIN; break; + case 6: *st = INT_MAX; break; + default: + *st = asn_random_between(INT_MIN, INT_MAX); + break; + } + return result_ok; +} diff --git a/e2sim/asn1c/BOOLEAN_uper.c b/e2sim/asn1c/BOOLEAN_uper.c new file mode 100644 index 0000000..8181ec9 --- /dev/null +++ b/e2sim/asn1c/BOOLEAN_uper.c @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +BOOLEAN_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + asn_dec_rval_t rv; + BOOLEAN_t *st = (BOOLEAN_t *)*sptr; + + (void)opt_codec_ctx; + (void)td; + (void)constraints; + + if(!st) { + st = (BOOLEAN_t *)(*sptr = MALLOC(sizeof(*st))); + if(!st) ASN__DECODE_FAILED; + } + + /* + * Extract a single bit + */ + switch(per_get_few_bits(pd, 1)) { + case 1: *st = 1; break; + case 0: *st = 0; break; + case -1: default: ASN__DECODE_STARVED; + } + + ASN_DEBUG("%s decoded as %s", td->name, *st ? "TRUE" : "FALSE"); + + rv.code = RC_OK; + rv.consumed = 1; + return rv; +} + + +asn_enc_rval_t +BOOLEAN_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const BOOLEAN_t *st = (const BOOLEAN_t *)sptr; + asn_enc_rval_t er = { 0, 0, 0 }; + + (void)constraints; + + if(!st) ASN__ENCODE_FAILED; + + if(per_put_few_bits(po, *st ? 1 : 0, 1)) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/e2sim/asn1c/BOOLEAN_xer.c b/e2sim/asn1c/BOOLEAN_xer.c new file mode 100644 index 0000000..7e9d8f8 --- /dev/null +++ b/e2sim/asn1c/BOOLEAN_xer.c @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +/* + * Decode the chunk of XML text encoding INTEGER. + */ +static enum xer_pbd_rval +BOOLEAN__xer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr, + const void *chunk_buf, size_t chunk_size) { + BOOLEAN_t *st = (BOOLEAN_t *)sptr; + const char *p = (const char *)chunk_buf; + + (void)td; + + if(chunk_size && p[0] == 0x3c /* '<' */) { + switch(xer_check_tag(chunk_buf, chunk_size, "false")) { + case XCT_BOTH: + /* "" */ + *st = 0; + break; + case XCT_UNKNOWN_BO: + if(xer_check_tag(chunk_buf, chunk_size, "true") != XCT_BOTH) + return XPBD_BROKEN_ENCODING; + /* "" */ + *st = 1; /* Or 0xff as in DER?.. */ + break; + default: + return XPBD_BROKEN_ENCODING; + } + return XPBD_BODY_CONSUMED; + } else { + return XPBD_BROKEN_ENCODING; + } +} + + +asn_dec_rval_t +BOOLEAN_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, size_t size) { + return xer_decode_primitive(opt_codec_ctx, td, + sptr, sizeof(BOOLEAN_t), opt_mname, buf_ptr, size, + BOOLEAN__xer_body_decode); +} + +asn_enc_rval_t +BOOLEAN_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const BOOLEAN_t *st = (const BOOLEAN_t *)sptr; + asn_enc_rval_t er = {0, 0, 0}; + + (void)ilevel; + (void)flags; + + if(!st) ASN__ENCODE_FAILED; + + if(*st) { + ASN__CALLBACK("", 7); + } else { + ASN__CALLBACK("", 8); + } + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} diff --git a/e2sim/asn1c/BinIndex.c b/e2sim/asn1c/BinIndex.c new file mode 100644 index 0000000..9dea46f --- /dev/null +++ b/e2sim/asn1c/BinIndex.c @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "BinIndex.h" + +int +BinIndex_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 >= 1L && value <= 65535L)) { + /* 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. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_BinIndex_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 16, 16, 1, 65535 } /* (1..65535,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_BinIndex_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_BinIndex = { + "BinIndex", + "BinIndex", + &asn_OP_NativeInteger, + asn_DEF_BinIndex_tags_1, + sizeof(asn_DEF_BinIndex_tags_1) + /sizeof(asn_DEF_BinIndex_tags_1[0]), /* 1 */ + asn_DEF_BinIndex_tags_1, /* Same as above */ + sizeof(asn_DEF_BinIndex_tags_1) + /sizeof(asn_DEF_BinIndex_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_BinIndex_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + BinIndex_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/BinIndex.h b/e2sim/asn1c/BinIndex.h new file mode 100644 index 0000000..93792c9 --- /dev/null +++ b/e2sim/asn1c/BinIndex.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _BinIndex_H_ +#define _BinIndex_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* BinIndex */ +typedef long BinIndex_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_BinIndex_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_BinIndex; +asn_struct_free_f BinIndex_free; +asn_struct_print_f BinIndex_print; +asn_constr_check_f BinIndex_constraint; +ber_type_decoder_f BinIndex_decode_ber; +der_type_encoder_f BinIndex_encode_der; +xer_type_decoder_f BinIndex_decode_xer; +xer_type_encoder_f BinIndex_encode_xer; +jer_type_encoder_f BinIndex_encode_jer; +per_type_decoder_f BinIndex_decode_uper; +per_type_encoder_f BinIndex_encode_uper; +per_type_decoder_f BinIndex_decode_aper; +per_type_encoder_f BinIndex_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _BinIndex_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/BinRangeDefinition.c b/e2sim/asn1c/BinRangeDefinition.c new file mode 100644 index 0000000..a9b9b2f --- /dev/null +++ b/e2sim/asn1c/BinRangeDefinition.c @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "BinRangeDefinition.h" + +#include "BinRangeList.h" +asn_TYPE_member_t asn_MBR_BinRangeDefinition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct BinRangeDefinition, binRangeListX), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BinRangeList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "binRangeListX" + }, + { ATF_POINTER, 2, offsetof(struct BinRangeDefinition, binRangeListY), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BinRangeList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "binRangeListY" + }, + { ATF_POINTER, 1, offsetof(struct BinRangeDefinition, binRangeListZ), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BinRangeList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "binRangeListZ" + }, +}; +static const int asn_MAP_BinRangeDefinition_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_BinRangeDefinition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_BinRangeDefinition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* binRangeListX */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* binRangeListY */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* binRangeListZ */ +}; +asn_SEQUENCE_specifics_t asn_SPC_BinRangeDefinition_specs_1 = { + sizeof(struct BinRangeDefinition), + offsetof(struct BinRangeDefinition, _asn_ctx), + asn_MAP_BinRangeDefinition_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_BinRangeDefinition_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_BinRangeDefinition = { + "BinRangeDefinition", + "BinRangeDefinition", + &asn_OP_SEQUENCE, + asn_DEF_BinRangeDefinition_tags_1, + sizeof(asn_DEF_BinRangeDefinition_tags_1) + /sizeof(asn_DEF_BinRangeDefinition_tags_1[0]), /* 1 */ + asn_DEF_BinRangeDefinition_tags_1, /* Same as above */ + sizeof(asn_DEF_BinRangeDefinition_tags_1) + /sizeof(asn_DEF_BinRangeDefinition_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_BinRangeDefinition_1, + 3, /* Elements count */ + &asn_SPC_BinRangeDefinition_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/BinRangeDefinition.h b/e2sim/asn1c/BinRangeDefinition.h new file mode 100644 index 0000000..5f30b2c --- /dev/null +++ b/e2sim/asn1c/BinRangeDefinition.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _BinRangeDefinition_H_ +#define _BinRangeDefinition_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BinRangeList.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct BinRangeList; + +/* BinRangeDefinition */ +typedef struct BinRangeDefinition { + BinRangeList_t binRangeListX; + struct BinRangeList *binRangeListY; /* OPTIONAL */ + struct BinRangeList *binRangeListZ; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} BinRangeDefinition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BinRangeDefinition; +extern asn_SEQUENCE_specifics_t asn_SPC_BinRangeDefinition_specs_1; +extern asn_TYPE_member_t asn_MBR_BinRangeDefinition_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _BinRangeDefinition_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/BinRangeItem.c b/e2sim/asn1c/BinRangeItem.c new file mode 100644 index 0000000..9e940d6 --- /dev/null +++ b/e2sim/asn1c/BinRangeItem.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "BinRangeItem.h" + +asn_TYPE_member_t asn_MBR_BinRangeItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct BinRangeItem, binIndex), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BinIndex, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "binIndex" + }, + { ATF_NOFLAGS, 0, offsetof(struct BinRangeItem, startValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_BinRangeValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "startValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct BinRangeItem, endValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_BinRangeValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "endValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_BinRangeItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_BinRangeItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* binIndex */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* startValue */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* endValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_BinRangeItem_specs_1 = { + sizeof(struct BinRangeItem), + offsetof(struct BinRangeItem, _asn_ctx), + asn_MAP_BinRangeItem_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_BinRangeItem = { + "BinRangeItem", + "BinRangeItem", + &asn_OP_SEQUENCE, + asn_DEF_BinRangeItem_tags_1, + sizeof(asn_DEF_BinRangeItem_tags_1) + /sizeof(asn_DEF_BinRangeItem_tags_1[0]), /* 1 */ + asn_DEF_BinRangeItem_tags_1, /* Same as above */ + sizeof(asn_DEF_BinRangeItem_tags_1) + /sizeof(asn_DEF_BinRangeItem_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_BinRangeItem_1, + 3, /* Elements count */ + &asn_SPC_BinRangeItem_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/BinRangeItem.h b/e2sim/asn1c/BinRangeItem.h new file mode 100644 index 0000000..5f9d5c7 --- /dev/null +++ b/e2sim/asn1c/BinRangeItem.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _BinRangeItem_H_ +#define _BinRangeItem_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BinIndex.h" +#include "BinRangeValue.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* BinRangeItem */ +typedef struct BinRangeItem { + BinIndex_t binIndex; + BinRangeValue_t startValue; + BinRangeValue_t endValue; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} BinRangeItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BinRangeItem; +extern asn_SEQUENCE_specifics_t asn_SPC_BinRangeItem_specs_1; +extern asn_TYPE_member_t asn_MBR_BinRangeItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _BinRangeItem_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/BinRangeList.c b/e2sim/asn1c/BinRangeList.c new file mode 100644 index 0000000..83d44f7 --- /dev/null +++ b/e2sim/asn1c/BinRangeList.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "BinRangeList.h" + +#include "BinRangeItem.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_BinRangeList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_BinRangeList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_BinRangeItem, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_BinRangeList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_BinRangeList_specs_1 = { + sizeof(struct BinRangeList), + offsetof(struct BinRangeList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_BinRangeList = { + "BinRangeList", + "BinRangeList", + &asn_OP_SEQUENCE_OF, + asn_DEF_BinRangeList_tags_1, + sizeof(asn_DEF_BinRangeList_tags_1) + /sizeof(asn_DEF_BinRangeList_tags_1[0]), /* 1 */ + asn_DEF_BinRangeList_tags_1, /* Same as above */ + sizeof(asn_DEF_BinRangeList_tags_1) + /sizeof(asn_DEF_BinRangeList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_BinRangeList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_BinRangeList_1, + 1, /* Single element */ + &asn_SPC_BinRangeList_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/BinRangeList.h b/e2sim/asn1c/BinRangeList.h new file mode 100644 index 0000000..243780c --- /dev/null +++ b/e2sim/asn1c/BinRangeList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _BinRangeList_H_ +#define _BinRangeList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct BinRangeItem; + +/* BinRangeList */ +typedef struct BinRangeList { + A_SEQUENCE_OF(struct BinRangeItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} BinRangeList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BinRangeList; +extern asn_SET_OF_specifics_t asn_SPC_BinRangeList_specs_1; +extern asn_TYPE_member_t asn_MBR_BinRangeList_1[1]; +extern asn_per_constraints_t asn_PER_type_BinRangeList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _BinRangeList_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/BinRangeValue.c b/e2sim/asn1c/BinRangeValue.c new file mode 100644 index 0000000..fdf3964 --- /dev/null +++ b/e2sim/asn1c/BinRangeValue.c @@ -0,0 +1,88 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "BinRangeValue.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_BinRangeValue_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_BinRangeValue_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct BinRangeValue, choice.valueInt), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "valueInt" + }, + { ATF_NOFLAGS, 0, offsetof(struct BinRangeValue, choice.valueReal), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeReal, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "valueReal" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_BinRangeValue_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* valueInt */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* valueReal */ +}; +asn_CHOICE_specifics_t asn_SPC_BinRangeValue_specs_1 = { + sizeof(struct BinRangeValue), + offsetof(struct BinRangeValue, _asn_ctx), + offsetof(struct BinRangeValue, present), + sizeof(((struct BinRangeValue *)0)->present), + asn_MAP_BinRangeValue_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_BinRangeValue = { + "BinRangeValue", + "BinRangeValue", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_BinRangeValue_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_BinRangeValue_1, + 2, /* Elements count */ + &asn_SPC_BinRangeValue_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/BinRangeValue.h b/e2sim/asn1c/BinRangeValue.h new file mode 100644 index 0000000..32f11ad --- /dev/null +++ b/e2sim/asn1c/BinRangeValue.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _BinRangeValue_H_ +#define _BinRangeValue_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" +#include "NativeReal.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BinRangeValue_PR { + BinRangeValue_PR_NOTHING, /* No components present */ + BinRangeValue_PR_valueInt, + BinRangeValue_PR_valueReal + /* Extensions may appear below */ + +} BinRangeValue_PR; + +/* BinRangeValue */ +typedef struct BinRangeValue { + BinRangeValue_PR present; + union BinRangeValue_u { + long valueInt; + double valueReal; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} BinRangeValue_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BinRangeValue; +extern asn_CHOICE_specifics_t asn_SPC_BinRangeValue_specs_1; +extern asn_TYPE_member_t asn_MBR_BinRangeValue_1[2]; +extern asn_per_constraints_t asn_PER_type_BinRangeValue_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _BinRangeValue_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/CGI.c b/e2sim/asn1c/CGI.c new file mode 100644 index 0000000..2873169 --- /dev/null +++ b/e2sim/asn1c/CGI.c @@ -0,0 +1,90 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "CGI.h" + +#include "NR-CGI.h" +#include "EUTRA-CGI.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_CGI_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_CGI_1[] = { + { ATF_POINTER, 0, offsetof(struct CGI, choice.nR_CGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NR_CGI, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "nR-CGI" + }, + { ATF_POINTER, 0, offsetof(struct CGI, choice.eUTRA_CGI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_CGI, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "eUTRA-CGI" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_CGI_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nR-CGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* eUTRA-CGI */ +}; +asn_CHOICE_specifics_t asn_SPC_CGI_specs_1 = { + sizeof(struct CGI), + offsetof(struct CGI, _asn_ctx), + offsetof(struct CGI, present), + sizeof(((struct CGI *)0)->present), + asn_MAP_CGI_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_CGI = { + "CGI", + "CGI", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_CGI_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_CGI_1, + 2, /* Elements count */ + &asn_SPC_CGI_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/CGI.h b/e2sim/asn1c/CGI.h new file mode 100644 index 0000000..1e7c422 --- /dev/null +++ b/e2sim/asn1c/CGI.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _CGI_H_ +#define _CGI_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CGI_PR { + CGI_PR_NOTHING, /* No components present */ + CGI_PR_nR_CGI, + CGI_PR_eUTRA_CGI + /* Extensions may appear below */ + +} CGI_PR; + +/* Forward declarations */ +struct NR_CGI; +struct EUTRA_CGI; + +/* CGI */ +typedef struct CGI { + CGI_PR present; + union CGI_u { + struct NR_CGI *nR_CGI; + struct EUTRA_CGI *eUTRA_CGI; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CGI_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CGI; +extern asn_CHOICE_specifics_t asn_SPC_CGI_specs_1; +extern asn_TYPE_member_t asn_MBR_CGI_1[2]; +extern asn_per_constraints_t asn_PER_type_CGI_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _CGI_H_ */ +#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/CMakeLists.txt b/e2sim/asn1c/CMakeLists.txt old mode 100644 new mode 100755 similarity index 100% rename from e2sim/src/ASN1c/CMakeLists.txt rename to e2sim/asn1c/CMakeLists.txt diff --git a/e2sim/asn1c/Cause.c b/e2sim/asn1c/Cause.c new file mode 100644 index 0000000..025786f --- /dev/null +++ b/e2sim/asn1c/Cause.c @@ -0,0 +1,160 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "Cause.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Cause_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_Cause_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.ricRequest), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CauseRICrequest, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.ricService), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CauseRICservice, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricService" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.e2Node), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CauseE2node, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "e2Node" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.transport), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CauseTransport, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "transport" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.protocol), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CauseProtocol, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocol" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.misc), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CauseMisc, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "misc" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_Cause_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 }, /* 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_Cause_specs_1 = { + sizeof(struct Cause), + offsetof(struct Cause, _asn_ctx), + offsetof(struct Cause, present), + sizeof(((struct Cause *)0)->present), + asn_MAP_Cause_tag2el_1, + 6, /* Count of tags in the map */ + 0, 0, + 6 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_Cause = { + "Cause", + "Cause", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Cause_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_Cause_1, + 6, /* Elements count */ + &asn_SPC_Cause_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/Cause.h b/e2sim/asn1c/Cause.h new file mode 100644 index 0000000..887fd01 --- /dev/null +++ b/e2sim/asn1c/Cause.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _Cause_H_ +#define _Cause_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "CauseRICrequest.h" +#include "CauseRICservice.h" +#include "CauseE2node.h" +#include "CauseTransport.h" +#include "CauseProtocol.h" +#include "CauseMisc.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Cause_PR { + Cause_PR_NOTHING, /* No components present */ + Cause_PR_ricRequest, + Cause_PR_ricService, + Cause_PR_e2Node, + Cause_PR_transport, + Cause_PR_protocol, + Cause_PR_misc + /* Extensions may appear below */ + +} Cause_PR; + +/* Cause */ +typedef struct Cause { + Cause_PR present; + union Cause_u { + CauseRICrequest_t ricRequest; + CauseRICservice_t ricService; + CauseE2node_t e2Node; + CauseTransport_t transport; + CauseProtocol_t protocol; + CauseMisc_t misc; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cause_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Cause; +extern asn_CHOICE_specifics_t asn_SPC_Cause_specs_1; +extern asn_TYPE_member_t asn_MBR_Cause_1[6]; +extern asn_per_constraints_t asn_PER_type_Cause_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _Cause_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/CauseE2node.c b/e2sim/asn1c/CauseE2node.c new file mode 100644 index 0000000..808bb58 --- /dev/null +++ b/e2sim/asn1c/CauseE2node.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "CauseE2node.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_CauseE2node_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CauseE2node_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/CauseE2node.h b/e2sim/asn1c/CauseE2node.h new file mode 100644 index 0000000..21076c1 --- /dev/null +++ b/e2sim/asn1c/CauseE2node.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _CauseE2node_H_ +#define _CauseE2node_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#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; +jer_type_encoder_f CauseE2node_encode_jer; +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 "asn_internal.h" diff --git a/e2sim/asn1c/CauseMisc.c b/e2sim/asn1c/CauseMisc.c new file mode 100644 index 0000000..26a7904 --- /dev/null +++ b/e2sim/asn1c/CauseMisc.c @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "CauseMisc.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_CauseMisc_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_CauseMisc_value2enum_1[] = { + { 0, 27, "control-processing-overload" }, + { 1, 16, "hardware-failure" }, + { 2, 15, "om-intervention" }, + { 3, 11, "unspecified" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_CauseMisc_enum2value_1[] = { + 0, /* control-processing-overload(0) */ + 1, /* hardware-failure(1) */ + 2, /* om-intervention(2) */ + 3 /* unspecified(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_CauseMisc_specs_1 = { + asn_MAP_CauseMisc_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CauseMisc_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_CauseMisc_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CauseMisc = { + "CauseMisc", + "CauseMisc", + &asn_OP_NativeEnumerated, + asn_DEF_CauseMisc_tags_1, + sizeof(asn_DEF_CauseMisc_tags_1) + /sizeof(asn_DEF_CauseMisc_tags_1[0]), /* 1 */ + asn_DEF_CauseMisc_tags_1, /* Same as above */ + sizeof(asn_DEF_CauseMisc_tags_1) + /sizeof(asn_DEF_CauseMisc_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_CauseMisc_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CauseMisc_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/CauseMisc.h b/e2sim/asn1c/CauseMisc.h new file mode 100644 index 0000000..b351f04 --- /dev/null +++ b/e2sim/asn1c/CauseMisc.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _CauseMisc_H_ +#define _CauseMisc_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CauseMisc { + CauseMisc_control_processing_overload = 0, + CauseMisc_hardware_failure = 1, + CauseMisc_om_intervention = 2, + CauseMisc_unspecified = 3 + /* + * Enumeration is extensible + */ +} e_CauseMisc; + +/* CauseMisc */ +typedef long CauseMisc_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CauseMisc_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CauseMisc; +extern const asn_INTEGER_specifics_t asn_SPC_CauseMisc_specs_1; +asn_struct_free_f CauseMisc_free; +asn_struct_print_f CauseMisc_print; +asn_constr_check_f CauseMisc_constraint; +ber_type_decoder_f CauseMisc_decode_ber; +der_type_encoder_f CauseMisc_encode_der; +xer_type_decoder_f CauseMisc_decode_xer; +xer_type_encoder_f CauseMisc_encode_xer; +jer_type_encoder_f CauseMisc_encode_jer; +per_type_decoder_f CauseMisc_decode_uper; +per_type_encoder_f CauseMisc_encode_uper; +per_type_decoder_f CauseMisc_decode_aper; +per_type_encoder_f CauseMisc_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CauseMisc_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/CauseProtocol.c b/e2sim/asn1c/CauseProtocol.c new file mode 100644 index 0000000..4c5ffd7 --- /dev/null +++ b/e2sim/asn1c/CauseProtocol.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "CauseProtocol.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_CauseProtocol_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_CauseProtocol_value2enum_1[] = { + { 0, 21, "transfer-syntax-error" }, + { 1, 28, "abstract-syntax-error-reject" }, + { 2, 39, "abstract-syntax-error-ignore-and-notify" }, + { 3, 42, "message-not-compatible-with-receiver-state" }, + { 4, 14, "semantic-error" }, + { 5, 49, "abstract-syntax-error-falsely-constructed-message" }, + { 6, 11, "unspecified" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_CauseProtocol_enum2value_1[] = { + 5, /* abstract-syntax-error-falsely-constructed-message(5) */ + 2, /* abstract-syntax-error-ignore-and-notify(2) */ + 1, /* abstract-syntax-error-reject(1) */ + 3, /* message-not-compatible-with-receiver-state(3) */ + 4, /* semantic-error(4) */ + 0, /* transfer-syntax-error(0) */ + 6 /* unspecified(6) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_CauseProtocol_specs_1 = { + asn_MAP_CauseProtocol_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CauseProtocol_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_CauseProtocol_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CauseProtocol = { + "CauseProtocol", + "CauseProtocol", + &asn_OP_NativeEnumerated, + asn_DEF_CauseProtocol_tags_1, + sizeof(asn_DEF_CauseProtocol_tags_1) + /sizeof(asn_DEF_CauseProtocol_tags_1[0]), /* 1 */ + asn_DEF_CauseProtocol_tags_1, /* Same as above */ + sizeof(asn_DEF_CauseProtocol_tags_1) + /sizeof(asn_DEF_CauseProtocol_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_CauseProtocol_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CauseProtocol_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/CauseProtocol.h b/e2sim/asn1c/CauseProtocol.h new file mode 100644 index 0000000..9334e3c --- /dev/null +++ b/e2sim/asn1c/CauseProtocol.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _CauseProtocol_H_ +#define _CauseProtocol_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CauseProtocol { + CauseProtocol_transfer_syntax_error = 0, + CauseProtocol_abstract_syntax_error_reject = 1, + CauseProtocol_abstract_syntax_error_ignore_and_notify = 2, + CauseProtocol_message_not_compatible_with_receiver_state = 3, + CauseProtocol_semantic_error = 4, + CauseProtocol_abstract_syntax_error_falsely_constructed_message = 5, + CauseProtocol_unspecified = 6 + /* + * Enumeration is extensible + */ +} e_CauseProtocol; + +/* CauseProtocol */ +typedef long CauseProtocol_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CauseProtocol_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CauseProtocol; +extern const asn_INTEGER_specifics_t asn_SPC_CauseProtocol_specs_1; +asn_struct_free_f CauseProtocol_free; +asn_struct_print_f CauseProtocol_print; +asn_constr_check_f CauseProtocol_constraint; +ber_type_decoder_f CauseProtocol_decode_ber; +der_type_encoder_f CauseProtocol_encode_der; +xer_type_decoder_f CauseProtocol_decode_xer; +xer_type_encoder_f CauseProtocol_encode_xer; +jer_type_encoder_f CauseProtocol_encode_jer; +per_type_decoder_f CauseProtocol_decode_uper; +per_type_encoder_f CauseProtocol_encode_uper; +per_type_decoder_f CauseProtocol_decode_aper; +per_type_encoder_f CauseProtocol_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CauseProtocol_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/CauseRICrequest.c b/e2sim/asn1c/CauseRICrequest.c new file mode 100644 index 0000000..3997661 --- /dev/null +++ b/e2sim/asn1c/CauseRICrequest.c @@ -0,0 +1,101 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "CauseRICrequest.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +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" }, + { 14, 33, "ric-subscription-end-time-expired" }, + { 15, 33, "ric-subscription-end-time-invalid" }, + { 16, 24, "duplicate-ric-request-id" }, + { 17, 24, "eventTriggerNotSupported" }, + { 18, 33, "requested-information-unavailable" }, + { 19, 27, "invalid-information-request" } + /* 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) */ + 16, /* duplicate-ric-request-id(16) */ + 17, /* eventTriggerNotSupported(17) */ + 2, /* excessive-actions(2) */ + 5, /* function-resource-limit(5) */ + 7, /* inconsistent-action-subsequent-action-sequence(7) */ + 19, /* invalid-information-request(19) */ + 0, /* ran-function-id-invalid(0) */ + 6, /* request-id-unknown(6) */ + 18, /* requested-information-unavailable(18) */ + 9, /* ric-call-process-id-invalid(9) */ + 14, /* ric-subscription-end-time-expired(14) */ + 15, /* ric-subscription-end-time-invalid(15) */ + 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 */ + 20, /* 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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_CauseRICrequest_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CauseRICrequest_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/CauseRICrequest.h b/e2sim/asn1c/CauseRICrequest.h new file mode 100644 index 0000000..6499c1a --- /dev/null +++ b/e2sim/asn1c/CauseRICrequest.h @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _CauseRICrequest_H_ +#define _CauseRICrequest_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#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 + */ + CauseRICrequest_ric_subscription_end_time_expired = 14, + CauseRICrequest_ric_subscription_end_time_invalid = 15, + CauseRICrequest_duplicate_ric_request_id = 16, + CauseRICrequest_eventTriggerNotSupported = 17, + CauseRICrequest_requested_information_unavailable = 18, + CauseRICrequest_invalid_information_request = 19 +} 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; +jer_type_encoder_f CauseRICrequest_encode_jer; +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 "asn_internal.h" diff --git a/e2sim/asn1c/CauseRICservice.c b/e2sim/asn1c/CauseRICservice.c new file mode 100644 index 0000000..5cc27b0 --- /dev/null +++ b/e2sim/asn1c/CauseRICservice.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "CauseRICservice.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_CauseRICservice_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_CauseRICservice_value2enum_1[] = { + { 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, /* ran-function-not-supported(0) */ + 2 /* ric-resource-limit(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_CauseRICservice_specs_1 = { + asn_MAP_CauseRICservice_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CauseRICservice_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_CauseRICservice_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CauseRICservice = { + "CauseRICservice", + "CauseRICservice", + &asn_OP_NativeEnumerated, + asn_DEF_CauseRICservice_tags_1, + sizeof(asn_DEF_CauseRICservice_tags_1) + /sizeof(asn_DEF_CauseRICservice_tags_1[0]), /* 1 */ + asn_DEF_CauseRICservice_tags_1, /* Same as above */ + sizeof(asn_DEF_CauseRICservice_tags_1) + /sizeof(asn_DEF_CauseRICservice_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_CauseRICservice_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CauseRICservice_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/CauseRICservice.h b/e2sim/asn1c/CauseRICservice.h new file mode 100644 index 0000000..a082d55 --- /dev/null +++ b/e2sim/asn1c/CauseRICservice.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _CauseRICservice_H_ +#define _CauseRICservice_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CauseRICservice { + CauseRICservice_ran_function_not_supported = 0, + CauseRICservice_excessive_functions = 1, + CauseRICservice_ric_resource_limit = 2 + /* + * Enumeration is extensible + */ +} e_CauseRICservice; + +/* CauseRICservice */ +typedef long CauseRICservice_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CauseRICservice_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CauseRICservice; +extern const asn_INTEGER_specifics_t asn_SPC_CauseRICservice_specs_1; +asn_struct_free_f CauseRICservice_free; +asn_struct_print_f CauseRICservice_print; +asn_constr_check_f CauseRICservice_constraint; +ber_type_decoder_f CauseRICservice_decode_ber; +der_type_encoder_f CauseRICservice_encode_der; +xer_type_decoder_f CauseRICservice_decode_xer; +xer_type_encoder_f CauseRICservice_encode_xer; +jer_type_encoder_f CauseRICservice_encode_jer; +per_type_decoder_f CauseRICservice_decode_uper; +per_type_encoder_f CauseRICservice_encode_uper; +per_type_decoder_f CauseRICservice_decode_aper; +per_type_encoder_f CauseRICservice_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CauseRICservice_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/CauseTransport.c b/e2sim/asn1c/CauseTransport.c new file mode 100644 index 0000000..be78340 --- /dev/null +++ b/e2sim/asn1c/CauseTransport.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "CauseTransport.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_CauseTransport_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_CauseTransport_value2enum_1[] = { + { 0, 11, "unspecified" }, + { 1, 30, "transport-resource-unavailable" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_CauseTransport_enum2value_1[] = { + 1, /* transport-resource-unavailable(1) */ + 0 /* unspecified(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_CauseTransport_specs_1 = { + asn_MAP_CauseTransport_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CauseTransport_enum2value_1, /* 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_CauseTransport_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CauseTransport = { + "CauseTransport", + "CauseTransport", + &asn_OP_NativeEnumerated, + asn_DEF_CauseTransport_tags_1, + sizeof(asn_DEF_CauseTransport_tags_1) + /sizeof(asn_DEF_CauseTransport_tags_1[0]), /* 1 */ + asn_DEF_CauseTransport_tags_1, /* Same as above */ + sizeof(asn_DEF_CauseTransport_tags_1) + /sizeof(asn_DEF_CauseTransport_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_CauseTransport_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CauseTransport_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/CauseTransport.h b/e2sim/asn1c/CauseTransport.h new file mode 100644 index 0000000..33b7f12 --- /dev/null +++ b/e2sim/asn1c/CauseTransport.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _CauseTransport_H_ +#define _CauseTransport_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CauseTransport { + CauseTransport_unspecified = 0, + CauseTransport_transport_resource_unavailable = 1 + /* + * Enumeration is extensible + */ +} e_CauseTransport; + +/* CauseTransport */ +typedef long CauseTransport_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CauseTransport_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CauseTransport; +extern const asn_INTEGER_specifics_t asn_SPC_CauseTransport_specs_1; +asn_struct_free_f CauseTransport_free; +asn_struct_print_f CauseTransport_print; +asn_constr_check_f CauseTransport_constraint; +ber_type_decoder_f CauseTransport_decode_ber; +der_type_encoder_f CauseTransport_encode_der; +xer_type_decoder_f CauseTransport_decode_xer; +xer_type_encoder_f CauseTransport_encode_xer; +jer_type_encoder_f CauseTransport_encode_jer; +per_type_decoder_f CauseTransport_decode_uper; +per_type_encoder_f CauseTransport_encode_uper; +per_type_decoder_f CauseTransport_decode_aper; +per_type_encoder_f CauseTransport_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CauseTransport_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/CoreCPID.c b/e2sim/asn1c/CoreCPID.c new file mode 100644 index 0000000..2768aa2 --- /dev/null +++ b/e2sim/asn1c/CoreCPID.c @@ -0,0 +1,90 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "CoreCPID.h" + +#include "GUAMI.h" +#include "GUMMEI.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_CoreCPID_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_CoreCPID_1[] = { + { ATF_POINTER, 0, offsetof(struct CoreCPID, choice.fiveGC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GUAMI, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "fiveGC" + }, + { ATF_POINTER, 0, offsetof(struct CoreCPID, choice.ePC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GUMMEI, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ePC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_CoreCPID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fiveGC */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ePC */ +}; +static asn_CHOICE_specifics_t asn_SPC_CoreCPID_specs_1 = { + sizeof(struct CoreCPID), + offsetof(struct CoreCPID, _asn_ctx), + offsetof(struct CoreCPID, present), + sizeof(((struct CoreCPID *)0)->present), + asn_MAP_CoreCPID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_CoreCPID = { + "CoreCPID", + "CoreCPID", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_CoreCPID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_CoreCPID_1, + 2, /* Elements count */ + &asn_SPC_CoreCPID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/CoreCPID.h b/e2sim/asn1c/CoreCPID.h new file mode 100644 index 0000000..8376c20 --- /dev/null +++ b/e2sim/asn1c/CoreCPID.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _CoreCPID_H_ +#define _CoreCPID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CoreCPID_PR { + CoreCPID_PR_NOTHING, /* No components present */ + CoreCPID_PR_fiveGC, + CoreCPID_PR_ePC + /* Extensions may appear below */ + +} CoreCPID_PR; + +/* Forward declarations */ +struct GUAMI; +struct GUMMEI; + +/* CoreCPID */ +typedef struct CoreCPID { + CoreCPID_PR present; + union CoreCPID_u { + struct GUAMI *fiveGC; + struct GUMMEI *ePC; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CoreCPID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CoreCPID; + +#ifdef __cplusplus +} +#endif + +#endif /* _CoreCPID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/Criticality.c b/e2sim/asn1c/Criticality.c new file mode 100644 index 0000000..903f268 --- /dev/null +++ b/e2sim/asn1c/Criticality.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-CommonDataTypes" + * found in "e2ap-common-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "Criticality.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Criticality_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_Criticality_value2enum_1[] = { + { 0, 6, "reject" }, + { 1, 6, "ignore" }, + { 2, 6, "notify" } +}; +static const unsigned int asn_MAP_Criticality_enum2value_1[] = { + 1, /* ignore(1) */ + 2, /* notify(2) */ + 0 /* reject(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_Criticality_specs_1 = { + asn_MAP_Criticality_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Criticality_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_Criticality_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Criticality = { + "Criticality", + "Criticality", + &asn_OP_NativeEnumerated, + asn_DEF_Criticality_tags_1, + sizeof(asn_DEF_Criticality_tags_1) + /sizeof(asn_DEF_Criticality_tags_1[0]), /* 1 */ + asn_DEF_Criticality_tags_1, /* Same as above */ + sizeof(asn_DEF_Criticality_tags_1) + /sizeof(asn_DEF_Criticality_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Criticality_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Criticality_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/Criticality.h b/e2sim/asn1c/Criticality.h new file mode 100644 index 0000000..11a5afb --- /dev/null +++ b/e2sim/asn1c/Criticality.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-CommonDataTypes" + * found in "e2ap-common-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _Criticality_H_ +#define _Criticality_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Criticality { + Criticality_reject = 0, + Criticality_ignore = 1, + Criticality_notify = 2 +} e_Criticality; + +/* Criticality */ +typedef long Criticality_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Criticality_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Criticality; +extern const asn_INTEGER_specifics_t asn_SPC_Criticality_specs_1; +asn_struct_free_f Criticality_free; +asn_struct_print_f Criticality_print; +asn_constr_check_f Criticality_constraint; +ber_type_decoder_f Criticality_decode_ber; +der_type_encoder_f Criticality_encode_der; +xer_type_decoder_f Criticality_decode_xer; +xer_type_encoder_f Criticality_encode_xer; +jer_type_encoder_f Criticality_encode_jer; +per_type_decoder_f Criticality_decode_uper; +per_type_encoder_f Criticality_encode_uper; +per_type_decoder_f Criticality_decode_aper; +per_type_encoder_f Criticality_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Criticality_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/CriticalityDiagnostics-IE-Item.c b/e2sim/asn1c/CriticalityDiagnostics-IE-Item.c new file mode 100644 index 0000000..3e1cc21 --- /dev/null +++ b/e2sim/asn1c/CriticalityDiagnostics-IE-Item.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "CriticalityDiagnostics-IE-Item.h" + +asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_Item, iECriticality), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "iECriticality" + }, + { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_Item, iE_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "iE-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_Item, typeOfError), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TypeOfError, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "typeOfError" + }, +}; +static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_IE_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CriticalityDiagnostics_IE_Item_tag2el_1[] = { + { (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 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_IE_Item_specs_1 = { + sizeof(struct CriticalityDiagnostics_IE_Item), + offsetof(struct CriticalityDiagnostics_IE_Item, _asn_ctx), + asn_MAP_CriticalityDiagnostics_IE_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_CriticalityDiagnostics_IE_Item = { + "CriticalityDiagnostics-IE-Item", + "CriticalityDiagnostics-IE-Item", + &asn_OP_SEQUENCE, + asn_DEF_CriticalityDiagnostics_IE_Item_tags_1, + sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_tags_1) + /sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_tags_1[0]), /* 1 */ + asn_DEF_CriticalityDiagnostics_IE_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_tags_1) + /sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_CriticalityDiagnostics_IE_Item_1, + 3, /* Elements count */ + &asn_SPC_CriticalityDiagnostics_IE_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/CriticalityDiagnostics-IE-Item.h b/e2sim/asn1c/CriticalityDiagnostics-IE-Item.h new file mode 100644 index 0000000..dbb3df0 --- /dev/null +++ b/e2sim/asn1c/CriticalityDiagnostics-IE-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _CriticalityDiagnostics_IE_Item_H_ +#define _CriticalityDiagnostics_IE_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Criticality.h" +#include "ProtocolIE-ID.h" +#include "TypeOfError.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* CriticalityDiagnostics-IE-Item */ +typedef struct CriticalityDiagnostics_IE_Item { + Criticality_t iECriticality; + ProtocolIE_ID_t iE_ID; + TypeOfError_t typeOfError; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CriticalityDiagnostics_IE_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_IE_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_Item_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CriticalityDiagnostics_IE_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/CriticalityDiagnostics-IE-List.c b/e2sim/asn1c/CriticalityDiagnostics-IE-List.c new file mode 100644 index 0000000..679af8c --- /dev/null +++ b/e2sim/asn1c/CriticalityDiagnostics-IE-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "CriticalityDiagnostics-IE-List.h" + +#include "CriticalityDiagnostics-IE-Item.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_CriticalityDiagnostics_IE_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics_IE_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_IE_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_CriticalityDiagnostics_IE_List_specs_1 = { + sizeof(struct CriticalityDiagnostics_IE_List), + offsetof(struct CriticalityDiagnostics_IE_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_List = { + "CriticalityDiagnostics-IE-List", + "CriticalityDiagnostics-IE-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_CriticalityDiagnostics_IE_List_tags_1, + sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1) + /sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1[0]), /* 1 */ + asn_DEF_CriticalityDiagnostics_IE_List_tags_1, /* Same as above */ + sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1) + /sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_CriticalityDiagnostics_IE_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_CriticalityDiagnostics_IE_List_1, + 1, /* Single element */ + &asn_SPC_CriticalityDiagnostics_IE_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/CriticalityDiagnostics-IE-List.h b/e2sim/asn1c/CriticalityDiagnostics-IE-List.h new file mode 100644 index 0000000..f92da52 --- /dev/null +++ b/e2sim/asn1c/CriticalityDiagnostics-IE-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _CriticalityDiagnostics_IE_List_H_ +#define _CriticalityDiagnostics_IE_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct CriticalityDiagnostics_IE_Item; + +/* CriticalityDiagnostics-IE-List */ +typedef struct CriticalityDiagnostics_IE_List { + A_SEQUENCE_OF(struct CriticalityDiagnostics_IE_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CriticalityDiagnostics_IE_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_List; +extern asn_SET_OF_specifics_t asn_SPC_CriticalityDiagnostics_IE_List_specs_1; +extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_List_1[1]; +extern asn_per_constraints_t asn_PER_type_CriticalityDiagnostics_IE_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _CriticalityDiagnostics_IE_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/CriticalityDiagnostics.c b/e2sim/asn1c/CriticalityDiagnostics.c new file mode 100644 index 0000000..efa02c8 --- /dev/null +++ b/e2sim/asn1c/CriticalityDiagnostics.c @@ -0,0 +1,142 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "CriticalityDiagnostics.h" + +#include "RICrequestID.h" +#include "CriticalityDiagnostics-IE-List.h" +asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_1[] = { + { ATF_POINTER, 5, offsetof(struct CriticalityDiagnostics, procedureCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProcedureCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "procedureCode" + }, + { ATF_POINTER, 4, offsetof(struct CriticalityDiagnostics, triggeringMessage), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TriggeringMessage, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "triggeringMessage" + }, + { ATF_POINTER, 3, offsetof(struct CriticalityDiagnostics, procedureCriticality), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "procedureCriticality" + }, + { ATF_POINTER, 2, offsetof(struct CriticalityDiagnostics, ricRequestorID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICrequestID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricRequestorID" + }, + { ATF_POINTER, 1, offsetof(struct CriticalityDiagnostics, iEsCriticalityDiagnostics), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CriticalityDiagnostics_IE_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "iEsCriticalityDiagnostics" + }, +}; +static const int asn_MAP_CriticalityDiagnostics_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CriticalityDiagnostics_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* triggeringMessage */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* procedureCriticality */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ricRequestorID */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iEsCriticalityDiagnostics */ +}; +asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_specs_1 = { + sizeof(struct CriticalityDiagnostics), + offsetof(struct CriticalityDiagnostics, _asn_ctx), + asn_MAP_CriticalityDiagnostics_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_CriticalityDiagnostics_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics = { + "CriticalityDiagnostics", + "CriticalityDiagnostics", + &asn_OP_SEQUENCE, + asn_DEF_CriticalityDiagnostics_tags_1, + sizeof(asn_DEF_CriticalityDiagnostics_tags_1) + /sizeof(asn_DEF_CriticalityDiagnostics_tags_1[0]), /* 1 */ + asn_DEF_CriticalityDiagnostics_tags_1, /* Same as above */ + sizeof(asn_DEF_CriticalityDiagnostics_tags_1) + /sizeof(asn_DEF_CriticalityDiagnostics_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_CriticalityDiagnostics_1, + 5, /* Elements count */ + &asn_SPC_CriticalityDiagnostics_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/CriticalityDiagnostics.h b/e2sim/asn1c/CriticalityDiagnostics.h new file mode 100644 index 0000000..9c49e96 --- /dev/null +++ b/e2sim/asn1c/CriticalityDiagnostics.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _CriticalityDiagnostics_H_ +#define _CriticalityDiagnostics_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProcedureCode.h" +#include "TriggeringMessage.h" +#include "Criticality.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RICrequestID; +struct CriticalityDiagnostics_IE_List; + +/* CriticalityDiagnostics */ +typedef struct CriticalityDiagnostics { + ProcedureCode_t *procedureCode; /* OPTIONAL */ + TriggeringMessage_t *triggeringMessage; /* OPTIONAL */ + Criticality_t *procedureCriticality; /* OPTIONAL */ + struct RICrequestID *ricRequestorID; /* OPTIONAL */ + struct CriticalityDiagnostics_IE_List *iEsCriticalityDiagnostics; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CriticalityDiagnostics_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics; +extern asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_specs_1; +extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CriticalityDiagnostics_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/DistMeasurementBinRangeItem.c b/e2sim/asn1c/DistMeasurementBinRangeItem.c new file mode 100644 index 0000000..63f6393 --- /dev/null +++ b/e2sim/asn1c/DistMeasurementBinRangeItem.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "DistMeasurementBinRangeItem.h" + +asn_TYPE_member_t asn_MBR_DistMeasurementBinRangeItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DistMeasurementBinRangeItem, measType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_MeasurementType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "measType" + }, + { ATF_NOFLAGS, 0, offsetof(struct DistMeasurementBinRangeItem, binRangeDef), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BinRangeDefinition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "binRangeDef" + }, +}; +static const ber_tlv_tag_t asn_DEF_DistMeasurementBinRangeItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DistMeasurementBinRangeItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* binRangeDef */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DistMeasurementBinRangeItem_specs_1 = { + sizeof(struct DistMeasurementBinRangeItem), + offsetof(struct DistMeasurementBinRangeItem, _asn_ctx), + asn_MAP_DistMeasurementBinRangeItem_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_DistMeasurementBinRangeItem = { + "DistMeasurementBinRangeItem", + "DistMeasurementBinRangeItem", + &asn_OP_SEQUENCE, + asn_DEF_DistMeasurementBinRangeItem_tags_1, + sizeof(asn_DEF_DistMeasurementBinRangeItem_tags_1) + /sizeof(asn_DEF_DistMeasurementBinRangeItem_tags_1[0]), /* 1 */ + asn_DEF_DistMeasurementBinRangeItem_tags_1, /* Same as above */ + sizeof(asn_DEF_DistMeasurementBinRangeItem_tags_1) + /sizeof(asn_DEF_DistMeasurementBinRangeItem_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_DistMeasurementBinRangeItem_1, + 2, /* Elements count */ + &asn_SPC_DistMeasurementBinRangeItem_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/DistMeasurementBinRangeItem.h b/e2sim/asn1c/DistMeasurementBinRangeItem.h new file mode 100644 index 0000000..50d9874 --- /dev/null +++ b/e2sim/asn1c/DistMeasurementBinRangeItem.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _DistMeasurementBinRangeItem_H_ +#define _DistMeasurementBinRangeItem_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "MeasurementType.h" +#include "BinRangeDefinition.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* DistMeasurementBinRangeItem */ +typedef struct DistMeasurementBinRangeItem { + MeasurementType_t measType; + BinRangeDefinition_t binRangeDef; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DistMeasurementBinRangeItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DistMeasurementBinRangeItem; +extern asn_SEQUENCE_specifics_t asn_SPC_DistMeasurementBinRangeItem_specs_1; +extern asn_TYPE_member_t asn_MBR_DistMeasurementBinRangeItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DistMeasurementBinRangeItem_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/DistMeasurementBinRangeList.c b/e2sim/asn1c/DistMeasurementBinRangeList.c new file mode 100644 index 0000000..a80af05 --- /dev/null +++ b/e2sim/asn1c/DistMeasurementBinRangeList.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "DistMeasurementBinRangeList.h" + +#include "DistMeasurementBinRangeItem.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_DistMeasurementBinRangeList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_DistMeasurementBinRangeList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DistMeasurementBinRangeItem, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DistMeasurementBinRangeList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_DistMeasurementBinRangeList_specs_1 = { + sizeof(struct DistMeasurementBinRangeList), + offsetof(struct DistMeasurementBinRangeList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DistMeasurementBinRangeList = { + "DistMeasurementBinRangeList", + "DistMeasurementBinRangeList", + &asn_OP_SEQUENCE_OF, + asn_DEF_DistMeasurementBinRangeList_tags_1, + sizeof(asn_DEF_DistMeasurementBinRangeList_tags_1) + /sizeof(asn_DEF_DistMeasurementBinRangeList_tags_1[0]), /* 1 */ + asn_DEF_DistMeasurementBinRangeList_tags_1, /* Same as above */ + sizeof(asn_DEF_DistMeasurementBinRangeList_tags_1) + /sizeof(asn_DEF_DistMeasurementBinRangeList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_DistMeasurementBinRangeList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_DistMeasurementBinRangeList_1, + 1, /* Single element */ + &asn_SPC_DistMeasurementBinRangeList_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/DistMeasurementBinRangeList.h b/e2sim/asn1c/DistMeasurementBinRangeList.h new file mode 100644 index 0000000..4716e1f --- /dev/null +++ b/e2sim/asn1c/DistMeasurementBinRangeList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _DistMeasurementBinRangeList_H_ +#define _DistMeasurementBinRangeList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct DistMeasurementBinRangeItem; + +/* DistMeasurementBinRangeList */ +typedef struct DistMeasurementBinRangeList { + A_SEQUENCE_OF(struct DistMeasurementBinRangeItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DistMeasurementBinRangeList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DistMeasurementBinRangeList; +extern asn_SET_OF_specifics_t asn_SPC_DistMeasurementBinRangeList_specs_1; +extern asn_TYPE_member_t asn_MBR_DistMeasurementBinRangeList_1[1]; +extern asn_per_constraints_t asn_PER_type_DistMeasurementBinRangeList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _DistMeasurementBinRangeList_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E-UTRA-ARFCN.c b/e2sim/asn1c/E-UTRA-ARFCN.c new file mode 100644 index 0000000..65b3503 --- /dev/null +++ b/e2sim/asn1c/E-UTRA-ARFCN.c @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E-UTRA-ARFCN.h" + +int +E_UTRA_ARFCN_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 >= 0L && value <= 65535L)) { + /* 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. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_E_UTRA_ARFCN_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_E_UTRA_ARFCN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_E_UTRA_ARFCN = { + "E-UTRA-ARFCN", + "E-UTRA-ARFCN", + &asn_OP_NativeInteger, + asn_DEF_E_UTRA_ARFCN_tags_1, + sizeof(asn_DEF_E_UTRA_ARFCN_tags_1) + /sizeof(asn_DEF_E_UTRA_ARFCN_tags_1[0]), /* 1 */ + asn_DEF_E_UTRA_ARFCN_tags_1, /* Same as above */ + sizeof(asn_DEF_E_UTRA_ARFCN_tags_1) + /sizeof(asn_DEF_E_UTRA_ARFCN_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_E_UTRA_ARFCN_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + E_UTRA_ARFCN_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/E-UTRA-ARFCN.h b/e2sim/asn1c/E-UTRA-ARFCN.h new file mode 100644 index 0000000..813be9f --- /dev/null +++ b/e2sim/asn1c/E-UTRA-ARFCN.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E_UTRA_ARFCN_H_ +#define _E_UTRA_ARFCN_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E-UTRA-ARFCN */ +typedef long E_UTRA_ARFCN_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_E_UTRA_ARFCN_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_E_UTRA_ARFCN; +asn_struct_free_f E_UTRA_ARFCN_free; +asn_struct_print_f E_UTRA_ARFCN_print; +asn_constr_check_f E_UTRA_ARFCN_constraint; +ber_type_decoder_f E_UTRA_ARFCN_decode_ber; +der_type_encoder_f E_UTRA_ARFCN_encode_der; +xer_type_decoder_f E_UTRA_ARFCN_decode_xer; +xer_type_encoder_f E_UTRA_ARFCN_encode_xer; +jer_type_encoder_f E_UTRA_ARFCN_encode_jer; +per_type_decoder_f E_UTRA_ARFCN_decode_uper; +per_type_encoder_f E_UTRA_ARFCN_encode_uper; +per_type_decoder_f E_UTRA_ARFCN_decode_aper; +per_type_encoder_f E_UTRA_ARFCN_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _E_UTRA_ARFCN_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E-UTRA-PCI.c b/e2sim/asn1c/E-UTRA-PCI.c new file mode 100644 index 0000000..599fea5 --- /dev/null +++ b/e2sim/asn1c/E-UTRA-PCI.c @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E-UTRA-PCI.h" + +int +E_UTRA_PCI_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 >= 0L && value <= 503L)) { + /* 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. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_E_UTRA_PCI_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 9, 9, 0, 503 } /* (0..503,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_E_UTRA_PCI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_E_UTRA_PCI = { + "E-UTRA-PCI", + "E-UTRA-PCI", + &asn_OP_NativeInteger, + asn_DEF_E_UTRA_PCI_tags_1, + sizeof(asn_DEF_E_UTRA_PCI_tags_1) + /sizeof(asn_DEF_E_UTRA_PCI_tags_1[0]), /* 1 */ + asn_DEF_E_UTRA_PCI_tags_1, /* Same as above */ + sizeof(asn_DEF_E_UTRA_PCI_tags_1) + /sizeof(asn_DEF_E_UTRA_PCI_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_E_UTRA_PCI_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + E_UTRA_PCI_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/E-UTRA-PCI.h b/e2sim/asn1c/E-UTRA-PCI.h new file mode 100644 index 0000000..6e7e5ba --- /dev/null +++ b/e2sim/asn1c/E-UTRA-PCI.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E_UTRA_PCI_H_ +#define _E_UTRA_PCI_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E-UTRA-PCI */ +typedef long E_UTRA_PCI_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_E_UTRA_PCI_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_E_UTRA_PCI; +asn_struct_free_f E_UTRA_PCI_free; +asn_struct_print_f E_UTRA_PCI_print; +asn_constr_check_f E_UTRA_PCI_constraint; +ber_type_decoder_f E_UTRA_PCI_decode_ber; +der_type_encoder_f E_UTRA_PCI_encode_der; +xer_type_decoder_f E_UTRA_PCI_decode_xer; +xer_type_encoder_f E_UTRA_PCI_encode_xer; +jer_type_encoder_f E_UTRA_PCI_encode_jer; +per_type_decoder_f E_UTRA_PCI_decode_uper; +per_type_encoder_f E_UTRA_PCI_encode_uper; +per_type_decoder_f E_UTRA_PCI_decode_aper; +per_type_encoder_f E_UTRA_PCI_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _E_UTRA_PCI_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E-UTRA-TAC.c b/e2sim/asn1c/E-UTRA-TAC.c new file mode 100644 index 0000000..b68cb59 --- /dev/null +++ b/e2sim/asn1c/E-UTRA-TAC.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E-UTRA-TAC.h" + +int +E_UTRA_TAC_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; + + 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 == 2UL)) { + /* 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 OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_E_UTRA_TAC_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_E_UTRA_TAC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_E_UTRA_TAC = { + "E-UTRA-TAC", + "E-UTRA-TAC", + &asn_OP_OCTET_STRING, + asn_DEF_E_UTRA_TAC_tags_1, + sizeof(asn_DEF_E_UTRA_TAC_tags_1) + /sizeof(asn_DEF_E_UTRA_TAC_tags_1[0]), /* 1 */ + asn_DEF_E_UTRA_TAC_tags_1, /* Same as above */ + sizeof(asn_DEF_E_UTRA_TAC_tags_1) + /sizeof(asn_DEF_E_UTRA_TAC_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_E_UTRA_TAC_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + E_UTRA_TAC_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E-UTRA-TAC.h b/e2sim/asn1c/E-UTRA-TAC.h new file mode 100644 index 0000000..60cd223 --- /dev/null +++ b/e2sim/asn1c/E-UTRA-TAC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E_UTRA_TAC_H_ +#define _E_UTRA_TAC_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E-UTRA-TAC */ +typedef OCTET_STRING_t E_UTRA_TAC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E_UTRA_TAC; +asn_struct_free_f E_UTRA_TAC_free; +asn_struct_print_f E_UTRA_TAC_print; +asn_constr_check_f E_UTRA_TAC_constraint; +ber_type_decoder_f E_UTRA_TAC_decode_ber; +der_type_encoder_f E_UTRA_TAC_encode_der; +xer_type_decoder_f E_UTRA_TAC_decode_xer; +xer_type_encoder_f E_UTRA_TAC_encode_xer; +jer_type_encoder_f E_UTRA_TAC_encode_jer; +per_type_decoder_f E_UTRA_TAC_decode_uper; +per_type_encoder_f E_UTRA_TAC_encode_uper; +per_type_decoder_f E_UTRA_TAC_decode_aper; +per_type_encoder_f E_UTRA_TAC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _E_UTRA_TAC_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2AP-IEs_ENB-ID.c b/e2sim/asn1c/E2AP-IEs_ENB-ID.c new file mode 100644 index 0000000..89757e6 --- /dev/null +++ b/e2sim/asn1c/E2AP-IEs_ENB-ID.c @@ -0,0 +1,276 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2AP-IEs_ENB-ID.h" + +static int +memb_macro_eNB_ID_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 == 20UL)) { + /* 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_home_eNB_ID_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 == 28UL)) { + /* 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_short_Macro_eNB_ID_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 == 18UL)) { + /* 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_long_Macro_eNB_ID_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 == 21UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_macro_eNB_ID_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_home_eNB_ID_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 28, 28 } /* (SIZE(28..28)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_short_Macro_eNB_ID_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 18, 18 } /* (SIZE(18..18)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_long_Macro_eNB_ID_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 21, 21 } /* (SIZE(21..21)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_E2AP_IEs_ENB_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_E2AP_IEs_ENB_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2AP_IEs_ENB_ID, choice.macro_eNB_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_macro_eNB_ID_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_macro_eNB_ID_constraint_1 + }, + 0, 0, /* No default value */ + "macro-eNB-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2AP_IEs_ENB_ID, choice.home_eNB_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_home_eNB_ID_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_home_eNB_ID_constraint_1 + }, + 0, 0, /* No default value */ + "home-eNB-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2AP_IEs_ENB_ID, choice.short_Macro_eNB_ID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_short_Macro_eNB_ID_constr_5, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_short_Macro_eNB_ID_constraint_1 + }, + 0, 0, /* No default value */ + "short-Macro-eNB-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2AP_IEs_ENB_ID, choice.long_Macro_eNB_ID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_long_Macro_eNB_ID_constr_6, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_long_Macro_eNB_ID_constraint_1 + }, + 0, 0, /* No default value */ + "long-Macro-eNB-ID" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_E2AP_IEs_ENB_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* macro-eNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* home-eNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* short-Macro-eNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* long-Macro-eNB-ID */ +}; +asn_CHOICE_specifics_t asn_SPC_E2AP_IEs_ENB_ID_specs_1 = { + sizeof(struct E2AP_IEs_ENB_ID), + offsetof(struct E2AP_IEs_ENB_ID, _asn_ctx), + offsetof(struct E2AP_IEs_ENB_ID, present), + sizeof(((struct E2AP_IEs_ENB_ID *)0)->present), + asn_MAP_E2AP_IEs_ENB_ID_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_E2AP_IEs_ENB_ID = { + "ENB-ID", + "ENB-ID", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_E2AP_IEs_ENB_ID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_E2AP_IEs_ENB_ID_1, + 4, /* Elements count */ + &asn_SPC_E2AP_IEs_ENB_ID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2AP-IEs_ENB-ID.h b/e2sim/asn1c/E2AP-IEs_ENB-ID.h new file mode 100644 index 0000000..fabb332 --- /dev/null +++ b/e2sim/asn1c/E2AP-IEs_ENB-ID.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2AP_IEs_ENB_ID_H_ +#define _E2AP_IEs_ENB_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum E2AP_IEs_ENB_ID_PR { + E2AP_IEs_ENB_ID_PR_NOTHING, /* No components present */ + E2AP_IEs_ENB_ID_PR_macro_eNB_ID, + E2AP_IEs_ENB_ID_PR_home_eNB_ID, + /* Extensions may appear below */ + E2AP_IEs_ENB_ID_PR_short_Macro_eNB_ID, + E2AP_IEs_ENB_ID_PR_long_Macro_eNB_ID +} E2AP_IEs_ENB_ID_PR; + +/* E2AP-IEs_ENB-ID */ +typedef struct E2AP_IEs_ENB_ID { + E2AP_IEs_ENB_ID_PR present; + union E2AP_IEs_ENB_ID_u { + BIT_STRING_t macro_eNB_ID; + BIT_STRING_t home_eNB_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + BIT_STRING_t short_Macro_eNB_ID; + BIT_STRING_t long_Macro_eNB_ID; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2AP_IEs_ENB_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2AP_IEs_ENB_ID; +extern asn_CHOICE_specifics_t asn_SPC_E2AP_IEs_ENB_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_E2AP_IEs_ENB_ID_1[4]; +extern asn_per_constraints_t asn_PER_type_E2AP_IEs_ENB_ID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2AP_IEs_ENB_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2AP-IEs_GNB-CU-UP-ID.c b/e2sim/asn1c/E2AP-IEs_GNB-CU-UP-ID.c new file mode 100644 index 0000000..7a7977d --- /dev/null +++ b/e2sim/asn1c/E2AP-IEs_GNB-CU-UP-ID.c @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2AP-IEs_GNB-CU-UP-ID.h" + +int +E2AP_IEs_GNB_CU_UP_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 >= 0L && value <= 68719476735L)) { + /* 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. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_E2AP_IEs_GNB_CU_UP_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_E2AP_IEs_GNB_CU_UP_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_E2AP_IEs_GNB_CU_UP_ID = { + "GNB-CU-UP-ID", + "GNB-CU-UP-ID", + &asn_OP_INTEGER, + asn_DEF_E2AP_IEs_GNB_CU_UP_ID_tags_1, + sizeof(asn_DEF_E2AP_IEs_GNB_CU_UP_ID_tags_1) + /sizeof(asn_DEF_E2AP_IEs_GNB_CU_UP_ID_tags_1[0]), /* 1 */ + asn_DEF_E2AP_IEs_GNB_CU_UP_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_E2AP_IEs_GNB_CU_UP_ID_tags_1) + /sizeof(asn_DEF_E2AP_IEs_GNB_CU_UP_ID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_E2AP_IEs_GNB_CU_UP_ID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + E2AP_IEs_GNB_CU_UP_ID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/E2AP-IEs_GNB-CU-UP-ID.h b/e2sim/asn1c/E2AP-IEs_GNB-CU-UP-ID.h new file mode 100644 index 0000000..19f5a71 --- /dev/null +++ b/e2sim/asn1c/E2AP-IEs_GNB-CU-UP-ID.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2AP_IEs_GNB_CU_UP_ID_H_ +#define _E2AP_IEs_GNB_CU_UP_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "INTEGER.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2AP-IEs_GNB-CU-UP-ID */ +typedef INTEGER_t E2AP_IEs_GNB_CU_UP_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_E2AP_IEs_GNB_CU_UP_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_E2AP_IEs_GNB_CU_UP_ID; +asn_struct_free_f E2AP_IEs_GNB_CU_UP_ID_free; +asn_struct_print_f E2AP_IEs_GNB_CU_UP_ID_print; +asn_constr_check_f E2AP_IEs_GNB_CU_UP_ID_constraint; +ber_type_decoder_f E2AP_IEs_GNB_CU_UP_ID_decode_ber; +der_type_encoder_f E2AP_IEs_GNB_CU_UP_ID_encode_der; +xer_type_decoder_f E2AP_IEs_GNB_CU_UP_ID_decode_xer; +xer_type_encoder_f E2AP_IEs_GNB_CU_UP_ID_encode_xer; +jer_type_encoder_f E2AP_IEs_GNB_CU_UP_ID_encode_jer; +per_type_decoder_f E2AP_IEs_GNB_CU_UP_ID_decode_uper; +per_type_encoder_f E2AP_IEs_GNB_CU_UP_ID_encode_uper; +per_type_decoder_f E2AP_IEs_GNB_CU_UP_ID_decode_aper; +per_type_encoder_f E2AP_IEs_GNB_CU_UP_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2AP_IEs_GNB_CU_UP_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2AP-IEs_GNB-DU-ID.c b/e2sim/asn1c/E2AP-IEs_GNB-DU-ID.c new file mode 100644 index 0000000..291568d --- /dev/null +++ b/e2sim/asn1c/E2AP-IEs_GNB-DU-ID.c @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2AP-IEs_GNB-DU-ID.h" + +int +E2AP_IEs_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 >= 0L && value <= 68719476735L)) { + /* 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. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_E2AP_IEs_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_E2AP_IEs_GNB_DU_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_E2AP_IEs_GNB_DU_ID = { + "GNB-DU-ID", + "GNB-DU-ID", + &asn_OP_INTEGER, + asn_DEF_E2AP_IEs_GNB_DU_ID_tags_1, + sizeof(asn_DEF_E2AP_IEs_GNB_DU_ID_tags_1) + /sizeof(asn_DEF_E2AP_IEs_GNB_DU_ID_tags_1[0]), /* 1 */ + asn_DEF_E2AP_IEs_GNB_DU_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_E2AP_IEs_GNB_DU_ID_tags_1) + /sizeof(asn_DEF_E2AP_IEs_GNB_DU_ID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_E2AP_IEs_GNB_DU_ID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + E2AP_IEs_GNB_DU_ID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/E2AP-IEs_GNB-DU-ID.h b/e2sim/asn1c/E2AP-IEs_GNB-DU-ID.h new file mode 100644 index 0000000..62f034a --- /dev/null +++ b/e2sim/asn1c/E2AP-IEs_GNB-DU-ID.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2AP_IEs_GNB_DU_ID_H_ +#define _E2AP_IEs_GNB_DU_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "INTEGER.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2AP-IEs_GNB-DU-ID */ +typedef INTEGER_t E2AP_IEs_GNB_DU_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_E2AP_IEs_GNB_DU_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_E2AP_IEs_GNB_DU_ID; +asn_struct_free_f E2AP_IEs_GNB_DU_ID_free; +asn_struct_print_f E2AP_IEs_GNB_DU_ID_print; +asn_constr_check_f E2AP_IEs_GNB_DU_ID_constraint; +ber_type_decoder_f E2AP_IEs_GNB_DU_ID_decode_ber; +der_type_encoder_f E2AP_IEs_GNB_DU_ID_encode_der; +xer_type_decoder_f E2AP_IEs_GNB_DU_ID_decode_xer; +xer_type_encoder_f E2AP_IEs_GNB_DU_ID_encode_xer; +jer_type_encoder_f E2AP_IEs_GNB_DU_ID_encode_jer; +per_type_decoder_f E2AP_IEs_GNB_DU_ID_decode_uper; +per_type_encoder_f E2AP_IEs_GNB_DU_ID_encode_uper; +per_type_decoder_f E2AP_IEs_GNB_DU_ID_decode_aper; +per_type_encoder_f E2AP_IEs_GNB_DU_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2AP_IEs_GNB_DU_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2AP-IEs_GlobalENB-ID.c b/e2sim/asn1c/E2AP-IEs_GlobalENB-ID.c new file mode 100644 index 0000000..a95e2b6 --- /dev/null +++ b/e2sim/asn1c/E2AP-IEs_GlobalENB-ID.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2AP-IEs_GlobalENB-ID.h" + +asn_TYPE_member_t asn_MBR_E2AP_IEs_GlobalENB_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2AP_IEs_GlobalENB_ID, pLMN_Identity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PLMN_Identity, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pLMN-Identity" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2AP_IEs_GlobalENB_ID, eNB_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_E2AP_IEs_ENB_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "eNB-ID" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2AP_IEs_GlobalENB_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2AP_IEs_GlobalENB_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* eNB-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2AP_IEs_GlobalENB_ID_specs_1 = { + sizeof(struct E2AP_IEs_GlobalENB_ID), + offsetof(struct E2AP_IEs_GlobalENB_ID, _asn_ctx), + asn_MAP_E2AP_IEs_GlobalENB_ID_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_E2AP_IEs_GlobalENB_ID = { + "GlobalENB-ID", + "GlobalENB-ID", + &asn_OP_SEQUENCE, + asn_DEF_E2AP_IEs_GlobalENB_ID_tags_1, + sizeof(asn_DEF_E2AP_IEs_GlobalENB_ID_tags_1) + /sizeof(asn_DEF_E2AP_IEs_GlobalENB_ID_tags_1[0]), /* 1 */ + asn_DEF_E2AP_IEs_GlobalENB_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_E2AP_IEs_GlobalENB_ID_tags_1) + /sizeof(asn_DEF_E2AP_IEs_GlobalENB_ID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2AP_IEs_GlobalENB_ID_1, + 2, /* Elements count */ + &asn_SPC_E2AP_IEs_GlobalENB_ID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2AP-IEs_GlobalENB-ID.h b/e2sim/asn1c/E2AP-IEs_GlobalENB-ID.h new file mode 100644 index 0000000..9c4caa0 --- /dev/null +++ b/e2sim/asn1c/E2AP-IEs_GlobalENB-ID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2AP_IEs_GlobalENB_ID_H_ +#define _E2AP_IEs_GlobalENB_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "PLMN-Identity.h" +#include "E2AP-IEs_ENB-ID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2AP-IEs_GlobalENB-ID */ +typedef struct E2AP_IEs_GlobalENB_ID { + PLMN_Identity_t pLMN_Identity; + E2AP_IEs_ENB_ID_t eNB_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2AP_IEs_GlobalENB_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2AP_IEs_GlobalENB_ID; +extern asn_SEQUENCE_specifics_t asn_SPC_E2AP_IEs_GlobalENB_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_E2AP_IEs_GlobalENB_ID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2AP_IEs_GlobalENB_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2AP-IEs_GlobalenGNB-ID.c b/e2sim/asn1c/E2AP-IEs_GlobalenGNB-ID.c new file mode 100644 index 0000000..9cbf177 --- /dev/null +++ b/e2sim/asn1c/E2AP-IEs_GlobalenGNB-ID.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2AP-IEs_GlobalenGNB-ID.h" + +asn_TYPE_member_t asn_MBR_E2AP_IEs_GlobalenGNB_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2AP_IEs_GlobalenGNB_ID, pLMN_Identity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PLMN_Identity, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pLMN-Identity" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2AP_IEs_GlobalenGNB_ID, gNB_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ENGNB_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "gNB-ID" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2AP_IEs_GlobalenGNB_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2AP_IEs_GlobalenGNB_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* gNB-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2AP_IEs_GlobalenGNB_ID_specs_1 = { + sizeof(struct E2AP_IEs_GlobalenGNB_ID), + offsetof(struct E2AP_IEs_GlobalenGNB_ID, _asn_ctx), + asn_MAP_E2AP_IEs_GlobalenGNB_ID_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_E2AP_IEs_GlobalenGNB_ID = { + "GlobalenGNB-ID", + "GlobalenGNB-ID", + &asn_OP_SEQUENCE, + asn_DEF_E2AP_IEs_GlobalenGNB_ID_tags_1, + sizeof(asn_DEF_E2AP_IEs_GlobalenGNB_ID_tags_1) + /sizeof(asn_DEF_E2AP_IEs_GlobalenGNB_ID_tags_1[0]), /* 1 */ + asn_DEF_E2AP_IEs_GlobalenGNB_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_E2AP_IEs_GlobalenGNB_ID_tags_1) + /sizeof(asn_DEF_E2AP_IEs_GlobalenGNB_ID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2AP_IEs_GlobalenGNB_ID_1, + 2, /* Elements count */ + &asn_SPC_E2AP_IEs_GlobalenGNB_ID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2AP-IEs_GlobalenGNB-ID.h b/e2sim/asn1c/E2AP-IEs_GlobalenGNB-ID.h new file mode 100644 index 0000000..f8dff82 --- /dev/null +++ b/e2sim/asn1c/E2AP-IEs_GlobalenGNB-ID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2AP_IEs_GlobalenGNB_ID_H_ +#define _E2AP_IEs_GlobalenGNB_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "PLMN-Identity.h" +#include "ENGNB-ID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2AP-IEs_GlobalenGNB-ID */ +typedef struct E2AP_IEs_GlobalenGNB_ID { + PLMN_Identity_t pLMN_Identity; + ENGNB_ID_t gNB_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2AP_IEs_GlobalenGNB_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2AP_IEs_GlobalenGNB_ID; +extern asn_SEQUENCE_specifics_t asn_SPC_E2AP_IEs_GlobalenGNB_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_E2AP_IEs_GlobalenGNB_ID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2AP_IEs_GlobalenGNB_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2AP-IEs_NGENB-DU-ID.c b/e2sim/asn1c/E2AP-IEs_NGENB-DU-ID.c new file mode 100644 index 0000000..a410c4d --- /dev/null +++ b/e2sim/asn1c/E2AP-IEs_NGENB-DU-ID.c @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2AP-IEs_NGENB-DU-ID.h" + +int +E2AP_IEs_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; + + 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 >= 0L && value <= 68719476735L)) { + /* 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. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_E2AP_IEs_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_E2AP_IEs_NGENB_DU_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_E2AP_IEs_NGENB_DU_ID = { + "NGENB-DU-ID", + "NGENB-DU-ID", + &asn_OP_INTEGER, + asn_DEF_E2AP_IEs_NGENB_DU_ID_tags_1, + sizeof(asn_DEF_E2AP_IEs_NGENB_DU_ID_tags_1) + /sizeof(asn_DEF_E2AP_IEs_NGENB_DU_ID_tags_1[0]), /* 1 */ + asn_DEF_E2AP_IEs_NGENB_DU_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_E2AP_IEs_NGENB_DU_ID_tags_1) + /sizeof(asn_DEF_E2AP_IEs_NGENB_DU_ID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_E2AP_IEs_NGENB_DU_ID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + E2AP_IEs_NGENB_DU_ID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/E2AP-IEs_NGENB-DU-ID.h b/e2sim/asn1c/E2AP-IEs_NGENB-DU-ID.h new file mode 100644 index 0000000..348cfac --- /dev/null +++ b/e2sim/asn1c/E2AP-IEs_NGENB-DU-ID.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2AP_IEs_NGENB_DU_ID_H_ +#define _E2AP_IEs_NGENB_DU_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "INTEGER.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2AP-IEs_NGENB-DU-ID */ +typedef INTEGER_t E2AP_IEs_NGENB_DU_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_E2AP_IEs_NGENB_DU_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_E2AP_IEs_NGENB_DU_ID; +asn_struct_free_f E2AP_IEs_NGENB_DU_ID_free; +asn_struct_print_f E2AP_IEs_NGENB_DU_ID_print; +asn_constr_check_f E2AP_IEs_NGENB_DU_ID_constraint; +ber_type_decoder_f E2AP_IEs_NGENB_DU_ID_decode_ber; +der_type_encoder_f E2AP_IEs_NGENB_DU_ID_encode_der; +xer_type_decoder_f E2AP_IEs_NGENB_DU_ID_decode_xer; +xer_type_encoder_f E2AP_IEs_NGENB_DU_ID_encode_xer; +jer_type_encoder_f E2AP_IEs_NGENB_DU_ID_encode_jer; +per_type_decoder_f E2AP_IEs_NGENB_DU_ID_decode_uper; +per_type_encoder_f E2AP_IEs_NGENB_DU_ID_encode_uper; +per_type_decoder_f E2AP_IEs_NGENB_DU_ID_decode_aper; +per_type_encoder_f E2AP_IEs_NGENB_DU_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2AP_IEs_NGENB_DU_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2AP-PDU.c b/e2sim/asn1c/E2AP-PDU.c new file mode 100644 index 0000000..8e3b43e --- /dev/null +++ b/e2sim/asn1c/E2AP-PDU.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Descriptions" + * found in "e2ap-epd-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2AP-PDU.h" + +#include "InitiatingMessage.h" +#include "SuccessfulOutcome.h" +#include "UnsuccessfulOutcome.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_E2AP_PDU_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_E2AP_PDU_1[] = { + { ATF_POINTER, 0, offsetof(struct E2AP_PDU, choice.initiatingMessage), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InitiatingMessage, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "initiatingMessage" + }, + { ATF_POINTER, 0, offsetof(struct E2AP_PDU, choice.successfulOutcome), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SuccessfulOutcome, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "successfulOutcome" + }, + { ATF_POINTER, 0, offsetof(struct E2AP_PDU, choice.unsuccessfulOutcome), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UnsuccessfulOutcome, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "unsuccessfulOutcome" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_E2AP_PDU_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* initiatingMessage */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* successfulOutcome */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* unsuccessfulOutcome */ +}; +static asn_CHOICE_specifics_t asn_SPC_E2AP_PDU_specs_1 = { + sizeof(struct E2AP_PDU), + offsetof(struct E2AP_PDU, _asn_ctx), + offsetof(struct E2AP_PDU, present), + sizeof(((struct E2AP_PDU *)0)->present), + asn_MAP_E2AP_PDU_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + 3 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_E2AP_PDU = { + "E2AP-PDU", + "E2AP-PDU", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_E2AP_PDU_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_E2AP_PDU_1, + 3, /* Elements count */ + &asn_SPC_E2AP_PDU_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2AP-PDU.h b/e2sim/asn1c/E2AP-PDU.h new file mode 100644 index 0000000..148c9da --- /dev/null +++ b/e2sim/asn1c/E2AP-PDU.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Descriptions" + * found in "e2ap-epd-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2AP_PDU_H_ +#define _E2AP_PDU_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum E2AP_PDU_PR { + E2AP_PDU_PR_NOTHING, /* No components present */ + E2AP_PDU_PR_initiatingMessage, + E2AP_PDU_PR_successfulOutcome, + E2AP_PDU_PR_unsuccessfulOutcome + /* Extensions may appear below */ + +} E2AP_PDU_PR; + +/* Forward declarations */ +struct InitiatingMessage; +struct SuccessfulOutcome; +struct UnsuccessfulOutcome; + +/* E2AP-PDU */ +typedef struct E2AP_PDU { + E2AP_PDU_PR present; + union E2AP_PDU_u { + struct InitiatingMessage *initiatingMessage; + struct SuccessfulOutcome *successfulOutcome; + struct UnsuccessfulOutcome *unsuccessfulOutcome; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2AP_PDU_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2AP_PDU; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2AP_PDU_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2RemovalFailure.c b/e2sim/asn1c/E2RemovalFailure.c new file mode 100644 index 0000000..a9b812e --- /dev/null +++ b/e2sim/asn1c/E2RemovalFailure.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2RemovalFailure.h" + +asn_TYPE_member_t asn_MBR_E2RemovalFailure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2RemovalFailure, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_85P38, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2RemovalFailure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2RemovalFailure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2RemovalFailure_specs_1 = { + sizeof(struct E2RemovalFailure), + offsetof(struct E2RemovalFailure, _asn_ctx), + asn_MAP_E2RemovalFailure_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_E2RemovalFailure = { + "E2RemovalFailure", + "E2RemovalFailure", + &asn_OP_SEQUENCE, + asn_DEF_E2RemovalFailure_tags_1, + sizeof(asn_DEF_E2RemovalFailure_tags_1) + /sizeof(asn_DEF_E2RemovalFailure_tags_1[0]), /* 1 */ + asn_DEF_E2RemovalFailure_tags_1, /* Same as above */ + sizeof(asn_DEF_E2RemovalFailure_tags_1) + /sizeof(asn_DEF_E2RemovalFailure_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2RemovalFailure_1, + 1, /* Elements count */ + &asn_SPC_E2RemovalFailure_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2RemovalFailure.h b/e2sim/asn1c/E2RemovalFailure.h new file mode 100644 index 0000000..6059988 --- /dev/null +++ b/e2sim/asn1c/E2RemovalFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2RemovalFailure_H_ +#define _E2RemovalFailure_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2RemovalFailure */ +typedef struct E2RemovalFailure { + ProtocolIE_Container_85P38_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2RemovalFailure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2RemovalFailure; +extern asn_SEQUENCE_specifics_t asn_SPC_E2RemovalFailure_specs_1; +extern asn_TYPE_member_t asn_MBR_E2RemovalFailure_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2RemovalFailure_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2RemovalRequest.c b/e2sim/asn1c/E2RemovalRequest.c new file mode 100644 index 0000000..1983618 --- /dev/null +++ b/e2sim/asn1c/E2RemovalRequest.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2RemovalRequest.h" + +asn_TYPE_member_t asn_MBR_E2RemovalRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2RemovalRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_85P36, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2RemovalRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2RemovalRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2RemovalRequest_specs_1 = { + sizeof(struct E2RemovalRequest), + offsetof(struct E2RemovalRequest, _asn_ctx), + asn_MAP_E2RemovalRequest_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_E2RemovalRequest = { + "E2RemovalRequest", + "E2RemovalRequest", + &asn_OP_SEQUENCE, + asn_DEF_E2RemovalRequest_tags_1, + sizeof(asn_DEF_E2RemovalRequest_tags_1) + /sizeof(asn_DEF_E2RemovalRequest_tags_1[0]), /* 1 */ + asn_DEF_E2RemovalRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_E2RemovalRequest_tags_1) + /sizeof(asn_DEF_E2RemovalRequest_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2RemovalRequest_1, + 1, /* Elements count */ + &asn_SPC_E2RemovalRequest_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2RemovalRequest.h b/e2sim/asn1c/E2RemovalRequest.h new file mode 100644 index 0000000..5d21698 --- /dev/null +++ b/e2sim/asn1c/E2RemovalRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2RemovalRequest_H_ +#define _E2RemovalRequest_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2RemovalRequest */ +typedef struct E2RemovalRequest { + ProtocolIE_Container_85P36_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2RemovalRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2RemovalRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_E2RemovalRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_E2RemovalRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2RemovalRequest_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2RemovalResponse.c b/e2sim/asn1c/E2RemovalResponse.c new file mode 100644 index 0000000..c48dbb2 --- /dev/null +++ b/e2sim/asn1c/E2RemovalResponse.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2RemovalResponse.h" + +asn_TYPE_member_t asn_MBR_E2RemovalResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2RemovalResponse, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_85P37, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2RemovalResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2RemovalResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2RemovalResponse_specs_1 = { + sizeof(struct E2RemovalResponse), + offsetof(struct E2RemovalResponse, _asn_ctx), + asn_MAP_E2RemovalResponse_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_E2RemovalResponse = { + "E2RemovalResponse", + "E2RemovalResponse", + &asn_OP_SEQUENCE, + asn_DEF_E2RemovalResponse_tags_1, + sizeof(asn_DEF_E2RemovalResponse_tags_1) + /sizeof(asn_DEF_E2RemovalResponse_tags_1[0]), /* 1 */ + asn_DEF_E2RemovalResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_E2RemovalResponse_tags_1) + /sizeof(asn_DEF_E2RemovalResponse_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2RemovalResponse_1, + 1, /* Elements count */ + &asn_SPC_E2RemovalResponse_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2RemovalResponse.h b/e2sim/asn1c/E2RemovalResponse.h new file mode 100644 index 0000000..095ce7e --- /dev/null +++ b/e2sim/asn1c/E2RemovalResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2RemovalResponse_H_ +#define _E2RemovalResponse_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2RemovalResponse */ +typedef struct E2RemovalResponse { + ProtocolIE_Container_85P37_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2RemovalResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2RemovalResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_E2RemovalResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_E2RemovalResponse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2RemovalResponse_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2SM-COMMON-IEs_ENB-ID.c b/e2sim/asn1c/E2SM-COMMON-IEs_ENB-ID.c new file mode 100644 index 0000000..248a4c3 --- /dev/null +++ b/e2sim/asn1c/E2SM-COMMON-IEs_ENB-ID.c @@ -0,0 +1,276 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2SM-COMMON-IEs_ENB-ID.h" + +static int +memb_macro_eNB_ID_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 == 20UL)) { + /* 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_home_eNB_ID_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 == 28UL)) { + /* 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_short_Macro_eNB_ID_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 == 18UL)) { + /* 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_long_Macro_eNB_ID_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 == 21UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_macro_eNB_ID_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_home_eNB_ID_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 28, 28 } /* (SIZE(28..28)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_short_Macro_eNB_ID_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 18, 18 } /* (SIZE(18..18)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_long_Macro_eNB_ID_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 21, 21 } /* (SIZE(21..21)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_E2SM_COMMON_IEs_ENB_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_E2SM_COMMON_IEs_ENB_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2SM_COMMON_IEs_ENB_ID, choice.macro_eNB_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_macro_eNB_ID_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_macro_eNB_ID_constraint_1 + }, + 0, 0, /* No default value */ + "macro-eNB-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2SM_COMMON_IEs_ENB_ID, choice.home_eNB_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_home_eNB_ID_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_home_eNB_ID_constraint_1 + }, + 0, 0, /* No default value */ + "home-eNB-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2SM_COMMON_IEs_ENB_ID, choice.short_Macro_eNB_ID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_short_Macro_eNB_ID_constr_5, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_short_Macro_eNB_ID_constraint_1 + }, + 0, 0, /* No default value */ + "short-Macro-eNB-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2SM_COMMON_IEs_ENB_ID, choice.long_Macro_eNB_ID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_long_Macro_eNB_ID_constr_6, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_long_Macro_eNB_ID_constraint_1 + }, + 0, 0, /* No default value */ + "long-Macro-eNB-ID" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_E2SM_COMMON_IEs_ENB_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* macro-eNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* home-eNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* short-Macro-eNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* long-Macro-eNB-ID */ +}; +asn_CHOICE_specifics_t asn_SPC_E2SM_COMMON_IEs_ENB_ID_specs_1 = { + sizeof(struct E2SM_COMMON_IEs_ENB_ID), + offsetof(struct E2SM_COMMON_IEs_ENB_ID, _asn_ctx), + offsetof(struct E2SM_COMMON_IEs_ENB_ID, present), + sizeof(((struct E2SM_COMMON_IEs_ENB_ID *)0)->present), + asn_MAP_E2SM_COMMON_IEs_ENB_ID_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_E2SM_COMMON_IEs_ENB_ID = { + "ENB-ID", + "ENB-ID", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_E2SM_COMMON_IEs_ENB_ID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_E2SM_COMMON_IEs_ENB_ID_1, + 4, /* Elements count */ + &asn_SPC_E2SM_COMMON_IEs_ENB_ID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2SM-COMMON-IEs_ENB-ID.h b/e2sim/asn1c/E2SM-COMMON-IEs_ENB-ID.h new file mode 100644 index 0000000..5ce8cb8 --- /dev/null +++ b/e2sim/asn1c/E2SM-COMMON-IEs_ENB-ID.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2SM_COMMON_IEs_ENB_ID_H_ +#define _E2SM_COMMON_IEs_ENB_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum E2SM_COMMON_IEs_ENB_ID_PR { + E2SM_COMMON_IEs_ENB_ID_PR_NOTHING, /* No components present */ + E2SM_COMMON_IEs_ENB_ID_PR_macro_eNB_ID, + E2SM_COMMON_IEs_ENB_ID_PR_home_eNB_ID, + /* Extensions may appear below */ + E2SM_COMMON_IEs_ENB_ID_PR_short_Macro_eNB_ID, + E2SM_COMMON_IEs_ENB_ID_PR_long_Macro_eNB_ID +} E2SM_COMMON_IEs_ENB_ID_PR; + +/* E2SM-COMMON-IEs_ENB-ID */ +typedef struct E2SM_COMMON_IEs_ENB_ID { + E2SM_COMMON_IEs_ENB_ID_PR present; + union E2SM_COMMON_IEs_ENB_ID_u { + BIT_STRING_t macro_eNB_ID; + BIT_STRING_t home_eNB_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + BIT_STRING_t short_Macro_eNB_ID; + BIT_STRING_t long_Macro_eNB_ID; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2SM_COMMON_IEs_ENB_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2SM_COMMON_IEs_ENB_ID; +extern asn_CHOICE_specifics_t asn_SPC_E2SM_COMMON_IEs_ENB_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_E2SM_COMMON_IEs_ENB_ID_1[4]; +extern asn_per_constraints_t asn_PER_type_E2SM_COMMON_IEs_ENB_ID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2SM_COMMON_IEs_ENB_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2SM-COMMON-IEs_GNB-CU-UP-ID.c b/e2sim/asn1c/E2SM-COMMON-IEs_GNB-CU-UP-ID.c new file mode 100644 index 0000000..629db65 --- /dev/null +++ b/e2sim/asn1c/E2SM-COMMON-IEs_GNB-CU-UP-ID.c @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2SM-COMMON-IEs_GNB-CU-UP-ID.h" + +int +E2SM_COMMON_IEs_GNB_CU_UP_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 >= 0L && value <= 68719476735L)) { + /* 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. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_E2SM_COMMON_IEs_GNB_CU_UP_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_E2SM_COMMON_IEs_GNB_CU_UP_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_E2SM_COMMON_IEs_GNB_CU_UP_ID = { + "GNB-CU-UP-ID", + "GNB-CU-UP-ID", + &asn_OP_INTEGER, + asn_DEF_E2SM_COMMON_IEs_GNB_CU_UP_ID_tags_1, + sizeof(asn_DEF_E2SM_COMMON_IEs_GNB_CU_UP_ID_tags_1) + /sizeof(asn_DEF_E2SM_COMMON_IEs_GNB_CU_UP_ID_tags_1[0]), /* 1 */ + asn_DEF_E2SM_COMMON_IEs_GNB_CU_UP_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_E2SM_COMMON_IEs_GNB_CU_UP_ID_tags_1) + /sizeof(asn_DEF_E2SM_COMMON_IEs_GNB_CU_UP_ID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_E2SM_COMMON_IEs_GNB_CU_UP_ID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + E2SM_COMMON_IEs_GNB_CU_UP_ID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/E2SM-COMMON-IEs_GNB-CU-UP-ID.h b/e2sim/asn1c/E2SM-COMMON-IEs_GNB-CU-UP-ID.h new file mode 100644 index 0000000..c14a868 --- /dev/null +++ b/e2sim/asn1c/E2SM-COMMON-IEs_GNB-CU-UP-ID.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2SM_COMMON_IEs_GNB_CU_UP_ID_H_ +#define _E2SM_COMMON_IEs_GNB_CU_UP_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "INTEGER.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2SM-COMMON-IEs_GNB-CU-UP-ID */ +typedef INTEGER_t E2SM_COMMON_IEs_GNB_CU_UP_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_E2SM_COMMON_IEs_GNB_CU_UP_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_E2SM_COMMON_IEs_GNB_CU_UP_ID; +asn_struct_free_f E2SM_COMMON_IEs_GNB_CU_UP_ID_free; +asn_struct_print_f E2SM_COMMON_IEs_GNB_CU_UP_ID_print; +asn_constr_check_f E2SM_COMMON_IEs_GNB_CU_UP_ID_constraint; +ber_type_decoder_f E2SM_COMMON_IEs_GNB_CU_UP_ID_decode_ber; +der_type_encoder_f E2SM_COMMON_IEs_GNB_CU_UP_ID_encode_der; +xer_type_decoder_f E2SM_COMMON_IEs_GNB_CU_UP_ID_decode_xer; +xer_type_encoder_f E2SM_COMMON_IEs_GNB_CU_UP_ID_encode_xer; +jer_type_encoder_f E2SM_COMMON_IEs_GNB_CU_UP_ID_encode_jer; +per_type_decoder_f E2SM_COMMON_IEs_GNB_CU_UP_ID_decode_uper; +per_type_encoder_f E2SM_COMMON_IEs_GNB_CU_UP_ID_encode_uper; +per_type_decoder_f E2SM_COMMON_IEs_GNB_CU_UP_ID_decode_aper; +per_type_encoder_f E2SM_COMMON_IEs_GNB_CU_UP_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2SM_COMMON_IEs_GNB_CU_UP_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2SM-COMMON-IEs_GNB-DU-ID.c b/e2sim/asn1c/E2SM-COMMON-IEs_GNB-DU-ID.c new file mode 100644 index 0000000..679e388 --- /dev/null +++ b/e2sim/asn1c/E2SM-COMMON-IEs_GNB-DU-ID.c @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2SM-COMMON-IEs_GNB-DU-ID.h" + +int +E2SM_COMMON_IEs_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 >= 0L && value <= 68719476735L)) { + /* 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. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_E2SM_COMMON_IEs_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_E2SM_COMMON_IEs_GNB_DU_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_E2SM_COMMON_IEs_GNB_DU_ID = { + "GNB-DU-ID", + "GNB-DU-ID", + &asn_OP_INTEGER, + asn_DEF_E2SM_COMMON_IEs_GNB_DU_ID_tags_1, + sizeof(asn_DEF_E2SM_COMMON_IEs_GNB_DU_ID_tags_1) + /sizeof(asn_DEF_E2SM_COMMON_IEs_GNB_DU_ID_tags_1[0]), /* 1 */ + asn_DEF_E2SM_COMMON_IEs_GNB_DU_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_E2SM_COMMON_IEs_GNB_DU_ID_tags_1) + /sizeof(asn_DEF_E2SM_COMMON_IEs_GNB_DU_ID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_E2SM_COMMON_IEs_GNB_DU_ID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + E2SM_COMMON_IEs_GNB_DU_ID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/E2SM-COMMON-IEs_GNB-DU-ID.h b/e2sim/asn1c/E2SM-COMMON-IEs_GNB-DU-ID.h new file mode 100644 index 0000000..8a71086 --- /dev/null +++ b/e2sim/asn1c/E2SM-COMMON-IEs_GNB-DU-ID.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2SM_COMMON_IEs_GNB_DU_ID_H_ +#define _E2SM_COMMON_IEs_GNB_DU_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "INTEGER.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2SM-COMMON-IEs_GNB-DU-ID */ +typedef INTEGER_t E2SM_COMMON_IEs_GNB_DU_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_E2SM_COMMON_IEs_GNB_DU_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_E2SM_COMMON_IEs_GNB_DU_ID; +asn_struct_free_f E2SM_COMMON_IEs_GNB_DU_ID_free; +asn_struct_print_f E2SM_COMMON_IEs_GNB_DU_ID_print; +asn_constr_check_f E2SM_COMMON_IEs_GNB_DU_ID_constraint; +ber_type_decoder_f E2SM_COMMON_IEs_GNB_DU_ID_decode_ber; +der_type_encoder_f E2SM_COMMON_IEs_GNB_DU_ID_encode_der; +xer_type_decoder_f E2SM_COMMON_IEs_GNB_DU_ID_decode_xer; +xer_type_encoder_f E2SM_COMMON_IEs_GNB_DU_ID_encode_xer; +jer_type_encoder_f E2SM_COMMON_IEs_GNB_DU_ID_encode_jer; +per_type_decoder_f E2SM_COMMON_IEs_GNB_DU_ID_decode_uper; +per_type_encoder_f E2SM_COMMON_IEs_GNB_DU_ID_encode_uper; +per_type_decoder_f E2SM_COMMON_IEs_GNB_DU_ID_decode_aper; +per_type_encoder_f E2SM_COMMON_IEs_GNB_DU_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2SM_COMMON_IEs_GNB_DU_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2SM-COMMON-IEs_GlobalENB-ID.c b/e2sim/asn1c/E2SM-COMMON-IEs_GlobalENB-ID.c new file mode 100644 index 0000000..228f753 --- /dev/null +++ b/e2sim/asn1c/E2SM-COMMON-IEs_GlobalENB-ID.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2SM-COMMON-IEs_GlobalENB-ID.h" + +asn_TYPE_member_t asn_MBR_E2SM_COMMON_IEs_GlobalENB_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2SM_COMMON_IEs_GlobalENB_ID, pLMNIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PLMNIdentity, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pLMNIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2SM_COMMON_IEs_GlobalENB_ID, eNB_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_E2SM_COMMON_IEs_ENB_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "eNB-ID" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2SM_COMMON_IEs_GlobalENB_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2SM_COMMON_IEs_GlobalENB_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* eNB-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2SM_COMMON_IEs_GlobalENB_ID_specs_1 = { + sizeof(struct E2SM_COMMON_IEs_GlobalENB_ID), + offsetof(struct E2SM_COMMON_IEs_GlobalENB_ID, _asn_ctx), + asn_MAP_E2SM_COMMON_IEs_GlobalENB_ID_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_E2SM_COMMON_IEs_GlobalENB_ID = { + "GlobalENB-ID", + "GlobalENB-ID", + &asn_OP_SEQUENCE, + asn_DEF_E2SM_COMMON_IEs_GlobalENB_ID_tags_1, + sizeof(asn_DEF_E2SM_COMMON_IEs_GlobalENB_ID_tags_1) + /sizeof(asn_DEF_E2SM_COMMON_IEs_GlobalENB_ID_tags_1[0]), /* 1 */ + asn_DEF_E2SM_COMMON_IEs_GlobalENB_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_E2SM_COMMON_IEs_GlobalENB_ID_tags_1) + /sizeof(asn_DEF_E2SM_COMMON_IEs_GlobalENB_ID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2SM_COMMON_IEs_GlobalENB_ID_1, + 2, /* Elements count */ + &asn_SPC_E2SM_COMMON_IEs_GlobalENB_ID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2SM-COMMON-IEs_GlobalENB-ID.h b/e2sim/asn1c/E2SM-COMMON-IEs_GlobalENB-ID.h new file mode 100644 index 0000000..7a0ac65 --- /dev/null +++ b/e2sim/asn1c/E2SM-COMMON-IEs_GlobalENB-ID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2SM_COMMON_IEs_GlobalENB_ID_H_ +#define _E2SM_COMMON_IEs_GlobalENB_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "PLMNIdentity.h" +#include "E2SM-COMMON-IEs_ENB-ID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2SM-COMMON-IEs_GlobalENB-ID */ +typedef struct E2SM_COMMON_IEs_GlobalENB_ID { + PLMNIdentity_t pLMNIdentity; + E2SM_COMMON_IEs_ENB_ID_t eNB_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2SM_COMMON_IEs_GlobalENB_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2SM_COMMON_IEs_GlobalENB_ID; +extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_COMMON_IEs_GlobalENB_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_E2SM_COMMON_IEs_GlobalENB_ID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2SM_COMMON_IEs_GlobalENB_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2SM-COMMON-IEs_GlobalenGNB-ID.c b/e2sim/asn1c/E2SM-COMMON-IEs_GlobalenGNB-ID.c new file mode 100644 index 0000000..39b626f --- /dev/null +++ b/e2sim/asn1c/E2SM-COMMON-IEs_GlobalenGNB-ID.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2SM-COMMON-IEs_GlobalenGNB-ID.h" + +asn_TYPE_member_t asn_MBR_E2SM_COMMON_IEs_GlobalenGNB_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2SM_COMMON_IEs_GlobalenGNB_ID, pLMN_Identity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PLMNIdentity, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pLMN-Identity" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2SM_COMMON_IEs_GlobalenGNB_ID, en_gNB_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_EN_GNB_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "en-gNB-ID" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2SM_COMMON_IEs_GlobalenGNB_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2SM_COMMON_IEs_GlobalenGNB_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* en-gNB-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2SM_COMMON_IEs_GlobalenGNB_ID_specs_1 = { + sizeof(struct E2SM_COMMON_IEs_GlobalenGNB_ID), + offsetof(struct E2SM_COMMON_IEs_GlobalenGNB_ID, _asn_ctx), + asn_MAP_E2SM_COMMON_IEs_GlobalenGNB_ID_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_E2SM_COMMON_IEs_GlobalenGNB_ID = { + "GlobalenGNB-ID", + "GlobalenGNB-ID", + &asn_OP_SEQUENCE, + asn_DEF_E2SM_COMMON_IEs_GlobalenGNB_ID_tags_1, + sizeof(asn_DEF_E2SM_COMMON_IEs_GlobalenGNB_ID_tags_1) + /sizeof(asn_DEF_E2SM_COMMON_IEs_GlobalenGNB_ID_tags_1[0]), /* 1 */ + asn_DEF_E2SM_COMMON_IEs_GlobalenGNB_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_E2SM_COMMON_IEs_GlobalenGNB_ID_tags_1) + /sizeof(asn_DEF_E2SM_COMMON_IEs_GlobalenGNB_ID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2SM_COMMON_IEs_GlobalenGNB_ID_1, + 2, /* Elements count */ + &asn_SPC_E2SM_COMMON_IEs_GlobalenGNB_ID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2SM-COMMON-IEs_GlobalenGNB-ID.h b/e2sim/asn1c/E2SM-COMMON-IEs_GlobalenGNB-ID.h new file mode 100644 index 0000000..d91861a --- /dev/null +++ b/e2sim/asn1c/E2SM-COMMON-IEs_GlobalenGNB-ID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2SM_COMMON_IEs_GlobalenGNB_ID_H_ +#define _E2SM_COMMON_IEs_GlobalenGNB_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "PLMNIdentity.h" +#include "EN-GNB-ID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2SM-COMMON-IEs_GlobalenGNB-ID */ +typedef struct E2SM_COMMON_IEs_GlobalenGNB_ID { + PLMNIdentity_t pLMN_Identity; + EN_GNB_ID_t en_gNB_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2SM_COMMON_IEs_GlobalenGNB_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2SM_COMMON_IEs_GlobalenGNB_ID; +extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_COMMON_IEs_GlobalenGNB_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_E2SM_COMMON_IEs_GlobalenGNB_ID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2SM_COMMON_IEs_GlobalenGNB_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2SM-COMMON-IEs_NGENB-DU-ID.c b/e2sim/asn1c/E2SM-COMMON-IEs_NGENB-DU-ID.c new file mode 100644 index 0000000..35ffa47 --- /dev/null +++ b/e2sim/asn1c/E2SM-COMMON-IEs_NGENB-DU-ID.c @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2SM-COMMON-IEs_NGENB-DU-ID.h" + +int +E2SM_COMMON_IEs_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; + + 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 >= 0L && value <= 68719476735L)) { + /* 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. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_E2SM_COMMON_IEs_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_E2SM_COMMON_IEs_NGENB_DU_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_E2SM_COMMON_IEs_NGENB_DU_ID = { + "NGENB-DU-ID", + "NGENB-DU-ID", + &asn_OP_INTEGER, + asn_DEF_E2SM_COMMON_IEs_NGENB_DU_ID_tags_1, + sizeof(asn_DEF_E2SM_COMMON_IEs_NGENB_DU_ID_tags_1) + /sizeof(asn_DEF_E2SM_COMMON_IEs_NGENB_DU_ID_tags_1[0]), /* 1 */ + asn_DEF_E2SM_COMMON_IEs_NGENB_DU_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_E2SM_COMMON_IEs_NGENB_DU_ID_tags_1) + /sizeof(asn_DEF_E2SM_COMMON_IEs_NGENB_DU_ID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_E2SM_COMMON_IEs_NGENB_DU_ID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + E2SM_COMMON_IEs_NGENB_DU_ID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/E2SM-COMMON-IEs_NGENB-DU-ID.h b/e2sim/asn1c/E2SM-COMMON-IEs_NGENB-DU-ID.h new file mode 100644 index 0000000..2dc8bef --- /dev/null +++ b/e2sim/asn1c/E2SM-COMMON-IEs_NGENB-DU-ID.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2SM_COMMON_IEs_NGENB_DU_ID_H_ +#define _E2SM_COMMON_IEs_NGENB_DU_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "INTEGER.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2SM-COMMON-IEs_NGENB-DU-ID */ +typedef INTEGER_t E2SM_COMMON_IEs_NGENB_DU_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_E2SM_COMMON_IEs_NGENB_DU_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_E2SM_COMMON_IEs_NGENB_DU_ID; +asn_struct_free_f E2SM_COMMON_IEs_NGENB_DU_ID_free; +asn_struct_print_f E2SM_COMMON_IEs_NGENB_DU_ID_print; +asn_constr_check_f E2SM_COMMON_IEs_NGENB_DU_ID_constraint; +ber_type_decoder_f E2SM_COMMON_IEs_NGENB_DU_ID_decode_ber; +der_type_encoder_f E2SM_COMMON_IEs_NGENB_DU_ID_encode_der; +xer_type_decoder_f E2SM_COMMON_IEs_NGENB_DU_ID_decode_xer; +xer_type_encoder_f E2SM_COMMON_IEs_NGENB_DU_ID_encode_xer; +jer_type_encoder_f E2SM_COMMON_IEs_NGENB_DU_ID_encode_jer; +per_type_decoder_f E2SM_COMMON_IEs_NGENB_DU_ID_decode_uper; +per_type_encoder_f E2SM_COMMON_IEs_NGENB_DU_ID_encode_uper; +per_type_decoder_f E2SM_COMMON_IEs_NGENB_DU_ID_decode_aper; +per_type_encoder_f E2SM_COMMON_IEs_NGENB_DU_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2SM_COMMON_IEs_NGENB_DU_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format1.c b/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format1.c new file mode 100644 index 0000000..2c45c38 --- /dev/null +++ b/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format1.c @@ -0,0 +1,124 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2SM-KPM-ActionDefinition-Format1.h" + +#include "CGI.h" +#include "DistMeasurementBinRangeList.h" +asn_TYPE_member_t asn_MBR_E2SM_KPM_ActionDefinition_Format1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_ActionDefinition_Format1, measInfoList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasurementInfoList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "measInfoList" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_ActionDefinition_Format1, granulPeriod), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GranularityPeriod, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "granulPeriod" + }, + { ATF_POINTER, 2, offsetof(struct E2SM_KPM_ActionDefinition_Format1, cellGlobalID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_CGI, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "cellGlobalID" + }, + { ATF_POINTER, 1, offsetof(struct E2SM_KPM_ActionDefinition_Format1, distMeasBinRangeInfo), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DistMeasurementBinRangeList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "distMeasBinRangeInfo" + }, +}; +static const int asn_MAP_E2SM_KPM_ActionDefinition_Format1_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_E2SM_KPM_ActionDefinition_Format1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_ActionDefinition_Format1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measInfoList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* granulPeriod */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* cellGlobalID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* distMeasBinRangeInfo */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_ActionDefinition_Format1_specs_1 = { + sizeof(struct E2SM_KPM_ActionDefinition_Format1), + offsetof(struct E2SM_KPM_ActionDefinition_Format1, _asn_ctx), + asn_MAP_E2SM_KPM_ActionDefinition_Format1_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_E2SM_KPM_ActionDefinition_Format1_oms_1, /* Optional members */ + 1, 1, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_ActionDefinition_Format1 = { + "E2SM-KPM-ActionDefinition-Format1", + "E2SM-KPM-ActionDefinition-Format1", + &asn_OP_SEQUENCE, + asn_DEF_E2SM_KPM_ActionDefinition_Format1_tags_1, + sizeof(asn_DEF_E2SM_KPM_ActionDefinition_Format1_tags_1) + /sizeof(asn_DEF_E2SM_KPM_ActionDefinition_Format1_tags_1[0]), /* 1 */ + asn_DEF_E2SM_KPM_ActionDefinition_Format1_tags_1, /* Same as above */ + sizeof(asn_DEF_E2SM_KPM_ActionDefinition_Format1_tags_1) + /sizeof(asn_DEF_E2SM_KPM_ActionDefinition_Format1_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2SM_KPM_ActionDefinition_Format1_1, + 4, /* Elements count */ + &asn_SPC_E2SM_KPM_ActionDefinition_Format1_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format1.h b/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format1.h new file mode 100644 index 0000000..87f52e5 --- /dev/null +++ b/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format1.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2SM_KPM_ActionDefinition_Format1_H_ +#define _E2SM_KPM_ActionDefinition_Format1_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "MeasurementInfoList.h" +#include "GranularityPeriod.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct CGI; +struct DistMeasurementBinRangeList; + +/* E2SM-KPM-ActionDefinition-Format1 */ +typedef struct E2SM_KPM_ActionDefinition_Format1 { + MeasurementInfoList_t measInfoList; + GranularityPeriod_t granulPeriod; + struct CGI *cellGlobalID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct DistMeasurementBinRangeList *distMeasBinRangeInfo; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2SM_KPM_ActionDefinition_Format1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_ActionDefinition_Format1; +extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_ActionDefinition_Format1_specs_1; +extern asn_TYPE_member_t asn_MBR_E2SM_KPM_ActionDefinition_Format1_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2SM_KPM_ActionDefinition_Format1_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format2.c b/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format2.c new file mode 100644 index 0000000..646928f --- /dev/null +++ b/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format2.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2SM-KPM-ActionDefinition-Format2.h" + +asn_TYPE_member_t asn_MBR_E2SM_KPM_ActionDefinition_Format2_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_ActionDefinition_Format2, ueID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_UEID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ueID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_ActionDefinition_Format2, subscriptInfo), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2SM_KPM_ActionDefinition_Format1, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "subscriptInfo" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2SM_KPM_ActionDefinition_Format2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_ActionDefinition_Format2_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ueID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* subscriptInfo */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_ActionDefinition_Format2_specs_1 = { + sizeof(struct E2SM_KPM_ActionDefinition_Format2), + offsetof(struct E2SM_KPM_ActionDefinition_Format2, _asn_ctx), + asn_MAP_E2SM_KPM_ActionDefinition_Format2_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_E2SM_KPM_ActionDefinition_Format2 = { + "E2SM-KPM-ActionDefinition-Format2", + "E2SM-KPM-ActionDefinition-Format2", + &asn_OP_SEQUENCE, + asn_DEF_E2SM_KPM_ActionDefinition_Format2_tags_1, + sizeof(asn_DEF_E2SM_KPM_ActionDefinition_Format2_tags_1) + /sizeof(asn_DEF_E2SM_KPM_ActionDefinition_Format2_tags_1[0]), /* 1 */ + asn_DEF_E2SM_KPM_ActionDefinition_Format2_tags_1, /* Same as above */ + sizeof(asn_DEF_E2SM_KPM_ActionDefinition_Format2_tags_1) + /sizeof(asn_DEF_E2SM_KPM_ActionDefinition_Format2_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2SM_KPM_ActionDefinition_Format2_1, + 2, /* Elements count */ + &asn_SPC_E2SM_KPM_ActionDefinition_Format2_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format2.h b/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format2.h new file mode 100644 index 0000000..6751713 --- /dev/null +++ b/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format2.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2SM_KPM_ActionDefinition_Format2_H_ +#define _E2SM_KPM_ActionDefinition_Format2_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "UEID.h" +#include "E2SM-KPM-ActionDefinition-Format1.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2SM-KPM-ActionDefinition-Format2 */ +typedef struct E2SM_KPM_ActionDefinition_Format2 { + UEID_t ueID; + E2SM_KPM_ActionDefinition_Format1_t subscriptInfo; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2SM_KPM_ActionDefinition_Format2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_ActionDefinition_Format2; +extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_ActionDefinition_Format2_specs_1; +extern asn_TYPE_member_t asn_MBR_E2SM_KPM_ActionDefinition_Format2_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2SM_KPM_ActionDefinition_Format2_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format3.c b/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format3.c new file mode 100644 index 0000000..a558fe0 --- /dev/null +++ b/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format3.c @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2SM-KPM-ActionDefinition-Format3.h" + +#include "CGI.h" +asn_TYPE_member_t asn_MBR_E2SM_KPM_ActionDefinition_Format3_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_ActionDefinition_Format3, measCondList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasurementCondList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "measCondList" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_ActionDefinition_Format3, granulPeriod), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GranularityPeriod, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "granulPeriod" + }, + { ATF_POINTER, 1, offsetof(struct E2SM_KPM_ActionDefinition_Format3, cellGlobalID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_CGI, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "cellGlobalID" + }, +}; +static const int asn_MAP_E2SM_KPM_ActionDefinition_Format3_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_E2SM_KPM_ActionDefinition_Format3_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_ActionDefinition_Format3_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measCondList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* granulPeriod */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* cellGlobalID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_ActionDefinition_Format3_specs_1 = { + sizeof(struct E2SM_KPM_ActionDefinition_Format3), + offsetof(struct E2SM_KPM_ActionDefinition_Format3, _asn_ctx), + asn_MAP_E2SM_KPM_ActionDefinition_Format3_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_E2SM_KPM_ActionDefinition_Format3_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_ActionDefinition_Format3 = { + "E2SM-KPM-ActionDefinition-Format3", + "E2SM-KPM-ActionDefinition-Format3", + &asn_OP_SEQUENCE, + asn_DEF_E2SM_KPM_ActionDefinition_Format3_tags_1, + sizeof(asn_DEF_E2SM_KPM_ActionDefinition_Format3_tags_1) + /sizeof(asn_DEF_E2SM_KPM_ActionDefinition_Format3_tags_1[0]), /* 1 */ + asn_DEF_E2SM_KPM_ActionDefinition_Format3_tags_1, /* Same as above */ + sizeof(asn_DEF_E2SM_KPM_ActionDefinition_Format3_tags_1) + /sizeof(asn_DEF_E2SM_KPM_ActionDefinition_Format3_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2SM_KPM_ActionDefinition_Format3_1, + 3, /* Elements count */ + &asn_SPC_E2SM_KPM_ActionDefinition_Format3_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format3.h b/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format3.h new file mode 100644 index 0000000..522ebaa --- /dev/null +++ b/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format3.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2SM_KPM_ActionDefinition_Format3_H_ +#define _E2SM_KPM_ActionDefinition_Format3_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "MeasurementCondList.h" +#include "GranularityPeriod.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct CGI; + +/* E2SM-KPM-ActionDefinition-Format3 */ +typedef struct E2SM_KPM_ActionDefinition_Format3 { + MeasurementCondList_t measCondList; + GranularityPeriod_t granulPeriod; + struct CGI *cellGlobalID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2SM_KPM_ActionDefinition_Format3_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_ActionDefinition_Format3; +extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_ActionDefinition_Format3_specs_1; +extern asn_TYPE_member_t asn_MBR_E2SM_KPM_ActionDefinition_Format3_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2SM_KPM_ActionDefinition_Format3_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format4.c b/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format4.c new file mode 100644 index 0000000..98b0435 --- /dev/null +++ b/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format4.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2SM-KPM-ActionDefinition-Format4.h" + +asn_TYPE_member_t asn_MBR_E2SM_KPM_ActionDefinition_Format4_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_ActionDefinition_Format4, matchingUeCondList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MatchingUeCondPerSubList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "matchingUeCondList" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_ActionDefinition_Format4, subscriptionInfo), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2SM_KPM_ActionDefinition_Format1, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "subscriptionInfo" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2SM_KPM_ActionDefinition_Format4_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_ActionDefinition_Format4_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* matchingUeCondList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* subscriptionInfo */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_ActionDefinition_Format4_specs_1 = { + sizeof(struct E2SM_KPM_ActionDefinition_Format4), + offsetof(struct E2SM_KPM_ActionDefinition_Format4, _asn_ctx), + asn_MAP_E2SM_KPM_ActionDefinition_Format4_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_E2SM_KPM_ActionDefinition_Format4 = { + "E2SM-KPM-ActionDefinition-Format4", + "E2SM-KPM-ActionDefinition-Format4", + &asn_OP_SEQUENCE, + asn_DEF_E2SM_KPM_ActionDefinition_Format4_tags_1, + sizeof(asn_DEF_E2SM_KPM_ActionDefinition_Format4_tags_1) + /sizeof(asn_DEF_E2SM_KPM_ActionDefinition_Format4_tags_1[0]), /* 1 */ + asn_DEF_E2SM_KPM_ActionDefinition_Format4_tags_1, /* Same as above */ + sizeof(asn_DEF_E2SM_KPM_ActionDefinition_Format4_tags_1) + /sizeof(asn_DEF_E2SM_KPM_ActionDefinition_Format4_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2SM_KPM_ActionDefinition_Format4_1, + 2, /* Elements count */ + &asn_SPC_E2SM_KPM_ActionDefinition_Format4_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format4.h b/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format4.h new file mode 100644 index 0000000..f2ca4b6 --- /dev/null +++ b/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format4.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2SM_KPM_ActionDefinition_Format4_H_ +#define _E2SM_KPM_ActionDefinition_Format4_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "MatchingUeCondPerSubList.h" +#include "E2SM-KPM-ActionDefinition-Format1.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2SM-KPM-ActionDefinition-Format4 */ +typedef struct E2SM_KPM_ActionDefinition_Format4 { + MatchingUeCondPerSubList_t matchingUeCondList; + E2SM_KPM_ActionDefinition_Format1_t subscriptionInfo; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2SM_KPM_ActionDefinition_Format4_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_ActionDefinition_Format4; +extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_ActionDefinition_Format4_specs_1; +extern asn_TYPE_member_t asn_MBR_E2SM_KPM_ActionDefinition_Format4_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2SM_KPM_ActionDefinition_Format4_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format5.c b/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format5.c new file mode 100644 index 0000000..7e90cc9 --- /dev/null +++ b/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format5.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2SM-KPM-ActionDefinition-Format5.h" + +asn_TYPE_member_t asn_MBR_E2SM_KPM_ActionDefinition_Format5_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_ActionDefinition_Format5, matchingUEidList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MatchingUEidPerSubList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "matchingUEidList" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_ActionDefinition_Format5, subscriptionInfo), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2SM_KPM_ActionDefinition_Format1, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "subscriptionInfo" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2SM_KPM_ActionDefinition_Format5_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_ActionDefinition_Format5_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* matchingUEidList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* subscriptionInfo */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_ActionDefinition_Format5_specs_1 = { + sizeof(struct E2SM_KPM_ActionDefinition_Format5), + offsetof(struct E2SM_KPM_ActionDefinition_Format5, _asn_ctx), + asn_MAP_E2SM_KPM_ActionDefinition_Format5_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_E2SM_KPM_ActionDefinition_Format5 = { + "E2SM-KPM-ActionDefinition-Format5", + "E2SM-KPM-ActionDefinition-Format5", + &asn_OP_SEQUENCE, + asn_DEF_E2SM_KPM_ActionDefinition_Format5_tags_1, + sizeof(asn_DEF_E2SM_KPM_ActionDefinition_Format5_tags_1) + /sizeof(asn_DEF_E2SM_KPM_ActionDefinition_Format5_tags_1[0]), /* 1 */ + asn_DEF_E2SM_KPM_ActionDefinition_Format5_tags_1, /* Same as above */ + sizeof(asn_DEF_E2SM_KPM_ActionDefinition_Format5_tags_1) + /sizeof(asn_DEF_E2SM_KPM_ActionDefinition_Format5_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2SM_KPM_ActionDefinition_Format5_1, + 2, /* Elements count */ + &asn_SPC_E2SM_KPM_ActionDefinition_Format5_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format5.h b/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format5.h new file mode 100644 index 0000000..687d4a4 --- /dev/null +++ b/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format5.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2SM_KPM_ActionDefinition_Format5_H_ +#define _E2SM_KPM_ActionDefinition_Format5_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "MatchingUEidPerSubList.h" +#include "E2SM-KPM-ActionDefinition-Format1.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2SM-KPM-ActionDefinition-Format5 */ +typedef struct E2SM_KPM_ActionDefinition_Format5 { + MatchingUEidPerSubList_t matchingUEidList; + E2SM_KPM_ActionDefinition_Format1_t subscriptionInfo; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2SM_KPM_ActionDefinition_Format5_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_ActionDefinition_Format5; +extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_ActionDefinition_Format5_specs_1; +extern asn_TYPE_member_t asn_MBR_E2SM_KPM_ActionDefinition_Format5_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2SM_KPM_ActionDefinition_Format5_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2SM-KPM-ActionDefinition.c b/e2sim/asn1c/E2SM-KPM-ActionDefinition.c new file mode 100644 index 0000000..712d25c --- /dev/null +++ b/e2sim/asn1c/E2SM-KPM-ActionDefinition.c @@ -0,0 +1,223 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2SM-KPM-ActionDefinition.h" + +#include "E2SM-KPM-ActionDefinition-Format1.h" +#include "E2SM-KPM-ActionDefinition-Format2.h" +#include "E2SM-KPM-ActionDefinition-Format3.h" +#include "E2SM-KPM-ActionDefinition-Format4.h" +#include "E2SM-KPM-ActionDefinition-Format5.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_actionDefinition_formats_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_actionDefinition_formats_3[] = { + { ATF_POINTER, 0, offsetof(struct E2SM_KPM_ActionDefinition__actionDefinition_formats, choice.actionDefinition_Format1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2SM_KPM_ActionDefinition_Format1, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "actionDefinition-Format1" + }, + { ATF_POINTER, 0, offsetof(struct E2SM_KPM_ActionDefinition__actionDefinition_formats, choice.actionDefinition_Format2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2SM_KPM_ActionDefinition_Format2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "actionDefinition-Format2" + }, + { ATF_POINTER, 0, offsetof(struct E2SM_KPM_ActionDefinition__actionDefinition_formats, choice.actionDefinition_Format3), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2SM_KPM_ActionDefinition_Format3, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "actionDefinition-Format3" + }, + { ATF_POINTER, 0, offsetof(struct E2SM_KPM_ActionDefinition__actionDefinition_formats, choice.actionDefinition_Format4), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2SM_KPM_ActionDefinition_Format4, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "actionDefinition-Format4" + }, + { ATF_POINTER, 0, offsetof(struct E2SM_KPM_ActionDefinition__actionDefinition_formats, choice.actionDefinition_Format5), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2SM_KPM_ActionDefinition_Format5, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "actionDefinition-Format5" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_actionDefinition_formats_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* actionDefinition-Format1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* actionDefinition-Format2 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* actionDefinition-Format3 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* actionDefinition-Format4 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* actionDefinition-Format5 */ +}; +static asn_CHOICE_specifics_t asn_SPC_actionDefinition_formats_specs_3 = { + sizeof(struct E2SM_KPM_ActionDefinition__actionDefinition_formats), + offsetof(struct E2SM_KPM_ActionDefinition__actionDefinition_formats, _asn_ctx), + offsetof(struct E2SM_KPM_ActionDefinition__actionDefinition_formats, present), + sizeof(((struct E2SM_KPM_ActionDefinition__actionDefinition_formats *)0)->present), + asn_MAP_actionDefinition_formats_tag2el_3, + 5, /* Count of tags in the map */ + 0, 0, + 3 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_actionDefinition_formats_3 = { + "actionDefinition-formats", + "actionDefinition-formats", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_actionDefinition_formats_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_actionDefinition_formats_3, + 5, /* Elements count */ + &asn_SPC_actionDefinition_formats_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_E2SM_KPM_ActionDefinition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_ActionDefinition, ric_Style_Type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RIC_Style_Type, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ric-Style-Type" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_ActionDefinition, actionDefinition_formats), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_actionDefinition_formats_3, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "actionDefinition-formats" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2SM_KPM_ActionDefinition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_ActionDefinition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-Style-Type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* actionDefinition-formats */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_ActionDefinition_specs_1 = { + sizeof(struct E2SM_KPM_ActionDefinition), + offsetof(struct E2SM_KPM_ActionDefinition, _asn_ctx), + asn_MAP_E2SM_KPM_ActionDefinition_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_E2SM_KPM_ActionDefinition = { + "E2SM-KPM-ActionDefinition", + "E2SM-KPM-ActionDefinition", + &asn_OP_SEQUENCE, + asn_DEF_E2SM_KPM_ActionDefinition_tags_1, + sizeof(asn_DEF_E2SM_KPM_ActionDefinition_tags_1) + /sizeof(asn_DEF_E2SM_KPM_ActionDefinition_tags_1[0]), /* 1 */ + asn_DEF_E2SM_KPM_ActionDefinition_tags_1, /* Same as above */ + sizeof(asn_DEF_E2SM_KPM_ActionDefinition_tags_1) + /sizeof(asn_DEF_E2SM_KPM_ActionDefinition_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2SM_KPM_ActionDefinition_1, + 2, /* Elements count */ + &asn_SPC_E2SM_KPM_ActionDefinition_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2SM-KPM-ActionDefinition.h b/e2sim/asn1c/E2SM-KPM-ActionDefinition.h new file mode 100644 index 0000000..6bea5b1 --- /dev/null +++ b/e2sim/asn1c/E2SM-KPM-ActionDefinition.h @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2SM_KPM_ActionDefinition_H_ +#define _E2SM_KPM_ActionDefinition_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RIC-Style-Type.h" +#include "constr_CHOICE.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum E2SM_KPM_ActionDefinition__actionDefinition_formats_PR { + E2SM_KPM_ActionDefinition__actionDefinition_formats_PR_NOTHING, /* No components present */ + E2SM_KPM_ActionDefinition__actionDefinition_formats_PR_actionDefinition_Format1, + E2SM_KPM_ActionDefinition__actionDefinition_formats_PR_actionDefinition_Format2, + E2SM_KPM_ActionDefinition__actionDefinition_formats_PR_actionDefinition_Format3, + /* Extensions may appear below */ + E2SM_KPM_ActionDefinition__actionDefinition_formats_PR_actionDefinition_Format4, + E2SM_KPM_ActionDefinition__actionDefinition_formats_PR_actionDefinition_Format5 +} E2SM_KPM_ActionDefinition__actionDefinition_formats_PR; + +/* Forward declarations */ +struct E2SM_KPM_ActionDefinition_Format1; +struct E2SM_KPM_ActionDefinition_Format2; +struct E2SM_KPM_ActionDefinition_Format3; +struct E2SM_KPM_ActionDefinition_Format4; +struct E2SM_KPM_ActionDefinition_Format5; + +/* E2SM-KPM-ActionDefinition */ +typedef struct E2SM_KPM_ActionDefinition { + RIC_Style_Type_t ric_Style_Type; + struct E2SM_KPM_ActionDefinition__actionDefinition_formats { + E2SM_KPM_ActionDefinition__actionDefinition_formats_PR present; + union E2SM_KPM_ActionDefinition__actionDefinition_formats_u { + struct E2SM_KPM_ActionDefinition_Format1 *actionDefinition_Format1; + struct E2SM_KPM_ActionDefinition_Format2 *actionDefinition_Format2; + struct E2SM_KPM_ActionDefinition_Format3 *actionDefinition_Format3; + /* + * This type is extensible, + * possible extensions are below. + */ + struct E2SM_KPM_ActionDefinition_Format4 *actionDefinition_Format4; + struct E2SM_KPM_ActionDefinition_Format5 *actionDefinition_Format5; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } actionDefinition_formats; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2SM_KPM_ActionDefinition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_ActionDefinition; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2SM_KPM_ActionDefinition_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2SM-KPM-EventTriggerDefinition-Format1.c b/e2sim/asn1c/E2SM-KPM-EventTriggerDefinition-Format1.c new file mode 100644 index 0000000..13439bf --- /dev/null +++ b/e2sim/asn1c/E2SM-KPM-EventTriggerDefinition-Format1.c @@ -0,0 +1,167 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2SM-KPM-EventTriggerDefinition-Format1.h" + +static int +reportingPeriod_2_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + unsigned long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const unsigned long *)sptr; + + if((value >= 1UL && value <= 4294967295UL)) { + /* 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 int +memb_reportingPeriod_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + unsigned long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const unsigned long *)sptr; + + if((value >= 1UL && value <= 4294967295UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_reportingPeriod_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, 1, 4294967295 } /* (1..4294967295) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_reportingPeriod_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, 1, 4294967295 } /* (1..4294967295) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_specifics_t asn_SPC_reportingPeriod_specs_2 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_reportingPeriod_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_reportingPeriod_2 = { + "reportingPeriod", + "reportingPeriod", + &asn_OP_NativeInteger, + asn_DEF_reportingPeriod_tags_2, + sizeof(asn_DEF_reportingPeriod_tags_2) + /sizeof(asn_DEF_reportingPeriod_tags_2[0]) - 1, /* 1 */ + asn_DEF_reportingPeriod_tags_2, /* Same as above */ + sizeof(asn_DEF_reportingPeriod_tags_2) + /sizeof(asn_DEF_reportingPeriod_tags_2[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_reportingPeriod_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + reportingPeriod_2_constraint + }, + 0, 0, /* No members */ + &asn_SPC_reportingPeriod_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2SM_KPM_EventTriggerDefinition_Format1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_EventTriggerDefinition_Format1, reportingPeriod), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_reportingPeriod_2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_reportingPeriod_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_reportingPeriod_constraint_1 + }, + 0, 0, /* No default value */ + "reportingPeriod" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_EventTriggerDefinition_Format1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* reportingPeriod */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_EventTriggerDefinition_Format1_specs_1 = { + sizeof(struct E2SM_KPM_EventTriggerDefinition_Format1), + offsetof(struct E2SM_KPM_EventTriggerDefinition_Format1, _asn_ctx), + asn_MAP_E2SM_KPM_EventTriggerDefinition_Format1_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_E2SM_KPM_EventTriggerDefinition_Format1 = { + "E2SM-KPM-EventTriggerDefinition-Format1", + "E2SM-KPM-EventTriggerDefinition-Format1", + &asn_OP_SEQUENCE, + asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1, + sizeof(asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1) + /sizeof(asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1[0]), /* 1 */ + asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1, /* Same as above */ + sizeof(asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1) + /sizeof(asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2SM_KPM_EventTriggerDefinition_Format1_1, + 1, /* Elements count */ + &asn_SPC_E2SM_KPM_EventTriggerDefinition_Format1_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2SM-KPM-EventTriggerDefinition-Format1.h b/e2sim/asn1c/E2SM-KPM-EventTriggerDefinition-Format1.h new file mode 100644 index 0000000..fba47e9 --- /dev/null +++ b/e2sim/asn1c/E2SM-KPM-EventTriggerDefinition-Format1.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2SM_KPM_EventTriggerDefinition_Format1_H_ +#define _E2SM_KPM_EventTriggerDefinition_Format1_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2SM-KPM-EventTriggerDefinition-Format1 */ +typedef struct E2SM_KPM_EventTriggerDefinition_Format1 { + unsigned long reportingPeriod; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2SM_KPM_EventTriggerDefinition_Format1_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_reportingPeriod_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1; +extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_EventTriggerDefinition_Format1_specs_1; +extern asn_TYPE_member_t asn_MBR_E2SM_KPM_EventTriggerDefinition_Format1_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2SM_KPM_EventTriggerDefinition_Format1_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2SM-KPM-EventTriggerDefinition.c b/e2sim/asn1c/E2SM-KPM-EventTriggerDefinition.c new file mode 100644 index 0000000..1a3f636 --- /dev/null +++ b/e2sim/asn1c/E2SM-KPM-EventTriggerDefinition.c @@ -0,0 +1,129 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2SM-KPM-EventTriggerDefinition.h" + +#include "E2SM-KPM-EventTriggerDefinition-Format1.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_eventDefinition_formats_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_eventDefinition_formats_2[] = { + { ATF_POINTER, 0, offsetof(struct E2SM_KPM_EventTriggerDefinition__eventDefinition_formats, choice.eventDefinition_Format1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "eventDefinition-Format1" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_eventDefinition_formats_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* eventDefinition-Format1 */ +}; +static asn_CHOICE_specifics_t asn_SPC_eventDefinition_formats_specs_2 = { + sizeof(struct E2SM_KPM_EventTriggerDefinition__eventDefinition_formats), + offsetof(struct E2SM_KPM_EventTriggerDefinition__eventDefinition_formats, _asn_ctx), + offsetof(struct E2SM_KPM_EventTriggerDefinition__eventDefinition_formats, present), + sizeof(((struct E2SM_KPM_EventTriggerDefinition__eventDefinition_formats *)0)->present), + asn_MAP_eventDefinition_formats_tag2el_2, + 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_eventDefinition_formats_2 = { + "eventDefinition-formats", + "eventDefinition-formats", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_eventDefinition_formats_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_eventDefinition_formats_2, + 1, /* Elements count */ + &asn_SPC_eventDefinition_formats_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_E2SM_KPM_EventTriggerDefinition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_EventTriggerDefinition, eventDefinition_formats), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_eventDefinition_formats_2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "eventDefinition-formats" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2SM_KPM_EventTriggerDefinition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_EventTriggerDefinition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* eventDefinition-formats */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_EventTriggerDefinition_specs_1 = { + sizeof(struct E2SM_KPM_EventTriggerDefinition), + offsetof(struct E2SM_KPM_EventTriggerDefinition, _asn_ctx), + asn_MAP_E2SM_KPM_EventTriggerDefinition_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_E2SM_KPM_EventTriggerDefinition = { + "E2SM-KPM-EventTriggerDefinition", + "E2SM-KPM-EventTriggerDefinition", + &asn_OP_SEQUENCE, + asn_DEF_E2SM_KPM_EventTriggerDefinition_tags_1, + sizeof(asn_DEF_E2SM_KPM_EventTriggerDefinition_tags_1) + /sizeof(asn_DEF_E2SM_KPM_EventTriggerDefinition_tags_1[0]), /* 1 */ + asn_DEF_E2SM_KPM_EventTriggerDefinition_tags_1, /* Same as above */ + sizeof(asn_DEF_E2SM_KPM_EventTriggerDefinition_tags_1) + /sizeof(asn_DEF_E2SM_KPM_EventTriggerDefinition_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2SM_KPM_EventTriggerDefinition_1, + 1, /* Elements count */ + &asn_SPC_E2SM_KPM_EventTriggerDefinition_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2SM-KPM-EventTriggerDefinition.h b/e2sim/asn1c/E2SM-KPM-EventTriggerDefinition.h new file mode 100644 index 0000000..a173ba1 --- /dev/null +++ b/e2sim/asn1c/E2SM-KPM-EventTriggerDefinition.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2SM_KPM_EventTriggerDefinition_H_ +#define _E2SM_KPM_EventTriggerDefinition_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_CHOICE.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum E2SM_KPM_EventTriggerDefinition__eventDefinition_formats_PR { + E2SM_KPM_EventTriggerDefinition__eventDefinition_formats_PR_NOTHING, /* No components present */ + E2SM_KPM_EventTriggerDefinition__eventDefinition_formats_PR_eventDefinition_Format1 + /* Extensions may appear below */ + +} E2SM_KPM_EventTriggerDefinition__eventDefinition_formats_PR; + +/* Forward declarations */ +struct E2SM_KPM_EventTriggerDefinition_Format1; + +/* E2SM-KPM-EventTriggerDefinition */ +typedef struct E2SM_KPM_EventTriggerDefinition { + struct E2SM_KPM_EventTriggerDefinition__eventDefinition_formats { + E2SM_KPM_EventTriggerDefinition__eventDefinition_formats_PR present; + union E2SM_KPM_EventTriggerDefinition__eventDefinition_formats_u { + struct E2SM_KPM_EventTriggerDefinition_Format1 *eventDefinition_Format1; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } eventDefinition_formats; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2SM_KPM_EventTriggerDefinition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_EventTriggerDefinition; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2SM_KPM_EventTriggerDefinition_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2SM-KPM-IndicationHeader-Format1.c b/e2sim/asn1c/E2SM-KPM-IndicationHeader-Format1.c new file mode 100644 index 0000000..f64fdea --- /dev/null +++ b/e2sim/asn1c/E2SM-KPM-IndicationHeader-Format1.c @@ -0,0 +1,448 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2SM-KPM-IndicationHeader-Format1.h" + +static const int permitted_alphabet_table_3[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_3[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_3(const void *sptr) { + const int *table = permitted_alphabet_table_3; + /* 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; +} + +static const int permitted_alphabet_table_4[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_4[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_4(const void *sptr) { + const int *table = permitted_alphabet_table_4; + /* 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; +} + +static const int permitted_alphabet_table_5[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_5[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_5(const void *sptr) { + const int *table = permitted_alphabet_table_5; + /* 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; +} + +static const int permitted_alphabet_table_6[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_6[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_6(const void *sptr) { + const int *table = permitted_alphabet_table_6; + /* 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; +} + +static int +memb_fileFormatversion_constraint_1(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 <= 15UL) + && !check_permitted_alphabet_3(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_fileFormatversion_3_v2c(unsigned int value) { + if(value >= sizeof(permitted_alphabet_table_3)/sizeof(permitted_alphabet_table_3[0])) + return -1; + return permitted_alphabet_table_3[value] - 1; +} +static int asn_PER_MAP_fileFormatversion_3_c2v(unsigned int code) { + if(code >= sizeof(permitted_alphabet_code2value_3)/sizeof(permitted_alphabet_code2value_3[0])) + return -1; + return permitted_alphabet_code2value_3[code]; +} +static int +memb_senderName_constraint_1(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 <= 400UL) + && !check_permitted_alphabet_4(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_senderName_4_v2c(unsigned int value) { + if(value >= sizeof(permitted_alphabet_table_4)/sizeof(permitted_alphabet_table_4[0])) + return -1; + return permitted_alphabet_table_4[value] - 1; +} +static int asn_PER_MAP_senderName_4_c2v(unsigned int code) { + if(code >= sizeof(permitted_alphabet_code2value_4)/sizeof(permitted_alphabet_code2value_4[0])) + return -1; + return permitted_alphabet_code2value_4[code]; +} +static int +memb_senderType_constraint_1(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 <= 8UL) + && !check_permitted_alphabet_5(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_senderType_5_v2c(unsigned int value) { + if(value >= sizeof(permitted_alphabet_table_5)/sizeof(permitted_alphabet_table_5[0])) + return -1; + return permitted_alphabet_table_5[value] - 1; +} +static int asn_PER_MAP_senderType_5_c2v(unsigned int code) { + if(code >= sizeof(permitted_alphabet_code2value_5)/sizeof(permitted_alphabet_code2value_5[0])) + return -1; + return permitted_alphabet_code2value_5[code]; +} +static int +memb_vendorName_constraint_1(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 <= 32UL) + && !check_permitted_alphabet_6(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_vendorName_6_v2c(unsigned int value) { + if(value >= sizeof(permitted_alphabet_table_6)/sizeof(permitted_alphabet_table_6[0])) + return -1; + return permitted_alphabet_table_6[value] - 1; +} +static int asn_PER_MAP_vendorName_6_c2v(unsigned int code) { + if(code >= sizeof(permitted_alphabet_code2value_6)/sizeof(permitted_alphabet_code2value_6[0])) + return -1; + return permitted_alphabet_code2value_6[code]; +} +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_fileFormatversion_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 15 } /* (SIZE(0..15,...)) */, + asn_PER_MAP_fileFormatversion_3_v2c, /* Value to PER code map */ + asn_PER_MAP_fileFormatversion_3_c2v /* PER code to value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_senderName_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, + { APC_CONSTRAINED | APC_EXTENSIBLE, 9, 9, 0, 400 } /* (SIZE(0..400,...)) */, + asn_PER_MAP_senderName_4_v2c, /* Value to PER code map */ + asn_PER_MAP_senderName_4_c2v /* PER code to value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_senderType_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 8 } /* (SIZE(0..8,...)) */, + asn_PER_MAP_senderType_5_v2c, /* Value to PER code map */ + asn_PER_MAP_senderType_5_c2v /* PER code to value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_vendorName_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, + { APC_CONSTRAINED | APC_EXTENSIBLE, 6, 6, 0, 32 } /* (SIZE(0..32,...)) */, + asn_PER_MAP_vendorName_6_v2c, /* Value to PER code map */ + asn_PER_MAP_vendorName_6_c2v /* PER code to value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationHeader_Format1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationHeader_Format1, colletStartTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeStamp, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "colletStartTime" + }, + { ATF_POINTER, 4, offsetof(struct E2SM_KPM_IndicationHeader_Format1, fileFormatversion), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrintableString, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_fileFormatversion_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_fileFormatversion_constraint_1 + }, + 0, 0, /* No default value */ + "fileFormatversion" + }, + { ATF_POINTER, 3, offsetof(struct E2SM_KPM_IndicationHeader_Format1, senderName), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrintableString, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_senderName_constr_4, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_senderName_constraint_1 + }, + 0, 0, /* No default value */ + "senderName" + }, + { ATF_POINTER, 2, offsetof(struct E2SM_KPM_IndicationHeader_Format1, senderType), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrintableString, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_senderType_constr_5, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_senderType_constraint_1 + }, + 0, 0, /* No default value */ + "senderType" + }, + { ATF_POINTER, 1, offsetof(struct E2SM_KPM_IndicationHeader_Format1, vendorName), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrintableString, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_vendorName_constr_6, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_vendorName_constraint_1 + }, + 0, 0, /* No default value */ + "vendorName" + }, +}; +static const int asn_MAP_E2SM_KPM_IndicationHeader_Format1_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_IndicationHeader_Format1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* colletStartTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* fileFormatversion */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* senderName */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* senderType */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* vendorName */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationHeader_Format1_specs_1 = { + sizeof(struct E2SM_KPM_IndicationHeader_Format1), + offsetof(struct E2SM_KPM_IndicationHeader_Format1, _asn_ctx), + asn_MAP_E2SM_KPM_IndicationHeader_Format1_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_E2SM_KPM_IndicationHeader_Format1_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationHeader_Format1 = { + "E2SM-KPM-IndicationHeader-Format1", + "E2SM-KPM-IndicationHeader-Format1", + &asn_OP_SEQUENCE, + asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1, + sizeof(asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1) + /sizeof(asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1[0]), /* 1 */ + asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1, /* Same as above */ + sizeof(asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1) + /sizeof(asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2SM_KPM_IndicationHeader_Format1_1, + 5, /* Elements count */ + &asn_SPC_E2SM_KPM_IndicationHeader_Format1_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2SM-KPM-IndicationHeader-Format1.h b/e2sim/asn1c/E2SM-KPM-IndicationHeader-Format1.h new file mode 100644 index 0000000..3790e79 --- /dev/null +++ b/e2sim/asn1c/E2SM-KPM-IndicationHeader-Format1.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2SM_KPM_IndicationHeader_Format1_H_ +#define _E2SM_KPM_IndicationHeader_Format1_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "TimeStamp.h" +#include "PrintableString.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2SM-KPM-IndicationHeader-Format1 */ +typedef struct E2SM_KPM_IndicationHeader_Format1 { + TimeStamp_t colletStartTime; + PrintableString_t *fileFormatversion; /* OPTIONAL */ + PrintableString_t *senderName; /* OPTIONAL */ + PrintableString_t *senderType; /* OPTIONAL */ + PrintableString_t *vendorName; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2SM_KPM_IndicationHeader_Format1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationHeader_Format1; +extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationHeader_Format1_specs_1; +extern asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationHeader_Format1_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2SM_KPM_IndicationHeader_Format1_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2SM-KPM-IndicationHeader.c b/e2sim/asn1c/E2SM-KPM-IndicationHeader.c new file mode 100644 index 0000000..6b749c6 --- /dev/null +++ b/e2sim/asn1c/E2SM-KPM-IndicationHeader.c @@ -0,0 +1,129 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2SM-KPM-IndicationHeader.h" + +#include "E2SM-KPM-IndicationHeader-Format1.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_indicationHeader_formats_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_indicationHeader_formats_2[] = { + { ATF_POINTER, 0, offsetof(struct E2SM_KPM_IndicationHeader__indicationHeader_formats, choice.indicationHeader_Format1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2SM_KPM_IndicationHeader_Format1, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "indicationHeader-Format1" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_indicationHeader_formats_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* indicationHeader-Format1 */ +}; +static asn_CHOICE_specifics_t asn_SPC_indicationHeader_formats_specs_2 = { + sizeof(struct E2SM_KPM_IndicationHeader__indicationHeader_formats), + offsetof(struct E2SM_KPM_IndicationHeader__indicationHeader_formats, _asn_ctx), + offsetof(struct E2SM_KPM_IndicationHeader__indicationHeader_formats, present), + sizeof(((struct E2SM_KPM_IndicationHeader__indicationHeader_formats *)0)->present), + asn_MAP_indicationHeader_formats_tag2el_2, + 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_indicationHeader_formats_2 = { + "indicationHeader-formats", + "indicationHeader-formats", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_indicationHeader_formats_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_indicationHeader_formats_2, + 1, /* Elements count */ + &asn_SPC_indicationHeader_formats_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationHeader_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationHeader, indicationHeader_formats), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_indicationHeader_formats_2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "indicationHeader-formats" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2SM_KPM_IndicationHeader_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_IndicationHeader_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* indicationHeader-formats */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationHeader_specs_1 = { + sizeof(struct E2SM_KPM_IndicationHeader), + offsetof(struct E2SM_KPM_IndicationHeader, _asn_ctx), + asn_MAP_E2SM_KPM_IndicationHeader_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_E2SM_KPM_IndicationHeader = { + "E2SM-KPM-IndicationHeader", + "E2SM-KPM-IndicationHeader", + &asn_OP_SEQUENCE, + asn_DEF_E2SM_KPM_IndicationHeader_tags_1, + sizeof(asn_DEF_E2SM_KPM_IndicationHeader_tags_1) + /sizeof(asn_DEF_E2SM_KPM_IndicationHeader_tags_1[0]), /* 1 */ + asn_DEF_E2SM_KPM_IndicationHeader_tags_1, /* Same as above */ + sizeof(asn_DEF_E2SM_KPM_IndicationHeader_tags_1) + /sizeof(asn_DEF_E2SM_KPM_IndicationHeader_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2SM_KPM_IndicationHeader_1, + 1, /* Elements count */ + &asn_SPC_E2SM_KPM_IndicationHeader_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2SM-KPM-IndicationHeader.h b/e2sim/asn1c/E2SM-KPM-IndicationHeader.h new file mode 100644 index 0000000..2788365 --- /dev/null +++ b/e2sim/asn1c/E2SM-KPM-IndicationHeader.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2SM_KPM_IndicationHeader_H_ +#define _E2SM_KPM_IndicationHeader_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_CHOICE.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum E2SM_KPM_IndicationHeader__indicationHeader_formats_PR { + E2SM_KPM_IndicationHeader__indicationHeader_formats_PR_NOTHING, /* No components present */ + E2SM_KPM_IndicationHeader__indicationHeader_formats_PR_indicationHeader_Format1 + /* Extensions may appear below */ + +} E2SM_KPM_IndicationHeader__indicationHeader_formats_PR; + +/* Forward declarations */ +struct E2SM_KPM_IndicationHeader_Format1; + +/* E2SM-KPM-IndicationHeader */ +typedef struct E2SM_KPM_IndicationHeader { + struct E2SM_KPM_IndicationHeader__indicationHeader_formats { + E2SM_KPM_IndicationHeader__indicationHeader_formats_PR present; + union E2SM_KPM_IndicationHeader__indicationHeader_formats_u { + struct E2SM_KPM_IndicationHeader_Format1 *indicationHeader_Format1; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } indicationHeader_formats; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2SM_KPM_IndicationHeader_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationHeader; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2SM_KPM_IndicationHeader_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2SM-KPM-IndicationMessage-Format1.c b/e2sim/asn1c/E2SM-KPM-IndicationMessage-Format1.c new file mode 100644 index 0000000..3a3562e --- /dev/null +++ b/e2sim/asn1c/E2SM-KPM-IndicationMessage-Format1.c @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2SM-KPM-IndicationMessage-Format1.h" + +#include "MeasurementInfoList.h" +asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationMessage_Format1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationMessage_Format1, measData), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasurementData, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "measData" + }, + { ATF_POINTER, 2, offsetof(struct E2SM_KPM_IndicationMessage_Format1, measInfoList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasurementInfoList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "measInfoList" + }, + { ATF_POINTER, 1, offsetof(struct E2SM_KPM_IndicationMessage_Format1, granulPeriod), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GranularityPeriod, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "granulPeriod" + }, +}; +static const int asn_MAP_E2SM_KPM_IndicationMessage_Format1_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_IndicationMessage_Format1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measData */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* measInfoList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* granulPeriod */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationMessage_Format1_specs_1 = { + sizeof(struct E2SM_KPM_IndicationMessage_Format1), + offsetof(struct E2SM_KPM_IndicationMessage_Format1, _asn_ctx), + asn_MAP_E2SM_KPM_IndicationMessage_Format1_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_E2SM_KPM_IndicationMessage_Format1_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationMessage_Format1 = { + "E2SM-KPM-IndicationMessage-Format1", + "E2SM-KPM-IndicationMessage-Format1", + &asn_OP_SEQUENCE, + asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1, + sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1) + /sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1[0]), /* 1 */ + asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1, /* Same as above */ + sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1) + /sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2SM_KPM_IndicationMessage_Format1_1, + 3, /* Elements count */ + &asn_SPC_E2SM_KPM_IndicationMessage_Format1_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2SM-KPM-IndicationMessage-Format1.h b/e2sim/asn1c/E2SM-KPM-IndicationMessage-Format1.h new file mode 100644 index 0000000..466f01b --- /dev/null +++ b/e2sim/asn1c/E2SM-KPM-IndicationMessage-Format1.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2SM_KPM_IndicationMessage_Format1_H_ +#define _E2SM_KPM_IndicationMessage_Format1_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "MeasurementData.h" +#include "GranularityPeriod.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MeasurementInfoList; + +/* E2SM-KPM-IndicationMessage-Format1 */ +typedef struct E2SM_KPM_IndicationMessage_Format1 { + MeasurementData_t measData; + struct MeasurementInfoList *measInfoList; /* OPTIONAL */ + GranularityPeriod_t *granulPeriod; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2SM_KPM_IndicationMessage_Format1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationMessage_Format1; +extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationMessage_Format1_specs_1; +extern asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationMessage_Format1_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2SM_KPM_IndicationMessage_Format1_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2SM-KPM-IndicationMessage-Format2.c b/e2sim/asn1c/E2SM-KPM-IndicationMessage-Format2.c new file mode 100644 index 0000000..2a259c9 --- /dev/null +++ b/e2sim/asn1c/E2SM-KPM-IndicationMessage-Format2.c @@ -0,0 +1,104 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2SM-KPM-IndicationMessage-Format2.h" + +asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationMessage_Format2_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationMessage_Format2, measData), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasurementData, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "measData" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationMessage_Format2, measCondUEidList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasurementCondUEidList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "measCondUEidList" + }, + { ATF_POINTER, 1, offsetof(struct E2SM_KPM_IndicationMessage_Format2, granulPeriod), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GranularityPeriod, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "granulPeriod" + }, +}; +static const int asn_MAP_E2SM_KPM_IndicationMessage_Format2_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_E2SM_KPM_IndicationMessage_Format2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_IndicationMessage_Format2_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measData */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* measCondUEidList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* granulPeriod */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationMessage_Format2_specs_1 = { + sizeof(struct E2SM_KPM_IndicationMessage_Format2), + offsetof(struct E2SM_KPM_IndicationMessage_Format2, _asn_ctx), + asn_MAP_E2SM_KPM_IndicationMessage_Format2_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_E2SM_KPM_IndicationMessage_Format2_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationMessage_Format2 = { + "E2SM-KPM-IndicationMessage-Format2", + "E2SM-KPM-IndicationMessage-Format2", + &asn_OP_SEQUENCE, + asn_DEF_E2SM_KPM_IndicationMessage_Format2_tags_1, + sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format2_tags_1) + /sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format2_tags_1[0]), /* 1 */ + asn_DEF_E2SM_KPM_IndicationMessage_Format2_tags_1, /* Same as above */ + sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format2_tags_1) + /sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format2_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2SM_KPM_IndicationMessage_Format2_1, + 3, /* Elements count */ + &asn_SPC_E2SM_KPM_IndicationMessage_Format2_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2SM-KPM-IndicationMessage-Format2.h b/e2sim/asn1c/E2SM-KPM-IndicationMessage-Format2.h new file mode 100644 index 0000000..418ff59 --- /dev/null +++ b/e2sim/asn1c/E2SM-KPM-IndicationMessage-Format2.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2SM_KPM_IndicationMessage_Format2_H_ +#define _E2SM_KPM_IndicationMessage_Format2_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "MeasurementData.h" +#include "MeasurementCondUEidList.h" +#include "GranularityPeriod.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2SM-KPM-IndicationMessage-Format2 */ +typedef struct E2SM_KPM_IndicationMessage_Format2 { + MeasurementData_t measData; + MeasurementCondUEidList_t measCondUEidList; + GranularityPeriod_t *granulPeriod; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2SM_KPM_IndicationMessage_Format2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationMessage_Format2; +extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationMessage_Format2_specs_1; +extern asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationMessage_Format2_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2SM_KPM_IndicationMessage_Format2_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2SM-KPM-IndicationMessage-Format3.c b/e2sim/asn1c/E2SM-KPM-IndicationMessage-Format3.c new file mode 100644 index 0000000..a1f1e27 --- /dev/null +++ b/e2sim/asn1c/E2SM-KPM-IndicationMessage-Format3.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2SM-KPM-IndicationMessage-Format3.h" + +asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationMessage_Format3_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationMessage_Format3, ueMeasReportList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UEMeasurementReportList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ueMeasReportList" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2SM_KPM_IndicationMessage_Format3_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_IndicationMessage_Format3_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ueMeasReportList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationMessage_Format3_specs_1 = { + sizeof(struct E2SM_KPM_IndicationMessage_Format3), + offsetof(struct E2SM_KPM_IndicationMessage_Format3, _asn_ctx), + asn_MAP_E2SM_KPM_IndicationMessage_Format3_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_E2SM_KPM_IndicationMessage_Format3 = { + "E2SM-KPM-IndicationMessage-Format3", + "E2SM-KPM-IndicationMessage-Format3", + &asn_OP_SEQUENCE, + asn_DEF_E2SM_KPM_IndicationMessage_Format3_tags_1, + sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format3_tags_1) + /sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format3_tags_1[0]), /* 1 */ + asn_DEF_E2SM_KPM_IndicationMessage_Format3_tags_1, /* Same as above */ + sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format3_tags_1) + /sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format3_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2SM_KPM_IndicationMessage_Format3_1, + 1, /* Elements count */ + &asn_SPC_E2SM_KPM_IndicationMessage_Format3_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2SM-KPM-IndicationMessage-Format3.h b/e2sim/asn1c/E2SM-KPM-IndicationMessage-Format3.h new file mode 100644 index 0000000..c3bcc4c --- /dev/null +++ b/e2sim/asn1c/E2SM-KPM-IndicationMessage-Format3.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2SM_KPM_IndicationMessage_Format3_H_ +#define _E2SM_KPM_IndicationMessage_Format3_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "UEMeasurementReportList.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2SM-KPM-IndicationMessage-Format3 */ +typedef struct E2SM_KPM_IndicationMessage_Format3 { + UEMeasurementReportList_t ueMeasReportList; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2SM_KPM_IndicationMessage_Format3_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationMessage_Format3; +extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationMessage_Format3_specs_1; +extern asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationMessage_Format3_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2SM_KPM_IndicationMessage_Format3_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2SM-KPM-IndicationMessage.c b/e2sim/asn1c/E2SM-KPM-IndicationMessage.c new file mode 100644 index 0000000..b0c848f --- /dev/null +++ b/e2sim/asn1c/E2SM-KPM-IndicationMessage.c @@ -0,0 +1,167 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2SM-KPM-IndicationMessage.h" + +#include "E2SM-KPM-IndicationMessage-Format1.h" +#include "E2SM-KPM-IndicationMessage-Format2.h" +#include "E2SM-KPM-IndicationMessage-Format3.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_indicationMessage_formats_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_indicationMessage_formats_2[] = { + { ATF_POINTER, 0, offsetof(struct E2SM_KPM_IndicationMessage__indicationMessage_formats, choice.indicationMessage_Format1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2SM_KPM_IndicationMessage_Format1, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "indicationMessage-Format1" + }, + { ATF_POINTER, 0, offsetof(struct E2SM_KPM_IndicationMessage__indicationMessage_formats, choice.indicationMessage_Format2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2SM_KPM_IndicationMessage_Format2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "indicationMessage-Format2" + }, + { ATF_POINTER, 0, offsetof(struct E2SM_KPM_IndicationMessage__indicationMessage_formats, choice.indicationMessage_Format3), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2SM_KPM_IndicationMessage_Format3, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "indicationMessage-Format3" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_indicationMessage_formats_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* indicationMessage-Format1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* indicationMessage-Format2 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* indicationMessage-Format3 */ +}; +static asn_CHOICE_specifics_t asn_SPC_indicationMessage_formats_specs_2 = { + sizeof(struct E2SM_KPM_IndicationMessage__indicationMessage_formats), + offsetof(struct E2SM_KPM_IndicationMessage__indicationMessage_formats, _asn_ctx), + offsetof(struct E2SM_KPM_IndicationMessage__indicationMessage_formats, present), + sizeof(((struct E2SM_KPM_IndicationMessage__indicationMessage_formats *)0)->present), + asn_MAP_indicationMessage_formats_tag2el_2, + 3, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_indicationMessage_formats_2 = { + "indicationMessage-formats", + "indicationMessage-formats", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_indicationMessage_formats_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_indicationMessage_formats_2, + 3, /* Elements count */ + &asn_SPC_indicationMessage_formats_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationMessage_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationMessage, indicationMessage_formats), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_indicationMessage_formats_2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "indicationMessage-formats" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2SM_KPM_IndicationMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_IndicationMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* indicationMessage-formats */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationMessage_specs_1 = { + sizeof(struct E2SM_KPM_IndicationMessage), + offsetof(struct E2SM_KPM_IndicationMessage, _asn_ctx), + asn_MAP_E2SM_KPM_IndicationMessage_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_E2SM_KPM_IndicationMessage = { + "E2SM-KPM-IndicationMessage", + "E2SM-KPM-IndicationMessage", + &asn_OP_SEQUENCE, + asn_DEF_E2SM_KPM_IndicationMessage_tags_1, + sizeof(asn_DEF_E2SM_KPM_IndicationMessage_tags_1) + /sizeof(asn_DEF_E2SM_KPM_IndicationMessage_tags_1[0]), /* 1 */ + asn_DEF_E2SM_KPM_IndicationMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_E2SM_KPM_IndicationMessage_tags_1) + /sizeof(asn_DEF_E2SM_KPM_IndicationMessage_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2SM_KPM_IndicationMessage_1, + 1, /* Elements count */ + &asn_SPC_E2SM_KPM_IndicationMessage_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2SM-KPM-IndicationMessage.h b/e2sim/asn1c/E2SM-KPM-IndicationMessage.h new file mode 100644 index 0000000..d90fbf6 --- /dev/null +++ b/e2sim/asn1c/E2SM-KPM-IndicationMessage.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2SM_KPM_IndicationMessage_H_ +#define _E2SM_KPM_IndicationMessage_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_CHOICE.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum E2SM_KPM_IndicationMessage__indicationMessage_formats_PR { + E2SM_KPM_IndicationMessage__indicationMessage_formats_PR_NOTHING, /* No components present */ + E2SM_KPM_IndicationMessage__indicationMessage_formats_PR_indicationMessage_Format1, + E2SM_KPM_IndicationMessage__indicationMessage_formats_PR_indicationMessage_Format2, + /* Extensions may appear below */ + E2SM_KPM_IndicationMessage__indicationMessage_formats_PR_indicationMessage_Format3 +} E2SM_KPM_IndicationMessage__indicationMessage_formats_PR; + +/* Forward declarations */ +struct E2SM_KPM_IndicationMessage_Format1; +struct E2SM_KPM_IndicationMessage_Format2; +struct E2SM_KPM_IndicationMessage_Format3; + +/* E2SM-KPM-IndicationMessage */ +typedef struct E2SM_KPM_IndicationMessage { + struct E2SM_KPM_IndicationMessage__indicationMessage_formats { + E2SM_KPM_IndicationMessage__indicationMessage_formats_PR present; + union E2SM_KPM_IndicationMessage__indicationMessage_formats_u { + struct E2SM_KPM_IndicationMessage_Format1 *indicationMessage_Format1; + struct E2SM_KPM_IndicationMessage_Format2 *indicationMessage_Format2; + /* + * This type is extensible, + * possible extensions are below. + */ + struct E2SM_KPM_IndicationMessage_Format3 *indicationMessage_Format3; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } indicationMessage_formats; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2SM_KPM_IndicationMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationMessage; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2SM_KPM_IndicationMessage_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2SM-KPM-RANfunction-Description.c b/e2sim/asn1c/E2SM-KPM-RANfunction-Description.c new file mode 100644 index 0000000..901926e --- /dev/null +++ b/e2sim/asn1c/E2SM-KPM-RANfunction-Description.c @@ -0,0 +1,292 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2SM-KPM-RANfunction-Description.h" + +#include "RIC-EventTriggerStyle-Item.h" +#include "RIC-ReportStyle-Item.h" +static int +memb_ric_EventTriggerStyle_List_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 63UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ric_ReportStyle_List_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 63UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ric_EventTriggerStyle_List_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ric_ReportStyle_List_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ric_EventTriggerStyle_List_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ric_ReportStyle_List_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_ric_EventTriggerStyle_List_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RIC_EventTriggerStyle_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ric_EventTriggerStyle_List_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ric_EventTriggerStyle_List_specs_3 = { + sizeof(struct E2SM_KPM_RANfunction_Description__ric_EventTriggerStyle_List), + offsetof(struct E2SM_KPM_RANfunction_Description__ric_EventTriggerStyle_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ric_EventTriggerStyle_List_3 = { + "ric-EventTriggerStyle-List", + "ric-EventTriggerStyle-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_ric_EventTriggerStyle_List_tags_3, + sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_3) + /sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_3[0]) - 1, /* 1 */ + asn_DEF_ric_EventTriggerStyle_List_tags_3, /* Same as above */ + sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_3) + /sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_3[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ric_EventTriggerStyle_List_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ric_EventTriggerStyle_List_3, + 1, /* Single element */ + &asn_SPC_ric_EventTriggerStyle_List_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ric_ReportStyle_List_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RIC_ReportStyle_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ric_ReportStyle_List_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ric_ReportStyle_List_specs_5 = { + sizeof(struct E2SM_KPM_RANfunction_Description__ric_ReportStyle_List), + offsetof(struct E2SM_KPM_RANfunction_Description__ric_ReportStyle_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ric_ReportStyle_List_5 = { + "ric-ReportStyle-List", + "ric-ReportStyle-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_ric_ReportStyle_List_tags_5, + sizeof(asn_DEF_ric_ReportStyle_List_tags_5) + /sizeof(asn_DEF_ric_ReportStyle_List_tags_5[0]) - 1, /* 1 */ + asn_DEF_ric_ReportStyle_List_tags_5, /* Same as above */ + sizeof(asn_DEF_ric_ReportStyle_List_tags_5) + /sizeof(asn_DEF_ric_ReportStyle_List_tags_5[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ric_ReportStyle_List_constr_5, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ric_ReportStyle_List_5, + 1, /* Single element */ + &asn_SPC_ric_ReportStyle_List_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_E2SM_KPM_RANfunction_Description_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_RANfunction_Description, ranFunction_Name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RANfunction_Name, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ranFunction-Name" + }, + { ATF_POINTER, 2, offsetof(struct E2SM_KPM_RANfunction_Description, ric_EventTriggerStyle_List), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ric_EventTriggerStyle_List_3, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_ric_EventTriggerStyle_List_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_ric_EventTriggerStyle_List_constraint_1 + }, + 0, 0, /* No default value */ + "ric-EventTriggerStyle-List" + }, + { ATF_POINTER, 1, offsetof(struct E2SM_KPM_RANfunction_Description, ric_ReportStyle_List), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ric_ReportStyle_List_5, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_ric_ReportStyle_List_constr_5, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_ric_ReportStyle_List_constraint_1 + }, + 0, 0, /* No default value */ + "ric-ReportStyle-List" + }, +}; +static const int asn_MAP_E2SM_KPM_RANfunction_Description_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_E2SM_KPM_RANfunction_Description_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_RANfunction_Description_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunction-Name */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ric-EventTriggerStyle-List */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ric-ReportStyle-List */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_RANfunction_Description_specs_1 = { + sizeof(struct E2SM_KPM_RANfunction_Description), + offsetof(struct E2SM_KPM_RANfunction_Description, _asn_ctx), + asn_MAP_E2SM_KPM_RANfunction_Description_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_E2SM_KPM_RANfunction_Description_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_RANfunction_Description = { + "E2SM-KPM-RANfunction-Description", + "E2SM-KPM-RANfunction-Description", + &asn_OP_SEQUENCE, + asn_DEF_E2SM_KPM_RANfunction_Description_tags_1, + sizeof(asn_DEF_E2SM_KPM_RANfunction_Description_tags_1) + /sizeof(asn_DEF_E2SM_KPM_RANfunction_Description_tags_1[0]), /* 1 */ + asn_DEF_E2SM_KPM_RANfunction_Description_tags_1, /* Same as above */ + sizeof(asn_DEF_E2SM_KPM_RANfunction_Description_tags_1) + /sizeof(asn_DEF_E2SM_KPM_RANfunction_Description_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2SM_KPM_RANfunction_Description_1, + 3, /* Elements count */ + &asn_SPC_E2SM_KPM_RANfunction_Description_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2SM-KPM-RANfunction-Description.h b/e2sim/asn1c/E2SM-KPM-RANfunction-Description.h new file mode 100644 index 0000000..002a34b --- /dev/null +++ b/e2sim/asn1c/E2SM-KPM-RANfunction-Description.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2SM_KPM_RANfunction_Description_H_ +#define _E2SM_KPM_RANfunction_Description_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RANfunction-Name.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RIC_EventTriggerStyle_Item; +struct RIC_ReportStyle_Item; + +/* E2SM-KPM-RANfunction-Description */ +typedef struct E2SM_KPM_RANfunction_Description { + RANfunction_Name_t ranFunction_Name; + struct E2SM_KPM_RANfunction_Description__ric_EventTriggerStyle_List { + A_SEQUENCE_OF(struct RIC_EventTriggerStyle_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ric_EventTriggerStyle_List; + struct E2SM_KPM_RANfunction_Description__ric_ReportStyle_List { + A_SEQUENCE_OF(struct RIC_ReportStyle_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ric_ReportStyle_List; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2SM_KPM_RANfunction_Description_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_RANfunction_Description; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2SM_KPM_RANfunction_Description_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2connectionSetupFailed-Item.c b/e2sim/asn1c/E2connectionSetupFailed-Item.c new file mode 100644 index 0000000..269c522 --- /dev/null +++ b/e2sim/asn1c/E2connectionSetupFailed-Item.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2connectionSetupFailed-Item.h" + +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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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_Cause, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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 */ +}; +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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2connectionSetupFailed_Item_1, + 2, /* Elements count */ + &asn_SPC_E2connectionSetupFailed_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2connectionSetupFailed-Item.h b/e2sim/asn1c/E2connectionSetupFailed-Item.h new file mode 100644 index 0000000..e9d932c --- /dev/null +++ b/e2sim/asn1c/E2connectionSetupFailed-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 "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2connectionSetupFailed_Item_H_ +#define _E2connectionSetupFailed_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "TNLinformation.h" +#include "Cause.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2connectionSetupFailed-Item */ +typedef struct E2connectionSetupFailed_Item { + TNLinformation_t tnlInformation; + Cause_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; +extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionSetupFailed_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_E2connectionSetupFailed_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2connectionSetupFailed_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2connectionSetupFailed-List.c b/e2sim/asn1c/E2connectionSetupFailed-List.c new file mode 100644 index 0000000..f2dfb1a --- /dev/null +++ b/e2sim/asn1c/E2connectionSetupFailed-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2connectionSetupFailed-List.h" + +#include "ProtocolIE-SingleContainer.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_E2connectionSetupFailed_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_88P21, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2connectionSetupFailed_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_E2connectionSetupFailed_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_E2connectionSetupFailed_List_1, + 1, /* Single element */ + &asn_SPC_E2connectionSetupFailed_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2connectionSetupFailed-List.h b/e2sim/asn1c/E2connectionSetupFailed-List.h new file mode 100644 index 0000000..481438e --- /dev/null +++ b/e2sim/asn1c/E2connectionSetupFailed-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2connectionSetupFailed_List_H_ +#define _E2connectionSetupFailed_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* E2connectionSetupFailed-List */ +typedef struct E2connectionSetupFailed_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) 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; +extern asn_SET_OF_specifics_t asn_SPC_E2connectionSetupFailed_List_specs_1; +extern asn_TYPE_member_t asn_MBR_E2connectionSetupFailed_List_1[1]; +extern asn_per_constraints_t asn_PER_type_E2connectionSetupFailed_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2connectionSetupFailed_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2connectionUpdate-Item.c b/e2sim/asn1c/E2connectionUpdate-Item.c new file mode 100644 index 0000000..fc1dcaf --- /dev/null +++ b/e2sim/asn1c/E2connectionUpdate-Item.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2connectionUpdate-Item.h" + +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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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 */ +}; +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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2connectionUpdate_Item_1, + 2, /* Elements count */ + &asn_SPC_E2connectionUpdate_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2connectionUpdate-Item.h b/e2sim/asn1c/E2connectionUpdate-Item.h new file mode 100644 index 0000000..83242d7 --- /dev/null +++ b/e2sim/asn1c/E2connectionUpdate-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 "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2connectionUpdate_Item_H_ +#define _E2connectionUpdate_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "TNLinformation.h" +#include "TNLusage.h" +#include "constr_SEQUENCE.h" + +#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; +extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_E2connectionUpdate_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2connectionUpdate_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2connectionUpdate-List.c b/e2sim/asn1c/E2connectionUpdate-List.c new file mode 100644 index 0000000..d2c1ecb --- /dev/null +++ b/e2sim/asn1c/E2connectionUpdate-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2connectionUpdate-List.h" + +#include "ProtocolIE-SingleContainer.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_E2connectionUpdate_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_88P19, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2connectionUpdate_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_E2connectionUpdate_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_E2connectionUpdate_List_1, + 1, /* Single element */ + &asn_SPC_E2connectionUpdate_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2connectionUpdate-List.h b/e2sim/asn1c/E2connectionUpdate-List.h new file mode 100644 index 0000000..5165684 --- /dev/null +++ b/e2sim/asn1c/E2connectionUpdate-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2connectionUpdate_List_H_ +#define _E2connectionUpdate_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* E2connectionUpdate-List */ +typedef struct E2connectionUpdate_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) 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; +extern asn_SET_OF_specifics_t asn_SPC_E2connectionUpdate_List_specs_1; +extern asn_TYPE_member_t asn_MBR_E2connectionUpdate_List_1[1]; +extern asn_per_constraints_t asn_PER_type_E2connectionUpdate_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2connectionUpdate_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2connectionUpdate.c b/e2sim/asn1c/E2connectionUpdate.c new file mode 100644 index 0000000..25614f2 --- /dev/null +++ b/e2sim/asn1c/E2connectionUpdate.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#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_Container_85P24, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2connectionUpdate_1, + 1, /* Elements count */ + &asn_SPC_E2connectionUpdate_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2connectionUpdate.h b/e2sim/asn1c/E2connectionUpdate.h new file mode 100644 index 0000000..1c6b4f7 --- /dev/null +++ b/e2sim/asn1c/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 "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2connectionUpdate_H_ +#define _E2connectionUpdate_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2connectionUpdate */ +typedef struct E2connectionUpdate { + ProtocolIE_Container_85P24_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 "asn_internal.h" diff --git a/e2sim/asn1c/E2connectionUpdateAcknowledge.c b/e2sim/asn1c/E2connectionUpdateAcknowledge.c new file mode 100644 index 0000000..6978668 --- /dev/null +++ b/e2sim/asn1c/E2connectionUpdateAcknowledge.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#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_Container_85P25, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2connectionUpdateAcknowledge_1, + 1, /* Elements count */ + &asn_SPC_E2connectionUpdateAcknowledge_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2connectionUpdateAcknowledge.h b/e2sim/asn1c/E2connectionUpdateAcknowledge.h new file mode 100644 index 0000000..ace92b9 --- /dev/null +++ b/e2sim/asn1c/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 "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2connectionUpdateAcknowledge_H_ +#define _E2connectionUpdateAcknowledge_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2connectionUpdateAcknowledge */ +typedef struct E2connectionUpdateAcknowledge { + ProtocolIE_Container_85P25_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 "asn_internal.h" diff --git a/e2sim/asn1c/E2connectionUpdateFailure.c b/e2sim/asn1c/E2connectionUpdateFailure.c new file mode 100644 index 0000000..e537ba4 --- /dev/null +++ b/e2sim/asn1c/E2connectionUpdateFailure.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#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_Container_85P26, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2connectionUpdateFailure_1, + 1, /* Elements count */ + &asn_SPC_E2connectionUpdateFailure_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2connectionUpdateFailure.h b/e2sim/asn1c/E2connectionUpdateFailure.h new file mode 100644 index 0000000..6562915 --- /dev/null +++ b/e2sim/asn1c/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 "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2connectionUpdateFailure_H_ +#define _E2connectionUpdateFailure_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2connectionUpdateFailure */ +typedef struct E2connectionUpdateFailure { + ProtocolIE_Container_85P26_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 "asn_internal.h" diff --git a/e2sim/asn1c/E2connectionUpdateRemove-Item.c b/e2sim/asn1c/E2connectionUpdateRemove-Item.c new file mode 100644 index 0000000..a788d76 --- /dev/null +++ b/e2sim/asn1c/E2connectionUpdateRemove-Item.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2connectionUpdateRemove-Item.h" + +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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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 */ +}; +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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2connectionUpdateRemove_Item_1, + 1, /* Elements count */ + &asn_SPC_E2connectionUpdateRemove_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2connectionUpdateRemove-Item.h b/e2sim/asn1c/E2connectionUpdateRemove-Item.h new file mode 100644 index 0000000..f988de6 --- /dev/null +++ b/e2sim/asn1c/E2connectionUpdateRemove-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 "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2connectionUpdateRemove_Item_H_ +#define _E2connectionUpdateRemove_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "TNLinformation.h" +#include "constr_SEQUENCE.h" + +#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; +extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateRemove_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_E2connectionUpdateRemove_Item_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2connectionUpdateRemove_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2connectionUpdateRemove-List.c b/e2sim/asn1c/E2connectionUpdateRemove-List.c new file mode 100644 index 0000000..ec3d7da --- /dev/null +++ b/e2sim/asn1c/E2connectionUpdateRemove-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2connectionUpdateRemove-List.h" + +#include "ProtocolIE-SingleContainer.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_E2connectionUpdateRemove_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_88P20, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2connectionUpdateRemove_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_E2connectionUpdateRemove_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_E2connectionUpdateRemove_List_1, + 1, /* Single element */ + &asn_SPC_E2connectionUpdateRemove_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2connectionUpdateRemove-List.h b/e2sim/asn1c/E2connectionUpdateRemove-List.h new file mode 100644 index 0000000..bb13654 --- /dev/null +++ b/e2sim/asn1c/E2connectionUpdateRemove-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2connectionUpdateRemove_List_H_ +#define _E2connectionUpdateRemove_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* E2connectionUpdateRemove-List */ +typedef struct E2connectionUpdateRemove_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) 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; +extern asn_SET_OF_specifics_t asn_SPC_E2connectionUpdateRemove_List_specs_1; +extern asn_TYPE_member_t asn_MBR_E2connectionUpdateRemove_List_1[1]; +extern asn_per_constraints_t asn_PER_type_E2connectionUpdateRemove_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2connectionUpdateRemove_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2nodeComponentConfigAddition-Item.c b/e2sim/asn1c/E2nodeComponentConfigAddition-Item.c new file mode 100644 index 0000000..1b4d003 --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentConfigAddition-Item.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2nodeComponentConfigAddition-Item.h" + +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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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 */ +}; +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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeComponentConfigAddition_Item_1, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigAddition_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2nodeComponentConfigAddition-Item.h b/e2sim/asn1c/E2nodeComponentConfigAddition-Item.h new file mode 100644 index 0000000..c4acf3f --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentConfigAddition-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2nodeComponentConfigAddition_Item_H_ +#define _E2nodeComponentConfigAddition_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "E2nodeComponentInterfaceType.h" +#include "E2nodeComponentID.h" +#include "E2nodeComponentConfiguration.h" +#include "constr_SEQUENCE.h" + +#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; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigAddition_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAddition_Item_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigAddition_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2nodeComponentConfigAddition-List.c b/e2sim/asn1c/E2nodeComponentConfigAddition-List.c new file mode 100644 index 0000000..3659351 --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentConfigAddition-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2nodeComponentConfigAddition-List.h" + +#include "ProtocolIE-SingleContainer.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAddition_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_88P22, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigAddition_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_E2nodeComponentConfigAddition_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_E2nodeComponentConfigAddition_List_1, + 1, /* Single element */ + &asn_SPC_E2nodeComponentConfigAddition_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2nodeComponentConfigAddition-List.h b/e2sim/asn1c/E2nodeComponentConfigAddition-List.h new file mode 100644 index 0000000..3a8bb0d --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentConfigAddition-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2nodeComponentConfigAddition_List_H_ +#define _E2nodeComponentConfigAddition_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* E2nodeComponentConfigAddition-List */ +typedef struct E2nodeComponentConfigAddition_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) 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; +extern asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigAddition_List_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAddition_List_1[1]; +extern asn_per_constraints_t asn_PER_type_E2nodeComponentConfigAddition_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigAddition_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2nodeComponentConfigAdditionAck-Item.c b/e2sim/asn1c/E2nodeComponentConfigAdditionAck-Item.c new file mode 100644 index 0000000..d88973e --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentConfigAdditionAck-Item.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2nodeComponentConfigAdditionAck-Item.h" + +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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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 */ +}; +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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeComponentConfigAdditionAck_Item_1, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigAdditionAck_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2nodeComponentConfigAdditionAck-Item.h b/e2sim/asn1c/E2nodeComponentConfigAdditionAck-Item.h new file mode 100644 index 0000000..6da8715 --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentConfigAdditionAck-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2nodeComponentConfigAdditionAck_Item_H_ +#define _E2nodeComponentConfigAdditionAck_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "E2nodeComponentInterfaceType.h" +#include "E2nodeComponentID.h" +#include "E2nodeComponentConfigurationAck.h" +#include "constr_SEQUENCE.h" + +#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; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigAdditionAck_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAdditionAck_Item_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigAdditionAck_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2nodeComponentConfigAdditionAck-List.c b/e2sim/asn1c/E2nodeComponentConfigAdditionAck-List.c new file mode 100644 index 0000000..2f29cf7 --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentConfigAdditionAck-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2nodeComponentConfigAdditionAck-List.h" + +#include "ProtocolIE-SingleContainer.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAdditionAck_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_88P26, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigAdditionAck_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_E2nodeComponentConfigAdditionAck_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_E2nodeComponentConfigAdditionAck_List_1, + 1, /* Single element */ + &asn_SPC_E2nodeComponentConfigAdditionAck_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2nodeComponentConfigAdditionAck-List.h b/e2sim/asn1c/E2nodeComponentConfigAdditionAck-List.h new file mode 100644 index 0000000..1c635ab --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentConfigAdditionAck-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2nodeComponentConfigAdditionAck_List_H_ +#define _E2nodeComponentConfigAdditionAck_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* E2nodeComponentConfigAdditionAck-List */ +typedef struct E2nodeComponentConfigAdditionAck_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) 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; +extern asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigAdditionAck_List_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAdditionAck_List_1[1]; +extern asn_per_constraints_t asn_PER_type_E2nodeComponentConfigAdditionAck_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigAdditionAck_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2nodeComponentConfigRemoval-Item.c b/e2sim/asn1c/E2nodeComponentConfigRemoval-Item.c new file mode 100644 index 0000000..f8d317e --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentConfigRemoval-Item.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2nodeComponentConfigRemoval-Item.h" + +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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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 */ +}; +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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeComponentConfigRemoval_Item_1, + 2, /* Elements count */ + &asn_SPC_E2nodeComponentConfigRemoval_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2nodeComponentConfigRemoval-Item.h b/e2sim/asn1c/E2nodeComponentConfigRemoval-Item.h new file mode 100644 index 0000000..b2121c5 --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentConfigRemoval-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 "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2nodeComponentConfigRemoval_Item_H_ +#define _E2nodeComponentConfigRemoval_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "E2nodeComponentInterfaceType.h" +#include "E2nodeComponentID.h" +#include "constr_SEQUENCE.h" + +#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; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigRemoval_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemoval_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigRemoval_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2nodeComponentConfigRemoval-List.c b/e2sim/asn1c/E2nodeComponentConfigRemoval-List.c new file mode 100644 index 0000000..bd54cdf --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentConfigRemoval-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2nodeComponentConfigRemoval-List.h" + +#include "ProtocolIE-SingleContainer.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemoval_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_88P24, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigRemoval_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_E2nodeComponentConfigRemoval_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_E2nodeComponentConfigRemoval_List_1, + 1, /* Single element */ + &asn_SPC_E2nodeComponentConfigRemoval_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2nodeComponentConfigRemoval-List.h b/e2sim/asn1c/E2nodeComponentConfigRemoval-List.h new file mode 100644 index 0000000..571fecf --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentConfigRemoval-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2nodeComponentConfigRemoval_List_H_ +#define _E2nodeComponentConfigRemoval_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* E2nodeComponentConfigRemoval-List */ +typedef struct E2nodeComponentConfigRemoval_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) 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; +extern asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigRemoval_List_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemoval_List_1[1]; +extern asn_per_constraints_t asn_PER_type_E2nodeComponentConfigRemoval_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigRemoval_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2nodeComponentConfigRemovalAck-Item.c b/e2sim/asn1c/E2nodeComponentConfigRemovalAck-Item.c new file mode 100644 index 0000000..f86caa6 --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentConfigRemovalAck-Item.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2nodeComponentConfigRemovalAck-Item.h" + +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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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 */ +}; +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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeComponentConfigRemovalAck_Item_1, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigRemovalAck_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2nodeComponentConfigRemovalAck-Item.h b/e2sim/asn1c/E2nodeComponentConfigRemovalAck-Item.h new file mode 100644 index 0000000..fcfd912 --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentConfigRemovalAck-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2nodeComponentConfigRemovalAck_Item_H_ +#define _E2nodeComponentConfigRemovalAck_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "E2nodeComponentInterfaceType.h" +#include "E2nodeComponentID.h" +#include "E2nodeComponentConfigurationAck.h" +#include "constr_SEQUENCE.h" + +#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; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigRemovalAck_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemovalAck_Item_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigRemovalAck_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2nodeComponentConfigRemovalAck-List.c b/e2sim/asn1c/E2nodeComponentConfigRemovalAck-List.c new file mode 100644 index 0000000..d7139ca --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentConfigRemovalAck-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2nodeComponentConfigRemovalAck-List.h" + +#include "ProtocolIE-SingleContainer.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemovalAck_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_88P28, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigRemovalAck_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_E2nodeComponentConfigRemovalAck_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_E2nodeComponentConfigRemovalAck_List_1, + 1, /* Single element */ + &asn_SPC_E2nodeComponentConfigRemovalAck_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2nodeComponentConfigRemovalAck-List.h b/e2sim/asn1c/E2nodeComponentConfigRemovalAck-List.h new file mode 100644 index 0000000..98c5799 --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentConfigRemovalAck-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2nodeComponentConfigRemovalAck_List_H_ +#define _E2nodeComponentConfigRemovalAck_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* E2nodeComponentConfigRemovalAck-List */ +typedef struct E2nodeComponentConfigRemovalAck_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) 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; +extern asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigRemovalAck_List_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemovalAck_List_1[1]; +extern asn_per_constraints_t asn_PER_type_E2nodeComponentConfigRemovalAck_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigRemovalAck_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2nodeComponentConfigUpdate-Item.c b/e2sim/asn1c/E2nodeComponentConfigUpdate-Item.c new file mode 100644 index 0000000..809d7aa --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentConfigUpdate-Item.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2nodeComponentConfigUpdate-Item.h" + +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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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 */ +}; +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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeComponentConfigUpdate_Item_1, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigUpdate_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2nodeComponentConfigUpdate-Item.h b/e2sim/asn1c/E2nodeComponentConfigUpdate-Item.h new file mode 100644 index 0000000..7876b71 --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentConfigUpdate-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2nodeComponentConfigUpdate_Item_H_ +#define _E2nodeComponentConfigUpdate_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "E2nodeComponentInterfaceType.h" +#include "E2nodeComponentID.h" +#include "E2nodeComponentConfiguration.h" +#include "constr_SEQUENCE.h" + +#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; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdate_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_Item_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigUpdate_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2nodeComponentConfigUpdate-List.c b/e2sim/asn1c/E2nodeComponentConfigUpdate-List.c new file mode 100644 index 0000000..e8ee504 --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentConfigUpdate-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2nodeComponentConfigUpdate-List.h" + +#include "ProtocolIE-SingleContainer.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_88P23, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdate_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_E2nodeComponentConfigUpdate_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_E2nodeComponentConfigUpdate_List_1, + 1, /* Single element */ + &asn_SPC_E2nodeComponentConfigUpdate_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2nodeComponentConfigUpdate-List.h b/e2sim/asn1c/E2nodeComponentConfigUpdate-List.h new file mode 100644 index 0000000..27a0d30 --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentConfigUpdate-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2nodeComponentConfigUpdate_List_H_ +#define _E2nodeComponentConfigUpdate_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* E2nodeComponentConfigUpdate-List */ +typedef struct E2nodeComponentConfigUpdate_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) 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; +extern asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigUpdate_List_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_List_1[1]; +extern asn_per_constraints_t asn_PER_type_E2nodeComponentConfigUpdate_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigUpdate_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2nodeComponentConfigUpdateAck-Item.c b/e2sim/asn1c/E2nodeComponentConfigUpdateAck-Item.c new file mode 100644 index 0000000..90bb44c --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentConfigUpdateAck-Item.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2nodeComponentConfigUpdateAck-Item.h" + +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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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 */ +}; +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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeComponentConfigUpdateAck_Item_1, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigUpdateAck_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2nodeComponentConfigUpdateAck-Item.h b/e2sim/asn1c/E2nodeComponentConfigUpdateAck-Item.h new file mode 100644 index 0000000..f495729 --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentConfigUpdateAck-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2nodeComponentConfigUpdateAck_Item_H_ +#define _E2nodeComponentConfigUpdateAck_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "E2nodeComponentInterfaceType.h" +#include "E2nodeComponentID.h" +#include "E2nodeComponentConfigurationAck.h" +#include "constr_SEQUENCE.h" + +#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; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_Item_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigUpdateAck_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2nodeComponentConfigUpdateAck-List.c b/e2sim/asn1c/E2nodeComponentConfigUpdateAck-List.c new file mode 100644 index 0000000..1a85f0f --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentConfigUpdateAck-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2nodeComponentConfigUpdateAck-List.h" + +#include "ProtocolIE-SingleContainer.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_88P27, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdateAck_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_E2nodeComponentConfigUpdateAck_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_E2nodeComponentConfigUpdateAck_List_1, + 1, /* Single element */ + &asn_SPC_E2nodeComponentConfigUpdateAck_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2nodeComponentConfigUpdateAck-List.h b/e2sim/asn1c/E2nodeComponentConfigUpdateAck-List.h new file mode 100644 index 0000000..8618b65 --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentConfigUpdateAck-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2nodeComponentConfigUpdateAck_List_H_ +#define _E2nodeComponentConfigUpdateAck_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* E2nodeComponentConfigUpdateAck-List */ +typedef struct E2nodeComponentConfigUpdateAck_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) 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; +extern asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_List_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_List_1[1]; +extern asn_per_constraints_t asn_PER_type_E2nodeComponentConfigUpdateAck_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigUpdateAck_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2nodeComponentConfiguration.c b/e2sim/asn1c/E2nodeComponentConfiguration.c new file mode 100644 index 0000000..9d34d24 --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentConfiguration.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeComponentConfiguration_1, + 2, /* Elements count */ + &asn_SPC_E2nodeComponentConfiguration_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2nodeComponentConfiguration.h b/e2sim/asn1c/E2nodeComponentConfiguration.h new file mode 100644 index 0000000..c9baf67 --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentConfiguration.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2nodeComponentConfiguration_H_ +#define _E2nodeComponentConfiguration_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" +#include "constr_SEQUENCE.h" + +#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 "asn_internal.h" diff --git a/e2sim/asn1c/E2nodeComponentConfigurationAck.c b/e2sim/asn1c/E2nodeComponentConfigurationAck.c new file mode 100644 index 0000000..3f2e6c1 --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentConfigurationAck.c @@ -0,0 +1,145 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2nodeComponentConfigurationAck.h" + +#include "Cause.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_updateOutcome_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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_Cause, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeComponentConfigurationAck_1, + 2, /* Elements count */ + &asn_SPC_E2nodeComponentConfigurationAck_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2nodeComponentConfigurationAck.h b/e2sim/asn1c/E2nodeComponentConfigurationAck.h new file mode 100644 index 0000000..c766034 --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentConfigurationAck.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2nodeComponentConfigurationAck_H_ +#define _E2nodeComponentConfigurationAck_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" +#include "constr_SEQUENCE.h" + +#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 Cause; + +/* E2nodeComponentConfigurationAck */ +typedef struct E2nodeComponentConfigurationAck { + long updateOutcome; + struct Cause *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 "asn_internal.h" diff --git a/e2sim/asn1c/E2nodeComponentID.c b/e2sim/asn1c/E2nodeComponentID.c new file mode 100644 index 0000000..caf749b --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentID.c @@ -0,0 +1,185 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2nodeComponentID.h" + +#include "E2nodeComponentInterfaceNG.h" +#include "E2nodeComponentInterfaceXn.h" +#include "E2nodeComponentInterfaceE1.h" +#include "E2nodeComponentInterfaceF1.h" +#include "E2nodeComponentInterfaceW1.h" +#include "E2nodeComponentInterfaceS1.h" +#include "E2nodeComponentInterfaceX2.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_E2nodeComponentID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_E2nodeComponentID_1, + 7, /* Elements count */ + &asn_SPC_E2nodeComponentID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2nodeComponentID.h b/e2sim/asn1c/E2nodeComponentID.h new file mode 100644 index 0000000..89d1638 --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentID.h @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2nodeComponentID_H_ +#define _E2nodeComponentID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_CHOICE.h" + +#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 "asn_internal.h" diff --git a/e2sim/asn1c/E2nodeComponentInterfaceE1.c b/e2sim/asn1c/E2nodeComponentInterfaceE1.c new file mode 100644 index 0000000..7a89b39 --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentInterfaceE1.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2nodeComponentInterfaceE1.h" + +asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceE1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentInterfaceE1, gNB_CU_UP_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2AP_IEs_GNB_CU_UP_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "gNB-CU-UP-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-UP-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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeComponentInterfaceE1_1, + 1, /* Elements count */ + &asn_SPC_E2nodeComponentInterfaceE1_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2nodeComponentInterfaceE1.h b/e2sim/asn1c/E2nodeComponentInterfaceE1.h new file mode 100644 index 0000000..d6e1dbc --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentInterfaceE1.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2nodeComponentInterfaceE1_H_ +#define _E2nodeComponentInterfaceE1_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "E2AP-IEs_GNB-CU-UP-ID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentInterfaceE1 */ +typedef struct E2nodeComponentInterfaceE1 { + E2AP_IEs_GNB_CU_UP_ID_t gNB_CU_UP_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 "asn_internal.h" diff --git a/e2sim/asn1c/E2nodeComponentInterfaceF1.c b/e2sim/asn1c/E2nodeComponentInterfaceF1.c new file mode 100644 index 0000000..04b98fd --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentInterfaceF1.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#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_E2AP_IEs_GNB_DU_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeComponentInterfaceF1_1, + 1, /* Elements count */ + &asn_SPC_E2nodeComponentInterfaceF1_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2nodeComponentInterfaceF1.h b/e2sim/asn1c/E2nodeComponentInterfaceF1.h new file mode 100644 index 0000000..d1d87ac --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentInterfaceF1.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2nodeComponentInterfaceF1_H_ +#define _E2nodeComponentInterfaceF1_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "E2AP-IEs_GNB-DU-ID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentInterfaceF1 */ +typedef struct E2nodeComponentInterfaceF1 { + E2AP_IEs_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 "asn_internal.h" diff --git a/e2sim/asn1c/E2nodeComponentInterfaceNG.c b/e2sim/asn1c/E2nodeComponentInterfaceNG.c new file mode 100644 index 0000000..b452648 --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentInterfaceNG.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeComponentInterfaceNG_1, + 1, /* Elements count */ + &asn_SPC_E2nodeComponentInterfaceNG_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2nodeComponentInterfaceNG.h b/e2sim/asn1c/E2nodeComponentInterfaceNG.h new file mode 100644 index 0000000..0d5dab3 --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentInterfaceNG.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2nodeComponentInterfaceNG_H_ +#define _E2nodeComponentInterfaceNG_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "AMFName.h" +#include "constr_SEQUENCE.h" + +#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 "asn_internal.h" diff --git a/e2sim/asn1c/E2nodeComponentInterfaceS1.c b/e2sim/asn1c/E2nodeComponentInterfaceS1.c new file mode 100644 index 0000000..646f75f --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentInterfaceS1.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeComponentInterfaceS1_1, + 1, /* Elements count */ + &asn_SPC_E2nodeComponentInterfaceS1_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2nodeComponentInterfaceS1.h b/e2sim/asn1c/E2nodeComponentInterfaceS1.h new file mode 100644 index 0000000..1266777 --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentInterfaceS1.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2nodeComponentInterfaceS1_H_ +#define _E2nodeComponentInterfaceS1_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "MMEname.h" +#include "constr_SEQUENCE.h" + +#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 "asn_internal.h" diff --git a/e2sim/asn1c/E2nodeComponentInterfaceType.c b/e2sim/asn1c/E2nodeComponentInterfaceType.c new file mode 100644 index 0000000..8880f69 --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentInterfaceType.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2nodeComponentInterfaceType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_E2nodeComponentInterfaceType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_E2nodeComponentInterfaceType_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2nodeComponentInterfaceType.h b/e2sim/asn1c/E2nodeComponentInterfaceType.h new file mode 100644 index 0000000..d282617 --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentInterfaceType.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2nodeComponentInterfaceType_H_ +#define _E2nodeComponentInterfaceType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#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; +jer_type_encoder_f E2nodeComponentInterfaceType_encode_jer; +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 "asn_internal.h" diff --git a/e2sim/asn1c/E2nodeComponentInterfaceW1.c b/e2sim/asn1c/E2nodeComponentInterfaceW1.c new file mode 100644 index 0000000..8fdbd2b --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentInterfaceW1.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#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_E2AP_IEs_NGENB_DU_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeComponentInterfaceW1_1, + 1, /* Elements count */ + &asn_SPC_E2nodeComponentInterfaceW1_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2nodeComponentInterfaceW1.h b/e2sim/asn1c/E2nodeComponentInterfaceW1.h new file mode 100644 index 0000000..4c0cc47 --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentInterfaceW1.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2nodeComponentInterfaceW1_H_ +#define _E2nodeComponentInterfaceW1_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "E2AP-IEs_NGENB-DU-ID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentInterfaceW1 */ +typedef struct E2nodeComponentInterfaceW1 { + E2AP_IEs_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 "asn_internal.h" diff --git a/e2sim/asn1c/E2nodeComponentInterfaceX2.c b/e2sim/asn1c/E2nodeComponentInterfaceX2.c new file mode 100644 index 0000000..9c771ed --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentInterfaceX2.c @@ -0,0 +1,88 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2nodeComponentInterfaceX2.h" + +#include "E2AP-IEs_GlobalENB-ID.h" +#include "E2AP-IEs_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_E2AP_IEs_GlobalENB_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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_E2AP_IEs_GlobalenGNB_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeComponentInterfaceX2_1, + 2, /* Elements count */ + &asn_SPC_E2nodeComponentInterfaceX2_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2nodeComponentInterfaceX2.h b/e2sim/asn1c/E2nodeComponentInterfaceX2.h new file mode 100644 index 0000000..fa71d6e --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentInterfaceX2.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2nodeComponentInterfaceX2_H_ +#define _E2nodeComponentInterfaceX2_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_SEQUENCE.h" + +#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 "asn_internal.h" diff --git a/e2sim/asn1c/E2nodeComponentInterfaceXn.c b/e2sim/asn1c/E2nodeComponentInterfaceXn.c new file mode 100644 index 0000000..1180a3e --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentInterfaceXn.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeComponentInterfaceXn_1, + 1, /* Elements count */ + &asn_SPC_E2nodeComponentInterfaceXn_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2nodeComponentInterfaceXn.h b/e2sim/asn1c/E2nodeComponentInterfaceXn.h new file mode 100644 index 0000000..c9d4504 --- /dev/null +++ b/e2sim/asn1c/E2nodeComponentInterfaceXn.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2nodeComponentInterfaceXn_H_ +#define _E2nodeComponentInterfaceXn_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "GlobalNG-RANNode-ID.h" +#include "constr_SEQUENCE.h" + +#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 "asn_internal.h" diff --git a/e2sim/asn1c/E2nodeConfigurationUpdate.c b/e2sim/asn1c/E2nodeConfigurationUpdate.c new file mode 100644 index 0000000..fa76717 --- /dev/null +++ b/e2sim/asn1c/E2nodeConfigurationUpdate.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#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_Container_85P27, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeConfigurationUpdate_1, + 1, /* Elements count */ + &asn_SPC_E2nodeConfigurationUpdate_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2nodeConfigurationUpdate.h b/e2sim/asn1c/E2nodeConfigurationUpdate.h new file mode 100644 index 0000000..e669d4d --- /dev/null +++ b/e2sim/asn1c/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 "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2nodeConfigurationUpdate_H_ +#define _E2nodeConfigurationUpdate_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeConfigurationUpdate */ +typedef struct E2nodeConfigurationUpdate { + ProtocolIE_Container_85P27_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 "asn_internal.h" diff --git a/e2sim/asn1c/E2nodeConfigurationUpdateAcknowledge.c b/e2sim/asn1c/E2nodeConfigurationUpdateAcknowledge.c new file mode 100644 index 0000000..c027cf6 --- /dev/null +++ b/e2sim/asn1c/E2nodeConfigurationUpdateAcknowledge.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#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_Container_85P28, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeConfigurationUpdateAcknowledge_1, + 1, /* Elements count */ + &asn_SPC_E2nodeConfigurationUpdateAcknowledge_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2nodeConfigurationUpdateAcknowledge.h b/e2sim/asn1c/E2nodeConfigurationUpdateAcknowledge.h new file mode 100644 index 0000000..095ec32 --- /dev/null +++ b/e2sim/asn1c/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 "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2nodeConfigurationUpdateAcknowledge_H_ +#define _E2nodeConfigurationUpdateAcknowledge_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeConfigurationUpdateAcknowledge */ +typedef struct E2nodeConfigurationUpdateAcknowledge { + ProtocolIE_Container_85P28_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 "asn_internal.h" diff --git a/e2sim/asn1c/E2nodeConfigurationUpdateFailure.c b/e2sim/asn1c/E2nodeConfigurationUpdateFailure.c new file mode 100644 index 0000000..f91b880 --- /dev/null +++ b/e2sim/asn1c/E2nodeConfigurationUpdateFailure.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#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_Container_85P29, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeConfigurationUpdateFailure_1, + 1, /* Elements count */ + &asn_SPC_E2nodeConfigurationUpdateFailure_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2nodeConfigurationUpdateFailure.h b/e2sim/asn1c/E2nodeConfigurationUpdateFailure.h new file mode 100644 index 0000000..3c752a4 --- /dev/null +++ b/e2sim/asn1c/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 "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2nodeConfigurationUpdateFailure_H_ +#define _E2nodeConfigurationUpdateFailure_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeConfigurationUpdateFailure */ +typedef struct E2nodeConfigurationUpdateFailure { + ProtocolIE_Container_85P29_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 "asn_internal.h" diff --git a/e2sim/asn1c/E2nodeTNLassociationRemoval-Item.c b/e2sim/asn1c/E2nodeTNLassociationRemoval-Item.c new file mode 100644 index 0000000..86065e2 --- /dev/null +++ b/e2sim/asn1c/E2nodeTNLassociationRemoval-Item.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2nodeTNLassociationRemoval-Item.h" + +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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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 */ +}; +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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeTNLassociationRemoval_Item_1, + 2, /* Elements count */ + &asn_SPC_E2nodeTNLassociationRemoval_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2nodeTNLassociationRemoval-Item.h b/e2sim/asn1c/E2nodeTNLassociationRemoval-Item.h new file mode 100644 index 0000000..06ff83b --- /dev/null +++ b/e2sim/asn1c/E2nodeTNLassociationRemoval-Item.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2nodeTNLassociationRemoval_Item_H_ +#define _E2nodeTNLassociationRemoval_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "TNLinformation.h" +#include "constr_SEQUENCE.h" + +#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; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeTNLassociationRemoval_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeTNLassociationRemoval_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeTNLassociationRemoval_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2nodeTNLassociationRemoval-List.c b/e2sim/asn1c/E2nodeTNLassociationRemoval-List.c new file mode 100644 index 0000000..2805422 --- /dev/null +++ b/e2sim/asn1c/E2nodeTNLassociationRemoval-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2nodeTNLassociationRemoval-List.h" + +#include "ProtocolIE-SingleContainer.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_E2nodeTNLassociationRemoval_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_88P25, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeTNLassociationRemoval_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_E2nodeTNLassociationRemoval_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_E2nodeTNLassociationRemoval_List_1, + 1, /* Single element */ + &asn_SPC_E2nodeTNLassociationRemoval_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2nodeTNLassociationRemoval-List.h b/e2sim/asn1c/E2nodeTNLassociationRemoval-List.h new file mode 100644 index 0000000..c30f029 --- /dev/null +++ b/e2sim/asn1c/E2nodeTNLassociationRemoval-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2nodeTNLassociationRemoval_List_H_ +#define _E2nodeTNLassociationRemoval_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* E2nodeTNLassociationRemoval-List */ +typedef struct E2nodeTNLassociationRemoval_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) 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; +extern asn_SET_OF_specifics_t asn_SPC_E2nodeTNLassociationRemoval_List_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeTNLassociationRemoval_List_1[1]; +extern asn_per_constraints_t asn_PER_type_E2nodeTNLassociationRemoval_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeTNLassociationRemoval_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2setupFailure.c b/e2sim/asn1c/E2setupFailure.c new file mode 100644 index 0000000..ff6eaa4 --- /dev/null +++ b/e2sim/asn1c/E2setupFailure.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2setupFailure.h" + +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_Container_85P23, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2setupFailure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2setupFailure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2setupFailure_specs_1 = { + sizeof(struct E2setupFailure), + offsetof(struct E2setupFailure, _asn_ctx), + asn_MAP_E2setupFailure_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_E2setupFailure = { + "E2setupFailure", + "E2setupFailure", + &asn_OP_SEQUENCE, + asn_DEF_E2setupFailure_tags_1, + sizeof(asn_DEF_E2setupFailure_tags_1) + /sizeof(asn_DEF_E2setupFailure_tags_1[0]), /* 1 */ + asn_DEF_E2setupFailure_tags_1, /* Same as above */ + sizeof(asn_DEF_E2setupFailure_tags_1) + /sizeof(asn_DEF_E2setupFailure_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2setupFailure_1, + 1, /* Elements count */ + &asn_SPC_E2setupFailure_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2setupFailure.h b/e2sim/asn1c/E2setupFailure.h new file mode 100644 index 0000000..a5cb8e9 --- /dev/null +++ b/e2sim/asn1c/E2setupFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2setupFailure_H_ +#define _E2setupFailure_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2setupFailure */ +typedef struct E2setupFailure { + ProtocolIE_Container_85P23_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2setupFailure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2setupFailure; +extern asn_SEQUENCE_specifics_t asn_SPC_E2setupFailure_specs_1; +extern asn_TYPE_member_t asn_MBR_E2setupFailure_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2setupFailure_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2setupRequest.c b/e2sim/asn1c/E2setupRequest.c new file mode 100644 index 0000000..ce2c1fc --- /dev/null +++ b/e2sim/asn1c/E2setupRequest.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2setupRequest.h" + +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_Container_85P21, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2setupRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2setupRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2setupRequest_specs_1 = { + sizeof(struct E2setupRequest), + offsetof(struct E2setupRequest, _asn_ctx), + asn_MAP_E2setupRequest_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_E2setupRequest = { + "E2setupRequest", + "E2setupRequest", + &asn_OP_SEQUENCE, + asn_DEF_E2setupRequest_tags_1, + sizeof(asn_DEF_E2setupRequest_tags_1) + /sizeof(asn_DEF_E2setupRequest_tags_1[0]), /* 1 */ + asn_DEF_E2setupRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_E2setupRequest_tags_1) + /sizeof(asn_DEF_E2setupRequest_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2setupRequest_1, + 1, /* Elements count */ + &asn_SPC_E2setupRequest_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2setupRequest.h b/e2sim/asn1c/E2setupRequest.h new file mode 100644 index 0000000..6e4ff38 --- /dev/null +++ b/e2sim/asn1c/E2setupRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2setupRequest_H_ +#define _E2setupRequest_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2setupRequest */ +typedef struct E2setupRequest { + ProtocolIE_Container_85P21_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2setupRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2setupRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_E2setupRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_E2setupRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2setupRequest_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/E2setupResponse.c b/e2sim/asn1c/E2setupResponse.c new file mode 100644 index 0000000..4e8b1e0 --- /dev/null +++ b/e2sim/asn1c/E2setupResponse.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "E2setupResponse.h" + +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_Container_85P22, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2setupResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2setupResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2setupResponse_specs_1 = { + sizeof(struct E2setupResponse), + offsetof(struct E2setupResponse, _asn_ctx), + asn_MAP_E2setupResponse_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_E2setupResponse = { + "E2setupResponse", + "E2setupResponse", + &asn_OP_SEQUENCE, + asn_DEF_E2setupResponse_tags_1, + sizeof(asn_DEF_E2setupResponse_tags_1) + /sizeof(asn_DEF_E2setupResponse_tags_1[0]), /* 1 */ + asn_DEF_E2setupResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_E2setupResponse_tags_1) + /sizeof(asn_DEF_E2setupResponse_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2setupResponse_1, + 1, /* Elements count */ + &asn_SPC_E2setupResponse_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/E2setupResponse.h b/e2sim/asn1c/E2setupResponse.h new file mode 100644 index 0000000..f09b2f7 --- /dev/null +++ b/e2sim/asn1c/E2setupResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _E2setupResponse_H_ +#define _E2setupResponse_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2setupResponse */ +typedef struct E2setupResponse { + ProtocolIE_Container_85P22_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2setupResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2setupResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_E2setupResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_E2setupResponse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2setupResponse_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/EN-GNB-ID.c b/e2sim/asn1c/EN-GNB-ID.c new file mode 100644 index 0000000..7e5b32f --- /dev/null +++ b/e2sim/asn1c/EN-GNB-ID.c @@ -0,0 +1,108 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "EN-GNB-ID.h" + +static int +memb_en_gNB_ID_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 >= 22UL && size <= 32UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_en_gNB_ID_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 22, 32 } /* (SIZE(22..32)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_EN_GNB_ID_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_EN_GNB_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EN_GNB_ID, choice.en_gNB_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_en_gNB_ID_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_en_gNB_ID_constraint_1 + }, + 0, 0, /* No default value */ + "en-gNB-ID" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_EN_GNB_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* en-gNB-ID */ +}; +asn_CHOICE_specifics_t asn_SPC_EN_GNB_ID_specs_1 = { + sizeof(struct EN_GNB_ID), + offsetof(struct EN_GNB_ID, _asn_ctx), + offsetof(struct EN_GNB_ID, present), + sizeof(((struct EN_GNB_ID *)0)->present), + asn_MAP_EN_GNB_ID_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, + 1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_EN_GNB_ID = { + "EN-GNB-ID", + "EN-GNB-ID", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_EN_GNB_ID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_EN_GNB_ID_1, + 1, /* Elements count */ + &asn_SPC_EN_GNB_ID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/EN-GNB-ID.h b/e2sim/asn1c/EN-GNB-ID.h new file mode 100644 index 0000000..203f870 --- /dev/null +++ b/e2sim/asn1c/EN-GNB-ID.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _EN_GNB_ID_H_ +#define _EN_GNB_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EN_GNB_ID_PR { + EN_GNB_ID_PR_NOTHING, /* No components present */ + EN_GNB_ID_PR_en_gNB_ID + /* Extensions may appear below */ + +} EN_GNB_ID_PR; + +/* EN-GNB-ID */ +typedef struct EN_GNB_ID { + EN_GNB_ID_PR present; + union EN_GNB_ID_u { + BIT_STRING_t en_gNB_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EN_GNB_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EN_GNB_ID; +extern asn_CHOICE_specifics_t asn_SPC_EN_GNB_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_EN_GNB_ID_1[1]; +extern asn_per_constraints_t asn_PER_type_EN_GNB_ID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _EN_GNB_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/ENB-ID-Choice.c b/e2sim/asn1c/ENB-ID-Choice.c new file mode 100644 index 0000000..cf65801 --- /dev/null +++ b/e2sim/asn1c/ENB-ID-Choice.c @@ -0,0 +1,220 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "ENB-ID-Choice.h" + +static int +memb_enb_ID_macro_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 == 20UL)) { + /* 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_enb_ID_shortmacro_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 == 18UL)) { + /* 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_enb_ID_longmacro_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 == 21UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_enb_ID_macro_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_enb_ID_shortmacro_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 18, 18 } /* (SIZE(18..18)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_enb_ID_longmacro_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 21, 21 } /* (SIZE(21..21)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ENB_ID_Choice_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ENB_ID_Choice_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ENB_ID_Choice, choice.enb_ID_macro), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_enb_ID_macro_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_enb_ID_macro_constraint_1 + }, + 0, 0, /* No default value */ + "enb-ID-macro" + }, + { ATF_NOFLAGS, 0, offsetof(struct ENB_ID_Choice, choice.enb_ID_shortmacro), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_enb_ID_shortmacro_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_enb_ID_shortmacro_constraint_1 + }, + 0, 0, /* No default value */ + "enb-ID-shortmacro" + }, + { ATF_NOFLAGS, 0, offsetof(struct ENB_ID_Choice, choice.enb_ID_longmacro), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_enb_ID_longmacro_constr_4, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_enb_ID_longmacro_constraint_1 + }, + 0, 0, /* No default value */ + "enb-ID-longmacro" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ENB_ID_Choice_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* enb-ID-macro */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* enb-ID-shortmacro */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* enb-ID-longmacro */ +}; +asn_CHOICE_specifics_t asn_SPC_ENB_ID_Choice_specs_1 = { + sizeof(struct ENB_ID_Choice), + offsetof(struct ENB_ID_Choice, _asn_ctx), + offsetof(struct ENB_ID_Choice, present), + sizeof(((struct ENB_ID_Choice *)0)->present), + asn_MAP_ENB_ID_Choice_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + 3 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ENB_ID_Choice = { + "ENB-ID-Choice", + "ENB-ID-Choice", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ENB_ID_Choice_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_ENB_ID_Choice_1, + 3, /* Elements count */ + &asn_SPC_ENB_ID_Choice_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/ENB-ID-Choice.h b/e2sim/asn1c/ENB-ID-Choice.h new file mode 100644 index 0000000..b2a06d0 --- /dev/null +++ b/e2sim/asn1c/ENB-ID-Choice.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _ENB_ID_Choice_H_ +#define _ENB_ID_Choice_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ENB_ID_Choice_PR { + ENB_ID_Choice_PR_NOTHING, /* No components present */ + ENB_ID_Choice_PR_enb_ID_macro, + ENB_ID_Choice_PR_enb_ID_shortmacro, + ENB_ID_Choice_PR_enb_ID_longmacro + /* Extensions may appear below */ + +} ENB_ID_Choice_PR; + +/* ENB-ID-Choice */ +typedef struct ENB_ID_Choice { + ENB_ID_Choice_PR present; + union ENB_ID_Choice_u { + BIT_STRING_t enb_ID_macro; + BIT_STRING_t enb_ID_shortmacro; + BIT_STRING_t enb_ID_longmacro; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ENB_ID_Choice_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ENB_ID_Choice; +extern asn_CHOICE_specifics_t asn_SPC_ENB_ID_Choice_specs_1; +extern asn_TYPE_member_t asn_MBR_ENB_ID_Choice_1[3]; +extern asn_per_constraints_t asn_PER_type_ENB_ID_Choice_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ENB_ID_Choice_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/ENB-UE-X2AP-ID-Extension.c b/e2sim/asn1c/ENB-UE-X2AP-ID-Extension.c new file mode 100644 index 0000000..690f9f0 --- /dev/null +++ b/e2sim/asn1c/ENB-UE-X2AP-ID-Extension.c @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "ENB-UE-X2AP-ID-Extension.h" + +int +ENB_UE_X2AP_ID_Extension_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 >= 0L && value <= 4095L)) { + /* 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. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ENB_UE_X2AP_ID_Extension_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 12, 12, 0, 4095 } /* (0..4095,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_ENB_UE_X2AP_ID_Extension_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ENB_UE_X2AP_ID_Extension = { + "ENB-UE-X2AP-ID-Extension", + "ENB-UE-X2AP-ID-Extension", + &asn_OP_NativeInteger, + asn_DEF_ENB_UE_X2AP_ID_Extension_tags_1, + sizeof(asn_DEF_ENB_UE_X2AP_ID_Extension_tags_1) + /sizeof(asn_DEF_ENB_UE_X2AP_ID_Extension_tags_1[0]), /* 1 */ + asn_DEF_ENB_UE_X2AP_ID_Extension_tags_1, /* Same as above */ + sizeof(asn_DEF_ENB_UE_X2AP_ID_Extension_tags_1) + /sizeof(asn_DEF_ENB_UE_X2AP_ID_Extension_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ENB_UE_X2AP_ID_Extension_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + ENB_UE_X2AP_ID_Extension_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/ENB-UE-X2AP-ID-Extension.h b/e2sim/asn1c/ENB-UE-X2AP-ID-Extension.h new file mode 100644 index 0000000..7d700d3 --- /dev/null +++ b/e2sim/asn1c/ENB-UE-X2AP-ID-Extension.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _ENB_UE_X2AP_ID_Extension_H_ +#define _ENB_UE_X2AP_ID_Extension_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ENB-UE-X2AP-ID-Extension */ +typedef long ENB_UE_X2AP_ID_Extension_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ENB_UE_X2AP_ID_Extension_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ENB_UE_X2AP_ID_Extension; +asn_struct_free_f ENB_UE_X2AP_ID_Extension_free; +asn_struct_print_f ENB_UE_X2AP_ID_Extension_print; +asn_constr_check_f ENB_UE_X2AP_ID_Extension_constraint; +ber_type_decoder_f ENB_UE_X2AP_ID_Extension_decode_ber; +der_type_encoder_f ENB_UE_X2AP_ID_Extension_encode_der; +xer_type_decoder_f ENB_UE_X2AP_ID_Extension_decode_xer; +xer_type_encoder_f ENB_UE_X2AP_ID_Extension_encode_xer; +jer_type_encoder_f ENB_UE_X2AP_ID_Extension_encode_jer; +per_type_decoder_f ENB_UE_X2AP_ID_Extension_decode_uper; +per_type_encoder_f ENB_UE_X2AP_ID_Extension_encode_uper; +per_type_decoder_f ENB_UE_X2AP_ID_Extension_decode_aper; +per_type_encoder_f ENB_UE_X2AP_ID_Extension_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ENB_UE_X2AP_ID_Extension_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/ENB-UE-X2AP-ID.c b/e2sim/asn1c/ENB-UE-X2AP-ID.c new file mode 100644 index 0000000..fd73cbe --- /dev/null +++ b/e2sim/asn1c/ENB-UE-X2AP-ID.c @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "ENB-UE-X2AP-ID.h" + +int +ENB_UE_X2AP_ID_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 >= 0L && value <= 4095L)) { + /* 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. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ENB_UE_X2AP_ID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_ENB_UE_X2AP_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ENB_UE_X2AP_ID = { + "ENB-UE-X2AP-ID", + "ENB-UE-X2AP-ID", + &asn_OP_NativeInteger, + asn_DEF_ENB_UE_X2AP_ID_tags_1, + sizeof(asn_DEF_ENB_UE_X2AP_ID_tags_1) + /sizeof(asn_DEF_ENB_UE_X2AP_ID_tags_1[0]), /* 1 */ + asn_DEF_ENB_UE_X2AP_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_ENB_UE_X2AP_ID_tags_1) + /sizeof(asn_DEF_ENB_UE_X2AP_ID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ENB_UE_X2AP_ID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + ENB_UE_X2AP_ID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/ENB-UE-X2AP-ID.h b/e2sim/asn1c/ENB-UE-X2AP-ID.h new file mode 100644 index 0000000..61a4c0a --- /dev/null +++ b/e2sim/asn1c/ENB-UE-X2AP-ID.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _ENB_UE_X2AP_ID_H_ +#define _ENB_UE_X2AP_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ENB-UE-X2AP-ID */ +typedef long ENB_UE_X2AP_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ENB_UE_X2AP_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ENB_UE_X2AP_ID; +asn_struct_free_f ENB_UE_X2AP_ID_free; +asn_struct_print_f ENB_UE_X2AP_ID_print; +asn_constr_check_f ENB_UE_X2AP_ID_constraint; +ber_type_decoder_f ENB_UE_X2AP_ID_decode_ber; +der_type_encoder_f ENB_UE_X2AP_ID_encode_der; +xer_type_decoder_f ENB_UE_X2AP_ID_decode_xer; +xer_type_encoder_f ENB_UE_X2AP_ID_encode_xer; +jer_type_encoder_f ENB_UE_X2AP_ID_encode_jer; +per_type_decoder_f ENB_UE_X2AP_ID_decode_uper; +per_type_encoder_f ENB_UE_X2AP_ID_encode_uper; +per_type_decoder_f ENB_UE_X2AP_ID_decode_aper; +per_type_encoder_f ENB_UE_X2AP_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ENB_UE_X2AP_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/ENGNB-ID.c b/e2sim/asn1c/ENGNB-ID.c new file mode 100644 index 0000000..68b94e4 --- /dev/null +++ b/e2sim/asn1c/ENGNB-ID.c @@ -0,0 +1,108 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "ENGNB-ID.h" + +static int +memb_gNB_ID_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 >= 22UL && size <= 32UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_gNB_ID_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 22, 32 } /* (SIZE(22..32)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ENGNB_ID_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ENGNB_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ENGNB_ID, choice.gNB_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_gNB_ID_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_gNB_ID_constraint_1 + }, + 0, 0, /* No default value */ + "gNB-ID" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ENGNB_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gNB-ID */ +}; +asn_CHOICE_specifics_t asn_SPC_ENGNB_ID_specs_1 = { + sizeof(struct ENGNB_ID), + offsetof(struct ENGNB_ID, _asn_ctx), + offsetof(struct ENGNB_ID, present), + sizeof(((struct ENGNB_ID *)0)->present), + asn_MAP_ENGNB_ID_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, + 1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ENGNB_ID = { + "ENGNB-ID", + "ENGNB-ID", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ENGNB_ID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_ENGNB_ID_1, + 1, /* Elements count */ + &asn_SPC_ENGNB_ID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/ENGNB-ID.h b/e2sim/asn1c/ENGNB-ID.h new file mode 100644 index 0000000..a004464 --- /dev/null +++ b/e2sim/asn1c/ENGNB-ID.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _ENGNB_ID_H_ +#define _ENGNB_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ENGNB_ID_PR { + ENGNB_ID_PR_NOTHING, /* No components present */ + ENGNB_ID_PR_gNB_ID + /* Extensions may appear below */ + +} ENGNB_ID_PR; + +/* ENGNB-ID */ +typedef struct ENGNB_ID { + ENGNB_ID_PR present; + union ENGNB_ID_u { + BIT_STRING_t gNB_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ENGNB_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ENGNB_ID; +extern asn_CHOICE_specifics_t asn_SPC_ENGNB_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_ENGNB_ID_1[1]; +extern asn_per_constraints_t asn_PER_type_ENGNB_ID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ENGNB_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/EUTRA-CGI.c b/e2sim/asn1c/EUTRA-CGI.c new file mode 100644 index 0000000..c4e7812 --- /dev/null +++ b/e2sim/asn1c/EUTRA-CGI.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "EUTRA-CGI.h" + +asn_TYPE_member_t asn_MBR_EUTRA_CGI_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_CGI, pLMNIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PLMNIdentity, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pLMNIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_CGI, eUTRACellIdentity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRACellIdentity, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "eUTRACellIdentity" + }, +}; +static const ber_tlv_tag_t asn_DEF_EUTRA_CGI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EUTRA_CGI_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* eUTRACellIdentity */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EUTRA_CGI_specs_1 = { + sizeof(struct EUTRA_CGI), + offsetof(struct EUTRA_CGI, _asn_ctx), + asn_MAP_EUTRA_CGI_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_EUTRA_CGI = { + "EUTRA-CGI", + "EUTRA-CGI", + &asn_OP_SEQUENCE, + asn_DEF_EUTRA_CGI_tags_1, + sizeof(asn_DEF_EUTRA_CGI_tags_1) + /sizeof(asn_DEF_EUTRA_CGI_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_CGI_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_CGI_tags_1) + /sizeof(asn_DEF_EUTRA_CGI_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_EUTRA_CGI_1, + 2, /* Elements count */ + &asn_SPC_EUTRA_CGI_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/EUTRA-CGI.h b/e2sim/asn1c/EUTRA-CGI.h new file mode 100644 index 0000000..f320224 --- /dev/null +++ b/e2sim/asn1c/EUTRA-CGI.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _EUTRA_CGI_H_ +#define _EUTRA_CGI_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "PLMNIdentity.h" +#include "EUTRACellIdentity.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* EUTRA-CGI */ +typedef struct EUTRA_CGI { + PLMNIdentity_t pLMNIdentity; + EUTRACellIdentity_t eUTRACellIdentity; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRA_CGI_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_CGI; +extern asn_SEQUENCE_specifics_t asn_SPC_EUTRA_CGI_specs_1; +extern asn_TYPE_member_t asn_MBR_EUTRA_CGI_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_CGI_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/EUTRACellIdentity.c b/e2sim/asn1c/EUTRACellIdentity.c new file mode 100644 index 0000000..b6af75d --- /dev/null +++ b/e2sim/asn1c/EUTRACellIdentity.c @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "EUTRACellIdentity.h" + +int +EUTRACellIdentity_constraint(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 == 28UL)) { + /* 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 BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_EUTRACellIdentity_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 28, 28 } /* (SIZE(28..28)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_EUTRACellIdentity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EUTRACellIdentity = { + "EUTRACellIdentity", + "EUTRACellIdentity", + &asn_OP_BIT_STRING, + asn_DEF_EUTRACellIdentity_tags_1, + sizeof(asn_DEF_EUTRACellIdentity_tags_1) + /sizeof(asn_DEF_EUTRACellIdentity_tags_1[0]), /* 1 */ + asn_DEF_EUTRACellIdentity_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRACellIdentity_tags_1) + /sizeof(asn_DEF_EUTRACellIdentity_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_EUTRACellIdentity_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + EUTRACellIdentity_constraint + }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/e2sim/asn1c/EUTRACellIdentity.h b/e2sim/asn1c/EUTRACellIdentity.h new file mode 100644 index 0000000..d23c4d0 --- /dev/null +++ b/e2sim/asn1c/EUTRACellIdentity.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _EUTRACellIdentity_H_ +#define _EUTRACellIdentity_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* EUTRACellIdentity */ +typedef BIT_STRING_t EUTRACellIdentity_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EUTRACellIdentity_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EUTRACellIdentity; +asn_struct_free_f EUTRACellIdentity_free; +asn_struct_print_f EUTRACellIdentity_print; +asn_constr_check_f EUTRACellIdentity_constraint; +ber_type_decoder_f EUTRACellIdentity_decode_ber; +der_type_encoder_f EUTRACellIdentity_encode_der; +xer_type_decoder_f EUTRACellIdentity_decode_xer; +xer_type_encoder_f EUTRACellIdentity_encode_xer; +jer_type_encoder_f EUTRACellIdentity_encode_jer; +per_type_decoder_f EUTRACellIdentity_decode_uper; +per_type_encoder_f EUTRACellIdentity_encode_uper; +per_type_decoder_f EUTRACellIdentity_decode_aper; +per_type_encoder_f EUTRACellIdentity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRACellIdentity_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/EXTERNAL.c b/e2sim/asn1c/EXTERNAL.c new file mode 100644 index 0000000..028da3b --- /dev/null +++ b/e2sim/asn1c/EXTERNAL.c @@ -0,0 +1,223 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ASN1C-UsefulInformationObjectClasses" + * found in "/usr/local/share/asn1c/standard-modules/ASN1C-UsefulInformationObjectClasses.asn1" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "EXTERNAL.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_encoding_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_encoding_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct EXTERNAL__encoding, choice.single_ASN1_type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ANY, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "single-ASN1-type" + }, + { ATF_NOFLAGS, 0, offsetof(struct EXTERNAL__encoding, choice.octet_aligned), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "octet-aligned" + }, + { ATF_NOFLAGS, 0, offsetof(struct EXTERNAL__encoding, choice.arbitrary), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "arbitrary" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_encoding_tag2el_5[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* single-ASN1-type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* octet-aligned */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* arbitrary */ +}; +static asn_CHOICE_specifics_t asn_SPC_encoding_specs_5 = { + sizeof(struct EXTERNAL__encoding), + offsetof(struct EXTERNAL__encoding, _asn_ctx), + offsetof(struct EXTERNAL__encoding, present), + sizeof(((struct EXTERNAL__encoding *)0)->present), + asn_MAP_encoding_tag2el_5, + 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_encoding_5 = { + "encoding", + "encoding", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_encoding_constr_5, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_encoding_5, + 3, /* Elements count */ + &asn_SPC_encoding_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_EXTERNAL_1[] = { + { ATF_POINTER, 3, offsetof(struct EXTERNAL, direct_reference), + (ASN_TAG_CLASS_UNIVERSAL | (6 << 2)), + 0, + &asn_DEF_OBJECT_IDENTIFIER, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "direct-reference" + }, + { ATF_POINTER, 2, offsetof(struct EXTERNAL, indirect_reference), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "indirect-reference" + }, + { ATF_POINTER, 1, offsetof(struct EXTERNAL, data_value_descriptor), + (ASN_TAG_CLASS_UNIVERSAL | (7 << 2)), + 0, + &asn_DEF_ObjectDescriptor, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "data-value-descriptor" + }, + { ATF_NOFLAGS, 0, offsetof(struct EXTERNAL, encoding), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_encoding_5, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "encoding" + }, +}; +static const int asn_MAP_EXTERNAL_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_EXTERNAL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EXTERNAL_tag2el_1[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* indirect-reference */ + { (ASN_TAG_CLASS_UNIVERSAL | (6 << 2)), 0, 0, 0 }, /* direct-reference */ + { (ASN_TAG_CLASS_UNIVERSAL | (7 << 2)), 2, 0, 0 }, /* data-value-descriptor */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 3, 0, 0 }, /* single-ASN1-type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 3, 0, 0 }, /* octet-aligned */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 } /* arbitrary */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_EXTERNAL_specs_1 = { + sizeof(struct EXTERNAL), + offsetof(struct EXTERNAL, _asn_ctx), + asn_MAP_EXTERNAL_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_EXTERNAL_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EXTERNAL = { + "EXTERNAL", + "EXTERNAL", + &asn_OP_SEQUENCE, + asn_DEF_EXTERNAL_tags_1, + sizeof(asn_DEF_EXTERNAL_tags_1) + /sizeof(asn_DEF_EXTERNAL_tags_1[0]) - 1, /* 1 */ + asn_DEF_EXTERNAL_tags_1, /* Same as above */ + sizeof(asn_DEF_EXTERNAL_tags_1) + /sizeof(asn_DEF_EXTERNAL_tags_1[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_EXTERNAL_1, + 4, /* Elements count */ + &asn_SPC_EXTERNAL_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/EXTERNAL.h b/e2sim/asn1c/EXTERNAL.h new file mode 100644 index 0000000..bea9e44 --- /dev/null +++ b/e2sim/asn1c/EXTERNAL.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ASN1C-UsefulInformationObjectClasses" + * found in "/usr/local/share/asn1c/standard-modules/ASN1C-UsefulInformationObjectClasses.asn1" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _EXTERNAL_H_ +#define _EXTERNAL_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OBJECT_IDENTIFIER.h" +#include "NativeInteger.h" +#include "ObjectDescriptor.h" +#include "ANY.h" +#include "OCTET_STRING.h" +#include "BIT_STRING.h" +#include "constr_CHOICE.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EXTERNAL__encoding_PR { + EXTERNAL__encoding_PR_NOTHING, /* No components present */ + EXTERNAL__encoding_PR_single_ASN1_type, + EXTERNAL__encoding_PR_octet_aligned, + EXTERNAL__encoding_PR_arbitrary +} EXTERNAL__encoding_PR; + +/* EXTERNAL */ +typedef struct EXTERNAL { + OBJECT_IDENTIFIER_t *direct_reference; /* OPTIONAL */ + long *indirect_reference; /* OPTIONAL */ + ObjectDescriptor_t *data_value_descriptor; /* OPTIONAL */ + struct EXTERNAL__encoding { + EXTERNAL__encoding_PR present; + union EXTERNAL__encoding_u { + ANY_t single_ASN1_type; + OCTET_STRING_t octet_aligned; + BIT_STRING_t arbitrary; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } encoding; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EXTERNAL_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EXTERNAL; + +#ifdef __cplusplus +} +#endif + +#endif /* _EXTERNAL_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/ErrorIndication.c b/e2sim/asn1c/ErrorIndication.c new file mode 100644 index 0000000..1fd8e87 --- /dev/null +++ b/e2sim/asn1c/ErrorIndication.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "ErrorIndication.h" + +asn_TYPE_member_t asn_MBR_ErrorIndication_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_85P20, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ErrorIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ErrorIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_specs_1 = { + sizeof(struct ErrorIndication), + offsetof(struct ErrorIndication, _asn_ctx), + asn_MAP_ErrorIndication_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_ErrorIndication = { + "ErrorIndication", + "ErrorIndication", + &asn_OP_SEQUENCE, + asn_DEF_ErrorIndication_tags_1, + sizeof(asn_DEF_ErrorIndication_tags_1) + /sizeof(asn_DEF_ErrorIndication_tags_1[0]), /* 1 */ + asn_DEF_ErrorIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_ErrorIndication_tags_1) + /sizeof(asn_DEF_ErrorIndication_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_ErrorIndication_1, + 1, /* Elements count */ + &asn_SPC_ErrorIndication_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/ErrorIndication.h b/e2sim/asn1c/ErrorIndication.h new file mode 100644 index 0000000..4916380 --- /dev/null +++ b/e2sim/asn1c/ErrorIndication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _ErrorIndication_H_ +#define _ErrorIndication_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ErrorIndication */ +typedef struct ErrorIndication { + ProtocolIE_Container_85P20_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ErrorIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ErrorIndication; +extern asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_specs_1; +extern asn_TYPE_member_t asn_MBR_ErrorIndication_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ErrorIndication_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/FiveGS-TAC.c b/e2sim/asn1c/FiveGS-TAC.c new file mode 100644 index 0000000..d01a26c --- /dev/null +++ b/e2sim/asn1c/FiveGS-TAC.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "FiveGS-TAC.h" + +int +FiveGS_TAC_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; + + 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 == 3UL)) { + /* 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 OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_FiveGS_TAC_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_FiveGS_TAC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_FiveGS_TAC = { + "FiveGS-TAC", + "FiveGS-TAC", + &asn_OP_OCTET_STRING, + asn_DEF_FiveGS_TAC_tags_1, + sizeof(asn_DEF_FiveGS_TAC_tags_1) + /sizeof(asn_DEF_FiveGS_TAC_tags_1[0]), /* 1 */ + asn_DEF_FiveGS_TAC_tags_1, /* Same as above */ + sizeof(asn_DEF_FiveGS_TAC_tags_1) + /sizeof(asn_DEF_FiveGS_TAC_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_FiveGS_TAC_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + FiveGS_TAC_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/e2sim/asn1c/FiveGS-TAC.h b/e2sim/asn1c/FiveGS-TAC.h new file mode 100644 index 0000000..acdf35f --- /dev/null +++ b/e2sim/asn1c/FiveGS-TAC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _FiveGS_TAC_H_ +#define _FiveGS_TAC_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* FiveGS-TAC */ +typedef OCTET_STRING_t FiveGS_TAC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FiveGS_TAC; +asn_struct_free_f FiveGS_TAC_free; +asn_struct_print_f FiveGS_TAC_print; +asn_constr_check_f FiveGS_TAC_constraint; +ber_type_decoder_f FiveGS_TAC_decode_ber; +der_type_encoder_f FiveGS_TAC_encode_der; +xer_type_decoder_f FiveGS_TAC_decode_xer; +xer_type_encoder_f FiveGS_TAC_encode_xer; +jer_type_encoder_f FiveGS_TAC_encode_jer; +per_type_decoder_f FiveGS_TAC_decode_uper; +per_type_encoder_f FiveGS_TAC_encode_uper; +per_type_decoder_f FiveGS_TAC_decode_aper; +per_type_encoder_f FiveGS_TAC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _FiveGS_TAC_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/FiveQI.c b/e2sim/asn1c/FiveQI.c new file mode 100644 index 0000000..dbdf727 --- /dev/null +++ b/e2sim/asn1c/FiveQI.c @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "FiveQI.h" + +int +FiveQI_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 >= 0L && value <= 255L)) { + /* 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. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_FiveQI_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_FiveQI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_FiveQI = { + "FiveQI", + "FiveQI", + &asn_OP_NativeInteger, + asn_DEF_FiveQI_tags_1, + sizeof(asn_DEF_FiveQI_tags_1) + /sizeof(asn_DEF_FiveQI_tags_1[0]), /* 1 */ + asn_DEF_FiveQI_tags_1, /* Same as above */ + sizeof(asn_DEF_FiveQI_tags_1) + /sizeof(asn_DEF_FiveQI_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_FiveQI_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + FiveQI_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/FiveQI.h b/e2sim/asn1c/FiveQI.h new file mode 100644 index 0000000..02c32f5 --- /dev/null +++ b/e2sim/asn1c/FiveQI.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _FiveQI_H_ +#define _FiveQI_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* FiveQI */ +typedef long FiveQI_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_FiveQI_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_FiveQI; +asn_struct_free_f FiveQI_free; +asn_struct_print_f FiveQI_print; +asn_constr_check_f FiveQI_constraint; +ber_type_decoder_f FiveQI_decode_ber; +der_type_encoder_f FiveQI_encode_der; +xer_type_decoder_f FiveQI_decode_xer; +xer_type_encoder_f FiveQI_encode_xer; +jer_type_encoder_f FiveQI_encode_jer; +per_type_decoder_f FiveQI_decode_uper; +per_type_encoder_f FiveQI_encode_uper; +per_type_decoder_f FiveQI_decode_aper; +per_type_encoder_f FiveQI_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _FiveQI_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/FreqBandNrItem.c b/e2sim/asn1c/FreqBandNrItem.c new file mode 100644 index 0000000..df0977e --- /dev/null +++ b/e2sim/asn1c/FreqBandNrItem.c @@ -0,0 +1,98 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "FreqBandNrItem.h" + +static int +memb_freqBandIndicatorNr_constraint_1(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 >= 1L && value <= 1024L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_freqBandIndicatorNr_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 10, 10, 1, 1024 } /* (1..1024,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_FreqBandNrItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct FreqBandNrItem, freqBandIndicatorNr), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_freqBandIndicatorNr_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_freqBandIndicatorNr_constraint_1 + }, + 0, 0, /* No default value */ + "freqBandIndicatorNr" + }, +}; +static const ber_tlv_tag_t asn_DEF_FreqBandNrItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_FreqBandNrItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* freqBandIndicatorNr */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_FreqBandNrItem_specs_1 = { + sizeof(struct FreqBandNrItem), + offsetof(struct FreqBandNrItem, _asn_ctx), + asn_MAP_FreqBandNrItem_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_FreqBandNrItem = { + "FreqBandNrItem", + "FreqBandNrItem", + &asn_OP_SEQUENCE, + asn_DEF_FreqBandNrItem_tags_1, + sizeof(asn_DEF_FreqBandNrItem_tags_1) + /sizeof(asn_DEF_FreqBandNrItem_tags_1[0]), /* 1 */ + asn_DEF_FreqBandNrItem_tags_1, /* Same as above */ + sizeof(asn_DEF_FreqBandNrItem_tags_1) + /sizeof(asn_DEF_FreqBandNrItem_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_FreqBandNrItem_1, + 1, /* Elements count */ + &asn_SPC_FreqBandNrItem_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/FreqBandNrItem.h b/e2sim/asn1c/FreqBandNrItem.h new file mode 100644 index 0000000..00d81bf --- /dev/null +++ b/e2sim/asn1c/FreqBandNrItem.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _FreqBandNrItem_H_ +#define _FreqBandNrItem_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* FreqBandNrItem */ +typedef struct FreqBandNrItem { + long freqBandIndicatorNr; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FreqBandNrItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FreqBandNrItem; + +#ifdef __cplusplus +} +#endif + +#endif /* _FreqBandNrItem_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/GNB-CU-CP-UE-E1AP-ID.c b/e2sim/asn1c/GNB-CU-CP-UE-E1AP-ID.c new file mode 100644 index 0000000..51be69c --- /dev/null +++ b/e2sim/asn1c/GNB-CU-CP-UE-E1AP-ID.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "GNB-CU-CP-UE-E1AP-ID.h" + +int +GNB_CU_CP_UE_E1AP_ID_constraint(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; + } + + + /* Constraint check succeeded */ + return 0; +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_GNB_CU_CP_UE_E1AP_ID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +const asn_INTEGER_specifics_t asn_SPC_GNB_CU_CP_UE_E1AP_ID_specs_1 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_GNB_CU_CP_UE_E1AP_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_GNB_CU_CP_UE_E1AP_ID = { + "GNB-CU-CP-UE-E1AP-ID", + "GNB-CU-CP-UE-E1AP-ID", + &asn_OP_NativeInteger, + asn_DEF_GNB_CU_CP_UE_E1AP_ID_tags_1, + sizeof(asn_DEF_GNB_CU_CP_UE_E1AP_ID_tags_1) + /sizeof(asn_DEF_GNB_CU_CP_UE_E1AP_ID_tags_1[0]), /* 1 */ + asn_DEF_GNB_CU_CP_UE_E1AP_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_GNB_CU_CP_UE_E1AP_ID_tags_1) + /sizeof(asn_DEF_GNB_CU_CP_UE_E1AP_ID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_GNB_CU_CP_UE_E1AP_ID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + GNB_CU_CP_UE_E1AP_ID_constraint + }, + 0, 0, /* No members */ + &asn_SPC_GNB_CU_CP_UE_E1AP_ID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/GNB-CU-CP-UE-E1AP-ID.h b/e2sim/asn1c/GNB-CU-CP-UE-E1AP-ID.h new file mode 100644 index 0000000..f4ddebc --- /dev/null +++ b/e2sim/asn1c/GNB-CU-CP-UE-E1AP-ID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _GNB_CU_CP_UE_E1AP_ID_H_ +#define _GNB_CU_CP_UE_E1AP_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* GNB-CU-CP-UE-E1AP-ID */ +typedef unsigned long GNB_CU_CP_UE_E1AP_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_GNB_CU_CP_UE_E1AP_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_CP_UE_E1AP_ID; +extern const asn_INTEGER_specifics_t asn_SPC_GNB_CU_CP_UE_E1AP_ID_specs_1; +asn_struct_free_f GNB_CU_CP_UE_E1AP_ID_free; +asn_struct_print_f GNB_CU_CP_UE_E1AP_ID_print; +asn_constr_check_f GNB_CU_CP_UE_E1AP_ID_constraint; +ber_type_decoder_f GNB_CU_CP_UE_E1AP_ID_decode_ber; +der_type_encoder_f GNB_CU_CP_UE_E1AP_ID_encode_der; +xer_type_decoder_f GNB_CU_CP_UE_E1AP_ID_decode_xer; +xer_type_encoder_f GNB_CU_CP_UE_E1AP_ID_encode_xer; +jer_type_encoder_f GNB_CU_CP_UE_E1AP_ID_encode_jer; +per_type_decoder_f GNB_CU_CP_UE_E1AP_ID_decode_uper; +per_type_encoder_f GNB_CU_CP_UE_E1AP_ID_encode_uper; +per_type_decoder_f GNB_CU_CP_UE_E1AP_ID_decode_aper; +per_type_encoder_f GNB_CU_CP_UE_E1AP_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNB_CU_CP_UE_E1AP_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/GNB-CU-UE-F1AP-ID.c b/e2sim/asn1c/GNB-CU-UE-F1AP-ID.c new file mode 100644 index 0000000..736da04 --- /dev/null +++ b/e2sim/asn1c/GNB-CU-UE-F1AP-ID.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "GNB-CU-UE-F1AP-ID.h" + +int +GNB_CU_UE_F1AP_ID_constraint(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; + } + + + /* Constraint check succeeded */ + return 0; +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_GNB_CU_UE_F1AP_ID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +const asn_INTEGER_specifics_t asn_SPC_GNB_CU_UE_F1AP_ID_specs_1 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_GNB_CU_UE_F1AP_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_GNB_CU_UE_F1AP_ID = { + "GNB-CU-UE-F1AP-ID", + "GNB-CU-UE-F1AP-ID", + &asn_OP_NativeInteger, + asn_DEF_GNB_CU_UE_F1AP_ID_tags_1, + sizeof(asn_DEF_GNB_CU_UE_F1AP_ID_tags_1) + /sizeof(asn_DEF_GNB_CU_UE_F1AP_ID_tags_1[0]), /* 1 */ + asn_DEF_GNB_CU_UE_F1AP_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_GNB_CU_UE_F1AP_ID_tags_1) + /sizeof(asn_DEF_GNB_CU_UE_F1AP_ID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_GNB_CU_UE_F1AP_ID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + GNB_CU_UE_F1AP_ID_constraint + }, + 0, 0, /* No members */ + &asn_SPC_GNB_CU_UE_F1AP_ID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/GNB-CU-UE-F1AP-ID.h b/e2sim/asn1c/GNB-CU-UE-F1AP-ID.h new file mode 100644 index 0000000..e48e17f --- /dev/null +++ b/e2sim/asn1c/GNB-CU-UE-F1AP-ID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _GNB_CU_UE_F1AP_ID_H_ +#define _GNB_CU_UE_F1AP_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* GNB-CU-UE-F1AP-ID */ +typedef unsigned long GNB_CU_UE_F1AP_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_GNB_CU_UE_F1AP_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_UE_F1AP_ID; +extern const asn_INTEGER_specifics_t asn_SPC_GNB_CU_UE_F1AP_ID_specs_1; +asn_struct_free_f GNB_CU_UE_F1AP_ID_free; +asn_struct_print_f GNB_CU_UE_F1AP_ID_print; +asn_constr_check_f GNB_CU_UE_F1AP_ID_constraint; +ber_type_decoder_f GNB_CU_UE_F1AP_ID_decode_ber; +der_type_encoder_f GNB_CU_UE_F1AP_ID_encode_der; +xer_type_decoder_f GNB_CU_UE_F1AP_ID_decode_xer; +xer_type_encoder_f GNB_CU_UE_F1AP_ID_encode_xer; +jer_type_encoder_f GNB_CU_UE_F1AP_ID_encode_jer; +per_type_decoder_f GNB_CU_UE_F1AP_ID_decode_uper; +per_type_encoder_f GNB_CU_UE_F1AP_ID_encode_uper; +per_type_decoder_f GNB_CU_UE_F1AP_ID_decode_aper; +per_type_encoder_f GNB_CU_UE_F1AP_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNB_CU_UE_F1AP_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/GNB-ID-Choice.c b/e2sim/asn1c/GNB-ID-Choice.c new file mode 100644 index 0000000..e29878d --- /dev/null +++ b/e2sim/asn1c/GNB-ID-Choice.c @@ -0,0 +1,108 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "GNB-ID-Choice.h" + +static int +memb_gnb_ID_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 >= 22UL && size <= 32UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_gnb_ID_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 22, 32 } /* (SIZE(22..32)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_GNB_ID_Choice_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_GNB_ID_Choice_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNB_ID_Choice, choice.gnb_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_gnb_ID_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_gnb_ID_constraint_1 + }, + 0, 0, /* No default value */ + "gnb-ID" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_GNB_ID_Choice_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gnb-ID */ +}; +asn_CHOICE_specifics_t asn_SPC_GNB_ID_Choice_specs_1 = { + sizeof(struct GNB_ID_Choice), + offsetof(struct GNB_ID_Choice, _asn_ctx), + offsetof(struct GNB_ID_Choice, present), + sizeof(((struct GNB_ID_Choice *)0)->present), + asn_MAP_GNB_ID_Choice_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, + 1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_GNB_ID_Choice = { + "GNB-ID-Choice", + "GNB-ID-Choice", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_GNB_ID_Choice_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_GNB_ID_Choice_1, + 1, /* Elements count */ + &asn_SPC_GNB_ID_Choice_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/GNB-ID-Choice.h b/e2sim/asn1c/GNB-ID-Choice.h new file mode 100644 index 0000000..55617eb --- /dev/null +++ b/e2sim/asn1c/GNB-ID-Choice.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _GNB_ID_Choice_H_ +#define _GNB_ID_Choice_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GNB_ID_Choice_PR { + GNB_ID_Choice_PR_NOTHING, /* No components present */ + GNB_ID_Choice_PR_gnb_ID + /* Extensions may appear below */ + +} GNB_ID_Choice_PR; + +/* GNB-ID-Choice */ +typedef struct GNB_ID_Choice { + GNB_ID_Choice_PR present; + union GNB_ID_Choice_u { + BIT_STRING_t gnb_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNB_ID_Choice_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GNB_ID_Choice; +extern asn_CHOICE_specifics_t asn_SPC_GNB_ID_Choice_specs_1; +extern asn_TYPE_member_t asn_MBR_GNB_ID_Choice_1[1]; +extern asn_per_constraints_t asn_PER_type_GNB_ID_Choice_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNB_ID_Choice_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/GNB-ID.c b/e2sim/asn1c/GNB-ID.c new file mode 100644 index 0000000..0f798be --- /dev/null +++ b/e2sim/asn1c/GNB-ID.c @@ -0,0 +1,108 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "GNB-ID.h" + +static int +memb_gNB_ID_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 >= 22UL && size <= 32UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_gNB_ID_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 22, 32 } /* (SIZE(22..32)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_GNB_ID_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_GNB_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNB_ID, choice.gNB_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_gNB_ID_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_gNB_ID_constraint_1 + }, + 0, 0, /* No default value */ + "gNB-ID" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_GNB_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gNB-ID */ +}; +asn_CHOICE_specifics_t asn_SPC_GNB_ID_specs_1 = { + sizeof(struct GNB_ID), + offsetof(struct GNB_ID, _asn_ctx), + offsetof(struct GNB_ID, present), + sizeof(((struct GNB_ID *)0)->present), + asn_MAP_GNB_ID_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, + 1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_GNB_ID = { + "GNB-ID", + "GNB-ID", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_GNB_ID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_GNB_ID_1, + 1, /* Elements count */ + &asn_SPC_GNB_ID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/GNB-ID.h b/e2sim/asn1c/GNB-ID.h new file mode 100644 index 0000000..7403024 --- /dev/null +++ b/e2sim/asn1c/GNB-ID.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _GNB_ID_H_ +#define _GNB_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GNB_ID_PR { + GNB_ID_PR_NOTHING, /* No components present */ + GNB_ID_PR_gNB_ID + /* Extensions may appear below */ + +} GNB_ID_PR; + +/* GNB-ID */ +typedef struct GNB_ID { + GNB_ID_PR present; + union GNB_ID_u { + BIT_STRING_t gNB_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNB_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GNB_ID; +extern asn_CHOICE_specifics_t asn_SPC_GNB_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_GNB_ID_1[1]; +extern asn_per_constraints_t asn_PER_type_GNB_ID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNB_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/GUAMI.c b/e2sim/asn1c/GUAMI.c new file mode 100644 index 0000000..7ab6758 --- /dev/null +++ b/e2sim/asn1c/GUAMI.c @@ -0,0 +1,120 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "GUAMI.h" + +asn_TYPE_member_t asn_MBR_GUAMI_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GUAMI, pLMNIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PLMNIdentity, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pLMNIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct GUAMI, aMFRegionID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AMFRegionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "aMFRegionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct GUAMI, aMFSetID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AMFSetID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "aMFSetID" + }, + { ATF_NOFLAGS, 0, offsetof(struct GUAMI, aMFPointer), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AMFPointer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "aMFPointer" + }, +}; +static const ber_tlv_tag_t asn_DEF_GUAMI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GUAMI_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* aMFRegionID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* aMFSetID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* aMFPointer */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GUAMI_specs_1 = { + sizeof(struct GUAMI), + offsetof(struct GUAMI, _asn_ctx), + asn_MAP_GUAMI_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GUAMI = { + "GUAMI", + "GUAMI", + &asn_OP_SEQUENCE, + asn_DEF_GUAMI_tags_1, + sizeof(asn_DEF_GUAMI_tags_1) + /sizeof(asn_DEF_GUAMI_tags_1[0]), /* 1 */ + asn_DEF_GUAMI_tags_1, /* Same as above */ + sizeof(asn_DEF_GUAMI_tags_1) + /sizeof(asn_DEF_GUAMI_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_GUAMI_1, + 4, /* Elements count */ + &asn_SPC_GUAMI_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/GUAMI.h b/e2sim/asn1c/GUAMI.h new file mode 100644 index 0000000..867d63c --- /dev/null +++ b/e2sim/asn1c/GUAMI.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _GUAMI_H_ +#define _GUAMI_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "PLMNIdentity.h" +#include "AMFRegionID.h" +#include "AMFSetID.h" +#include "AMFPointer.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* GUAMI */ +typedef struct GUAMI { + PLMNIdentity_t pLMNIdentity; + AMFRegionID_t aMFRegionID; + AMFSetID_t aMFSetID; + AMFPointer_t aMFPointer; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GUAMI_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GUAMI; +extern asn_SEQUENCE_specifics_t asn_SPC_GUAMI_specs_1; +extern asn_TYPE_member_t asn_MBR_GUAMI_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GUAMI_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/GUMMEI.c b/e2sim/asn1c/GUMMEI.c new file mode 100644 index 0000000..07c0fa4 --- /dev/null +++ b/e2sim/asn1c/GUMMEI.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "GUMMEI.h" + +asn_TYPE_member_t asn_MBR_GUMMEI_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GUMMEI, pLMN_Identity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PLMNIdentity, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pLMN-Identity" + }, + { ATF_NOFLAGS, 0, offsetof(struct GUMMEI, mME_Group_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MME_Group_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "mME-Group-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct GUMMEI, mME_Code), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MME_Code, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "mME-Code" + }, +}; +static const ber_tlv_tag_t asn_DEF_GUMMEI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GUMMEI_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mME-Group-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* mME-Code */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GUMMEI_specs_1 = { + sizeof(struct GUMMEI), + offsetof(struct GUMMEI, _asn_ctx), + asn_MAP_GUMMEI_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_GUMMEI = { + "GUMMEI", + "GUMMEI", + &asn_OP_SEQUENCE, + asn_DEF_GUMMEI_tags_1, + sizeof(asn_DEF_GUMMEI_tags_1) + /sizeof(asn_DEF_GUMMEI_tags_1[0]), /* 1 */ + asn_DEF_GUMMEI_tags_1, /* Same as above */ + sizeof(asn_DEF_GUMMEI_tags_1) + /sizeof(asn_DEF_GUMMEI_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_GUMMEI_1, + 3, /* Elements count */ + &asn_SPC_GUMMEI_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/GUMMEI.h b/e2sim/asn1c/GUMMEI.h new file mode 100644 index 0000000..c4c3528 --- /dev/null +++ b/e2sim/asn1c/GUMMEI.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _GUMMEI_H_ +#define _GUMMEI_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "PLMNIdentity.h" +#include "MME-Group-ID.h" +#include "MME-Code.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* GUMMEI */ +typedef struct GUMMEI { + PLMNIdentity_t pLMN_Identity; + MME_Group_ID_t mME_Group_ID; + MME_Code_t mME_Code; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GUMMEI_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GUMMEI; +extern asn_SEQUENCE_specifics_t asn_SPC_GUMMEI_specs_1; +extern asn_TYPE_member_t asn_MBR_GUMMEI_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GUMMEI_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/GlobalE2node-ID.c b/e2sim/asn1c/GlobalE2node-ID.c new file mode 100644 index 0000000..b050e6a --- /dev/null +++ b/e2sim/asn1c/GlobalE2node-ID.c @@ -0,0 +1,128 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "GlobalE2node-ID.h" + +#include "GlobalE2node-gNB-ID.h" +#include "GlobalE2node-en-gNB-ID.h" +#include "GlobalE2node-ng-eNB-ID.h" +#include "GlobalE2node-eNB-ID.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_GlobalE2node_ID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_GlobalE2node_ID_1[] = { + { ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.gNB), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GlobalE2node_gNB_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "gNB" + }, + { ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.en_gNB), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GlobalE2node_en_gNB_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "en-gNB" + }, + { ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.ng_eNB), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GlobalE2node_ng_eNB_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ng-eNB" + }, + { ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.eNB), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GlobalE2node_eNB_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "eNB" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-gNB */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ng-eNB */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* eNB */ +}; +asn_CHOICE_specifics_t asn_SPC_GlobalE2node_ID_specs_1 = { + sizeof(struct GlobalE2node_ID), + offsetof(struct GlobalE2node_ID, _asn_ctx), + offsetof(struct GlobalE2node_ID, present), + sizeof(((struct GlobalE2node_ID *)0)->present), + asn_MAP_GlobalE2node_ID_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, + 4 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ID = { + "GlobalE2node-ID", + "GlobalE2node-ID", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_GlobalE2node_ID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_GlobalE2node_ID_1, + 4, /* Elements count */ + &asn_SPC_GlobalE2node_ID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/GlobalE2node-ID.h b/e2sim/asn1c/GlobalE2node-ID.h new file mode 100644 index 0000000..21315b6 --- /dev/null +++ b/e2sim/asn1c/GlobalE2node-ID.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _GlobalE2node_ID_H_ +#define _GlobalE2node_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GlobalE2node_ID_PR { + GlobalE2node_ID_PR_NOTHING, /* No components present */ + GlobalE2node_ID_PR_gNB, + GlobalE2node_ID_PR_en_gNB, + GlobalE2node_ID_PR_ng_eNB, + GlobalE2node_ID_PR_eNB + /* Extensions may appear below */ + +} GlobalE2node_ID_PR; + +/* Forward declarations */ +struct GlobalE2node_gNB_ID; +struct GlobalE2node_en_gNB_ID; +struct GlobalE2node_ng_eNB_ID; +struct GlobalE2node_eNB_ID; + +/* GlobalE2node-ID */ +typedef struct GlobalE2node_ID { + GlobalE2node_ID_PR present; + union GlobalE2node_ID_u { + struct GlobalE2node_gNB_ID *gNB; + struct GlobalE2node_en_gNB_ID *en_gNB; + struct GlobalE2node_ng_eNB_ID *ng_eNB; + struct GlobalE2node_eNB_ID *eNB; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GlobalE2node_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ID; +extern asn_CHOICE_specifics_t asn_SPC_GlobalE2node_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_GlobalE2node_ID_1[4]; +extern asn_per_constraints_t asn_PER_type_GlobalE2node_ID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _GlobalE2node_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/GlobalE2node-eNB-ID.c b/e2sim/asn1c/GlobalE2node-eNB-ID.c new file mode 100644 index 0000000..b4a8dcd --- /dev/null +++ b/e2sim/asn1c/GlobalE2node-eNB-ID.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "GlobalE2node-eNB-ID.h" + +asn_TYPE_member_t asn_MBR_GlobalE2node_eNB_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_eNB_ID, global_eNB_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2AP_IEs_GlobalENB_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "global-eNB-ID" + }, +}; +static const ber_tlv_tag_t asn_DEF_GlobalE2node_eNB_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_eNB_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-eNB-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_eNB_ID_specs_1 = { + sizeof(struct GlobalE2node_eNB_ID), + offsetof(struct GlobalE2node_eNB_ID, _asn_ctx), + asn_MAP_GlobalE2node_eNB_ID_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_GlobalE2node_eNB_ID = { + "GlobalE2node-eNB-ID", + "GlobalE2node-eNB-ID", + &asn_OP_SEQUENCE, + asn_DEF_GlobalE2node_eNB_ID_tags_1, + sizeof(asn_DEF_GlobalE2node_eNB_ID_tags_1) + /sizeof(asn_DEF_GlobalE2node_eNB_ID_tags_1[0]), /* 1 */ + asn_DEF_GlobalE2node_eNB_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_GlobalE2node_eNB_ID_tags_1) + /sizeof(asn_DEF_GlobalE2node_eNB_ID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_GlobalE2node_eNB_ID_1, + 1, /* Elements count */ + &asn_SPC_GlobalE2node_eNB_ID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/GlobalE2node-eNB-ID.h b/e2sim/asn1c/GlobalE2node-eNB-ID.h new file mode 100644 index 0000000..96aa892 --- /dev/null +++ b/e2sim/asn1c/GlobalE2node-eNB-ID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _GlobalE2node_eNB_ID_H_ +#define _GlobalE2node_eNB_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "E2AP-IEs_GlobalENB-ID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* GlobalE2node-eNB-ID */ +typedef struct GlobalE2node_eNB_ID { + E2AP_IEs_GlobalENB_ID_t global_eNB_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GlobalE2node_eNB_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_eNB_ID; +extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_eNB_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_GlobalE2node_eNB_ID_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GlobalE2node_eNB_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/GlobalE2node-en-gNB-ID.c b/e2sim/asn1c/GlobalE2node-en-gNB-ID.c new file mode 100644 index 0000000..6e6a834 --- /dev/null +++ b/e2sim/asn1c/GlobalE2node-en-gNB-ID.c @@ -0,0 +1,104 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#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_en_gNB_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2AP_IEs_GlobalenGNB_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "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_E2AP_IEs_GNB_CU_UP_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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_E2AP_IEs_GNB_DU_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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-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, + 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", + "GlobalE2node-en-gNB-ID", + &asn_OP_SEQUENCE, + asn_DEF_GlobalE2node_en_gNB_ID_tags_1, + sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1) + /sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1[0]), /* 1 */ + asn_DEF_GlobalE2node_en_gNB_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1) + /sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_GlobalE2node_en_gNB_ID_1, + 3, /* Elements count */ + &asn_SPC_GlobalE2node_en_gNB_ID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/GlobalE2node-en-gNB-ID.h b/e2sim/asn1c/GlobalE2node-en-gNB-ID.h new file mode 100644 index 0000000..ba9b7fd --- /dev/null +++ b/e2sim/asn1c/GlobalE2node-en-gNB-ID.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _GlobalE2node_en_gNB_ID_H_ +#define _GlobalE2node_en_gNB_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "E2AP-IEs_GlobalenGNB-ID.h" +#include "E2AP-IEs_GNB-CU-UP-ID.h" +#include "E2AP-IEs_GNB-DU-ID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* GlobalE2node-en-gNB-ID */ +typedef struct GlobalE2node_en_gNB_ID { + E2AP_IEs_GlobalenGNB_ID_t global_en_gNB_ID; + E2AP_IEs_GNB_CU_UP_ID_t *en_gNB_CU_UP_ID; /* OPTIONAL */ + E2AP_IEs_GNB_DU_ID_t *en_gNB_DU_ID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GlobalE2node_en_gNB_ID_t; + +/* 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[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GlobalE2node_en_gNB_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/GlobalE2node-gNB-ID.c b/e2sim/asn1c/GlobalE2node-gNB-ID.c new file mode 100644 index 0000000..b4c7bb5 --- /dev/null +++ b/e2sim/asn1c/GlobalE2node-gNB-ID.c @@ -0,0 +1,123 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "GlobalE2node-gNB-ID.h" + +#include "E2AP-IEs_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)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GlobalgNB_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "global-gNB-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_E2AP_IEs_GlobalenGNB_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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_E2AP_IEs_GNB_CU_UP_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "gNB-CU-UP-ID" + }, + { ATF_POINTER, 1, offsetof(struct GlobalE2node_gNB_ID, gNB_DU_ID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2AP_IEs_GNB_DU_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "gNB-DU-ID" + }, +}; +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 }, /* 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, + 4, /* Count of tags in the map */ + asn_MAP_GlobalE2node_gNB_ID_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GlobalE2node_gNB_ID = { + "GlobalE2node-gNB-ID", + "GlobalE2node-gNB-ID", + &asn_OP_SEQUENCE, + asn_DEF_GlobalE2node_gNB_ID_tags_1, + sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1) + /sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1[0]), /* 1 */ + asn_DEF_GlobalE2node_gNB_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1) + /sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_GlobalE2node_gNB_ID_1, + 4, /* Elements count */ + &asn_SPC_GlobalE2node_gNB_ID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/GlobalE2node-gNB-ID.h b/e2sim/asn1c/GlobalE2node-gNB-ID.h new file mode 100644 index 0000000..a7162da --- /dev/null +++ b/e2sim/asn1c/GlobalE2node-gNB-ID.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _GlobalE2node_gNB_ID_H_ +#define _GlobalE2node_gNB_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "GlobalgNB-ID.h" +#include "E2AP-IEs_GNB-CU-UP-ID.h" +#include "E2AP-IEs_GNB-DU-ID.h" +#include "constr_SEQUENCE.h" + +#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 */ + E2AP_IEs_GNB_CU_UP_ID_t *gNB_CU_UP_ID; /* OPTIONAL */ + E2AP_IEs_GNB_DU_ID_t *gNB_DU_ID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GlobalE2node_gNB_ID_t; + +/* 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[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GlobalE2node_gNB_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/GlobalE2node-ng-eNB-ID.c b/e2sim/asn1c/GlobalE2node-ng-eNB-ID.c new file mode 100644 index 0000000..751d46d --- /dev/null +++ b/e2sim/asn1c/GlobalE2node-ng-eNB-ID.c @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "GlobalE2node-ng-eNB-ID.h" + +#include "E2AP-IEs_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)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GlobalngeNB_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 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_E2AP_IEs_GlobalENB_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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_E2AP_IEs_NGENB_DU_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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 | (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, + 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", + "GlobalE2node-ng-eNB-ID", + &asn_OP_SEQUENCE, + asn_DEF_GlobalE2node_ng_eNB_ID_tags_1, + sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1) + /sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1[0]), /* 1 */ + asn_DEF_GlobalE2node_ng_eNB_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1) + /sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_GlobalE2node_ng_eNB_ID_1, + 3, /* Elements count */ + &asn_SPC_GlobalE2node_ng_eNB_ID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/GlobalE2node-ng-eNB-ID.h b/e2sim/asn1c/GlobalE2node-ng-eNB-ID.h new file mode 100644 index 0000000..57e2b13 --- /dev/null +++ b/e2sim/asn1c/GlobalE2node-ng-eNB-ID.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _GlobalE2node_ng_eNB_ID_H_ +#define _GlobalE2node_ng_eNB_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "GlobalngeNB-ID.h" +#include "E2AP-IEs_NGENB-DU-ID.h" +#include "constr_SEQUENCE.h" + +#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 */ + E2AP_IEs_NGENB_DU_ID_t *ngENB_DU_ID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GlobalE2node_ng_eNB_ID_t; + +/* 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[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GlobalE2node_ng_eNB_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/GlobalGNB-ID.c b/e2sim/asn1c/GlobalGNB-ID.c new file mode 100644 index 0000000..e028b5b --- /dev/null +++ b/e2sim/asn1c/GlobalGNB-ID.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "GlobalGNB-ID.h" + +asn_TYPE_member_t asn_MBR_GlobalGNB_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GlobalGNB_ID, pLMNIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PLMNIdentity, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pLMNIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct GlobalGNB_ID, gNB_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_GNB_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "gNB-ID" + }, +}; +static const ber_tlv_tag_t asn_DEF_GlobalGNB_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GlobalGNB_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* gNB-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GlobalGNB_ID_specs_1 = { + sizeof(struct GlobalGNB_ID), + offsetof(struct GlobalGNB_ID, _asn_ctx), + asn_MAP_GlobalGNB_ID_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_GlobalGNB_ID = { + "GlobalGNB-ID", + "GlobalGNB-ID", + &asn_OP_SEQUENCE, + asn_DEF_GlobalGNB_ID_tags_1, + sizeof(asn_DEF_GlobalGNB_ID_tags_1) + /sizeof(asn_DEF_GlobalGNB_ID_tags_1[0]), /* 1 */ + asn_DEF_GlobalGNB_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_GlobalGNB_ID_tags_1) + /sizeof(asn_DEF_GlobalGNB_ID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_GlobalGNB_ID_1, + 2, /* Elements count */ + &asn_SPC_GlobalGNB_ID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/GlobalGNB-ID.h b/e2sim/asn1c/GlobalGNB-ID.h new file mode 100644 index 0000000..78d0eb1 --- /dev/null +++ b/e2sim/asn1c/GlobalGNB-ID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _GlobalGNB_ID_H_ +#define _GlobalGNB_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "PLMNIdentity.h" +#include "GNB-ID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* GlobalGNB-ID */ +typedef struct GlobalGNB_ID { + PLMNIdentity_t pLMNIdentity; + GNB_ID_t gNB_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GlobalGNB_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GlobalGNB_ID; +extern asn_SEQUENCE_specifics_t asn_SPC_GlobalGNB_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_GlobalGNB_ID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GlobalGNB_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/GlobalNG-RANNode-ID.c b/e2sim/asn1c/GlobalNG-RANNode-ID.c new file mode 100644 index 0000000..3a0da74 --- /dev/null +++ b/e2sim/asn1c/GlobalNG-RANNode-ID.c @@ -0,0 +1,90 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "GlobalNG-RANNode-ID.h" + +#include "GlobalgNB-ID.h" +#include "GlobalngeNB-ID.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_GlobalNG_RANNode_ID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_GlobalNG_RANNode_ID_1, + 2, /* Elements count */ + &asn_SPC_GlobalNG_RANNode_ID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/GlobalNG-RANNode-ID.h b/e2sim/asn1c/GlobalNG-RANNode-ID.h new file mode 100644 index 0000000..e53ce70 --- /dev/null +++ b/e2sim/asn1c/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 "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _GlobalNG_RANNode_ID_H_ +#define _GlobalNG_RANNode_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_CHOICE.h" + +#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 "asn_internal.h" diff --git a/e2sim/asn1c/GlobalNGRANNodeID.c b/e2sim/asn1c/GlobalNGRANNodeID.c new file mode 100644 index 0000000..4e6645a --- /dev/null +++ b/e2sim/asn1c/GlobalNGRANNodeID.c @@ -0,0 +1,90 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "GlobalNGRANNodeID.h" + +#include "GlobalGNB-ID.h" +#include "GlobalNgENB-ID.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_GlobalNGRANNodeID_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_GlobalNGRANNodeID_1[] = { + { ATF_POINTER, 0, offsetof(struct GlobalNGRANNodeID, choice.gNB), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GlobalGNB_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "gNB" + }, + { ATF_POINTER, 0, offsetof(struct GlobalNGRANNodeID, choice.ng_eNB), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GlobalNgENB_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ng-eNB" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_GlobalNGRANNodeID_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_GlobalNGRANNodeID_specs_1 = { + sizeof(struct GlobalNGRANNodeID), + offsetof(struct GlobalNGRANNodeID, _asn_ctx), + offsetof(struct GlobalNGRANNodeID, present), + sizeof(((struct GlobalNGRANNodeID *)0)->present), + asn_MAP_GlobalNGRANNodeID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_GlobalNGRANNodeID = { + "GlobalNGRANNodeID", + "GlobalNGRANNodeID", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_GlobalNGRANNodeID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_GlobalNGRANNodeID_1, + 2, /* Elements count */ + &asn_SPC_GlobalNGRANNodeID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/GlobalNGRANNodeID.h b/e2sim/asn1c/GlobalNGRANNodeID.h new file mode 100644 index 0000000..a48d0f4 --- /dev/null +++ b/e2sim/asn1c/GlobalNGRANNodeID.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _GlobalNGRANNodeID_H_ +#define _GlobalNGRANNodeID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GlobalNGRANNodeID_PR { + GlobalNGRANNodeID_PR_NOTHING, /* No components present */ + GlobalNGRANNodeID_PR_gNB, + GlobalNGRANNodeID_PR_ng_eNB + /* Extensions may appear below */ + +} GlobalNGRANNodeID_PR; + +/* Forward declarations */ +struct GlobalGNB_ID; +struct GlobalNgENB_ID; + +/* GlobalNGRANNodeID */ +typedef struct GlobalNGRANNodeID { + GlobalNGRANNodeID_PR present; + union GlobalNGRANNodeID_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; +} GlobalNGRANNodeID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GlobalNGRANNodeID; +extern asn_CHOICE_specifics_t asn_SPC_GlobalNGRANNodeID_specs_1; +extern asn_TYPE_member_t asn_MBR_GlobalNGRANNodeID_1[2]; +extern asn_per_constraints_t asn_PER_type_GlobalNGRANNodeID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _GlobalNGRANNodeID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/GlobalNgENB-ID.c b/e2sim/asn1c/GlobalNgENB-ID.c new file mode 100644 index 0000000..5b10b0a --- /dev/null +++ b/e2sim/asn1c/GlobalNgENB-ID.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "GlobalNgENB-ID.h" + +asn_TYPE_member_t asn_MBR_GlobalNgENB_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GlobalNgENB_ID, pLMNIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PLMNIdentity, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pLMNIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct GlobalNgENB_ID, ngENB_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NgENB_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ngENB-ID" + }, +}; +static const ber_tlv_tag_t asn_DEF_GlobalNgENB_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GlobalNgENB_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ngENB-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GlobalNgENB_ID_specs_1 = { + sizeof(struct GlobalNgENB_ID), + offsetof(struct GlobalNgENB_ID, _asn_ctx), + asn_MAP_GlobalNgENB_ID_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_GlobalNgENB_ID = { + "GlobalNgENB-ID", + "GlobalNgENB-ID", + &asn_OP_SEQUENCE, + asn_DEF_GlobalNgENB_ID_tags_1, + sizeof(asn_DEF_GlobalNgENB_ID_tags_1) + /sizeof(asn_DEF_GlobalNgENB_ID_tags_1[0]), /* 1 */ + asn_DEF_GlobalNgENB_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_GlobalNgENB_ID_tags_1) + /sizeof(asn_DEF_GlobalNgENB_ID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_GlobalNgENB_ID_1, + 2, /* Elements count */ + &asn_SPC_GlobalNgENB_ID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/GlobalNgENB-ID.h b/e2sim/asn1c/GlobalNgENB-ID.h new file mode 100644 index 0000000..7ad0c5f --- /dev/null +++ b/e2sim/asn1c/GlobalNgENB-ID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _GlobalNgENB_ID_H_ +#define _GlobalNgENB_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "PLMNIdentity.h" +#include "NgENB-ID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* GlobalNgENB-ID */ +typedef struct GlobalNgENB_ID { + PLMNIdentity_t pLMNIdentity; + NgENB_ID_t ngENB_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GlobalNgENB_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GlobalNgENB_ID; +extern asn_SEQUENCE_specifics_t asn_SPC_GlobalNgENB_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_GlobalNgENB_ID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GlobalNgENB_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/GlobalRIC-ID.c b/e2sim/asn1c/GlobalRIC-ID.c new file mode 100644 index 0000000..95a33fa --- /dev/null +++ b/e2sim/asn1c/GlobalRIC-ID.c @@ -0,0 +1,122 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "GlobalRIC-ID.h" + +static int +memb_ric_ID_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 == 20UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ric_ID_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +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_Identity, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pLMN-Identity" + }, + { ATF_NOFLAGS, 0, offsetof(struct GlobalRIC_ID, ric_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_ric_ID_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_ric_ID_constraint_1 + }, + 0, 0, /* No default value */ + "ric-ID" + }, +}; +static const ber_tlv_tag_t asn_DEF_GlobalRIC_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GlobalRIC_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ric-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GlobalRIC_ID_specs_1 = { + sizeof(struct GlobalRIC_ID), + offsetof(struct GlobalRIC_ID, _asn_ctx), + asn_MAP_GlobalRIC_ID_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_GlobalRIC_ID = { + "GlobalRIC-ID", + "GlobalRIC-ID", + &asn_OP_SEQUENCE, + asn_DEF_GlobalRIC_ID_tags_1, + sizeof(asn_DEF_GlobalRIC_ID_tags_1) + /sizeof(asn_DEF_GlobalRIC_ID_tags_1[0]), /* 1 */ + asn_DEF_GlobalRIC_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_GlobalRIC_ID_tags_1) + /sizeof(asn_DEF_GlobalRIC_ID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_GlobalRIC_ID_1, + 2, /* Elements count */ + &asn_SPC_GlobalRIC_ID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/GlobalRIC-ID.h b/e2sim/asn1c/GlobalRIC-ID.h new file mode 100644 index 0000000..89ad5d4 --- /dev/null +++ b/e2sim/asn1c/GlobalRIC-ID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _GlobalRIC_ID_H_ +#define _GlobalRIC_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "PLMN-Identity.h" +#include "BIT_STRING.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* GlobalRIC-ID */ +typedef struct GlobalRIC_ID { + PLMN_Identity_t pLMN_Identity; + BIT_STRING_t ric_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GlobalRIC_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GlobalRIC_ID; +extern asn_SEQUENCE_specifics_t asn_SPC_GlobalRIC_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_GlobalRIC_ID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GlobalRIC_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/GlobalgNB-ID.c b/e2sim/asn1c/GlobalgNB-ID.c new file mode 100644 index 0000000..e1c5373 --- /dev/null +++ b/e2sim/asn1c/GlobalgNB-ID.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "GlobalgNB-ID.h" + +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_Identity, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "plmn-id" + }, + { ATF_NOFLAGS, 0, offsetof(struct GlobalgNB_ID, gnb_id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_GNB_ID_Choice, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "gnb-id" + }, +}; +static const ber_tlv_tag_t asn_DEF_GlobalgNB_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GlobalgNB_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* plmn-id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* gnb-id */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GlobalgNB_ID_specs_1 = { + sizeof(struct GlobalgNB_ID), + offsetof(struct GlobalgNB_ID, _asn_ctx), + asn_MAP_GlobalgNB_ID_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_GlobalgNB_ID = { + "GlobalgNB-ID", + "GlobalgNB-ID", + &asn_OP_SEQUENCE, + asn_DEF_GlobalgNB_ID_tags_1, + sizeof(asn_DEF_GlobalgNB_ID_tags_1) + /sizeof(asn_DEF_GlobalgNB_ID_tags_1[0]), /* 1 */ + asn_DEF_GlobalgNB_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_GlobalgNB_ID_tags_1) + /sizeof(asn_DEF_GlobalgNB_ID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_GlobalgNB_ID_1, + 2, /* Elements count */ + &asn_SPC_GlobalgNB_ID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/GlobalgNB-ID.h b/e2sim/asn1c/GlobalgNB-ID.h new file mode 100644 index 0000000..05dad63 --- /dev/null +++ b/e2sim/asn1c/GlobalgNB-ID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _GlobalgNB_ID_H_ +#define _GlobalgNB_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "PLMN-Identity.h" +#include "GNB-ID-Choice.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* GlobalgNB-ID */ +typedef struct GlobalgNB_ID { + PLMN_Identity_t plmn_id; + GNB_ID_Choice_t gnb_id; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GlobalgNB_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GlobalgNB_ID; +extern asn_SEQUENCE_specifics_t asn_SPC_GlobalgNB_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_GlobalgNB_ID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GlobalgNB_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/GlobalngeNB-ID.c b/e2sim/asn1c/GlobalngeNB-ID.c new file mode 100644 index 0000000..171bd44 --- /dev/null +++ b/e2sim/asn1c/GlobalngeNB-ID.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "GlobalngeNB-ID.h" + +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_Identity, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "plmn-id" + }, + { ATF_NOFLAGS, 0, offsetof(struct GlobalngeNB_ID, enb_id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ENB_ID_Choice, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "enb-id" + }, +}; +static const ber_tlv_tag_t asn_DEF_GlobalngeNB_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GlobalngeNB_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* plmn-id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* enb-id */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GlobalngeNB_ID_specs_1 = { + sizeof(struct GlobalngeNB_ID), + offsetof(struct GlobalngeNB_ID, _asn_ctx), + asn_MAP_GlobalngeNB_ID_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_GlobalngeNB_ID = { + "GlobalngeNB-ID", + "GlobalngeNB-ID", + &asn_OP_SEQUENCE, + asn_DEF_GlobalngeNB_ID_tags_1, + sizeof(asn_DEF_GlobalngeNB_ID_tags_1) + /sizeof(asn_DEF_GlobalngeNB_ID_tags_1[0]), /* 1 */ + asn_DEF_GlobalngeNB_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_GlobalngeNB_ID_tags_1) + /sizeof(asn_DEF_GlobalngeNB_ID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_GlobalngeNB_ID_1, + 2, /* Elements count */ + &asn_SPC_GlobalngeNB_ID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/GlobalngeNB-ID.h b/e2sim/asn1c/GlobalngeNB-ID.h new file mode 100644 index 0000000..00e0a23 --- /dev/null +++ b/e2sim/asn1c/GlobalngeNB-ID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _GlobalngeNB_ID_H_ +#define _GlobalngeNB_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "PLMN-Identity.h" +#include "ENB-ID-Choice.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* GlobalngeNB-ID */ +typedef struct GlobalngeNB_ID { + PLMN_Identity_t plmn_id; + ENB_ID_Choice_t enb_id; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GlobalngeNB_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GlobalngeNB_ID; +extern asn_SEQUENCE_specifics_t asn_SPC_GlobalngeNB_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_GlobalngeNB_ID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GlobalngeNB_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/GranularityPeriod.c b/e2sim/asn1c/GranularityPeriod.c new file mode 100644 index 0000000..568669f --- /dev/null +++ b/e2sim/asn1c/GranularityPeriod.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "GranularityPeriod.h" + +int +GranularityPeriod_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + unsigned long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const unsigned long *)sptr; + + if((value >= 1UL && value <= 4294967295UL)) { + /* 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. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_GranularityPeriod_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, 1, 4294967295 } /* (1..4294967295) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +const asn_INTEGER_specifics_t asn_SPC_GranularityPeriod_specs_1 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_GranularityPeriod_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_GranularityPeriod = { + "GranularityPeriod", + "GranularityPeriod", + &asn_OP_NativeInteger, + asn_DEF_GranularityPeriod_tags_1, + sizeof(asn_DEF_GranularityPeriod_tags_1) + /sizeof(asn_DEF_GranularityPeriod_tags_1[0]), /* 1 */ + asn_DEF_GranularityPeriod_tags_1, /* Same as above */ + sizeof(asn_DEF_GranularityPeriod_tags_1) + /sizeof(asn_DEF_GranularityPeriod_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_GranularityPeriod_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + GranularityPeriod_constraint + }, + 0, 0, /* No members */ + &asn_SPC_GranularityPeriod_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/GranularityPeriod.h b/e2sim/asn1c/GranularityPeriod.h new file mode 100644 index 0000000..e8e1a9f --- /dev/null +++ b/e2sim/asn1c/GranularityPeriod.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _GranularityPeriod_H_ +#define _GranularityPeriod_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* GranularityPeriod */ +typedef unsigned long GranularityPeriod_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_GranularityPeriod_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_GranularityPeriod; +extern const asn_INTEGER_specifics_t asn_SPC_GranularityPeriod_specs_1; +asn_struct_free_f GranularityPeriod_free; +asn_struct_print_f GranularityPeriod_print; +asn_constr_check_f GranularityPeriod_constraint; +ber_type_decoder_f GranularityPeriod_decode_ber; +der_type_encoder_f GranularityPeriod_encode_der; +xer_type_decoder_f GranularityPeriod_decode_xer; +xer_type_encoder_f GranularityPeriod_encode_xer; +jer_type_encoder_f GranularityPeriod_encode_jer; +per_type_decoder_f GranularityPeriod_decode_uper; +per_type_encoder_f GranularityPeriod_encode_uper; +per_type_decoder_f GranularityPeriod_decode_aper; +per_type_encoder_f GranularityPeriod_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _GranularityPeriod_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/GraphicString.c b/e2sim/asn1c/GraphicString.c new file mode 100644 index 0000000..b761187 --- /dev/null +++ b/e2sim/asn1c/GraphicString.c @@ -0,0 +1,91 @@ +/*- + * Copyright (c) 2003 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * GraphicString basic type description. + */ +static const ber_tlv_tag_t asn_DEF_GraphicString_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (25 << 2)), /* [UNIVERSAL 25] IMPLICIT ...*/ + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */ +}; +asn_TYPE_operation_t asn_OP_GraphicString = { + OCTET_STRING_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + OCTET_STRING_print, /* non-ascii string */ +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + OCTET_STRING_compare, +#if !defined(ASN_DISABLE_BER_SUPPORT) + OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + OCTET_STRING_decode_xer_hex, + OCTET_STRING_encode_xer, /* Can't expect it to be ASCII/UTF8 */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + OCTET_STRING_encode_jer, /* Can't expect it to be ASCII/UTF8 */ +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + OCTET_STRING_decode_oer, + OCTET_STRING_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + OCTET_STRING_decode_uper, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + OCTET_STRING_decode_aper, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + OCTET_STRING_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_GraphicString = { + "GraphicString", + "GraphicString", + &asn_OP_GraphicString, + asn_DEF_GraphicString_tags, + sizeof(asn_DEF_GraphicString_tags) + / sizeof(asn_DEF_GraphicString_tags[0]) - 1, + asn_DEF_GraphicString_tags, + sizeof(asn_DEF_GraphicString_tags) + / sizeof(asn_DEF_GraphicString_tags[0]), + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + asn_generic_unknown_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; diff --git a/e2sim/asn1c/GraphicString.h b/e2sim/asn1c/GraphicString.h new file mode 100644 index 0000000..807e9d6 --- /dev/null +++ b/e2sim/asn1c/GraphicString.h @@ -0,0 +1,56 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _GraphicString_H_ +#define _GraphicString_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef OCTET_STRING_t GraphicString_t; /* Implemented via OCTET STRING */ + +extern asn_TYPE_descriptor_t asn_DEF_GraphicString; +extern asn_TYPE_operation_t asn_OP_GraphicString; + +#define GraphicString_free OCTET_STRING_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +#define GraphicString_print OCTET_STRING_print +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +#define GraphicString_compare OCTET_STRING_compare + +#define GraphicString_constraint asn_generic_unknown_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#define GraphicString_decode_ber OCTET_STRING_decode_ber +#define GraphicString_encode_der OCTET_STRING_encode_der +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +#define GraphicString_decode_xer OCTET_STRING_decode_xer_hex +#define GraphicString_encode_xer OCTET_STRING_encode_xer +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +#define GraphicString_encode_jer OCTET_STRING_encode_jer +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +#define GraphicString_decode_uper OCTET_STRING_decode_uper +#define GraphicString_encode_uper OCTET_STRING_encode_uper +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +#define GraphicString_decode_aper OCTET_STRING_decode_aper +#define GraphicString_encode_aper OCTET_STRING_encode_aper +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#ifdef __cplusplus +} +#endif + +#endif /* _GraphicString_H_ */ diff --git a/e2sim/asn1c/GroupID.c b/e2sim/asn1c/GroupID.c new file mode 100644 index 0000000..57b62c7 --- /dev/null +++ b/e2sim/asn1c/GroupID.c @@ -0,0 +1,88 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "GroupID.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_GroupID_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_GroupID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GroupID, choice.fiveGC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FiveQI, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "fiveGC" + }, + { ATF_NOFLAGS, 0, offsetof(struct GroupID, choice.ePC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_QCI, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ePC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_GroupID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fiveGC */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ePC */ +}; +static asn_CHOICE_specifics_t asn_SPC_GroupID_specs_1 = { + sizeof(struct GroupID), + offsetof(struct GroupID, _asn_ctx), + offsetof(struct GroupID, present), + sizeof(((struct GroupID *)0)->present), + asn_MAP_GroupID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_GroupID = { + "GroupID", + "GroupID", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_GroupID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_GroupID_1, + 2, /* Elements count */ + &asn_SPC_GroupID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/GroupID.h b/e2sim/asn1c/GroupID.h new file mode 100644 index 0000000..7cc737e --- /dev/null +++ b/e2sim/asn1c/GroupID.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _GroupID_H_ +#define _GroupID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "FiveQI.h" +#include "QCI.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GroupID_PR { + GroupID_PR_NOTHING, /* No components present */ + GroupID_PR_fiveGC, + GroupID_PR_ePC + /* Extensions may appear below */ + +} GroupID_PR; + +/* GroupID */ +typedef struct GroupID { + GroupID_PR present; + union GroupID_u { + FiveQI_t fiveGC; + QCI_t ePC; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GroupID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GroupID; + +#ifdef __cplusplus +} +#endif + +#endif /* _GroupID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/INTEGER.c b/e2sim/asn1c/INTEGER.c new file mode 100644 index 0000000..095063f --- /dev/null +++ b/e2sim/asn1c/INTEGER.c @@ -0,0 +1,738 @@ +/* + * Copyright (c) 2003-2019 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +/* + * INTEGER basic type description. + */ +static const ber_tlv_tag_t asn_DEF_INTEGER_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_operation_t asn_OP_INTEGER = { + INTEGER_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + INTEGER_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + INTEGER_compare, +#if !defined(ASN_DISABLE_BER_SUPPORT) + ber_decode_primitive, + INTEGER_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + INTEGER_decode_xer, + INTEGER_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + INTEGER_encode_jer, +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + INTEGER_decode_oer, /* OER decoder */ + INTEGER_encode_oer, /* Canonical OER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + INTEGER_decode_uper, /* Unaligned PER decoder */ + INTEGER_encode_uper, /* Unaligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + INTEGER_decode_aper, /* Aligned PER decoder */ + INTEGER_encode_aper, /* Aligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + INTEGER_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ +0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_INTEGER = { + "INTEGER", + "INTEGER", + &asn_OP_INTEGER, + asn_DEF_INTEGER_tags, + sizeof(asn_DEF_INTEGER_tags) / sizeof(asn_DEF_INTEGER_tags[0]), + asn_DEF_INTEGER_tags, /* Same as above */ + sizeof(asn_DEF_INTEGER_tags) / sizeof(asn_DEF_INTEGER_tags[0]), + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + asn_generic_no_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +/* + * INTEGER specific human-readable output. + */ +ssize_t +INTEGER__dump(const asn_TYPE_descriptor_t *td, const INTEGER_t *st, asn_app_consume_bytes_f *cb, void *app_key, int plainOrXER) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + char scratch[32]; + uint8_t *buf = st->buf; + uint8_t *buf_end = st->buf + st->size; + intmax_t value; + ssize_t wrote = 0; + char *p; + int ret; + + if(specs && specs->field_unsigned) + ret = asn_INTEGER2umax(st, (uintmax_t *)&value); + else + ret = asn_INTEGER2imax(st, &value); + + /* Simple case: the integer size is small */ + if(ret == 0) { + const asn_INTEGER_enum_map_t *el; + el = (value >= 0 || !specs || !specs->field_unsigned) + ? INTEGER_map_value2enum(specs, value) : 0; + if(el) { + if(plainOrXER == 0) + return asn__format_to_callback(cb, app_key, + "%" ASN_PRIdMAX " (%s)", value, el->enum_name); + else + return asn__format_to_callback(cb, app_key, + "<%s/>", el->enum_name); + } else if(plainOrXER && specs && specs->strict_enumeration) { + ASN_DEBUG("ASN.1 forbids dealing with " + "unknown value of ENUMERATED type"); + errno = EPERM; + return -1; + } else { + return asn__format_to_callback(cb, app_key, + (specs && specs->field_unsigned) + ? "%" ASN_PRIuMAX + : "%" ASN_PRIdMAX, + value); + } + } else if(plainOrXER && specs && specs->strict_enumeration) { + /* + * Here and earlier, we cannot encode the ENUMERATED values + * if there is no corresponding identifier. + */ + ASN_DEBUG("ASN.1 forbids dealing with " + "unknown value of ENUMERATED type"); + errno = EPERM; + return -1; + } + + /* Output in the long xx:yy:zz... format */ + /* TODO: replace with generic algorithm (Knuth TAOCP Vol 2, 4.3.1) */ + for(p = scratch; buf < buf_end; buf++) { + const char * const h2c = "0123456789ABCDEF"; + if((p - scratch) >= (ssize_t)(sizeof(scratch) - 4)) { + /* Flush buffer */ + if(cb(scratch, p - scratch, app_key) < 0) + return -1; + wrote += p - scratch; + p = scratch; + } + *p++ = h2c[*buf >> 4]; + *p++ = h2c[*buf & 0x0F]; + *p++ = 0x3a; /* ":" */ + } + if(p != scratch) + p--; /* Remove the last ":" */ + + wrote += p - scratch; + return (cb(scratch, p - scratch, app_key) < 0) ? -1 : wrote; +} + +static int +INTEGER__compar_value2enum(const void *kp, const void *am) { + long a = *(const long *)kp; + const asn_INTEGER_enum_map_t *el = (const asn_INTEGER_enum_map_t *)am; + long b = el->nat_value; + if(a < b) return -1; + else if(a == b) return 0; + else return 1; +} + +const asn_INTEGER_enum_map_t * +INTEGER_map_value2enum(const asn_INTEGER_specifics_t *specs, long value) { + int count = specs ? specs->map_count : 0; + if(!count) return 0; + return (asn_INTEGER_enum_map_t *)bsearch(&value, specs->value2enum, + count, sizeof(specs->value2enum[0]), + INTEGER__compar_value2enum); +} + +static intmax_t +asn__integer_convert(const uint8_t *b, const uint8_t *end) { + uintmax_t value; + + /* Perform the sign initialization */ + /* Actually value = -(*b >> 7); gains nothing, yet unreadable! */ + if((*b >> 7)) { + value = (uintmax_t)(-1); + } else { + value = 0; + } + + /* Conversion engine */ + for(; b < end; b++) { + value = (value << 8) | *b; + } + + return value; +} + +int +asn_INTEGER2imax(const INTEGER_t *iptr, intmax_t *lptr) { + uint8_t *b, *end; + size_t size; + + /* Sanity checking */ + if(!iptr || !iptr->buf || !lptr) { + errno = EINVAL; + return -1; + } + + /* Cache the begin/end of the buffer */ + b = iptr->buf; /* Start of the INTEGER buffer */ + size = iptr->size; + end = b + size; /* Where to stop */ + + if(size > sizeof(intmax_t)) { + uint8_t *end1 = end - 1; + /* + * Slightly more advanced processing, + * able to process INTEGERs with >sizeof(intmax_t) bytes + * when the actual value is small, e.g. for intmax_t == int32_t + * (0x0000000000abcdef INTEGER would yield a fine 0x00abcdef int32_t) + */ + /* Skip out the insignificant leading bytes */ + for(; b < end1; b++) { + switch(*b) { + case 0x00: if((b[1] & 0x80) == 0) continue; break; + case 0xff: if((b[1] & 0x80) != 0) continue; break; + } + break; + } + + size = end - b; + if(size > sizeof(intmax_t)) { + /* Still cannot fit the sizeof(intmax_t) */ + errno = ERANGE; + return -1; + } + } + + /* Shortcut processing of a corner case */ + if(end == b) { + *lptr = 0; + return 0; + } + + *lptr = asn__integer_convert(b, end); + return 0; +} + +/* FIXME: negative INTEGER values are silently interpreted as large unsigned ones. */ +int +asn_INTEGER2umax(const INTEGER_t *iptr, uintmax_t *lptr) { + uint8_t *b, *end; + uintmax_t value; + size_t size; + + if(!iptr || !iptr->buf || !lptr) { + errno = EINVAL; + return -1; + } + + b = iptr->buf; + size = iptr->size; + end = b + size; + + /* If all extra leading bytes are zeroes, ignore them */ + for(; size > sizeof(value); b++, size--) { + if(*b) { + /* Value won't fit into uintmax_t */ + errno = ERANGE; + return -1; + } + } + + /* Conversion engine */ + for(value = 0; b < end; b++) + value = (value << 8) | *b; + + *lptr = value; + return 0; +} + +int +asn_umax2INTEGER(INTEGER_t *st, uintmax_t value) { + uint8_t *buf; + uint8_t *end; + uint8_t *b; + int shr; + + if(value <= ((~(uintmax_t)0) >> 1)) { + return asn_imax2INTEGER(st, value); + } + + buf = (uint8_t *)MALLOC(1 + sizeof(value)); + if(!buf) return -1; + + end = buf + (sizeof(value) + 1); + buf[0] = 0; /* INTEGERs are signed. 0-byte indicates positive. */ + for(b = buf + 1, shr = (sizeof(value) - 1) * 8; b < end; shr -= 8, b++) + *b = (uint8_t)(value >> shr); + + if(st->buf) FREEMEM(st->buf); + st->buf = buf; + st->size = 1 + sizeof(value); + + return 0; +} + +int +asn_imax2INTEGER(INTEGER_t *st, intmax_t value) { + uint8_t *buf, *bp; + uint8_t *p; + uint8_t *pstart; + uint8_t *pend1; + int littleEndian = 1; /* Run-time detection */ + int add; + + if(!st) { + errno = EINVAL; + return -1; + } + + buf = (uint8_t *)(long *)MALLOC(sizeof(value)); + if(!buf) return -1; + + if(*(char *)&littleEndian) { + pstart = (uint8_t *)&value + sizeof(value) - 1; + pend1 = (uint8_t *)&value; + add = -1; + } else { + pstart = (uint8_t *)&value; + pend1 = pstart + sizeof(value) - 1; + add = 1; + } + + /* + * If the contents octet consists of more than one octet, + * then bits of the first octet and bit 8 of the second octet: + * a) shall not all be ones; and + * b) shall not all be zero. + */ + for(p = pstart; p != pend1; p += add) { + switch(*p) { + case 0x00: if((*(p+add) & 0x80) == 0) + continue; + break; + case 0xff: if((*(p+add) & 0x80)) + continue; + break; + } + break; + } + /* Copy the integer body */ + for(bp = buf, pend1 += add; p != pend1; p += add) + *bp++ = *p; + + if(st->buf) FREEMEM(st->buf); + st->buf = buf; + st->size = bp - buf; + + return 0; +} + +int +asn_INTEGER2long(const INTEGER_t *iptr, long *l) { + intmax_t v; + if(asn_INTEGER2imax(iptr, &v) == 0) { + if(v < LONG_MIN || v > LONG_MAX) { + errno = ERANGE; + return -1; + } + *l = v; + return 0; + } else { + return -1; + } +} + +int +asn_INTEGER2ulong(const INTEGER_t *iptr, unsigned long *l) { + uintmax_t v; + if(asn_INTEGER2umax(iptr, &v) == 0) { + if(v > ULONG_MAX) { + errno = ERANGE; + return -1; + } + *l = v; + return 0; + } else { + return -1; + } +} + +int +asn_long2INTEGER(INTEGER_t *st, long value) { + return asn_imax2INTEGER(st, value); +} + +int +asn_ulong2INTEGER(INTEGER_t *st, unsigned long value) { + return asn_imax2INTEGER(st, value); +} + + +int +asn_uint642INTEGER(INTEGER_t *st, uint64_t value) { + uint8_t *buf; + uint8_t *end; + uint8_t *b; + int shr; + + if(value <= INT64_MAX) + return asn_int642INTEGER(st, value); + + buf = (uint8_t *)MALLOC(1 + sizeof(value)); + if(!buf) return -1; + + end = buf + (sizeof(value) + 1); + buf[0] = 0; + for(b = buf + 1, shr = (sizeof(value)-1)*8; b < end; shr -= 8, b++) + *b = (uint8_t)(value >> shr); + + if(st->buf) FREEMEM(st->buf); + st->buf = buf; + st->size = 1 + sizeof(value); + + return 0; +} + +int +asn_int642INTEGER(INTEGER_t *st, int64_t value) { + uint8_t *buf, *bp; + uint8_t *p; + uint8_t *pstart; + uint8_t *pend1; + int littleEndian = 1; /* Run-time detection */ + int add; + + if(!st) { + errno = EINVAL; + return -1; + } + + buf = (uint8_t *)MALLOC(sizeof(value)); + if(!buf) return -1; + + if(*(char *)&littleEndian) { + pstart = (uint8_t *)&value + sizeof(value) - 1; + pend1 = (uint8_t *)&value; + add = -1; + } else { + pstart = (uint8_t *)&value; + pend1 = pstart + sizeof(value) - 1; + add = 1; + } + + /* + * If the contents octet consists of more than one octet, + * then bits of the first octet and bit 8 of the second octet: + * a) shall not all be ones; and + * b) shall not all be zero. + */ + for(p = pstart; p != pend1; p += add) { + switch(*p) { + case 0x00: if((*(p+add) & 0x80) == 0) + continue; + break; + case 0xff: if((*(p+add) & 0x80)) + continue; + break; + } + break; + } + /* Copy the integer body */ + for(pstart = p, bp = buf, pend1 += add; p != pend1; p += add) + *bp++ = *p; + + if(st->buf) FREEMEM(st->buf); + st->buf = buf; + st->size = bp - buf; + + return 0; +} + +/* + * Parse the number in the given string until the given *end position, + * returning the position after the last parsed character back using the + * same (*end) pointer. + * WARNING: This behavior is different from the standard strtol/strtoimax(3). + */ +enum asn_strtox_result_e +asn_strtoimax_lim(const char *str, const char **end, intmax_t *intp) { + int sign = 1; + intmax_t value; + + const intmax_t asn1_intmax_max = ((~(uintmax_t)0) >> 1); + const intmax_t upper_boundary = asn1_intmax_max / 10; + intmax_t last_digit_max = asn1_intmax_max % 10; + + if(str >= *end) return ASN_STRTOX_ERROR_INVAL; + + switch(*str) { + case '-': + last_digit_max++; + sign = -1; + /* FALL THROUGH */ + case '+': + str++; + if(str >= *end) { + *end = str; + return ASN_STRTOX_EXPECT_MORE; + } + } + + for(value = 0; str < (*end); str++) { + if(*str >= 0x30 && *str <= 0x39) { + int d = *str - '0'; + if(value < upper_boundary) { + value = value * 10 + d; + } else if(value == upper_boundary) { + if(d <= last_digit_max) { + if(sign > 0) { + value = value * 10 + d; + } else { + sign = 1; + value = -value * 10 - d; + } + str += 1; + if(str < *end) { + // If digits continue, we're guaranteed out of range. + *end = str; + if(*str >= 0x30 && *str <= 0x39) { + return ASN_STRTOX_ERROR_RANGE; + } else { + *intp = sign * value; + return ASN_STRTOX_EXTRA_DATA; + } + } + break; + } else { + *end = str; + return ASN_STRTOX_ERROR_RANGE; + } + } else { + *end = str; + return ASN_STRTOX_ERROR_RANGE; + } + } else { + *end = str; + *intp = sign * value; + return ASN_STRTOX_EXTRA_DATA; + } + } + + *end = str; + *intp = sign * value; + return ASN_STRTOX_OK; +} + +/* + * Parse the number in the given string until the given *end position, + * returning the position after the last parsed character back using the + * same (*end) pointer. + * WARNING: This behavior is different from the standard strtoul/strtoumax(3). + */ +enum asn_strtox_result_e +asn_strtoumax_lim(const char *str, const char **end, uintmax_t *uintp) { + uintmax_t value; + + const uintmax_t asn1_uintmax_max = ((~(uintmax_t)0)); + const uintmax_t upper_boundary = asn1_uintmax_max / 10; + uintmax_t last_digit_max = asn1_uintmax_max % 10; + + if(str >= *end) return ASN_STRTOX_ERROR_INVAL; + + switch(*str) { + case '-': + return ASN_STRTOX_ERROR_INVAL; + case '+': + str++; + if(str >= *end) { + *end = str; + return ASN_STRTOX_EXPECT_MORE; + } + } + + for(value = 0; str < (*end); str++) { + if(*str >= 0x30 && *str <= 0x39) { + unsigned int d = *str - '0'; + if(value < upper_boundary) { + value = value * 10 + d; + } else if(value == upper_boundary) { + if(d <= last_digit_max) { + value = value * 10 + d; + str += 1; + if(str < *end) { + // If digits continue, we're guaranteed out of range. + *end = str; + if(*str >= 0x30 && *str <= 0x39) { + return ASN_STRTOX_ERROR_RANGE; + } else { + *uintp = value; + return ASN_STRTOX_EXTRA_DATA; + } + } + break; + } else { + *end = str; + return ASN_STRTOX_ERROR_RANGE; + } + } else { + *end = str; + return ASN_STRTOX_ERROR_RANGE; + } + } else { + *end = str; + *uintp = value; + return ASN_STRTOX_EXTRA_DATA; + } + } + + *end = str; + *uintp = value; + return ASN_STRTOX_OK; +} + +enum asn_strtox_result_e +asn_strtol_lim(const char *str, const char **end, long *lp) { + intmax_t value; + switch(asn_strtoimax_lim(str, end, &value)) { + case ASN_STRTOX_ERROR_RANGE: + return ASN_STRTOX_ERROR_RANGE; + case ASN_STRTOX_ERROR_INVAL: + return ASN_STRTOX_ERROR_INVAL; + case ASN_STRTOX_EXPECT_MORE: + return ASN_STRTOX_EXPECT_MORE; + case ASN_STRTOX_OK: + if(value >= LONG_MIN && value <= LONG_MAX) { + *lp = value; + return ASN_STRTOX_OK; + } else { + return ASN_STRTOX_ERROR_RANGE; + } + case ASN_STRTOX_EXTRA_DATA: + if(value >= LONG_MIN && value <= LONG_MAX) { + *lp = value; + return ASN_STRTOX_EXTRA_DATA; + } else { + return ASN_STRTOX_ERROR_RANGE; + } + } + + assert(!"Unreachable"); + return ASN_STRTOX_ERROR_INVAL; +} + +enum asn_strtox_result_e +asn_strtoul_lim(const char *str, const char **end, unsigned long *ulp) { + uintmax_t value; + switch(asn_strtoumax_lim(str, end, &value)) { + case ASN_STRTOX_ERROR_RANGE: + return ASN_STRTOX_ERROR_RANGE; + case ASN_STRTOX_ERROR_INVAL: + return ASN_STRTOX_ERROR_INVAL; + case ASN_STRTOX_EXPECT_MORE: + return ASN_STRTOX_EXPECT_MORE; + case ASN_STRTOX_OK: + if(value <= ULONG_MAX) { + *ulp = value; + return ASN_STRTOX_OK; + } else { + return ASN_STRTOX_ERROR_RANGE; + } + case ASN_STRTOX_EXTRA_DATA: + if(value <= ULONG_MAX) { + *ulp = value; + return ASN_STRTOX_EXTRA_DATA; + } else { + return ASN_STRTOX_ERROR_RANGE; + } + } + + assert(!"Unreachable"); + return ASN_STRTOX_ERROR_INVAL; +} + +int +INTEGER_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + const INTEGER_t *a = aptr; + const INTEGER_t *b = bptr; + + (void)td; + + if(a && b) { + if(a->size && b->size) { + int sign_a = (a->buf[0] & 0x80) ? -1 : 1; + int sign_b = (b->buf[0] & 0x80) ? -1 : 1; + + if(sign_a < sign_b) return -1; + if(sign_a > sign_b) return 1; + + /* The shortest integer wins, unless comparing negatives */ + if(a->size < b->size) { + return -1 * sign_a; + } else if(a->size > b->size) { + return 1 * sign_b; + } + + return sign_a * memcmp(a->buf, b->buf, a->size); + } else if(a->size) { + int sign = (a->buf[0] & 0x80) ? -1 : 1; + return (1) * sign; + } else if(b->size) { + int sign = (a->buf[0] & 0x80) ? -1 : 1; + return (-1) * sign; + } else { + return 0; + } + } else if(!a && !b) { + return 0; + } else if(!a) { + return -1; + } else { + return 1; + } + +} diff --git a/e2sim/asn1c/INTEGER.h b/e2sim/asn1c/INTEGER.h new file mode 100644 index 0000000..1666e0b --- /dev/null +++ b/e2sim/asn1c/INTEGER.h @@ -0,0 +1,139 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _INTEGER_H_ +#define _INTEGER_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef ASN__PRIMITIVE_TYPE_t INTEGER_t; + +extern asn_TYPE_descriptor_t asn_DEF_INTEGER; +extern asn_TYPE_operation_t asn_OP_INTEGER; + +/* Map with to integer value association */ +typedef struct asn_INTEGER_enum_map_s { + long nat_value; /* associated native integer value */ + size_t enum_len; /* strlen("tag") */ + const char *enum_name; /* "tag" */ +} asn_INTEGER_enum_map_t; + +/* This type describes an enumeration for INTEGER and ENUMERATED types */ +typedef struct asn_INTEGER_specifics_s { + const asn_INTEGER_enum_map_t *value2enum; /* N -> "tag"; sorted by N */ + const unsigned int *enum2value; /* "tag" => N; sorted by tag */ + int map_count; /* Elements in either map */ + int extension; /* This map is extensible */ + int strict_enumeration; /* Enumeration set is fixed */ + int field_width; /* Size of native integer */ + int field_unsigned; /* Signed=0, unsigned=1 */ +} asn_INTEGER_specifics_t; + +ssize_t INTEGER__dump(const asn_TYPE_descriptor_t *td, + const INTEGER_t *st, + asn_app_consume_bytes_f *cb, + void *app_key, int plainOrXER); + +#define INTEGER_free ASN__PRIMITIVE_TYPE_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +asn_struct_print_f INTEGER_print; +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +asn_struct_compare_f INTEGER_compare; + +#define INTEGER_constraint asn_generic_no_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#define INTEGER_decode_ber ber_decode_primitive +der_type_encoder_f INTEGER_encode_der; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +xer_type_decoder_f INTEGER_decode_xer; +xer_type_encoder_f INTEGER_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_encoder_f INTEGER_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +oer_type_decoder_f INTEGER_decode_oer; +oer_type_encoder_f INTEGER_encode_oer; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f INTEGER_decode_uper; +per_type_encoder_f INTEGER_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +per_type_decoder_f INTEGER_decode_aper; +per_type_encoder_f INTEGER_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +asn_random_fill_f INTEGER_random_fill; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +/*********************************** + * Some handy conversion routines. * + ***********************************/ + +/* + * Natiwe size-independent conversion of native integers to/from INTEGER. + * (l_size) is in bytes. + * Returns 0 if it was possible to convert, -1 otherwise. + * -1/EINVAL: Mandatory argument missing + * -1/ERANGE: Value encoded is out of range for long representation + * -1/ENOMEM: Memory allocation failed (in asn_*2INTEGER()). + */ +int asn_INTEGER2imax(const INTEGER_t *i, intmax_t *l); +int asn_INTEGER2umax(const INTEGER_t *i, uintmax_t *l); +int asn_imax2INTEGER(INTEGER_t *i, intmax_t l); +int asn_umax2INTEGER(INTEGER_t *i, uintmax_t l); + +/* + * Size-specific conversion helpers. + */ +int asn_INTEGER2long(const INTEGER_t *i, long *l); +int asn_INTEGER2ulong(const INTEGER_t *i, unsigned long *l); +int asn_long2INTEGER(INTEGER_t *i, long l); +int asn_ulong2INTEGER(INTEGER_t *i, unsigned long l); +int asn_int642INTEGER(INTEGER_t *i, int64_t l); +int asn_uint642INTEGER(INTEGER_t *i, uint64_t l); + +/* A version of strtol/strtoimax(3) with nicer error reporting. */ +enum asn_strtox_result_e { + ASN_STRTOX_ERROR_RANGE = -3, /* Input outside of supported numeric range */ + ASN_STRTOX_ERROR_INVAL = -2, /* Invalid data encountered (e.g., "+-") */ + ASN_STRTOX_EXPECT_MORE = -1, /* More data expected (e.g. "+") */ + ASN_STRTOX_OK = 0, /* Conversion succeeded, number ends at (*end) */ + ASN_STRTOX_EXTRA_DATA = 1 /* Conversion succeeded, but the string has extra stuff */ +}; +enum asn_strtox_result_e asn_strtol_lim(const char *str, const char **end, + long *l); +enum asn_strtox_result_e asn_strtoul_lim(const char *str, const char **end, + unsigned long *l); +enum asn_strtox_result_e asn_strtoimax_lim(const char *str, const char **end, + intmax_t *l); +enum asn_strtox_result_e asn_strtoumax_lim(const char *str, const char **end, + uintmax_t *l); + +/* + * Convert the integer value into the corresponding enumeration map entry. + */ +const asn_INTEGER_enum_map_t *INTEGER_map_value2enum( + const asn_INTEGER_specifics_t *specs, long value); + +#ifdef __cplusplus +} +#endif + +#endif /* _INTEGER_H_ */ diff --git a/e2sim/asn1c/INTEGER_aper.c b/e2sim/asn1c/INTEGER_aper.c new file mode 100644 index 0000000..fc88268 --- /dev/null +++ b/e2sim/asn1c/INTEGER_aper.c @@ -0,0 +1,308 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +INTEGER_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; + asn_dec_rval_t rval = { RC_OK, 0 }; + INTEGER_t *st = (INTEGER_t *)*sptr; + const asn_per_constraint_t *ct; + int repeat; + + (void)opt_codec_ctx; + + if(!st) { + st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st))); + if(!st) ASN__DECODE_FAILED; + } + + if(!constraints) constraints = td->encoding_constraints.per_constraints; + ct = constraints ? &constraints->value : 0; + + if(ct && ct->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) ASN__DECODE_STARVED; + if(inext) ct = 0; + } + + FREEMEM(st->buf); + st->buf = 0; + st->size = 0; + if(ct) { + if(ct->flags & APC_SEMI_CONSTRAINED) { + st->buf = (uint8_t *)CALLOC(1, 2); + if(!st->buf) ASN__DECODE_FAILED; + st->size = 1; + } else if(ct->flags & APC_CONSTRAINED && ct->range_bits >= 0) { + size_t size = (ct->range_bits + 7) >> 3; + st->buf = (uint8_t *)MALLOC(1 + size + 1); + if(!st->buf) ASN__DECODE_FAILED; + st->size = size; + } + } + + /* X.691, #12.2.2 */ + if(ct && ct->flags != APC_UNCONSTRAINED) { + /* #10.5.6 */ + ASN_DEBUG("Integer with range %d bits", ct->range_bits); + if(ct->range_bits >= 0) { + if (ct->range_bits > 16) { + int max_range_bytes = (ct->range_bits >> 3) + + (((ct->range_bits % 8) > 0) ? 1 : 0); + int length = 0, i; + long value = 0; + + for (i = 1; ; i++) { + int upper = 1 << i; + if (upper >= max_range_bytes) + break; + } + ASN_DEBUG("Can encode %d (%d bytes) in %d bits", ct->range_bits, + max_range_bytes, i); + + if ((length = per_get_few_bits(pd, i)) < 0) + ASN__DECODE_FAILED; + + /* X.691 #12.2.6 length determinant + lb (1) */ + length += 1; + ASN_DEBUG("Got length %d", length); + if (aper_get_align(pd) != 0) + ASN__DECODE_FAILED; + while (length--) { + int buf = per_get_few_bits(pd, 8); + if (buf < 0) + ASN__DECODE_FAILED; + value += (((long)buf) << (8 * length)); + } + + value += ct->lower_bound; + if((specs && specs->field_unsigned) + ? asn_uint642INTEGER(st, (unsigned long)value) + : asn_int642INTEGER(st, value)) + ASN__DECODE_FAILED; + ASN_DEBUG("Got value %ld + low %lld", + value, (long long int)ct->lower_bound); + } else { + long value = 0; + if (ct->range_bits < 8) { + value = per_get_few_bits(pd, ct->range_bits); + if(value < 0) ASN__DECODE_STARVED; + } else if (ct->range_bits == 8) { + if (aper_get_align(pd) < 0) + ASN__DECODE_FAILED; + value = per_get_few_bits(pd, ct->range_bits); + if(value < 0) ASN__DECODE_STARVED; + } else { + /* Align */ + if (aper_get_align(pd) < 0) + ASN__DECODE_FAILED; + value = per_get_few_bits(pd, 16); + if(value < 0) ASN__DECODE_STARVED; + } + value += ct->lower_bound; + if((specs && specs->field_unsigned) + ? asn_ulong2INTEGER(st, value) + : asn_long2INTEGER(st, value)) + ASN__DECODE_FAILED; + ASN_DEBUG("Got value %ld + low %lld", + value, (long long int)ct->lower_bound); + } + return rval; + } else { + ASN__DECODE_FAILED; + } + } else { + ASN_DEBUG("Decoding unconstrained integer %s", td->name); + } + + /* X.691, #12.2.3, #12.2.4 */ + do { + ssize_t len; + void *p; + int ret; + + /* Get the PER length */ + len = aper_get_length(pd, -1, -1, -1, &repeat); + if(len < 0) ASN__DECODE_STARVED; + + p = REALLOC(st->buf, st->size + len + 1); + if(!p) ASN__DECODE_FAILED; + st->buf = (uint8_t *)p; + + ret = per_get_many_bits(pd, &st->buf[st->size], 0, 8 * len); + if(ret < 0) ASN__DECODE_STARVED; + st->size += len; + } while(repeat); + st->buf[st->size] = 0; /* JIC */ + + /* #12.2.3 */ + if(ct && ct->lower_bound) { + /* + * TODO: replace by in-place arithmetics. + */ + long value; + if(asn_INTEGER2long(st, &value)) + ASN__DECODE_FAILED; + if(asn_long2INTEGER(st, value + ct->lower_bound)) + ASN__DECODE_FAILED; + } + + return rval; +} + +asn_enc_rval_t +INTEGER_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + const INTEGER_t *st = (const INTEGER_t *)sptr; + const uint8_t *buf; + const uint8_t *end; + const asn_per_constraint_t *ct; + long value = 0; + + if(!st || st->size == 0) ASN__ENCODE_FAILED; + + if(!constraints) constraints = td->encoding_constraints.per_constraints; + ct = constraints ? &constraints->value : 0; + + er.encoded = 0; + + if(ct) { + int inext = 0; + if(specs && specs->field_unsigned) { + unsigned long uval; + if(asn_INTEGER2ulong(st, &uval)) + ASN__ENCODE_FAILED; + /* Check proper range */ + if(ct->flags & APC_SEMI_CONSTRAINED) { + if(uval < (unsigned long)ct->lower_bound) + inext = 1; + } else if(ct->range_bits >= 0) { + if(uval < (unsigned long)ct->lower_bound + || uval > (unsigned long)ct->upper_bound) + inext = 1; + } + ASN_DEBUG("Value %lu (%02x/%zu) lb %lld ub %lld %s", + uval, st->buf[0], st->size, + (long long int)ct->lower_bound, + (long long int)ct->upper_bound, + inext ? "ext" : "fix"); + value = uval; + } else { + if(asn_INTEGER2long(st, &value)) ASN__ENCODE_FAILED; + /* Check proper range */ + if(ct->flags & APC_SEMI_CONSTRAINED) { + if(value < ct->lower_bound) + inext = 1; + } else if(ct->range_bits >= 0) { + if(value < ct->lower_bound + || value > ct->upper_bound) + inext = 1; + } + ASN_DEBUG("Value %lu (%02x/%zu) lb %lld ub %lld %s", + value, st->buf[0], st->size, + (long long int)ct->lower_bound, + (long long int)ct->upper_bound, + inext ? "ext" : "fix"); + } + if(ct->flags & APC_EXTENSIBLE) { + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + if(inext) ct = 0; + } else if(inext) { + ASN__ENCODE_FAILED; + } + } + + /* X.691, #12.2.2 */ + if(ct && ct->range_bits >= 0) { + unsigned long v; + + /* #10.5.6 */ + ASN_DEBUG("Encoding integer %ld (%lld) with range %d bits", + value, (long long int)(value - ct->lower_bound), + ct->range_bits); + + v = value - ct->lower_bound; + + /* #12 <= 8 -> alignment ? */ + int range = ct->upper_bound - ct->lower_bound + 1; + if (ct->range_bits < 8 || (ct->range_bits == 8 && range < 256)) { + if(per_put_few_bits(po, 0x00 | v, ct->range_bits)) + ASN__ENCODE_FAILED; + } else if (ct->range_bits == 8) { + if(aper_put_align(po) < 0) + ASN__ENCODE_FAILED; + if(per_put_few_bits(po, 0x00 | v, ct->range_bits)) + ASN__ENCODE_FAILED; + } else if (ct->range_bits <= 16) { + /* Consume the bytes to align on octet */ + if(aper_put_align(po) < 0) + ASN__ENCODE_FAILED; + if(per_put_few_bits(po, 0x0000 | v, 16)) + ASN__ENCODE_FAILED; + } else { + /* TODO: extend to >64 bits */ + int64_t v64 = v; + int i, j; + int max_range_bytes = (ct->range_bits >> 3) + + (((ct->range_bits % 8) > 0) ? 1 : 0); + + for (i = 1; ; i++) { + int upper = 1 << i; + if (upper >= max_range_bytes) + break; + } + + for (j = sizeof(int64_t) -1; j != 0; j--) { + int64_t val; + val = v64 >> (j * 8); + if (val != 0) + break; + } + + /* Putting length in the minimum number of bits ex: 5 = 3bits */ + if (per_put_few_bits(po, j, i)) + ASN__ENCODE_FAILED; + + /* Consume the bits to align on octet */ + if (aper_put_align(po) < 0) + ASN__ENCODE_FAILED; + /* Put the value */ + for (i = 0; i <= j; i++) { + if(per_put_few_bits(po, (v64 >> (8 * (j - i))) & 0xff, 8)) + ASN__ENCODE_FAILED; + } + } + ASN__ENCODED_OK(er); + } + + if(ct && ct->lower_bound) { + ASN_DEBUG("Adjust lower bound to %lld", (long long int)ct->lower_bound); + /* TODO: adjust lower bound */ + ASN__ENCODE_FAILED; + } + + for(buf = st->buf, end = st->buf + st->size; buf < end;) { + int need_eom = 0; + ssize_t mayEncode = aper_put_length(po, -1, -1, end - buf, &need_eom); + if(mayEncode < 0) + ASN__ENCODE_FAILED; + if(per_put_many_bits(po, buf, 8 * mayEncode)) + ASN__ENCODE_FAILED; + buf += mayEncode; + if(need_eom && (aper_put_length(po, -1, -1, 0, NULL) < 0)) + ASN__ENCODE_FAILED; + } + + ASN__ENCODED_OK(er); +} diff --git a/e2sim/asn1c/INTEGER_ber.c b/e2sim/asn1c/INTEGER_ber.c new file mode 100644 index 0000000..57bfe1e --- /dev/null +++ b/e2sim/asn1c/INTEGER_ber.c @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * Encode INTEGER type using DER. + */ +asn_enc_rval_t +INTEGER_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, + int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, + void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + asn_enc_rval_t rval; + INTEGER_t effective_integer; + + ASN_DEBUG("%s %s as INTEGER (tm=%d)", + cb?"Encoding":"Estimating", td->name, tag_mode); + + /* + * Canonicalize integer in the buffer. + * (Remove too long sign extension, remove some first 0x00 bytes) + */ + if(st->buf) { + uint8_t *buf = st->buf; + uint8_t *end1 = buf + st->size - 1; + int shift; + + /* Compute the number of superfluous leading bytes */ + for(; buf < end1; buf++) { + /* + * If the contents octets of an integer value encoding + * consist of more than one octet, then the bits of the + * first octet and bit 8 of the second octet: + * a) shall not all be ones; and + * b) shall not all be zero. + */ + switch(*buf) { + case 0x00: + if((buf[1] & 0x80) == 0) continue; + break; + case 0xff: + if((buf[1] & 0x80)) continue; + break; + } + break; + } + + /* Remove leading superfluous bytes from the integer */ + shift = buf - st->buf; + if(shift) { + union { + const uint8_t *c_buf; + uint8_t *nc_buf; + } unconst; + unconst.c_buf = st->buf; + effective_integer.buf = unconst.nc_buf + shift; + effective_integer.size = st->size - shift; + + st = &effective_integer; + } + } + + rval = der_encode_primitive(td, st, tag_mode, tag, cb, app_key); + if(rval.structure_ptr == &effective_integer) { + rval.structure_ptr = sptr; + } + return rval; +} diff --git a/e2sim/asn1c/INTEGER_jer.c b/e2sim/asn1c/INTEGER_jer.c new file mode 100644 index 0000000..23d7c12 --- /dev/null +++ b/e2sim/asn1c/INTEGER_jer.c @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_enc_rval_t +INTEGER_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum jer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + asn_enc_rval_t er = {0,0,0}; + + (void)ilevel; + (void)flags; + + if(!st || !st->buf) + ASN__ENCODE_FAILED; + + er.encoded = INTEGER__dump(td, st, cb, app_key, 1); + if(er.encoded < 0) ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/e2sim/asn1c/INTEGER_print.c b/e2sim/asn1c/INTEGER_print.c new file mode 100644 index 0000000..2d37dee --- /dev/null +++ b/e2sim/asn1c/INTEGER_print.c @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * INTEGER specific human-readable output. + */ +int +INTEGER_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + ssize_t ret; + + (void)ilevel; + + if(!st || !st->buf) + ret = cb("", 8, app_key); + else + ret = INTEGER__dump(td, st, cb, app_key, 0); + + return (ret < 0) ? -1 : 0; +} diff --git a/e2sim/asn1c/INTEGER_rfill.c b/e2sim/asn1c/INTEGER_rfill.c new file mode 100644 index 0000000..fab0023 --- /dev/null +++ b/e2sim/asn1c/INTEGER_rfill.c @@ -0,0 +1,92 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_random_fill_result_t +INTEGER_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + INTEGER_t *st = *sptr; + const asn_INTEGER_enum_map_t *emap; + size_t emap_len; + intmax_t value; + int find_inside_map; + + if(max_length == 0) return result_skipped; + + if(st == NULL) { + st = (INTEGER_t *)CALLOC(1, sizeof(*st)); + if(st == NULL) { + return result_failed; + } + } + + if(specs) { + emap = specs->value2enum; + emap_len = specs->map_count; + if(specs->strict_enumeration) { + find_inside_map = emap_len > 0; + } else { + find_inside_map = emap_len ? asn_random_between(0, 1) : 0; + } + } else { + emap = 0; + emap_len = 0; + find_inside_map = 0; + } + + if(find_inside_map) { + assert(emap_len > 0); + value = emap[asn_random_between(0, emap_len - 1)].nat_value; + } else { + static const long variants[] = { + -65536, -65535, -65534, -32769, -32768, -32767, -16385, -16384, + -16383, -257, -256, -255, -254, -129, -128, -127, + -126, -1, 0, 1, 126, 127, 128, 129, + 254, 255, 256, 257, 16383, 16384, 16385, 32767, + 32768, 32769, 65534, 65535, 65536, 65537}; + if(specs && specs->field_unsigned) { + assert(variants[18] == 0); + value = variants[asn_random_between( + 18, sizeof(variants) / sizeof(variants[0]) - 1)]; + } else { + value = variants[asn_random_between( + 0, sizeof(variants) / sizeof(variants[0]) - 1)]; + } + + if(!constraints) constraints = &td->encoding_constraints; +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + const asn_per_constraints_t *ct; + + ct = constraints ? constraints->per_constraints : 0; + if(ct && (ct->value.flags & APC_CONSTRAINED)) { + if(value < ct->value.lower_bound || value > ct->value.upper_bound) { + value = asn_random_between(ct->value.lower_bound, + ct->value.upper_bound); + } + } +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + } + + if(asn_imax2INTEGER(st, value)) { + if(st == *sptr) { + ASN_STRUCT_RESET(*td, st); + } else { + ASN_STRUCT_FREE(*td, st); + } + return result_failed; + } else { + *sptr = st; + result_ok.length = st->size; + return result_ok; + } +} diff --git a/e2sim/asn1c/INTEGER_uper.c b/e2sim/asn1c/INTEGER_uper.c new file mode 100644 index 0000000..ed65385 --- /dev/null +++ b/e2sim/asn1c/INTEGER_uper.c @@ -0,0 +1,236 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +INTEGER_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_dec_rval_t rval = { RC_OK, 0 }; + INTEGER_t *st = (INTEGER_t *)*sptr; + const asn_per_constraint_t *ct; + int repeat; + + (void)opt_codec_ctx; + + if(!st) { + st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st))); + if(!st) ASN__DECODE_FAILED; + } + + if(!constraints) constraints = td->encoding_constraints.per_constraints; + ct = constraints ? &constraints->value : 0; + + if(ct && ct->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) ASN__DECODE_STARVED; + if(inext) ct = 0; + } + + FREEMEM(st->buf); + st->buf = 0; + st->size = 0; + if(ct) { + if(ct->flags & APC_SEMI_CONSTRAINED) { + st->buf = (uint8_t *)CALLOC(1, 2); + if(!st->buf) ASN__DECODE_FAILED; + st->size = 1; + } else if(ct->flags & APC_CONSTRAINED && ct->range_bits >= 0) { + size_t size = (ct->range_bits + 7) >> 3; + st->buf = (uint8_t *)MALLOC(1 + size + 1); + if(!st->buf) ASN__DECODE_FAILED; + st->size = size; + } + } + + /* X.691-2008/11, #13.2.2, constrained whole number */ + if(ct && ct->flags != APC_UNCONSTRAINED) { + /* #11.5.6 */ + ASN_DEBUG("Integer with range %d bits", ct->range_bits); + if(ct->range_bits >= 0) { + if((size_t)ct->range_bits > 8 * sizeof(uintmax_t)) + ASN__DECODE_FAILED; + + if(specs && specs->field_unsigned) { + uintmax_t uvalue = 0; + if(uper_get_constrained_whole_number(pd, + &uvalue, ct->range_bits)) + ASN__DECODE_STARVED; + ASN_DEBUG("Got value %lu + low %ld", + uvalue, ct->lower_bound); + uvalue += ct->lower_bound; + if(asn_umax2INTEGER(st, uvalue)) + ASN__DECODE_FAILED; + } else { + uintmax_t uvalue = 0; + intmax_t svalue; + if(uper_get_constrained_whole_number(pd, + &uvalue, ct->range_bits)) + ASN__DECODE_STARVED; + ASN_DEBUG("Got value %lu + low %ld", + uvalue, ct->lower_bound); + if(per_imax_range_unrebase(uvalue, ct->lower_bound, + ct->upper_bound, &svalue) + || asn_imax2INTEGER(st, svalue)) { + ASN__DECODE_FAILED; + } + } + return rval; + } + } else { + ASN_DEBUG("Decoding unconstrained integer %s", td->name); + } + + /* X.691, #12.2.3, #12.2.4 */ + do { + ssize_t len = 0; + void *p = NULL; + int ret = 0; + + /* Get the PER length */ + len = uper_get_length(pd, -1, 0, &repeat); + if(len < 0) ASN__DECODE_STARVED; + + p = REALLOC(st->buf, st->size + len + 1); + if(!p) ASN__DECODE_FAILED; + st->buf = (uint8_t *)p; + + ret = per_get_many_bits(pd, &st->buf[st->size], 0, 8 * len); + if(ret < 0) ASN__DECODE_STARVED; + st->size += len; + } while(repeat); + st->buf[st->size] = 0; /* JIC */ + + /* #12.2.3 */ + if(ct && ct->lower_bound) { + /* + * TODO: replace by in-place arithmetic. + */ + long value = 0; + if(asn_INTEGER2long(st, &value)) + ASN__DECODE_FAILED; + if(asn_imax2INTEGER(st, value + ct->lower_bound)) + ASN__DECODE_FAILED; + } + + return rval; +} + +asn_enc_rval_t +INTEGER_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + const INTEGER_t *st = (const INTEGER_t *)sptr; + const uint8_t *buf; + const uint8_t *end; + const asn_per_constraint_t *ct; + union { + intmax_t s; + uintmax_t u; + } value; + + if(!st || st->size == 0) ASN__ENCODE_FAILED; + + if(!constraints) constraints = td->encoding_constraints.per_constraints; + ct = constraints ? &constraints->value : 0; + + er.encoded = 0; + + if(ct) { + int inext = 0; + if(specs && specs->field_unsigned) { + if(asn_INTEGER2umax(st, &value.u)) + ASN__ENCODE_FAILED; + /* Check proper range */ + if(ct->flags & APC_SEMI_CONSTRAINED) { + if(value.u < (uintmax_t)ct->lower_bound) + inext = 1; + } else if(ct->range_bits >= 0) { + if(value.u < (uintmax_t)ct->lower_bound + || value.u > (uintmax_t)ct->upper_bound) + inext = 1; + } + ASN_DEBUG("Value %lu (%02x/%" ASN_PRI_SIZE ") lb %lu ub %lu %s", + value.u, st->buf[0], st->size, + ct->lower_bound, ct->upper_bound, + inext ? "ext" : "fix"); + } else { + if(asn_INTEGER2imax(st, &value.s)) + ASN__ENCODE_FAILED; + /* Check proper range */ + if(ct->flags & APC_SEMI_CONSTRAINED) { + if(value.s < ct->lower_bound) + inext = 1; + } else if(ct->range_bits >= 0) { + if(value.s < ct->lower_bound + || value.s > ct->upper_bound) + inext = 1; + } + ASN_DEBUG("Value %ld (%02x/%" ASN_PRI_SIZE ") lb %ld ub %ld %s", + value.s, st->buf[0], st->size, + ct->lower_bound, ct->upper_bound, + inext ? "ext" : "fix"); + } + if(ct->flags & APC_EXTENSIBLE) { + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + if(inext) ct = 0; + } else if(inext) { + ASN__ENCODE_FAILED; + } + } + + /* X.691-11/2008, #13.2.2, test if constrained whole number */ + if(ct && ct->range_bits >= 0) { + uintmax_t v; + /* #11.5.6 -> #11.3 */ + if(specs && specs->field_unsigned) { + if(((uintmax_t)ct->lower_bound > (uintmax_t)(ct->upper_bound) + || (value.u < (uintmax_t)ct->lower_bound)) + || (value.u > (uintmax_t)ct->upper_bound)) { + ASN_DEBUG("Value %lu to-be-encoded is outside the bounds [%lu, %lu]!", + value.u, ct->lower_bound, ct->upper_bound); + ASN__ENCODE_FAILED; + } + v = value.u - (uintmax_t)ct->lower_bound; + } else { + if(per_imax_range_rebase(value.s, ct->lower_bound, ct->upper_bound, &v)) { + ASN__ENCODE_FAILED; + } + } + ASN_DEBUG("Encoding integer %lu with range %d bits", + v, ct->range_bits); + if(uper_put_constrained_whole_number_u(po, v, ct->range_bits)) + ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } + + if(ct && ct->lower_bound) { + ASN_DEBUG("Adjust lower bound to %ld", ct->lower_bound); + /* TODO: adjust lower bound */ + ASN__ENCODE_FAILED; + } + + for(buf = st->buf, end = st->buf + st->size; buf < end;) { + int need_eom = 0; + ssize_t mayEncode = uper_put_length(po, end - buf, &need_eom); + if(mayEncode < 0) + ASN__ENCODE_FAILED; + if(per_put_many_bits(po, buf, 8 * mayEncode)) + ASN__ENCODE_FAILED; + buf += mayEncode; + if(need_eom && uper_put_length(po, 0, 0)) ASN__ENCODE_FAILED; + } + + ASN__ENCODED_OK(er); +} diff --git a/e2sim/asn1c/INTEGER_xer.c b/e2sim/asn1c/INTEGER_xer.c new file mode 100644 index 0000000..4f21c86 --- /dev/null +++ b/e2sim/asn1c/INTEGER_xer.c @@ -0,0 +1,351 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +struct e2v_key { + const char *start; + const char *stop; + const asn_INTEGER_enum_map_t *vemap; + const unsigned int *evmap; +}; +static int +INTEGER__compar_enum2value(const void *kp, const void *am) { + const struct e2v_key *key = (const struct e2v_key *)kp; + const asn_INTEGER_enum_map_t *el = (const asn_INTEGER_enum_map_t *)am; + const char *ptr, *end, *name; + + /* Remap the element (sort by different criterion) */ + el = key->vemap + key->evmap[el - key->vemap]; + + /* Compare strings */ + for(ptr = key->start, end = key->stop, name = el->enum_name; + ptr < end; ptr++, name++) { + if(*ptr != *name || !*name) + return *(const unsigned char *)ptr - *(const unsigned char *)name; + } + return name[0] ? -1 : 0; +} + +static const asn_INTEGER_enum_map_t * +INTEGER_map_enum2value(const asn_INTEGER_specifics_t *specs, const char *lstart, + const char *lstop) { + const asn_INTEGER_enum_map_t *el_found; + int count = specs ? specs->map_count : 0; + struct e2v_key key; + const char *lp; + + if(!count) return NULL; + + /* Guaranteed: assert(lstart < lstop); */ + /* Figure out the tag name */ + for(lstart++, lp = lstart; lp < lstop; lp++) { + switch(*lp) { + case 9: case 10: case 11: case 12: case 13: case 32: /* WSP */ + case 0x2f: /* '/' */ case 0x3e: /* '>' */ + break; + default: + continue; + } + break; + } + if(lp == lstop) return NULL; /* No tag found */ + lstop = lp; + + key.start = lstart; + key.stop = lstop; + key.vemap = specs->value2enum; + key.evmap = specs->enum2value; + el_found = (asn_INTEGER_enum_map_t *)bsearch(&key, + specs->value2enum, count, sizeof(specs->value2enum[0]), + INTEGER__compar_enum2value); + if(el_found) { + /* Remap enum2value into value2enum */ + el_found = key.vemap + key.evmap[el_found - key.vemap]; + } + return el_found; +} + +static int +INTEGER_st_prealloc(INTEGER_t *st, int min_size) { + void *p = MALLOC(min_size + 1); + if(p) { + void *b = st->buf; + st->size = 0; + st->buf = p; + FREEMEM(b); + return 0; + } else { + return -1; + } +} + +/* + * Decode the chunk of XML text encoding INTEGER. + */ +static enum xer_pbd_rval +INTEGER__xer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr, + const void *chunk_buf, size_t chunk_size) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + INTEGER_t *st = (INTEGER_t *)sptr; + intmax_t dec_value; + intmax_t hex_value = 0; + const char *lp; + const char *lstart = (const char *)chunk_buf; + const char *lstop = lstart + chunk_size; + enum { + ST_LEADSPACE, + ST_SKIPSPHEX, + ST_WAITDIGITS, + ST_DIGITS, + ST_DIGITS_TRAILSPACE, + ST_HEXDIGIT1, + ST_HEXDIGIT2, + ST_HEXDIGITS_TRAILSPACE, + ST_HEXCOLON, + ST_END_ENUM, + ST_UNEXPECTED + } state = ST_LEADSPACE; + const char *dec_value_start = 0; /* INVARIANT: always !0 in ST_DIGITS */ + const char *dec_value_end = 0; + + if(chunk_size) + ASN_DEBUG("INTEGER body %ld 0x%2x..0x%2x", + (long)chunk_size, *lstart, lstop[-1]); + + if(INTEGER_st_prealloc(st, (chunk_size/3) + 1)) + return XPBD_SYSTEM_FAILURE; + + /* + * We may have received a tag here. It will be processed inline. + * Use strtoul()-like code and serialize the result. + */ + for(lp = lstart; lp < lstop; lp++) { + int lv = *lp; + switch(lv) { + case 0x09: case 0x0a: case 0x0d: case 0x20: + switch(state) { + case ST_LEADSPACE: + case ST_DIGITS_TRAILSPACE: + case ST_HEXDIGITS_TRAILSPACE: + case ST_SKIPSPHEX: + continue; + case ST_DIGITS: + dec_value_end = lp; + state = ST_DIGITS_TRAILSPACE; + continue; + case ST_HEXCOLON: + state = ST_HEXDIGITS_TRAILSPACE; + continue; + default: + break; + } + break; + case 0x2d: /* '-' */ + if(state == ST_LEADSPACE) { + dec_value = 0; + dec_value_start = lp; + state = ST_WAITDIGITS; + continue; + } + break; + case 0x2b: /* '+' */ + if(state == ST_LEADSPACE) { + dec_value = 0; + dec_value_start = lp; + state = ST_WAITDIGITS; + continue; + } + break; + case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: + case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: + switch(state) { + case ST_DIGITS: continue; + case ST_SKIPSPHEX: /* Fall through */ + case ST_HEXDIGIT1: + hex_value = (lv - 0x30) << 4; + state = ST_HEXDIGIT2; + continue; + case ST_HEXDIGIT2: + hex_value += (lv - 0x30); + state = ST_HEXCOLON; + st->buf[st->size++] = (uint8_t)hex_value; + continue; + case ST_HEXCOLON: + return XPBD_BROKEN_ENCODING; + case ST_LEADSPACE: + dec_value = 0; + dec_value_start = lp; + /* FALL THROUGH */ + case ST_WAITDIGITS: + state = ST_DIGITS; + continue; + default: + break; + } + break; + case 0x3c: /* '<', start of XML encoded enumeration */ + if(state == ST_LEADSPACE) { + const asn_INTEGER_enum_map_t *el; + el = INTEGER_map_enum2value( + (const asn_INTEGER_specifics_t *) + td->specifics, lstart, lstop); + if(el) { + ASN_DEBUG("Found \"%s\" => %ld", + el->enum_name, el->nat_value); + dec_value = el->nat_value; + state = ST_END_ENUM; + lp = lstop - 1; + continue; + } + ASN_DEBUG("Unknown identifier for INTEGER"); + } + return XPBD_BROKEN_ENCODING; + case 0x3a: /* ':' */ + if(state == ST_HEXCOLON) { + /* This colon is expected */ + state = ST_HEXDIGIT1; + continue; + } else if(state == ST_DIGITS) { + /* The colon here means that we have + * decoded the first two hexadecimal + * places as a decimal value. + * Switch decoding mode. */ + ASN_DEBUG("INTEGER re-evaluate as hex form"); + state = ST_SKIPSPHEX; + dec_value_start = 0; + lp = lstart - 1; + continue; + } else { + ASN_DEBUG("state %d at %ld", state, (long)(lp - lstart)); + break; + } + /* [A-Fa-f] */ + case 0x41:case 0x42:case 0x43:case 0x44:case 0x45:case 0x46: + case 0x61:case 0x62:case 0x63:case 0x64:case 0x65:case 0x66: + switch(state) { + case ST_SKIPSPHEX: + case ST_LEADSPACE: /* Fall through */ + case ST_HEXDIGIT1: + hex_value = lv - ((lv < 0x61) ? 0x41 : 0x61); + hex_value += 10; + hex_value <<= 4; + state = ST_HEXDIGIT2; + continue; + case ST_HEXDIGIT2: + hex_value += lv - ((lv < 0x61) ? 0x41 : 0x61); + hex_value += 10; + st->buf[st->size++] = (uint8_t)hex_value; + state = ST_HEXCOLON; + continue; + case ST_DIGITS: + ASN_DEBUG("INTEGER re-evaluate as hex form"); + state = ST_SKIPSPHEX; + dec_value_start = 0; + lp = lstart - 1; + continue; + default: + break; + } + break; + } + + /* Found extra non-numeric stuff */ + ASN_DEBUG("INTEGER :: Found non-numeric 0x%2x at %ld", + lv, (long)(lp - lstart)); + state = ST_UNEXPECTED; + break; + } + + switch(state) { + case ST_END_ENUM: + /* Got a complete and valid enumeration encoded as a tag. */ + break; + case ST_DIGITS: + dec_value_end = lstop; + /* FALL THROUGH */ + case ST_DIGITS_TRAILSPACE: + /* The last symbol encountered was a digit. */ + switch(asn_strtoimax_lim(dec_value_start, &dec_value_end, &dec_value)) { + case ASN_STRTOX_OK: + if(specs && specs->field_unsigned && (uintmax_t) dec_value <= ULONG_MAX) { + break; + } else if(dec_value >= LONG_MIN && dec_value <= LONG_MAX) { + break; + } else { + /* + * We model INTEGER on long for XER, + * to avoid rewriting all the tests at once. + */ + ASN_DEBUG("INTEGER exceeds long range"); + } + /* Fall through */ + case ASN_STRTOX_ERROR_RANGE: + ASN_DEBUG("INTEGER decode %s hit range limit", td->name); + return XPBD_DECODER_LIMIT; + case ASN_STRTOX_ERROR_INVAL: + case ASN_STRTOX_EXPECT_MORE: + case ASN_STRTOX_EXTRA_DATA: + return XPBD_BROKEN_ENCODING; + } + break; + case ST_HEXCOLON: + case ST_HEXDIGITS_TRAILSPACE: + st->buf[st->size] = 0; /* Just in case termination */ + return XPBD_BODY_CONSUMED; + case ST_HEXDIGIT1: + case ST_HEXDIGIT2: + case ST_SKIPSPHEX: + return XPBD_BROKEN_ENCODING; + case ST_LEADSPACE: + /* Content not found */ + return XPBD_NOT_BODY_IGNORE; + case ST_WAITDIGITS: + case ST_UNEXPECTED: + ASN_DEBUG("INTEGER: No useful digits (state %d)", state); + return XPBD_BROKEN_ENCODING; /* No digits */ + } + + /* + * Convert the result of parsing of enumeration or a straight + * decimal value into a BER representation. + */ + if(asn_imax2INTEGER(st, dec_value)) { + ASN_DEBUG("INTEGER decode %s conversion failed", td->name); + return XPBD_SYSTEM_FAILURE; + } + + return XPBD_BODY_CONSUMED; +} + +asn_dec_rval_t +INTEGER_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, size_t size) { + return xer_decode_primitive(opt_codec_ctx, td, + sptr, sizeof(INTEGER_t), opt_mname, + buf_ptr, size, INTEGER__xer_body_decode); +} + +asn_enc_rval_t +INTEGER_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + asn_enc_rval_t er = {0,0,0}; + + (void)ilevel; + (void)flags; + + if(!st || !st->buf) + ASN__ENCODE_FAILED; + + er.encoded = INTEGER__dump(td, st, cb, app_key, 1); + if(er.encoded < 0) ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/e2sim/asn1c/IndexToRFSP.c b/e2sim/asn1c/IndexToRFSP.c new file mode 100644 index 0000000..a199c50 --- /dev/null +++ b/e2sim/asn1c/IndexToRFSP.c @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "IndexToRFSP.h" + +int +IndexToRFSP_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 >= 1L && value <= 256L)) { + /* 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. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_IndexToRFSP_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 256 } /* (1..256,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_IndexToRFSP_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IndexToRFSP = { + "IndexToRFSP", + "IndexToRFSP", + &asn_OP_NativeInteger, + asn_DEF_IndexToRFSP_tags_1, + sizeof(asn_DEF_IndexToRFSP_tags_1) + /sizeof(asn_DEF_IndexToRFSP_tags_1[0]), /* 1 */ + asn_DEF_IndexToRFSP_tags_1, /* Same as above */ + sizeof(asn_DEF_IndexToRFSP_tags_1) + /sizeof(asn_DEF_IndexToRFSP_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_IndexToRFSP_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + IndexToRFSP_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/IndexToRFSP.h b/e2sim/asn1c/IndexToRFSP.h new file mode 100644 index 0000000..dadc6ae --- /dev/null +++ b/e2sim/asn1c/IndexToRFSP.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _IndexToRFSP_H_ +#define _IndexToRFSP_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* IndexToRFSP */ +typedef long IndexToRFSP_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IndexToRFSP; +asn_struct_free_f IndexToRFSP_free; +asn_struct_print_f IndexToRFSP_print; +asn_constr_check_f IndexToRFSP_constraint; +ber_type_decoder_f IndexToRFSP_decode_ber; +der_type_encoder_f IndexToRFSP_encode_der; +xer_type_decoder_f IndexToRFSP_decode_xer; +xer_type_encoder_f IndexToRFSP_encode_xer; +jer_type_encoder_f IndexToRFSP_encode_jer; +per_type_decoder_f IndexToRFSP_decode_uper; +per_type_encoder_f IndexToRFSP_encode_uper; +per_type_decoder_f IndexToRFSP_decode_aper; +per_type_encoder_f IndexToRFSP_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IndexToRFSP_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/InitiatingMessage.c b/e2sim/asn1c/InitiatingMessage.c new file mode 100644 index 0000000..3130eac --- /dev/null +++ b/e2sim/asn1c/InitiatingMessage.c @@ -0,0 +1,682 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Descriptions" + * found in "e2ap-epd-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "InitiatingMessage.h" + +static const long asn_VAL_1_id_RICsubscription = 8; +static const long asn_VAL_1_reject = 0; +static const long asn_VAL_2_id_RICsubscriptionDelete = 9; +static const long asn_VAL_2_reject = 0; +static const long asn_VAL_3_id_RICsubscriptionModification = 14; +static const long asn_VAL_3_reject = 0; +static const long asn_VAL_4_id_RICsubscriptionModificationRequired = 15; +static const long asn_VAL_4_reject = 0; +static const long asn_VAL_5_id_RICquery = 16; +static const long asn_VAL_5_reject = 0; +static const long asn_VAL_6_id_RICserviceUpdate = 7; +static const long asn_VAL_6_reject = 0; +static const long asn_VAL_7_id_RICcontrol = 4; +static const long asn_VAL_7_reject = 0; +static const long asn_VAL_8_id_E2setup = 1; +static const long asn_VAL_8_reject = 0; +static const long asn_VAL_9_id_E2nodeConfigurationUpdate = 10; +static const long asn_VAL_9_reject = 0; +static const long asn_VAL_10_id_E2connectionUpdate = 11; +static const long asn_VAL_10_reject = 0; +static const long asn_VAL_11_id_Reset = 3; +static const long asn_VAL_11_reject = 0; +static const long asn_VAL_12_id_E2removal = 13; +static const long asn_VAL_12_reject = 0; +static const long asn_VAL_13_id_RICindication = 5; +static const long asn_VAL_13_ignore = 1; +static const long asn_VAL_14_id_RICserviceQuery = 6; +static const long asn_VAL_14_ignore = 1; +static const long asn_VAL_15_id_ErrorIndication = 2; +static const long asn_VAL_15_ignore = 1; +static const long asn_VAL_16_id_RICsubscriptionDeleteRequired = 12; +static const long asn_VAL_16_ignore = 1; +static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { + { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_RICsubscription }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_RICsubscriptionDelete }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionModificationRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionModificationResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionModificationFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_RICsubscriptionModification }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionModificationRequired }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionModificationConfirm }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionModificationRefuse }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_RICsubscriptionModificationRequired }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICQueryRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICQueryResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICQueryFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_RICquery }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceUpdate }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateAcknowledge }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_RICserviceUpdate }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICcontrolRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolAcknowledge }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_RICcontrol }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_E2setupRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2setupResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2setupFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_E2setup }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_E2nodeConfigurationUpdate }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2nodeConfigurationUpdateAcknowledge }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2nodeConfigurationUpdateFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_E2nodeConfigurationUpdate }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_E2connectionUpdate }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2connectionUpdateAcknowledge }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2connectionUpdateFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_10_id_E2connectionUpdate }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ResetRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_11_id_Reset }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_E2RemovalRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2RemovalResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2RemovalFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_12_id_E2removal }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICindication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_13_id_RICindication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_13_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceQuery }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_14_id_RICserviceQuery }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_14_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_15_id_ErrorIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_15_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequired }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_16_id_RICsubscriptionDeleteRequired }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_16_ignore } +}; +static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { + { 16, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } +}; +static int +memb_procedureCode_constraint_1(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 >= 0L && value <= 255L)) { + /* 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_InitiatingMessage_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_E2AP_ELEMENTARY_PROCEDURES_1; + size_t constraining_column = 3; /* &procedureCode */ + size_t for_column = 4; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct InitiatingMessage, procedureCode)); + + 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_1(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_InitiatingMessage_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_E2AP_ELEMENTARY_PROCEDURES_1; + size_t constraining_column = 3; /* &procedureCode */ + size_t for_column = 0; /* &InitiatingMessage */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct InitiatingMessage, procedureCode)); + + 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_1(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); +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_value_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICsubscriptionRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscriptionRequest, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICsubscriptionRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICsubscriptionDeleteRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscriptionDeleteRequest, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICsubscriptionDeleteRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICsubscriptionModificationRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscriptionModificationRequest, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICsubscriptionModificationRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICsubscriptionModificationRequired), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscriptionModificationRequired, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICsubscriptionModificationRequired" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICQueryRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICQueryRequest, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICQueryRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICserviceUpdate), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICserviceUpdate, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICserviceUpdate" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICcontrolRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICcontrolRequest, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICcontrolRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.E2setupRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2setupRequest, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "E2setupRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.E2nodeConfigurationUpdate), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeConfigurationUpdate, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "E2nodeConfigurationUpdate" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.E2connectionUpdate), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2connectionUpdate, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "E2connectionUpdate" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.ResetRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ResetRequest, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ResetRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.E2RemovalRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2RemovalRequest, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "E2RemovalRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICindication), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICindication, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICindication" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICserviceQuery), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICserviceQuery, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICserviceQuery" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.ErrorIndication), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ErrorIndication, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ErrorIndication" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICsubscriptionDeleteRequired), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscriptionDeleteRequired, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, 15 }, /* RICsubscriptionRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 14 }, /* RICsubscriptionDeleteRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 13 }, /* RICsubscriptionModificationRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 12 }, /* RICsubscriptionModificationRequired */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 11 }, /* RICQueryRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 10 }, /* RICserviceUpdate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -6, 9 }, /* RICcontrolRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -7, 8 }, /* E2setupRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -8, 7 }, /* E2nodeConfigurationUpdate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -9, 6 }, /* E2connectionUpdate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 10, -10, 5 }, /* ResetRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 11, -11, 4 }, /* E2RemovalRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 12, -12, 3 }, /* RICindication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 13, -13, 2 }, /* RICserviceQuery */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 14, -14, 1 }, /* ErrorIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 15, -15, 0 } /* RICsubscriptionDeleteRequired */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { + sizeof(struct InitiatingMessage__value), + offsetof(struct InitiatingMessage__value, _asn_ctx), + offsetof(struct InitiatingMessage__value, present), + sizeof(((struct InitiatingMessage__value *)0)->present), + asn_MAP_value_tag2el_4, + 16, /* 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) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_4, + 16, /* Elements count */ + &asn_SPC_value_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_InitiatingMessage_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage, procedureCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProcedureCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_procedureCode_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_procedureCode_constraint_1 + }, + 0, 0, /* No default value */ + "procedureCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_InitiatingMessage_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_1 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_4, + select_InitiatingMessage_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_4, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_1 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_InitiatingMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_InitiatingMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ + { (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_InitiatingMessage_specs_1 = { + sizeof(struct InitiatingMessage), + offsetof(struct InitiatingMessage, _asn_ctx), + asn_MAP_InitiatingMessage_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_InitiatingMessage = { + "InitiatingMessage", + "InitiatingMessage", + &asn_OP_SEQUENCE, + asn_DEF_InitiatingMessage_tags_1, + sizeof(asn_DEF_InitiatingMessage_tags_1) + /sizeof(asn_DEF_InitiatingMessage_tags_1[0]), /* 1 */ + asn_DEF_InitiatingMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_InitiatingMessage_tags_1) + /sizeof(asn_DEF_InitiatingMessage_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_InitiatingMessage_1, + 3, /* Elements count */ + &asn_SPC_InitiatingMessage_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/InitiatingMessage.h b/e2sim/asn1c/InitiatingMessage.h new file mode 100644 index 0000000..8425105 --- /dev/null +++ b/e2sim/asn1c/InitiatingMessage.h @@ -0,0 +1,130 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Descriptions" + * found in "e2ap-epd-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _InitiatingMessage_H_ +#define _InitiatingMessage_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProcedureCode.h" +#include "Criticality.h" +#include "ANY.h" +#include "asn_ioc.h" +#include "RICsubscriptionRequest.h" +#include "RICsubscriptionResponse.h" +#include "RICsubscriptionFailure.h" +#include "RICsubscriptionDeleteRequest.h" +#include "RICsubscriptionDeleteResponse.h" +#include "RICsubscriptionDeleteFailure.h" +#include "RICsubscriptionModificationRequest.h" +#include "RICsubscriptionModificationResponse.h" +#include "RICsubscriptionModificationFailure.h" +#include "RICsubscriptionModificationRequired.h" +#include "RICsubscriptionModificationConfirm.h" +#include "RICsubscriptionModificationRefuse.h" +#include "RICQueryRequest.h" +#include "RICQueryResponse.h" +#include "RICQueryFailure.h" +#include "RICserviceUpdate.h" +#include "RICserviceUpdateAcknowledge.h" +#include "RICserviceUpdateFailure.h" +#include "RICcontrolRequest.h" +#include "RICcontrolAcknowledge.h" +#include "RICcontrolFailure.h" +#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 "E2RemovalRequest.h" +#include "E2RemovalResponse.h" +#include "E2RemovalFailure.h" +#include "RICindication.h" +#include "RICserviceQuery.h" +#include "ErrorIndication.h" +#include "RICsubscriptionDeleteRequired.h" +#include "OPEN_TYPE.h" +#include "constr_CHOICE.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum InitiatingMessage__value_PR { + InitiatingMessage__value_PR_NOTHING, /* No components present */ + InitiatingMessage__value_PR_RICsubscriptionRequest, + InitiatingMessage__value_PR_RICsubscriptionDeleteRequest, + InitiatingMessage__value_PR_RICsubscriptionModificationRequest, + InitiatingMessage__value_PR_RICsubscriptionModificationRequired, + InitiatingMessage__value_PR_RICQueryRequest, + InitiatingMessage__value_PR_RICserviceUpdate, + InitiatingMessage__value_PR_RICcontrolRequest, + InitiatingMessage__value_PR_E2setupRequest, + InitiatingMessage__value_PR_E2nodeConfigurationUpdate, + InitiatingMessage__value_PR_E2connectionUpdate, + InitiatingMessage__value_PR_ResetRequest, + InitiatingMessage__value_PR_E2RemovalRequest, + InitiatingMessage__value_PR_RICindication, + InitiatingMessage__value_PR_RICserviceQuery, + InitiatingMessage__value_PR_ErrorIndication, + InitiatingMessage__value_PR_RICsubscriptionDeleteRequired +} InitiatingMessage__value_PR; + +/* InitiatingMessage */ +typedef struct InitiatingMessage { + ProcedureCode_t procedureCode; + Criticality_t criticality; + struct InitiatingMessage__value { + InitiatingMessage__value_PR present; + union InitiatingMessage__value_u { + RICsubscriptionRequest_t RICsubscriptionRequest; + RICsubscriptionDeleteRequest_t RICsubscriptionDeleteRequest; + RICsubscriptionModificationRequest_t RICsubscriptionModificationRequest; + RICsubscriptionModificationRequired_t RICsubscriptionModificationRequired; + RICQueryRequest_t RICQueryRequest; + RICserviceUpdate_t RICserviceUpdate; + RICcontrolRequest_t RICcontrolRequest; + E2setupRequest_t E2setupRequest; + E2nodeConfigurationUpdate_t E2nodeConfigurationUpdate; + E2connectionUpdate_t E2connectionUpdate; + ResetRequest_t ResetRequest; + E2RemovalRequest_t E2RemovalRequest; + RICindication_t RICindication; + RICserviceQuery_t RICserviceQuery; + ErrorIndication_t ErrorIndication; + RICsubscriptionDeleteRequired_t RICsubscriptionDeleteRequired; + } 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; +} InitiatingMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_InitiatingMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_InitiatingMessage_specs_1; +extern asn_TYPE_member_t asn_MBR_InitiatingMessage_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _InitiatingMessage_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/Interface-MessageID.c b/e2sim/asn1c/Interface-MessageID.c new file mode 100644 index 0000000..2dd28b2 --- /dev/null +++ b/e2sim/asn1c/Interface-MessageID.c @@ -0,0 +1,144 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "Interface-MessageID.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_messageType_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_messageType_value2enum_3[] = { + { 0, 17, "initiatingMessage" }, + { 1, 17, "successfulOutcome" }, + { 2, 19, "unsuccessfulOutcome" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_messageType_enum2value_3[] = { + 0, /* initiatingMessage(0) */ + 1, /* successfulOutcome(1) */ + 2 /* unsuccessfulOutcome(2) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_messageType_specs_3 = { + asn_MAP_messageType_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_messageType_enum2value_3, /* 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_messageType_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_messageType_3 = { + "messageType", + "messageType", + &asn_OP_NativeEnumerated, + asn_DEF_messageType_tags_3, + sizeof(asn_DEF_messageType_tags_3) + /sizeof(asn_DEF_messageType_tags_3[0]) - 1, /* 1 */ + asn_DEF_messageType_tags_3, /* Same as above */ + sizeof(asn_DEF_messageType_tags_3) + /sizeof(asn_DEF_messageType_tags_3[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_messageType_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_messageType_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_Interface_MessageID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Interface_MessageID, interfaceProcedureID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "interfaceProcedureID" + }, + { ATF_NOFLAGS, 0, offsetof(struct Interface_MessageID, messageType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_messageType_3, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "messageType" + }, +}; +static const ber_tlv_tag_t asn_DEF_Interface_MessageID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Interface_MessageID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* interfaceProcedureID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* messageType */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Interface_MessageID_specs_1 = { + sizeof(struct Interface_MessageID), + offsetof(struct Interface_MessageID, _asn_ctx), + asn_MAP_Interface_MessageID_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_Interface_MessageID = { + "Interface-MessageID", + "Interface-MessageID", + &asn_OP_SEQUENCE, + asn_DEF_Interface_MessageID_tags_1, + sizeof(asn_DEF_Interface_MessageID_tags_1) + /sizeof(asn_DEF_Interface_MessageID_tags_1[0]), /* 1 */ + asn_DEF_Interface_MessageID_tags_1, /* Same as above */ + sizeof(asn_DEF_Interface_MessageID_tags_1) + /sizeof(asn_DEF_Interface_MessageID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Interface_MessageID_1, + 2, /* Elements count */ + &asn_SPC_Interface_MessageID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/Interface-MessageID.h b/e2sim/asn1c/Interface-MessageID.h new file mode 100644 index 0000000..ad78811 --- /dev/null +++ b/e2sim/asn1c/Interface-MessageID.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _Interface_MessageID_H_ +#define _Interface_MessageID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" +#include "NativeEnumerated.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Interface_MessageID__messageType { + Interface_MessageID__messageType_initiatingMessage = 0, + Interface_MessageID__messageType_successfulOutcome = 1, + Interface_MessageID__messageType_unsuccessfulOutcome = 2 + /* + * Enumeration is extensible + */ +} e_Interface_MessageID__messageType; + +/* Interface-MessageID */ +typedef struct Interface_MessageID { + long interfaceProcedureID; + long messageType; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Interface_MessageID_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_messageType_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_Interface_MessageID; + +#ifdef __cplusplus +} +#endif + +#endif /* _Interface_MessageID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/InterfaceID-E1.c b/e2sim/asn1c/InterfaceID-E1.c new file mode 100644 index 0000000..52f537c --- /dev/null +++ b/e2sim/asn1c/InterfaceID-E1.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "InterfaceID-E1.h" + +asn_TYPE_member_t asn_MBR_InterfaceID_E1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct InterfaceID_E1, globalGNB_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GlobalGNB_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "globalGNB-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct InterfaceID_E1, gNB_CU_UP_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2SM_COMMON_IEs_GNB_CU_UP_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "gNB-CU-UP-ID" + }, +}; +static const ber_tlv_tag_t asn_DEF_InterfaceID_E1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_InterfaceID_E1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* globalGNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* gNB-CU-UP-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_InterfaceID_E1_specs_1 = { + sizeof(struct InterfaceID_E1), + offsetof(struct InterfaceID_E1, _asn_ctx), + asn_MAP_InterfaceID_E1_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_InterfaceID_E1 = { + "InterfaceID-E1", + "InterfaceID-E1", + &asn_OP_SEQUENCE, + asn_DEF_InterfaceID_E1_tags_1, + sizeof(asn_DEF_InterfaceID_E1_tags_1) + /sizeof(asn_DEF_InterfaceID_E1_tags_1[0]), /* 1 */ + asn_DEF_InterfaceID_E1_tags_1, /* Same as above */ + sizeof(asn_DEF_InterfaceID_E1_tags_1) + /sizeof(asn_DEF_InterfaceID_E1_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_InterfaceID_E1_1, + 2, /* Elements count */ + &asn_SPC_InterfaceID_E1_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/InterfaceID-E1.h b/e2sim/asn1c/InterfaceID-E1.h new file mode 100644 index 0000000..7d653a8 --- /dev/null +++ b/e2sim/asn1c/InterfaceID-E1.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _InterfaceID_E1_H_ +#define _InterfaceID_E1_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "GlobalGNB-ID.h" +#include "E2SM-COMMON-IEs_GNB-CU-UP-ID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* InterfaceID-E1 */ +typedef struct InterfaceID_E1 { + GlobalGNB_ID_t globalGNB_ID; + E2SM_COMMON_IEs_GNB_CU_UP_ID_t gNB_CU_UP_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} InterfaceID_E1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_InterfaceID_E1; +extern asn_SEQUENCE_specifics_t asn_SPC_InterfaceID_E1_specs_1; +extern asn_TYPE_member_t asn_MBR_InterfaceID_E1_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _InterfaceID_E1_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/InterfaceID-F1.c b/e2sim/asn1c/InterfaceID-F1.c new file mode 100644 index 0000000..826e7ec --- /dev/null +++ b/e2sim/asn1c/InterfaceID-F1.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "InterfaceID-F1.h" + +asn_TYPE_member_t asn_MBR_InterfaceID_F1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct InterfaceID_F1, globalGNB_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GlobalGNB_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "globalGNB-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct InterfaceID_F1, gNB_DU_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2SM_COMMON_IEs_GNB_DU_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "gNB-DU-ID" + }, +}; +static const ber_tlv_tag_t asn_DEF_InterfaceID_F1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_InterfaceID_F1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* globalGNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* gNB-DU-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_InterfaceID_F1_specs_1 = { + sizeof(struct InterfaceID_F1), + offsetof(struct InterfaceID_F1, _asn_ctx), + asn_MAP_InterfaceID_F1_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_InterfaceID_F1 = { + "InterfaceID-F1", + "InterfaceID-F1", + &asn_OP_SEQUENCE, + asn_DEF_InterfaceID_F1_tags_1, + sizeof(asn_DEF_InterfaceID_F1_tags_1) + /sizeof(asn_DEF_InterfaceID_F1_tags_1[0]), /* 1 */ + asn_DEF_InterfaceID_F1_tags_1, /* Same as above */ + sizeof(asn_DEF_InterfaceID_F1_tags_1) + /sizeof(asn_DEF_InterfaceID_F1_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_InterfaceID_F1_1, + 2, /* Elements count */ + &asn_SPC_InterfaceID_F1_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/InterfaceID-F1.h b/e2sim/asn1c/InterfaceID-F1.h new file mode 100644 index 0000000..0877eda --- /dev/null +++ b/e2sim/asn1c/InterfaceID-F1.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _InterfaceID_F1_H_ +#define _InterfaceID_F1_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "GlobalGNB-ID.h" +#include "E2SM-COMMON-IEs_GNB-DU-ID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* InterfaceID-F1 */ +typedef struct InterfaceID_F1 { + GlobalGNB_ID_t globalGNB_ID; + E2SM_COMMON_IEs_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; +} InterfaceID_F1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_InterfaceID_F1; +extern asn_SEQUENCE_specifics_t asn_SPC_InterfaceID_F1_specs_1; +extern asn_TYPE_member_t asn_MBR_InterfaceID_F1_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _InterfaceID_F1_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/InterfaceID-NG.c b/e2sim/asn1c/InterfaceID-NG.c new file mode 100644 index 0000000..163d673 --- /dev/null +++ b/e2sim/asn1c/InterfaceID-NG.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "InterfaceID-NG.h" + +asn_TYPE_member_t asn_MBR_InterfaceID_NG_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct InterfaceID_NG, guami), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GUAMI, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "guami" + }, +}; +static const ber_tlv_tag_t asn_DEF_InterfaceID_NG_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_InterfaceID_NG_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* guami */ +}; +asn_SEQUENCE_specifics_t asn_SPC_InterfaceID_NG_specs_1 = { + sizeof(struct InterfaceID_NG), + offsetof(struct InterfaceID_NG, _asn_ctx), + asn_MAP_InterfaceID_NG_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_InterfaceID_NG = { + "InterfaceID-NG", + "InterfaceID-NG", + &asn_OP_SEQUENCE, + asn_DEF_InterfaceID_NG_tags_1, + sizeof(asn_DEF_InterfaceID_NG_tags_1) + /sizeof(asn_DEF_InterfaceID_NG_tags_1[0]), /* 1 */ + asn_DEF_InterfaceID_NG_tags_1, /* Same as above */ + sizeof(asn_DEF_InterfaceID_NG_tags_1) + /sizeof(asn_DEF_InterfaceID_NG_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_InterfaceID_NG_1, + 1, /* Elements count */ + &asn_SPC_InterfaceID_NG_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/InterfaceID-NG.h b/e2sim/asn1c/InterfaceID-NG.h new file mode 100644 index 0000000..51b464e --- /dev/null +++ b/e2sim/asn1c/InterfaceID-NG.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _InterfaceID_NG_H_ +#define _InterfaceID_NG_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "GUAMI.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* InterfaceID-NG */ +typedef struct InterfaceID_NG { + GUAMI_t guami; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} InterfaceID_NG_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_InterfaceID_NG; +extern asn_SEQUENCE_specifics_t asn_SPC_InterfaceID_NG_specs_1; +extern asn_TYPE_member_t asn_MBR_InterfaceID_NG_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _InterfaceID_NG_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/InterfaceID-S1.c b/e2sim/asn1c/InterfaceID-S1.c new file mode 100644 index 0000000..b373ebb --- /dev/null +++ b/e2sim/asn1c/InterfaceID-S1.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "InterfaceID-S1.h" + +asn_TYPE_member_t asn_MBR_InterfaceID_S1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct InterfaceID_S1, gUMMEI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GUMMEI, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "gUMMEI" + }, +}; +static const ber_tlv_tag_t asn_DEF_InterfaceID_S1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_InterfaceID_S1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gUMMEI */ +}; +asn_SEQUENCE_specifics_t asn_SPC_InterfaceID_S1_specs_1 = { + sizeof(struct InterfaceID_S1), + offsetof(struct InterfaceID_S1, _asn_ctx), + asn_MAP_InterfaceID_S1_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_InterfaceID_S1 = { + "InterfaceID-S1", + "InterfaceID-S1", + &asn_OP_SEQUENCE, + asn_DEF_InterfaceID_S1_tags_1, + sizeof(asn_DEF_InterfaceID_S1_tags_1) + /sizeof(asn_DEF_InterfaceID_S1_tags_1[0]), /* 1 */ + asn_DEF_InterfaceID_S1_tags_1, /* Same as above */ + sizeof(asn_DEF_InterfaceID_S1_tags_1) + /sizeof(asn_DEF_InterfaceID_S1_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_InterfaceID_S1_1, + 1, /* Elements count */ + &asn_SPC_InterfaceID_S1_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/InterfaceID-S1.h b/e2sim/asn1c/InterfaceID-S1.h new file mode 100644 index 0000000..36f3f93 --- /dev/null +++ b/e2sim/asn1c/InterfaceID-S1.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _InterfaceID_S1_H_ +#define _InterfaceID_S1_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "GUMMEI.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* InterfaceID-S1 */ +typedef struct InterfaceID_S1 { + GUMMEI_t gUMMEI; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} InterfaceID_S1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_InterfaceID_S1; +extern asn_SEQUENCE_specifics_t asn_SPC_InterfaceID_S1_specs_1; +extern asn_TYPE_member_t asn_MBR_InterfaceID_S1_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _InterfaceID_S1_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/InterfaceID-W1.c b/e2sim/asn1c/InterfaceID-W1.c new file mode 100644 index 0000000..47b89f0 --- /dev/null +++ b/e2sim/asn1c/InterfaceID-W1.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "InterfaceID-W1.h" + +asn_TYPE_member_t asn_MBR_InterfaceID_W1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct InterfaceID_W1, global_ng_eNB_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GlobalNgENB_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "global-ng-eNB-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct InterfaceID_W1, ng_eNB_DU_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2SM_COMMON_IEs_NGENB_DU_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ng-eNB-DU-ID" + }, +}; +static const ber_tlv_tag_t asn_DEF_InterfaceID_W1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_InterfaceID_W1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* global-ng-eNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ng-eNB-DU-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_InterfaceID_W1_specs_1 = { + sizeof(struct InterfaceID_W1), + offsetof(struct InterfaceID_W1, _asn_ctx), + asn_MAP_InterfaceID_W1_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_InterfaceID_W1 = { + "InterfaceID-W1", + "InterfaceID-W1", + &asn_OP_SEQUENCE, + asn_DEF_InterfaceID_W1_tags_1, + sizeof(asn_DEF_InterfaceID_W1_tags_1) + /sizeof(asn_DEF_InterfaceID_W1_tags_1[0]), /* 1 */ + asn_DEF_InterfaceID_W1_tags_1, /* Same as above */ + sizeof(asn_DEF_InterfaceID_W1_tags_1) + /sizeof(asn_DEF_InterfaceID_W1_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_InterfaceID_W1_1, + 2, /* Elements count */ + &asn_SPC_InterfaceID_W1_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/InterfaceID-W1.h b/e2sim/asn1c/InterfaceID-W1.h new file mode 100644 index 0000000..53d19e8 --- /dev/null +++ b/e2sim/asn1c/InterfaceID-W1.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _InterfaceID_W1_H_ +#define _InterfaceID_W1_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "GlobalNgENB-ID.h" +#include "E2SM-COMMON-IEs_NGENB-DU-ID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* InterfaceID-W1 */ +typedef struct InterfaceID_W1 { + GlobalNgENB_ID_t global_ng_eNB_ID; + E2SM_COMMON_IEs_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; +} InterfaceID_W1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_InterfaceID_W1; +extern asn_SEQUENCE_specifics_t asn_SPC_InterfaceID_W1_specs_1; +extern asn_TYPE_member_t asn_MBR_InterfaceID_W1_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _InterfaceID_W1_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/InterfaceID-X2.c b/e2sim/asn1c/InterfaceID-X2.c new file mode 100644 index 0000000..f1b287a --- /dev/null +++ b/e2sim/asn1c/InterfaceID-X2.c @@ -0,0 +1,148 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "InterfaceID-X2.h" + +#include "E2SM-COMMON-IEs_GlobalENB-ID.h" +#include "E2SM-COMMON-IEs_GlobalenGNB-ID.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_nodeType_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_nodeType_2[] = { + { ATF_POINTER, 0, offsetof(struct InterfaceID_X2__nodeType, choice.global_eNB_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2SM_COMMON_IEs_GlobalENB_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "global-eNB-ID" + }, + { ATF_POINTER, 0, offsetof(struct InterfaceID_X2__nodeType, choice.global_en_gNB_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2SM_COMMON_IEs_GlobalenGNB_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "global-en-gNB-ID" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_nodeType_tag2el_2[] = { + { (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 */ +}; +static asn_CHOICE_specifics_t asn_SPC_nodeType_specs_2 = { + sizeof(struct InterfaceID_X2__nodeType), + offsetof(struct InterfaceID_X2__nodeType, _asn_ctx), + offsetof(struct InterfaceID_X2__nodeType, present), + sizeof(((struct InterfaceID_X2__nodeType *)0)->present), + asn_MAP_nodeType_tag2el_2, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_nodeType_2 = { + "nodeType", + "nodeType", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_nodeType_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_nodeType_2, + 2, /* Elements count */ + &asn_SPC_nodeType_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_InterfaceID_X2_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct InterfaceID_X2, nodeType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_nodeType_2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "nodeType" + }, +}; +static const ber_tlv_tag_t asn_DEF_InterfaceID_X2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_InterfaceID_X2_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* nodeType */ +}; +asn_SEQUENCE_specifics_t asn_SPC_InterfaceID_X2_specs_1 = { + sizeof(struct InterfaceID_X2), + offsetof(struct InterfaceID_X2, _asn_ctx), + asn_MAP_InterfaceID_X2_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_InterfaceID_X2 = { + "InterfaceID-X2", + "InterfaceID-X2", + &asn_OP_SEQUENCE, + asn_DEF_InterfaceID_X2_tags_1, + sizeof(asn_DEF_InterfaceID_X2_tags_1) + /sizeof(asn_DEF_InterfaceID_X2_tags_1[0]), /* 1 */ + asn_DEF_InterfaceID_X2_tags_1, /* Same as above */ + sizeof(asn_DEF_InterfaceID_X2_tags_1) + /sizeof(asn_DEF_InterfaceID_X2_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_InterfaceID_X2_1, + 1, /* Elements count */ + &asn_SPC_InterfaceID_X2_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/InterfaceID-X2.h b/e2sim/asn1c/InterfaceID-X2.h new file mode 100644 index 0000000..aff8283 --- /dev/null +++ b/e2sim/asn1c/InterfaceID-X2.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _InterfaceID_X2_H_ +#define _InterfaceID_X2_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_CHOICE.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum InterfaceID_X2__nodeType_PR { + InterfaceID_X2__nodeType_PR_NOTHING, /* No components present */ + InterfaceID_X2__nodeType_PR_global_eNB_ID, + InterfaceID_X2__nodeType_PR_global_en_gNB_ID + /* Extensions may appear below */ + +} InterfaceID_X2__nodeType_PR; + +/* Forward declarations */ +struct GlobalENB_ID; +struct GlobalenGNB_ID; + +/* InterfaceID-X2 */ +typedef struct InterfaceID_X2 { + struct InterfaceID_X2__nodeType { + InterfaceID_X2__nodeType_PR present; + union InterfaceID_X2__nodeType_u { + struct GlobalENB_ID *global_eNB_ID; + struct GlobalenGNB_ID *global_en_gNB_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } nodeType; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} InterfaceID_X2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_InterfaceID_X2; +extern asn_SEQUENCE_specifics_t asn_SPC_InterfaceID_X2_specs_1; +extern asn_TYPE_member_t asn_MBR_InterfaceID_X2_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _InterfaceID_X2_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/InterfaceID-Xn.c b/e2sim/asn1c/InterfaceID-Xn.c new file mode 100644 index 0000000..f47a346 --- /dev/null +++ b/e2sim/asn1c/InterfaceID-Xn.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "InterfaceID-Xn.h" + +asn_TYPE_member_t asn_MBR_InterfaceID_Xn_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct InterfaceID_Xn, global_NG_RAN_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_GlobalNGRANNodeID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "global-NG-RAN-ID" + }, +}; +static const ber_tlv_tag_t asn_DEF_InterfaceID_Xn_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_InterfaceID_Xn_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-NG-RAN-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_InterfaceID_Xn_specs_1 = { + sizeof(struct InterfaceID_Xn), + offsetof(struct InterfaceID_Xn, _asn_ctx), + asn_MAP_InterfaceID_Xn_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_InterfaceID_Xn = { + "InterfaceID-Xn", + "InterfaceID-Xn", + &asn_OP_SEQUENCE, + asn_DEF_InterfaceID_Xn_tags_1, + sizeof(asn_DEF_InterfaceID_Xn_tags_1) + /sizeof(asn_DEF_InterfaceID_Xn_tags_1[0]), /* 1 */ + asn_DEF_InterfaceID_Xn_tags_1, /* Same as above */ + sizeof(asn_DEF_InterfaceID_Xn_tags_1) + /sizeof(asn_DEF_InterfaceID_Xn_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_InterfaceID_Xn_1, + 1, /* Elements count */ + &asn_SPC_InterfaceID_Xn_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/InterfaceID-Xn.h b/e2sim/asn1c/InterfaceID-Xn.h new file mode 100644 index 0000000..664e734 --- /dev/null +++ b/e2sim/asn1c/InterfaceID-Xn.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _InterfaceID_Xn_H_ +#define _InterfaceID_Xn_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "GlobalNGRANNodeID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* InterfaceID-Xn */ +typedef struct InterfaceID_Xn { + GlobalNGRANNodeID_t global_NG_RAN_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} InterfaceID_Xn_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_InterfaceID_Xn; +extern asn_SEQUENCE_specifics_t asn_SPC_InterfaceID_Xn_specs_1; +extern asn_TYPE_member_t asn_MBR_InterfaceID_Xn_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _InterfaceID_Xn_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/InterfaceIdentifier.c b/e2sim/asn1c/InterfaceIdentifier.c new file mode 100644 index 0000000..fd288cc --- /dev/null +++ b/e2sim/asn1c/InterfaceIdentifier.c @@ -0,0 +1,185 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "InterfaceIdentifier.h" + +#include "InterfaceID-NG.h" +#include "InterfaceID-Xn.h" +#include "InterfaceID-F1.h" +#include "InterfaceID-E1.h" +#include "InterfaceID-S1.h" +#include "InterfaceID-X2.h" +#include "InterfaceID-W1.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_InterfaceIdentifier_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_InterfaceIdentifier_1[] = { + { ATF_POINTER, 0, offsetof(struct InterfaceIdentifier, choice.nG), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InterfaceID_NG, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "nG" + }, + { ATF_POINTER, 0, offsetof(struct InterfaceIdentifier, choice.xN), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InterfaceID_Xn, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "xN" + }, + { ATF_POINTER, 0, offsetof(struct InterfaceIdentifier, choice.f1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InterfaceID_F1, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "f1" + }, + { ATF_POINTER, 0, offsetof(struct InterfaceIdentifier, choice.e1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InterfaceID_E1, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "e1" + }, + { ATF_POINTER, 0, offsetof(struct InterfaceIdentifier, choice.s1), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InterfaceID_S1, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "s1" + }, + { ATF_POINTER, 0, offsetof(struct InterfaceIdentifier, choice.x2), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InterfaceID_X2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "x2" + }, + { ATF_POINTER, 0, offsetof(struct InterfaceIdentifier, choice.w1), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InterfaceID_W1, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "w1" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_InterfaceIdentifier_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nG */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* xN */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* f1 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* e1 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* s1 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* x2 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* w1 */ +}; +static asn_CHOICE_specifics_t asn_SPC_InterfaceIdentifier_specs_1 = { + sizeof(struct InterfaceIdentifier), + offsetof(struct InterfaceIdentifier, _asn_ctx), + offsetof(struct InterfaceIdentifier, present), + sizeof(((struct InterfaceIdentifier *)0)->present), + asn_MAP_InterfaceIdentifier_tag2el_1, + 7, /* Count of tags in the map */ + 0, 0, + 7 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_InterfaceIdentifier = { + "InterfaceIdentifier", + "InterfaceIdentifier", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_InterfaceIdentifier_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_InterfaceIdentifier_1, + 7, /* Elements count */ + &asn_SPC_InterfaceIdentifier_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/InterfaceIdentifier.h b/e2sim/asn1c/InterfaceIdentifier.h new file mode 100644 index 0000000..8a2ca37 --- /dev/null +++ b/e2sim/asn1c/InterfaceIdentifier.h @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _InterfaceIdentifier_H_ +#define _InterfaceIdentifier_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum InterfaceIdentifier_PR { + InterfaceIdentifier_PR_NOTHING, /* No components present */ + InterfaceIdentifier_PR_nG, + InterfaceIdentifier_PR_xN, + InterfaceIdentifier_PR_f1, + InterfaceIdentifier_PR_e1, + InterfaceIdentifier_PR_s1, + InterfaceIdentifier_PR_x2, + InterfaceIdentifier_PR_w1 + /* Extensions may appear below */ + +} InterfaceIdentifier_PR; + +/* Forward declarations */ +struct InterfaceID_NG; +struct InterfaceID_Xn; +struct InterfaceID_F1; +struct InterfaceID_E1; +struct InterfaceID_S1; +struct InterfaceID_X2; +struct InterfaceID_W1; + +/* InterfaceIdentifier */ +typedef struct InterfaceIdentifier { + InterfaceIdentifier_PR present; + union InterfaceIdentifier_u { + struct InterfaceID_NG *nG; + struct InterfaceID_Xn *xN; + struct InterfaceID_F1 *f1; + struct InterfaceID_E1 *e1; + struct InterfaceID_S1 *s1; + struct InterfaceID_X2 *x2; + struct InterfaceID_W1 *w1; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} InterfaceIdentifier_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_InterfaceIdentifier; + +#ifdef __cplusplus +} +#endif + +#endif /* _InterfaceIdentifier_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/InterfaceType.c b/e2sim/asn1c/InterfaceType.c new file mode 100644 index 0000000..88a9e75 --- /dev/null +++ b/e2sim/asn1c/InterfaceType.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "InterfaceType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_InterfaceType_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_InterfaceType_value2enum_1[] = { + { 0, 2, "nG" }, + { 1, 2, "xn" }, + { 2, 2, "f1" }, + { 3, 2, "e1" }, + { 4, 2, "s1" }, + { 5, 2, "x2" }, + { 6, 2, "w1" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_InterfaceType_enum2value_1[] = { + 3, /* e1(3) */ + 2, /* f1(2) */ + 0, /* nG(0) */ + 4, /* s1(4) */ + 6, /* w1(6) */ + 5, /* x2(5) */ + 1 /* xn(1) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_InterfaceType_specs_1 = { + asn_MAP_InterfaceType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_InterfaceType_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_InterfaceType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_InterfaceType = { + "InterfaceType", + "InterfaceType", + &asn_OP_NativeEnumerated, + asn_DEF_InterfaceType_tags_1, + sizeof(asn_DEF_InterfaceType_tags_1) + /sizeof(asn_DEF_InterfaceType_tags_1[0]), /* 1 */ + asn_DEF_InterfaceType_tags_1, /* Same as above */ + sizeof(asn_DEF_InterfaceType_tags_1) + /sizeof(asn_DEF_InterfaceType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_InterfaceType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_InterfaceType_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/InterfaceType.h b/e2sim/asn1c/InterfaceType.h new file mode 100644 index 0000000..3deda70 --- /dev/null +++ b/e2sim/asn1c/InterfaceType.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _InterfaceType_H_ +#define _InterfaceType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum InterfaceType { + InterfaceType_nG = 0, + InterfaceType_xn = 1, + InterfaceType_f1 = 2, + InterfaceType_e1 = 3, + InterfaceType_s1 = 4, + InterfaceType_x2 = 5, + InterfaceType_w1 = 6 + /* + * Enumeration is extensible + */ +} e_InterfaceType; + +/* InterfaceType */ +typedef long InterfaceType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_InterfaceType; +asn_struct_free_f InterfaceType_free; +asn_struct_print_f InterfaceType_print; +asn_constr_check_f InterfaceType_constraint; +ber_type_decoder_f InterfaceType_decode_ber; +der_type_encoder_f InterfaceType_encode_der; +xer_type_decoder_f InterfaceType_decode_xer; +xer_type_encoder_f InterfaceType_encode_xer; +jer_type_encoder_f InterfaceType_encode_jer; +per_type_decoder_f InterfaceType_decode_uper; +per_type_encoder_f InterfaceType_encode_uper; +per_type_decoder_f InterfaceType_decode_aper; +per_type_encoder_f InterfaceType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _InterfaceType_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/LabelInfoItem.c b/e2sim/asn1c/LabelInfoItem.c new file mode 100644 index 0000000..b917146 --- /dev/null +++ b/e2sim/asn1c/LabelInfoItem.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "LabelInfoItem.h" + +asn_TYPE_member_t asn_MBR_LabelInfoItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LabelInfoItem, measLabel), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasurementLabel, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "measLabel" + }, +}; +static const ber_tlv_tag_t asn_DEF_LabelInfoItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LabelInfoItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* measLabel */ +}; +asn_SEQUENCE_specifics_t asn_SPC_LabelInfoItem_specs_1 = { + sizeof(struct LabelInfoItem), + offsetof(struct LabelInfoItem, _asn_ctx), + asn_MAP_LabelInfoItem_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_LabelInfoItem = { + "LabelInfoItem", + "LabelInfoItem", + &asn_OP_SEQUENCE, + asn_DEF_LabelInfoItem_tags_1, + sizeof(asn_DEF_LabelInfoItem_tags_1) + /sizeof(asn_DEF_LabelInfoItem_tags_1[0]), /* 1 */ + asn_DEF_LabelInfoItem_tags_1, /* Same as above */ + sizeof(asn_DEF_LabelInfoItem_tags_1) + /sizeof(asn_DEF_LabelInfoItem_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_LabelInfoItem_1, + 1, /* Elements count */ + &asn_SPC_LabelInfoItem_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/LabelInfoItem.h b/e2sim/asn1c/LabelInfoItem.h new file mode 100644 index 0000000..04aae8a --- /dev/null +++ b/e2sim/asn1c/LabelInfoItem.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _LabelInfoItem_H_ +#define _LabelInfoItem_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "MeasurementLabel.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* LabelInfoItem */ +typedef struct LabelInfoItem { + MeasurementLabel_t measLabel; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LabelInfoItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LabelInfoItem; +extern asn_SEQUENCE_specifics_t asn_SPC_LabelInfoItem_specs_1; +extern asn_TYPE_member_t asn_MBR_LabelInfoItem_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LabelInfoItem_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/LabelInfoList.c b/e2sim/asn1c/LabelInfoList.c new file mode 100644 index 0000000..e41f726 --- /dev/null +++ b/e2sim/asn1c/LabelInfoList.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "LabelInfoList.h" + +#include "LabelInfoItem.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_LabelInfoList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 31, -1, 1, 2147483647 } /* (SIZE(1..2147483647)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_LabelInfoList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_LabelInfoItem, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_LabelInfoList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_LabelInfoList_specs_1 = { + sizeof(struct LabelInfoList), + offsetof(struct LabelInfoList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_LabelInfoList = { + "LabelInfoList", + "LabelInfoList", + &asn_OP_SEQUENCE_OF, + asn_DEF_LabelInfoList_tags_1, + sizeof(asn_DEF_LabelInfoList_tags_1) + /sizeof(asn_DEF_LabelInfoList_tags_1[0]), /* 1 */ + asn_DEF_LabelInfoList_tags_1, /* Same as above */ + sizeof(asn_DEF_LabelInfoList_tags_1) + /sizeof(asn_DEF_LabelInfoList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_LabelInfoList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_LabelInfoList_1, + 1, /* Single element */ + &asn_SPC_LabelInfoList_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/LabelInfoList.h b/e2sim/asn1c/LabelInfoList.h new file mode 100644 index 0000000..89774f6 --- /dev/null +++ b/e2sim/asn1c/LabelInfoList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _LabelInfoList_H_ +#define _LabelInfoList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct LabelInfoItem; + +/* LabelInfoList */ +typedef struct LabelInfoList { + A_SEQUENCE_OF(struct LabelInfoItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LabelInfoList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LabelInfoList; +extern asn_SET_OF_specifics_t asn_SPC_LabelInfoList_specs_1; +extern asn_TYPE_member_t asn_MBR_LabelInfoList_1[1]; +extern asn_per_constraints_t asn_PER_type_LabelInfoList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LabelInfoList_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/LogicalOR.c b/e2sim/asn1c/LogicalOR.c new file mode 100644 index 0000000..1fd300c --- /dev/null +++ b/e2sim/asn1c/LogicalOR.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "LogicalOR.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_LogicalOR_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_LogicalOR_value2enum_1[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_LogicalOR_enum2value_1[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_LogicalOR_specs_1 = { + asn_MAP_LogicalOR_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_LogicalOR_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_LogicalOR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LogicalOR = { + "LogicalOR", + "LogicalOR", + &asn_OP_NativeEnumerated, + asn_DEF_LogicalOR_tags_1, + sizeof(asn_DEF_LogicalOR_tags_1) + /sizeof(asn_DEF_LogicalOR_tags_1[0]), /* 1 */ + asn_DEF_LogicalOR_tags_1, /* Same as above */ + sizeof(asn_DEF_LogicalOR_tags_1) + /sizeof(asn_DEF_LogicalOR_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_LogicalOR_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_LogicalOR_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/LogicalOR.h b/e2sim/asn1c/LogicalOR.h new file mode 100644 index 0000000..4be8a24 --- /dev/null +++ b/e2sim/asn1c/LogicalOR.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _LogicalOR_H_ +#define _LogicalOR_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LogicalOR { + LogicalOR_true = 0 + /* + * Enumeration is extensible + */ +} e_LogicalOR; + +/* LogicalOR */ +typedef long LogicalOR_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LogicalOR_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LogicalOR; +extern const asn_INTEGER_specifics_t asn_SPC_LogicalOR_specs_1; +asn_struct_free_f LogicalOR_free; +asn_struct_print_f LogicalOR_print; +asn_constr_check_f LogicalOR_constraint; +ber_type_decoder_f LogicalOR_decode_ber; +der_type_encoder_f LogicalOR_encode_der; +xer_type_decoder_f LogicalOR_decode_xer; +xer_type_encoder_f LogicalOR_encode_xer; +jer_type_encoder_f LogicalOR_encode_jer; +per_type_decoder_f LogicalOR_decode_uper; +per_type_encoder_f LogicalOR_encode_uper; +per_type_decoder_f LogicalOR_decode_aper; +per_type_encoder_f LogicalOR_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LogicalOR_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/MME-Code.c b/e2sim/asn1c/MME-Code.c new file mode 100644 index 0000000..07c8879 --- /dev/null +++ b/e2sim/asn1c/MME-Code.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "MME-Code.h" + +int +MME_Code_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; + + 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 == 1UL)) { + /* 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 OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_MME_Code_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 1, 1 } /* (SIZE(1..1)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_MME_Code_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MME_Code = { + "MME-Code", + "MME-Code", + &asn_OP_OCTET_STRING, + asn_DEF_MME_Code_tags_1, + sizeof(asn_DEF_MME_Code_tags_1) + /sizeof(asn_DEF_MME_Code_tags_1[0]), /* 1 */ + asn_DEF_MME_Code_tags_1, /* Same as above */ + sizeof(asn_DEF_MME_Code_tags_1) + /sizeof(asn_DEF_MME_Code_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MME_Code_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + MME_Code_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/e2sim/asn1c/MME-Code.h b/e2sim/asn1c/MME-Code.h new file mode 100644 index 0000000..a31f50b --- /dev/null +++ b/e2sim/asn1c/MME-Code.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _MME_Code_H_ +#define _MME_Code_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* MME-Code */ +typedef OCTET_STRING_t MME_Code_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MME_Code_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MME_Code; +asn_struct_free_f MME_Code_free; +asn_struct_print_f MME_Code_print; +asn_constr_check_f MME_Code_constraint; +ber_type_decoder_f MME_Code_decode_ber; +der_type_encoder_f MME_Code_encode_der; +xer_type_decoder_f MME_Code_decode_xer; +xer_type_encoder_f MME_Code_encode_xer; +jer_type_encoder_f MME_Code_encode_jer; +per_type_decoder_f MME_Code_decode_uper; +per_type_encoder_f MME_Code_encode_uper; +per_type_decoder_f MME_Code_decode_aper; +per_type_encoder_f MME_Code_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MME_Code_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/MME-Group-ID.c b/e2sim/asn1c/MME-Group-ID.c new file mode 100644 index 0000000..11ccf78 --- /dev/null +++ b/e2sim/asn1c/MME-Group-ID.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "MME-Group-ID.h" + +int +MME_Group_ID_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; + + 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 == 2UL)) { + /* 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 OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_MME_Group_ID_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_MME_Group_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MME_Group_ID = { + "MME-Group-ID", + "MME-Group-ID", + &asn_OP_OCTET_STRING, + asn_DEF_MME_Group_ID_tags_1, + sizeof(asn_DEF_MME_Group_ID_tags_1) + /sizeof(asn_DEF_MME_Group_ID_tags_1[0]), /* 1 */ + asn_DEF_MME_Group_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_MME_Group_ID_tags_1) + /sizeof(asn_DEF_MME_Group_ID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MME_Group_ID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + MME_Group_ID_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/e2sim/asn1c/MME-Group-ID.h b/e2sim/asn1c/MME-Group-ID.h new file mode 100644 index 0000000..73b32b7 --- /dev/null +++ b/e2sim/asn1c/MME-Group-ID.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _MME_Group_ID_H_ +#define _MME_Group_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* MME-Group-ID */ +typedef OCTET_STRING_t MME_Group_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MME_Group_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MME_Group_ID; +asn_struct_free_f MME_Group_ID_free; +asn_struct_print_f MME_Group_ID_print; +asn_constr_check_f MME_Group_ID_constraint; +ber_type_decoder_f MME_Group_ID_decode_ber; +der_type_encoder_f MME_Group_ID_encode_der; +xer_type_decoder_f MME_Group_ID_decode_xer; +xer_type_encoder_f MME_Group_ID_encode_xer; +jer_type_encoder_f MME_Group_ID_encode_jer; +per_type_decoder_f MME_Group_ID_decode_uper; +per_type_encoder_f MME_Group_ID_encode_uper; +per_type_decoder_f MME_Group_ID_decode_aper; +per_type_encoder_f MME_Group_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MME_Group_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/MME-UE-S1AP-ID.c b/e2sim/asn1c/MME-UE-S1AP-ID.c new file mode 100644 index 0000000..a1774f7 --- /dev/null +++ b/e2sim/asn1c/MME-UE-S1AP-ID.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "MME-UE-S1AP-ID.h" + +int +MME_UE_S1AP_ID_constraint(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; + } + + + /* Constraint check succeeded */ + return 0; +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_MME_UE_S1AP_ID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +const asn_INTEGER_specifics_t asn_SPC_MME_UE_S1AP_ID_specs_1 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_MME_UE_S1AP_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MME_UE_S1AP_ID = { + "MME-UE-S1AP-ID", + "MME-UE-S1AP-ID", + &asn_OP_NativeInteger, + asn_DEF_MME_UE_S1AP_ID_tags_1, + sizeof(asn_DEF_MME_UE_S1AP_ID_tags_1) + /sizeof(asn_DEF_MME_UE_S1AP_ID_tags_1[0]), /* 1 */ + asn_DEF_MME_UE_S1AP_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_MME_UE_S1AP_ID_tags_1) + /sizeof(asn_DEF_MME_UE_S1AP_ID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MME_UE_S1AP_ID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + MME_UE_S1AP_ID_constraint + }, + 0, 0, /* No members */ + &asn_SPC_MME_UE_S1AP_ID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/MME-UE-S1AP-ID.h b/e2sim/asn1c/MME-UE-S1AP-ID.h new file mode 100644 index 0000000..79f3c29 --- /dev/null +++ b/e2sim/asn1c/MME-UE-S1AP-ID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _MME_UE_S1AP_ID_H_ +#define _MME_UE_S1AP_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* MME-UE-S1AP-ID */ +typedef unsigned long MME_UE_S1AP_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MME_UE_S1AP_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MME_UE_S1AP_ID; +extern const asn_INTEGER_specifics_t asn_SPC_MME_UE_S1AP_ID_specs_1; +asn_struct_free_f MME_UE_S1AP_ID_free; +asn_struct_print_f MME_UE_S1AP_ID_print; +asn_constr_check_f MME_UE_S1AP_ID_constraint; +ber_type_decoder_f MME_UE_S1AP_ID_decode_ber; +der_type_encoder_f MME_UE_S1AP_ID_encode_der; +xer_type_decoder_f MME_UE_S1AP_ID_decode_xer; +xer_type_encoder_f MME_UE_S1AP_ID_encode_xer; +jer_type_encoder_f MME_UE_S1AP_ID_encode_jer; +per_type_decoder_f MME_UE_S1AP_ID_decode_uper; +per_type_encoder_f MME_UE_S1AP_ID_encode_uper; +per_type_decoder_f MME_UE_S1AP_ID_decode_aper; +per_type_encoder_f MME_UE_S1AP_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MME_UE_S1AP_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/MMEname.c b/e2sim/asn1c/MMEname.c new file mode 100644 index 0000000..95be200 --- /dev/null +++ b/e2sim/asn1c/MMEname.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#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 >= 1UL && size <= 150UL) + && !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. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MMEname_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + MMEname_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/MMEname.h b/e2sim/asn1c/MMEname.h new file mode 100644 index 0000000..5cb0975 --- /dev/null +++ b/e2sim/asn1c/MMEname.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _MMEname_H_ +#define _MMEname_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "PrintableString.h" + +#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; +jer_type_encoder_f MMEname_encode_jer; +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 "asn_internal.h" diff --git a/e2sim/asn1c/Makefile.am.libasncodec b/e2sim/asn1c/Makefile.am.libasncodec new file mode 100644 index 0000000..ab80c16 --- /dev/null +++ b/e2sim/asn1c/Makefile.am.libasncodec @@ -0,0 +1,903 @@ +ASN_MODULE_SRCS= \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/Criticality.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/Presence.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ProcedureCode.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ProtocolIE-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/TriggeringMessage.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ProtocolIE-Container.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ProtocolIE-SingleContainer.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ProtocolIE-Field.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ProtocolIE-ContainerPair.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ProtocolIE-FieldPair.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ProtocolIE-ContainerList.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ProtocolIE-ContainerPairList.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2AP-PDU.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/InitiatingMessage.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/SuccessfulOutcome.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/UnsuccessfulOutcome.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/AMFName.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/Cause.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/CauseE2node.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/CauseMisc.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/CauseProtocol.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/CauseRICrequest.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/CauseRICservice.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/CauseTransport.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/CriticalityDiagnostics.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/CriticalityDiagnostics-IE-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/CriticalityDiagnostics-IE-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentConfiguration.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentConfigurationAck.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentInterfaceType.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentInterfaceE1.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentInterfaceF1.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentInterfaceNG.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentInterfaceS1.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentInterfaceX2.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentInterfaceXn.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentInterfaceW1.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2AP-IEs_ENB-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ENB-ID-Choice.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ENGNB-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GlobalE2node-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GlobalE2node-en-gNB-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GlobalE2node-eNB-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GlobalE2node-gNB-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GlobalE2node-ng-eNB-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2AP-IEs_GlobalENB-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2AP-IEs_GlobalenGNB-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GlobalgNB-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GlobalngeNB-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GlobalNG-RANNode-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GlobalRIC-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2AP-IEs_GNB-CU-UP-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2AP-IEs_GNB-DU-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GNB-ID-Choice.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MMEname.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2AP-IEs_NGENB-DU-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/PLMN-Identity.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RANfunctionDefinition.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RANfunctionID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RANfunctionOID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RANfunctionRevision.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactionDefinition.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactionExecutionOrder.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactionID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactionType.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICcallProcessID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICcontrolAckRequest.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICcontrolHeader.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICcontrolMessage.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICcontrolOutcome.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICeventTriggerDefinition.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICindicationHeader.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICindicationMessage.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICindicationSN.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICindicationType.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICrequestID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscriptionTime.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubsequentAction.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubsequentActionType.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICqueryHeader.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICqueryDefinition.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICqueryOutcome.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICtimeToWait.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/TimeToWait.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/TNLinformation.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/TNLusage.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/TransactionID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/TypeOfError.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscriptionRequest.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscriptionDetails.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactions-ToBeSetup-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-ToBeSetup-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscriptionResponse.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-Admitted-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-Admitted-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-NotAdmitted-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-NotAdmitted-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscriptionFailure.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscriptionDeleteRequest.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscriptionDeleteResponse.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscriptionDeleteFailure.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscriptionDeleteRequired.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscription-List-withCause.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscription-withCause-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscriptionModificationRequest.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactions-ToBeRemovedForModification-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-ToBeRemovedForModification-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactions-ToBeModifiedForModification-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-ToBeModifiedForModification-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactions-ToBeAddedForModification-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-ToBeAddedForModification-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscriptionModificationResponse.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactions-RemovedForModification-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-RemovedForModification-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactions-FailedToBeRemovedForModification-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-FailedToBeRemovedForModification-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactions-ModifiedForModification-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-ModifiedForModification-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactions-FailedToBeModifiedForModification-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-FailedToBeModifiedForModification-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactions-AddedForModification-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-AddedForModification-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactions-FailedToBeAddedForModification-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-FailedToBeAddedForModification-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscriptionModificationFailure.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscriptionModificationRequired.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactions-RequiredToBeModified-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-RequiredToBeModified-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactions-RequiredToBeRemoved-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-RequiredToBeRemoved-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscriptionModificationConfirm.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactions-ConfirmedForModification-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-ConfirmedForModification-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactions-RefusedToBeModified-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-RefusedToBeModified-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactions-ConfirmedForRemoval-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-ConfirmedForRemoval-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactions-RefusedToBeRemoved-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-RefusedToBeRemoved-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscriptionModificationRefuse.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICindication.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICcontrolRequest.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICcontrolAcknowledge.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICcontrolFailure.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICQueryRequest.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICQueryResponse.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICQueryFailure.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ErrorIndication.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2setupRequest.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2setupResponse.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2setupFailure.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2connectionUpdate.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2connectionUpdate-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2connectionUpdate-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2connectionUpdateRemove-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2connectionUpdateRemove-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2connectionUpdateAcknowledge.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2connectionSetupFailed-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2connectionSetupFailed-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2connectionUpdateFailure.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeConfigurationUpdate.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentConfigAddition-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentConfigAddition-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentConfigUpdate-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentConfigUpdate-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentConfigRemoval-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentConfigRemoval-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeTNLassociationRemoval-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeTNLassociationRemoval-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeConfigurationUpdateAcknowledge.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentConfigAdditionAck-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentConfigAdditionAck-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentConfigUpdateAck-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentConfigUpdateAck-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentConfigRemovalAck-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentConfigRemovalAck-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeConfigurationUpdateFailure.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ResetRequest.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ResetResponse.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICserviceUpdate.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RANfunctions-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RANfunction-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RANfunctionsID-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RANfunctionID-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICserviceUpdateAcknowledge.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RANfunctionsIDcause-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RANfunctionIDcause-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICserviceUpdateFailure.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICserviceQuery.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2RemovalRequest.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2RemovalResponse.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2RemovalFailure.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/TimeStamp.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/BinIndex.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/BinRangeValue.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GranularityPeriod.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/LogicalOR.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MeasurementType.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MeasurementTypeName.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MeasurementTypeID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MeasurementLabel.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/TestCondInfo.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/TestCond-Type.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/TestCond-Expression.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/TestCond-Value.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/BinRangeDefinition.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/BinRangeList.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/BinRangeItem.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/DistMeasurementBinRangeList.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/DistMeasurementBinRangeItem.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MeasurementInfoList.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MeasurementInfoItem.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/LabelInfoList.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/LabelInfoItem.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MeasurementData.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MeasurementDataItem.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MeasurementRecord.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MeasurementRecordItem.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MeasurementInfo-Action-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MeasurementInfo-Action-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MeasurementCondList.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MeasurementCondItem.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MeasurementCondUEidList.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MeasurementCondUEidItem.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MatchingCondList.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MatchingCondItem.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MatchingCondItem-Choice.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MatchingUEidList.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MatchingUEidItem.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MatchingUEidPerGP.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MatchingUEidPerGP-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MatchingUEidList-PerGP.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MatchingUEidItem-PerGP.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MatchingUeCondPerSubList.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MatchingUeCondPerSubItem.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MatchingUEidPerSubList.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MatchingUEidPerSubItem.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/UEMeasurementReportList.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/UEMeasurementReportItem.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-KPM-EventTriggerDefinition.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-KPM-EventTriggerDefinition-Format1.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-KPM-ActionDefinition.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format1.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format2.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format3.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format4.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format5.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-KPM-IndicationHeader.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-KPM-IndicationHeader-Format1.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-KPM-IndicationMessage.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-KPM-IndicationMessage-Format1.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-KPM-IndicationMessage-Format2.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-KPM-IndicationMessage-Format3.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-KPM-RANfunction-Description.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RIC-EventTriggerStyle-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RIC-ReportStyle-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/CGI.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/CoreCPID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/InterfaceIdentifier.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/InterfaceID-NG.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/InterfaceID-Xn.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/InterfaceID-F1.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/InterfaceID-E1.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/InterfaceID-S1.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/InterfaceID-X2.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/InterfaceID-W1.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/Interface-MessageID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/InterfaceType.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GroupID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/QoSID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RANfunction-Name.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RIC-Format-Type.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RIC-Style-Type.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RIC-Style-Name.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RRC-MessageID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RRCclass-LTE.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RRCclass-NR.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ServingCell-ARFCN.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ServingCell-PCI.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/UEID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/UEID-GNB.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/UEID-GNB-CU-CP-E1AP-ID-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/UEID-GNB-CU-CP-E1AP-ID-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/UEID-GNB-CU-F1AP-ID-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/UEID-GNB-CU-CP-F1AP-ID-Item.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/UEID-GNB-DU.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/UEID-GNB-CU-UP.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/UEID-NG-ENB.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/UEID-NG-ENB-DU.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/UEID-EN-GNB.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/UEID-ENB.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-COMMON-IEs_ENB-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-COMMON-IEs_GlobalENB-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GUMMEI.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MME-Group-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MME-Code.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MME-UE-S1AP-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/QCI.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/SubscriberProfileIDforRFP.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/EN-GNB-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ENB-UE-X2AP-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ENB-UE-X2AP-ID-Extension.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E-UTRA-ARFCN.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E-UTRA-PCI.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E-UTRA-TAC.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-COMMON-IEs_GlobalenGNB-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/NGENB-CU-UE-W1AP-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-COMMON-IEs_NGENB-DU-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/AMFPointer.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/AMFRegionID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/AMFSetID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/AMF-UE-NGAP-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/EUTRACellIdentity.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/EUTRA-CGI.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/FiveQI.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GlobalGNB-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GlobalNgENB-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GNB-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GUAMI.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/IndexToRFSP.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/NgENB-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/NRCellIdentity.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/NR-CGI.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/PLMNIdentity.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/QosFlowIdentifier.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/SD.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/S-NSSAI.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/SST.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/NG-RANnodeUEXnAPID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GlobalNGRANNodeID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GNB-CU-CP-UE-E1AP-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-COMMON-IEs_GNB-CU-UP-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/FiveGS-TAC.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/FreqBandNrItem.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GNB-CU-UE-F1AP-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-COMMON-IEs_GNB-DU-ID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/NR-PCI.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/NR-ARFCN.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/NRFrequencyBand-List.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/NRFrequencyBandItem.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/NRFrequencyInfo.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/NRFrequencyShift7p5khz.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RANUEID.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/SupportedSULBandList.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/SupportedSULFreqBandItem.c \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/EXTERNAL.c + +ASN_MODULE_HDRS= \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/Criticality.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/Presence.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ProcedureCode.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ProtocolIE-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/TriggeringMessage.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ProtocolIE-Container.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ProtocolIE-SingleContainer.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ProtocolIE-Field.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ProtocolIE-ContainerPair.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ProtocolIE-FieldPair.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ProtocolIE-ContainerList.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ProtocolIE-ContainerPairList.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2AP-PDU.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/InitiatingMessage.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/SuccessfulOutcome.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/UnsuccessfulOutcome.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/AMFName.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/Cause.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/CauseE2node.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/CauseMisc.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/CauseProtocol.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/CauseRICrequest.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/CauseRICservice.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/CauseTransport.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/CriticalityDiagnostics.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/CriticalityDiagnostics-IE-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/CriticalityDiagnostics-IE-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentConfiguration.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentConfigurationAck.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentInterfaceType.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentInterfaceE1.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentInterfaceF1.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentInterfaceNG.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentInterfaceS1.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentInterfaceX2.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentInterfaceXn.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentInterfaceW1.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2AP-IEs_ENB-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ENB-ID-Choice.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ENGNB-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GlobalE2node-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GlobalE2node-en-gNB-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GlobalE2node-eNB-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GlobalE2node-gNB-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GlobalE2node-ng-eNB-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2AP-IEs_GlobalENB-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2AP-IEs_GlobalenGNB-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GlobalgNB-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GlobalngeNB-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GlobalNG-RANNode-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GlobalRIC-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2AP-IEs_GNB-CU-UP-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2AP-IEs_GNB-DU-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GNB-ID-Choice.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MMEname.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2AP-IEs_NGENB-DU-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/PLMN-Identity.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RANfunctionDefinition.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RANfunctionID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RANfunctionOID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RANfunctionRevision.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactionDefinition.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactionExecutionOrder.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactionID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactionType.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICcallProcessID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICcontrolAckRequest.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICcontrolHeader.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICcontrolMessage.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICcontrolOutcome.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICeventTriggerDefinition.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICindicationHeader.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICindicationMessage.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICindicationSN.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICindicationType.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICrequestID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscriptionTime.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubsequentAction.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubsequentActionType.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICqueryHeader.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICqueryDefinition.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICqueryOutcome.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICtimeToWait.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/TimeToWait.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/TNLinformation.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/TNLusage.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/TransactionID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/TypeOfError.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscriptionRequest.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscriptionDetails.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactions-ToBeSetup-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-ToBeSetup-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscriptionResponse.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-Admitted-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-Admitted-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-NotAdmitted-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-NotAdmitted-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscriptionFailure.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscriptionDeleteRequest.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscriptionDeleteResponse.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscriptionDeleteFailure.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscriptionDeleteRequired.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscription-List-withCause.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscription-withCause-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscriptionModificationRequest.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactions-ToBeRemovedForModification-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-ToBeRemovedForModification-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactions-ToBeModifiedForModification-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-ToBeModifiedForModification-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactions-ToBeAddedForModification-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-ToBeAddedForModification-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscriptionModificationResponse.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactions-RemovedForModification-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-RemovedForModification-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactions-FailedToBeRemovedForModification-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-FailedToBeRemovedForModification-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactions-ModifiedForModification-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-ModifiedForModification-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactions-FailedToBeModifiedForModification-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-FailedToBeModifiedForModification-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactions-AddedForModification-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-AddedForModification-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactions-FailedToBeAddedForModification-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-FailedToBeAddedForModification-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscriptionModificationFailure.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscriptionModificationRequired.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactions-RequiredToBeModified-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-RequiredToBeModified-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactions-RequiredToBeRemoved-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-RequiredToBeRemoved-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscriptionModificationConfirm.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactions-ConfirmedForModification-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-ConfirmedForModification-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactions-RefusedToBeModified-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-RefusedToBeModified-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactions-ConfirmedForRemoval-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-ConfirmedForRemoval-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICactions-RefusedToBeRemoved-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICaction-RefusedToBeRemoved-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICsubscriptionModificationRefuse.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICindication.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICcontrolRequest.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICcontrolAcknowledge.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICcontrolFailure.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICQueryRequest.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICQueryResponse.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICQueryFailure.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ErrorIndication.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2setupRequest.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2setupResponse.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2setupFailure.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2connectionUpdate.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2connectionUpdate-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2connectionUpdate-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2connectionUpdateRemove-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2connectionUpdateRemove-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2connectionUpdateAcknowledge.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2connectionSetupFailed-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2connectionSetupFailed-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2connectionUpdateFailure.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeConfigurationUpdate.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentConfigAddition-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentConfigAddition-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentConfigUpdate-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentConfigUpdate-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentConfigRemoval-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentConfigRemoval-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeTNLassociationRemoval-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeTNLassociationRemoval-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeConfigurationUpdateAcknowledge.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentConfigAdditionAck-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentConfigAdditionAck-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentConfigUpdateAck-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentConfigUpdateAck-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentConfigRemovalAck-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeComponentConfigRemovalAck-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2nodeConfigurationUpdateFailure.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ResetRequest.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ResetResponse.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICserviceUpdate.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RANfunctions-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RANfunction-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RANfunctionsID-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RANfunctionID-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICserviceUpdateAcknowledge.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RANfunctionsIDcause-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RANfunctionIDcause-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICserviceUpdateFailure.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RICserviceQuery.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2RemovalRequest.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2RemovalResponse.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2RemovalFailure.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/TimeStamp.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/BinIndex.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/BinRangeValue.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GranularityPeriod.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/LogicalOR.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MeasurementType.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MeasurementTypeName.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MeasurementTypeID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MeasurementLabel.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/TestCondInfo.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/TestCond-Type.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/TestCond-Expression.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/TestCond-Value.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/BinRangeDefinition.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/BinRangeList.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/BinRangeItem.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/DistMeasurementBinRangeList.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/DistMeasurementBinRangeItem.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MeasurementInfoList.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MeasurementInfoItem.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/LabelInfoList.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/LabelInfoItem.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MeasurementData.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MeasurementDataItem.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MeasurementRecord.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MeasurementRecordItem.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MeasurementInfo-Action-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MeasurementInfo-Action-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MeasurementCondList.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MeasurementCondItem.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MeasurementCondUEidList.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MeasurementCondUEidItem.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MatchingCondList.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MatchingCondItem.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MatchingCondItem-Choice.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MatchingUEidList.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MatchingUEidItem.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MatchingUEidPerGP.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MatchingUEidPerGP-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MatchingUEidList-PerGP.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MatchingUEidItem-PerGP.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MatchingUeCondPerSubList.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MatchingUeCondPerSubItem.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MatchingUEidPerSubList.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MatchingUEidPerSubItem.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/UEMeasurementReportList.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/UEMeasurementReportItem.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-KPM-EventTriggerDefinition.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-KPM-EventTriggerDefinition-Format1.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-KPM-ActionDefinition.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format1.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format2.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format3.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format4.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-KPM-ActionDefinition-Format5.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-KPM-IndicationHeader.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-KPM-IndicationHeader-Format1.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-KPM-IndicationMessage.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-KPM-IndicationMessage-Format1.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-KPM-IndicationMessage-Format2.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-KPM-IndicationMessage-Format3.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-KPM-RANfunction-Description.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RIC-EventTriggerStyle-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RIC-ReportStyle-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/CGI.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/CoreCPID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/InterfaceIdentifier.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/InterfaceID-NG.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/InterfaceID-Xn.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/InterfaceID-F1.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/InterfaceID-E1.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/InterfaceID-S1.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/InterfaceID-X2.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/InterfaceID-W1.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/Interface-MessageID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/InterfaceType.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GroupID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/QoSID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RANfunction-Name.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RIC-Format-Type.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RIC-Style-Type.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RIC-Style-Name.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RRC-MessageID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RRCclass-LTE.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RRCclass-NR.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ServingCell-ARFCN.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ServingCell-PCI.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/UEID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/UEID-GNB.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/UEID-GNB-CU-CP-E1AP-ID-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/UEID-GNB-CU-CP-E1AP-ID-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/UEID-GNB-CU-F1AP-ID-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/UEID-GNB-CU-CP-F1AP-ID-Item.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/UEID-GNB-DU.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/UEID-GNB-CU-UP.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/UEID-NG-ENB.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/UEID-NG-ENB-DU.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/UEID-EN-GNB.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/UEID-ENB.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-COMMON-IEs_ENB-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-COMMON-IEs_GlobalENB-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GUMMEI.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MME-Group-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MME-Code.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/MME-UE-S1AP-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/QCI.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/SubscriberProfileIDforRFP.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/EN-GNB-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ENB-UE-X2AP-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/ENB-UE-X2AP-ID-Extension.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E-UTRA-ARFCN.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E-UTRA-PCI.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E-UTRA-TAC.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-COMMON-IEs_GlobalenGNB-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/NGENB-CU-UE-W1AP-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-COMMON-IEs_NGENB-DU-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/AMFPointer.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/AMFRegionID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/AMFSetID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/AMF-UE-NGAP-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/EUTRACellIdentity.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/EUTRA-CGI.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/FiveQI.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GlobalGNB-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GlobalNgENB-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GNB-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GUAMI.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/IndexToRFSP.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/NgENB-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/NRCellIdentity.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/NR-CGI.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/PLMNIdentity.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/QosFlowIdentifier.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/SD.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/S-NSSAI.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/SST.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/NG-RANnodeUEXnAPID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GlobalNGRANNodeID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GNB-CU-CP-UE-E1AP-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-COMMON-IEs_GNB-CU-UP-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/FiveGS-TAC.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/FreqBandNrItem.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/GNB-CU-UE-F1AP-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/E2SM-COMMON-IEs_GNB-DU-ID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/NR-PCI.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/NR-ARFCN.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/NRFrequencyBand-List.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/NRFrequencyBandItem.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/NRFrequencyInfo.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/NRFrequencyShift7p5khz.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/RANUEID.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/SupportedSULBandList.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/SupportedSULFreqBandItem.h \ + /tmp/workspace/oransim-gerrit/e2sim/asn1c/EXTERNAL.h + +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/ANY.h +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/ANY.c +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/OCTET_STRING.h +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/OPEN_TYPE.h +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/OPEN_TYPE.c +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_CHOICE.h +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/BOOLEAN.h +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/BOOLEAN.c +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/GraphicString.h +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/GraphicString.c +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/INTEGER.h +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/INTEGER.c +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/NULL.h +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/NULL.c +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/NativeEnumerated.h +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/NativeEnumerated.c +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/NativeInteger.h +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/NativeInteger.c +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/NativeReal.h +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/NativeReal.c +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/REAL.h +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/OBJECT_IDENTIFIER.h +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/OBJECT_IDENTIFIER.c +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/asn_codecs_prim.h +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/ObjectDescriptor.h +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/ObjectDescriptor.c +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/PrintableString.h +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/PrintableString.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/REAL.c +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/asn_SEQUENCE_OF.h +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/asn_SEQUENCE_OF.c +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/asn_SET_OF.h +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/asn_SET_OF.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_CHOICE.c +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_SEQUENCE.h +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_SEQUENCE.c +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_SEQUENCE_OF.h +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_SEQUENCE_OF.c +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_SET_OF.h +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_SET_OF.c +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/asn_application.h +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/asn_application.c +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/asn_ioc.h +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/asn_system.h +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/asn_codecs.h +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/asn_internal.h +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/asn_internal.c +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/asn_bit_data.h +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/asn_bit_data.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/OCTET_STRING.c +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/BIT_STRING.h +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/BIT_STRING.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/asn_codecs_prim.c +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/ber_tlv_length.h +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/ber_tlv_length.c +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/ber_tlv_tag.h +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/ber_tlv_tag.c +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_TYPE.h +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_TYPE.c +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constraints.h +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constraints.c +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/ber_decoder.h +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/der_encoder.h +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/ber_decoder.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/der_encoder.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/ANY_ber.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/BOOLEAN_ber.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/INTEGER_ber.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/NULL_ber.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/NativeInteger_ber.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/NativeReal_ber.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/OCTET_STRING_ber.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/OPEN_TYPE_ber.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/asn_codecs_prim_ber.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_CHOICE_ber.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_SEQUENCE_OF_ber.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_SEQUENCE_ber.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_SET_OF_ber.c +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/xer_support.h +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/xer_decoder.h +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/xer_encoder.h +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/xer_support.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/xer_decoder.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/xer_encoder.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/ANY_xer.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/BIT_STRING_xer.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/BOOLEAN_xer.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/INTEGER_xer.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/NULL_xer.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/NativeEnumerated_xer.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/NativeInteger_xer.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/NativeReal_xer.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/OBJECT_IDENTIFIER_xer.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/OCTET_STRING_xer.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/OPEN_TYPE_xer.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/REAL_xer.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/asn_codecs_prim_xer.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_CHOICE_xer.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_SEQUENCE_OF_xer.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_SEQUENCE_xer.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_SET_OF_xer.c +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/per_decoder.h +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/per_encoder.h +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/per_support.h +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/per_opentype.h +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/per_decoder.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/per_encoder.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/per_support.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/per_opentype.c +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/uper_decoder.h +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/uper_encoder.h +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/uper_support.h +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/uper_opentype.h +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/uper_decoder.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/uper_encoder.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/uper_support.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/uper_opentype.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/ANY_uper.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/BIT_STRING_uper.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/BOOLEAN_uper.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/INTEGER_uper.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/NULL_uper.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/NativeEnumerated_uper.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/NativeInteger_uper.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/NativeReal_uper.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/OCTET_STRING_uper.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/OPEN_TYPE_uper.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/REAL_uper.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_CHOICE_uper.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_SEQUENCE_OF_uper.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_SEQUENCE_uper.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_SET_OF_uper.c +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/aper_decoder.h +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/aper_encoder.h +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/aper_support.h +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/aper_opentype.h +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/aper_decoder.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/aper_encoder.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/aper_support.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/aper_opentype.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/ANY_aper.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/BOOLEAN_aper.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/INTEGER_aper.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/NULL_aper.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/NativeEnumerated_aper.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/NativeInteger_aper.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/NativeReal_aper.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/OCTET_STRING_aper.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/OPEN_TYPE_aper.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/REAL_aper.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_CHOICE_aper.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_SEQUENCE_OF_aper.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_SEQUENCE_aper.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_SET_OF_aper.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/BIT_STRING_print.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/BOOLEAN_print.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/INTEGER_print.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/NULL_print.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/NativeInteger_print.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/NativeReal_print.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/OBJECT_IDENTIFIER_print.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/OCTET_STRING_print.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/REAL_print.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_CHOICE_print.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_SEQUENCE_print.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_SET_OF_print.c +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/asn_random_fill.h +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/asn_random_fill.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/BIT_STRING_rfill.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/BOOLEAN_rfill.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/INTEGER_rfill.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/NULL_rfill.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/NativeInteger_rfill.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/NativeReal_rfill.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/OBJECT_IDENTIFIER_rfill.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/OCTET_STRING_rfill.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/REAL_rfill.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_CHOICE_rfill.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_SEQUENCE_rfill.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_SET_OF_rfill.c +ASN_MODULE_HDRS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/jer_encoder.h +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/jer_encoder.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/ANY_jer.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/BIT_STRING_jer.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/BOOLEAN_jer.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/INTEGER_jer.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/NULL_jer.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/NativeEnumerated_jer.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/NativeInteger_jer.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/NativeReal_jer.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/OBJECT_IDENTIFIER_jer.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/OCTET_STRING_jer.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/REAL_jer.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_CHOICE_jer.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_SEQUENCE_OF_jer.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_SEQUENCE_jer.c +ASN_MODULE_SRCS+=/tmp/workspace/oransim-gerrit/e2sim/asn1c/constr_SET_OF_jer.c + +ASN_MODULE_CFLAGS=-DASN_DISABLE_OER_SUPPORT + +lib_LTLIBRARIES+=libasncodec.la +libasncodec_la_SOURCES=$(ASN_MODULE_SRCS) $(ASN_MODULE_HDRS) +libasncodec_la_CPPFLAGS=-I$(top_srcdir)//tmp/workspace/oransim-gerrit/e2sim/asn1c/ +libasncodec_la_CFLAGS=$(ASN_MODULE_CFLAGS) +libasncodec_la_LDFLAGS=-lm diff --git a/e2sim/asn1c/MatchingCondItem-Choice.c b/e2sim/asn1c/MatchingCondItem-Choice.c new file mode 100644 index 0000000..ce5bdd8 --- /dev/null +++ b/e2sim/asn1c/MatchingCondItem-Choice.c @@ -0,0 +1,90 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "MatchingCondItem-Choice.h" + +#include "MeasurementLabel.h" +#include "TestCondInfo.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_MatchingCondItem_Choice_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_MatchingCondItem_Choice_1[] = { + { ATF_POINTER, 0, offsetof(struct MatchingCondItem_Choice, choice.measLabel), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasurementLabel, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "measLabel" + }, + { ATF_POINTER, 0, offsetof(struct MatchingCondItem_Choice, choice.testCondInfo), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TestCondInfo, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "testCondInfo" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_MatchingCondItem_Choice_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measLabel */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* testCondInfo */ +}; +asn_CHOICE_specifics_t asn_SPC_MatchingCondItem_Choice_specs_1 = { + sizeof(struct MatchingCondItem_Choice), + offsetof(struct MatchingCondItem_Choice, _asn_ctx), + offsetof(struct MatchingCondItem_Choice, present), + sizeof(((struct MatchingCondItem_Choice *)0)->present), + asn_MAP_MatchingCondItem_Choice_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_MatchingCondItem_Choice = { + "MatchingCondItem-Choice", + "MatchingCondItem-Choice", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MatchingCondItem_Choice_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_MatchingCondItem_Choice_1, + 2, /* Elements count */ + &asn_SPC_MatchingCondItem_Choice_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/MatchingCondItem-Choice.h b/e2sim/asn1c/MatchingCondItem-Choice.h new file mode 100644 index 0000000..40a498a --- /dev/null +++ b/e2sim/asn1c/MatchingCondItem-Choice.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _MatchingCondItem_Choice_H_ +#define _MatchingCondItem_Choice_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MatchingCondItem_Choice_PR { + MatchingCondItem_Choice_PR_NOTHING, /* No components present */ + MatchingCondItem_Choice_PR_measLabel, + MatchingCondItem_Choice_PR_testCondInfo + /* Extensions may appear below */ + +} MatchingCondItem_Choice_PR; + +/* Forward declarations */ +struct MeasurementLabel; +struct TestCondInfo; + +/* MatchingCondItem-Choice */ +typedef struct MatchingCondItem_Choice { + MatchingCondItem_Choice_PR present; + union MatchingCondItem_Choice_u { + struct MeasurementLabel *measLabel; + struct TestCondInfo *testCondInfo; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MatchingCondItem_Choice_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MatchingCondItem_Choice; +extern asn_CHOICE_specifics_t asn_SPC_MatchingCondItem_Choice_specs_1; +extern asn_TYPE_member_t asn_MBR_MatchingCondItem_Choice_1[2]; +extern asn_per_constraints_t asn_PER_type_MatchingCondItem_Choice_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MatchingCondItem_Choice_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/MatchingCondItem.c b/e2sim/asn1c/MatchingCondItem.c new file mode 100644 index 0000000..a001c0a --- /dev/null +++ b/e2sim/asn1c/MatchingCondItem.c @@ -0,0 +1,86 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "MatchingCondItem.h" + +asn_TYPE_member_t asn_MBR_MatchingCondItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MatchingCondItem, matchingCondChoice), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_MatchingCondItem_Choice, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "matchingCondChoice" + }, + { ATF_POINTER, 1, offsetof(struct MatchingCondItem, logicalOR), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LogicalOR, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "logicalOR" + }, +}; +static const int asn_MAP_MatchingCondItem_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_MatchingCondItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MatchingCondItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* matchingCondChoice */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* logicalOR */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MatchingCondItem_specs_1 = { + sizeof(struct MatchingCondItem), + offsetof(struct MatchingCondItem, _asn_ctx), + asn_MAP_MatchingCondItem_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_MatchingCondItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MatchingCondItem = { + "MatchingCondItem", + "MatchingCondItem", + &asn_OP_SEQUENCE, + asn_DEF_MatchingCondItem_tags_1, + sizeof(asn_DEF_MatchingCondItem_tags_1) + /sizeof(asn_DEF_MatchingCondItem_tags_1[0]), /* 1 */ + asn_DEF_MatchingCondItem_tags_1, /* Same as above */ + sizeof(asn_DEF_MatchingCondItem_tags_1) + /sizeof(asn_DEF_MatchingCondItem_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_MatchingCondItem_1, + 2, /* Elements count */ + &asn_SPC_MatchingCondItem_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/MatchingCondItem.h b/e2sim/asn1c/MatchingCondItem.h new file mode 100644 index 0000000..8d91a01 --- /dev/null +++ b/e2sim/asn1c/MatchingCondItem.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _MatchingCondItem_H_ +#define _MatchingCondItem_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "MatchingCondItem-Choice.h" +#include "LogicalOR.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* MatchingCondItem */ +typedef struct MatchingCondItem { + MatchingCondItem_Choice_t matchingCondChoice; + LogicalOR_t *logicalOR; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MatchingCondItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MatchingCondItem; +extern asn_SEQUENCE_specifics_t asn_SPC_MatchingCondItem_specs_1; +extern asn_TYPE_member_t asn_MBR_MatchingCondItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MatchingCondItem_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/MatchingCondList.c b/e2sim/asn1c/MatchingCondList.c new file mode 100644 index 0000000..3563b8b --- /dev/null +++ b/e2sim/asn1c/MatchingCondList.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "MatchingCondList.h" + +#include "MatchingCondItem.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_MatchingCondList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 15, 15, 1, 32768 } /* (SIZE(1..32768)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_MatchingCondList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MatchingCondItem, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MatchingCondList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MatchingCondList_specs_1 = { + sizeof(struct MatchingCondList), + offsetof(struct MatchingCondList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MatchingCondList = { + "MatchingCondList", + "MatchingCondList", + &asn_OP_SEQUENCE_OF, + asn_DEF_MatchingCondList_tags_1, + sizeof(asn_DEF_MatchingCondList_tags_1) + /sizeof(asn_DEF_MatchingCondList_tags_1[0]), /* 1 */ + asn_DEF_MatchingCondList_tags_1, /* Same as above */ + sizeof(asn_DEF_MatchingCondList_tags_1) + /sizeof(asn_DEF_MatchingCondList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MatchingCondList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_MatchingCondList_1, + 1, /* Single element */ + &asn_SPC_MatchingCondList_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/MatchingCondList.h b/e2sim/asn1c/MatchingCondList.h new file mode 100644 index 0000000..03185b9 --- /dev/null +++ b/e2sim/asn1c/MatchingCondList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _MatchingCondList_H_ +#define _MatchingCondList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MatchingCondItem; + +/* MatchingCondList */ +typedef struct MatchingCondList { + A_SEQUENCE_OF(struct MatchingCondItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MatchingCondList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MatchingCondList; +extern asn_SET_OF_specifics_t asn_SPC_MatchingCondList_specs_1; +extern asn_TYPE_member_t asn_MBR_MatchingCondList_1[1]; +extern asn_per_constraints_t asn_PER_type_MatchingCondList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MatchingCondList_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/MatchingUEidItem-PerGP.c b/e2sim/asn1c/MatchingUEidItem-PerGP.c new file mode 100644 index 0000000..3006141 --- /dev/null +++ b/e2sim/asn1c/MatchingUEidItem-PerGP.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "MatchingUEidItem-PerGP.h" + +asn_TYPE_member_t asn_MBR_MatchingUEidItem_PerGP_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MatchingUEidItem_PerGP, ueID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_UEID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ueID" + }, +}; +static const ber_tlv_tag_t asn_DEF_MatchingUEidItem_PerGP_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MatchingUEidItem_PerGP_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ueID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MatchingUEidItem_PerGP_specs_1 = { + sizeof(struct MatchingUEidItem_PerGP), + offsetof(struct MatchingUEidItem_PerGP, _asn_ctx), + asn_MAP_MatchingUEidItem_PerGP_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_MatchingUEidItem_PerGP = { + "MatchingUEidItem-PerGP", + "MatchingUEidItem-PerGP", + &asn_OP_SEQUENCE, + asn_DEF_MatchingUEidItem_PerGP_tags_1, + sizeof(asn_DEF_MatchingUEidItem_PerGP_tags_1) + /sizeof(asn_DEF_MatchingUEidItem_PerGP_tags_1[0]), /* 1 */ + asn_DEF_MatchingUEidItem_PerGP_tags_1, /* Same as above */ + sizeof(asn_DEF_MatchingUEidItem_PerGP_tags_1) + /sizeof(asn_DEF_MatchingUEidItem_PerGP_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_MatchingUEidItem_PerGP_1, + 1, /* Elements count */ + &asn_SPC_MatchingUEidItem_PerGP_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/MatchingUEidItem-PerGP.h b/e2sim/asn1c/MatchingUEidItem-PerGP.h new file mode 100644 index 0000000..461bfd6 --- /dev/null +++ b/e2sim/asn1c/MatchingUEidItem-PerGP.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _MatchingUEidItem_PerGP_H_ +#define _MatchingUEidItem_PerGP_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "UEID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* MatchingUEidItem-PerGP */ +typedef struct MatchingUEidItem_PerGP { + UEID_t ueID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MatchingUEidItem_PerGP_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MatchingUEidItem_PerGP; +extern asn_SEQUENCE_specifics_t asn_SPC_MatchingUEidItem_PerGP_specs_1; +extern asn_TYPE_member_t asn_MBR_MatchingUEidItem_PerGP_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MatchingUEidItem_PerGP_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/MatchingUEidItem.c b/e2sim/asn1c/MatchingUEidItem.c new file mode 100644 index 0000000..ef25469 --- /dev/null +++ b/e2sim/asn1c/MatchingUEidItem.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "MatchingUEidItem.h" + +asn_TYPE_member_t asn_MBR_MatchingUEidItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MatchingUEidItem, ueID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_UEID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ueID" + }, +}; +static const ber_tlv_tag_t asn_DEF_MatchingUEidItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MatchingUEidItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ueID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MatchingUEidItem_specs_1 = { + sizeof(struct MatchingUEidItem), + offsetof(struct MatchingUEidItem, _asn_ctx), + asn_MAP_MatchingUEidItem_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_MatchingUEidItem = { + "MatchingUEidItem", + "MatchingUEidItem", + &asn_OP_SEQUENCE, + asn_DEF_MatchingUEidItem_tags_1, + sizeof(asn_DEF_MatchingUEidItem_tags_1) + /sizeof(asn_DEF_MatchingUEidItem_tags_1[0]), /* 1 */ + asn_DEF_MatchingUEidItem_tags_1, /* Same as above */ + sizeof(asn_DEF_MatchingUEidItem_tags_1) + /sizeof(asn_DEF_MatchingUEidItem_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_MatchingUEidItem_1, + 1, /* Elements count */ + &asn_SPC_MatchingUEidItem_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/MatchingUEidItem.h b/e2sim/asn1c/MatchingUEidItem.h new file mode 100644 index 0000000..1fe17d8 --- /dev/null +++ b/e2sim/asn1c/MatchingUEidItem.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _MatchingUEidItem_H_ +#define _MatchingUEidItem_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "UEID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* MatchingUEidItem */ +typedef struct MatchingUEidItem { + UEID_t ueID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MatchingUEidItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MatchingUEidItem; +extern asn_SEQUENCE_specifics_t asn_SPC_MatchingUEidItem_specs_1; +extern asn_TYPE_member_t asn_MBR_MatchingUEidItem_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MatchingUEidItem_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/MatchingUEidList-PerGP.c b/e2sim/asn1c/MatchingUEidList-PerGP.c new file mode 100644 index 0000000..b94c2a4 --- /dev/null +++ b/e2sim/asn1c/MatchingUEidList-PerGP.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "MatchingUEidList-PerGP.h" + +#include "MatchingUEidItem-PerGP.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_MatchingUEidList_PerGP_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_MatchingUEidList_PerGP_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MatchingUEidItem_PerGP, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MatchingUEidList_PerGP_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MatchingUEidList_PerGP_specs_1 = { + sizeof(struct MatchingUEidList_PerGP), + offsetof(struct MatchingUEidList_PerGP, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MatchingUEidList_PerGP = { + "MatchingUEidList-PerGP", + "MatchingUEidList-PerGP", + &asn_OP_SEQUENCE_OF, + asn_DEF_MatchingUEidList_PerGP_tags_1, + sizeof(asn_DEF_MatchingUEidList_PerGP_tags_1) + /sizeof(asn_DEF_MatchingUEidList_PerGP_tags_1[0]), /* 1 */ + asn_DEF_MatchingUEidList_PerGP_tags_1, /* Same as above */ + sizeof(asn_DEF_MatchingUEidList_PerGP_tags_1) + /sizeof(asn_DEF_MatchingUEidList_PerGP_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MatchingUEidList_PerGP_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_MatchingUEidList_PerGP_1, + 1, /* Single element */ + &asn_SPC_MatchingUEidList_PerGP_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/MatchingUEidList-PerGP.h b/e2sim/asn1c/MatchingUEidList-PerGP.h new file mode 100644 index 0000000..c2d6fca --- /dev/null +++ b/e2sim/asn1c/MatchingUEidList-PerGP.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _MatchingUEidList_PerGP_H_ +#define _MatchingUEidList_PerGP_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MatchingUEidItem_PerGP; + +/* MatchingUEidList-PerGP */ +typedef struct MatchingUEidList_PerGP { + A_SEQUENCE_OF(struct MatchingUEidItem_PerGP) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MatchingUEidList_PerGP_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MatchingUEidList_PerGP; +extern asn_SET_OF_specifics_t asn_SPC_MatchingUEidList_PerGP_specs_1; +extern asn_TYPE_member_t asn_MBR_MatchingUEidList_PerGP_1[1]; +extern asn_per_constraints_t asn_PER_type_MatchingUEidList_PerGP_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MatchingUEidList_PerGP_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/MatchingUEidList.c b/e2sim/asn1c/MatchingUEidList.c new file mode 100644 index 0000000..48582ce --- /dev/null +++ b/e2sim/asn1c/MatchingUEidList.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "MatchingUEidList.h" + +#include "MatchingUEidItem.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_MatchingUEidList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_MatchingUEidList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MatchingUEidItem, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MatchingUEidList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MatchingUEidList_specs_1 = { + sizeof(struct MatchingUEidList), + offsetof(struct MatchingUEidList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MatchingUEidList = { + "MatchingUEidList", + "MatchingUEidList", + &asn_OP_SEQUENCE_OF, + asn_DEF_MatchingUEidList_tags_1, + sizeof(asn_DEF_MatchingUEidList_tags_1) + /sizeof(asn_DEF_MatchingUEidList_tags_1[0]), /* 1 */ + asn_DEF_MatchingUEidList_tags_1, /* Same as above */ + sizeof(asn_DEF_MatchingUEidList_tags_1) + /sizeof(asn_DEF_MatchingUEidList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MatchingUEidList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_MatchingUEidList_1, + 1, /* Single element */ + &asn_SPC_MatchingUEidList_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/MatchingUEidList.h b/e2sim/asn1c/MatchingUEidList.h new file mode 100644 index 0000000..b221a8e --- /dev/null +++ b/e2sim/asn1c/MatchingUEidList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _MatchingUEidList_H_ +#define _MatchingUEidList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MatchingUEidItem; + +/* MatchingUEidList */ +typedef struct MatchingUEidList { + A_SEQUENCE_OF(struct MatchingUEidItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MatchingUEidList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MatchingUEidList; +extern asn_SET_OF_specifics_t asn_SPC_MatchingUEidList_specs_1; +extern asn_TYPE_member_t asn_MBR_MatchingUEidList_1[1]; +extern asn_per_constraints_t asn_PER_type_MatchingUEidList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MatchingUEidList_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/MatchingUEidPerGP-Item.c b/e2sim/asn1c/MatchingUEidPerGP-Item.c new file mode 100644 index 0000000..6042b7e --- /dev/null +++ b/e2sim/asn1c/MatchingUEidPerGP-Item.c @@ -0,0 +1,203 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "MatchingUEidPerGP-Item.h" + +#include "MatchingUEidList-PerGP.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_noUEmatched_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_matchedPerGP_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_noUEmatched_value2enum_3[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_noUEmatched_enum2value_3[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_noUEmatched_specs_3 = { + asn_MAP_noUEmatched_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_noUEmatched_enum2value_3, /* 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_noUEmatched_tags_3[] = { + (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_noUEmatched_3 = { + "noUEmatched", + "noUEmatched", + &asn_OP_NativeEnumerated, + asn_DEF_noUEmatched_tags_3, + sizeof(asn_DEF_noUEmatched_tags_3) + /sizeof(asn_DEF_noUEmatched_tags_3[0]) - 1, /* 1 */ + asn_DEF_noUEmatched_tags_3, /* Same as above */ + sizeof(asn_DEF_noUEmatched_tags_3) + /sizeof(asn_DEF_noUEmatched_tags_3[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_noUEmatched_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_noUEmatched_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_matchedPerGP_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct MatchingUEidPerGP_Item__matchedPerGP, choice.noUEmatched), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_noUEmatched_3, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "noUEmatched" + }, + { ATF_POINTER, 0, offsetof(struct MatchingUEidPerGP_Item__matchedPerGP, choice.oneOrMoreUEmatched), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MatchingUEidList_PerGP, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "oneOrMoreUEmatched" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_matchedPerGP_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* noUEmatched */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* oneOrMoreUEmatched */ +}; +static asn_CHOICE_specifics_t asn_SPC_matchedPerGP_specs_2 = { + sizeof(struct MatchingUEidPerGP_Item__matchedPerGP), + offsetof(struct MatchingUEidPerGP_Item__matchedPerGP, _asn_ctx), + offsetof(struct MatchingUEidPerGP_Item__matchedPerGP, present), + sizeof(((struct MatchingUEidPerGP_Item__matchedPerGP *)0)->present), + asn_MAP_matchedPerGP_tag2el_2, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_matchedPerGP_2 = { + "matchedPerGP", + "matchedPerGP", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_matchedPerGP_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_matchedPerGP_2, + 2, /* Elements count */ + &asn_SPC_matchedPerGP_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MatchingUEidPerGP_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MatchingUEidPerGP_Item, matchedPerGP), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_matchedPerGP_2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "matchedPerGP" + }, +}; +static const ber_tlv_tag_t asn_DEF_MatchingUEidPerGP_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MatchingUEidPerGP_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* matchedPerGP */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MatchingUEidPerGP_Item_specs_1 = { + sizeof(struct MatchingUEidPerGP_Item), + offsetof(struct MatchingUEidPerGP_Item, _asn_ctx), + asn_MAP_MatchingUEidPerGP_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_MatchingUEidPerGP_Item = { + "MatchingUEidPerGP-Item", + "MatchingUEidPerGP-Item", + &asn_OP_SEQUENCE, + asn_DEF_MatchingUEidPerGP_Item_tags_1, + sizeof(asn_DEF_MatchingUEidPerGP_Item_tags_1) + /sizeof(asn_DEF_MatchingUEidPerGP_Item_tags_1[0]), /* 1 */ + asn_DEF_MatchingUEidPerGP_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_MatchingUEidPerGP_Item_tags_1) + /sizeof(asn_DEF_MatchingUEidPerGP_Item_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_MatchingUEidPerGP_Item_1, + 1, /* Elements count */ + &asn_SPC_MatchingUEidPerGP_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/MatchingUEidPerGP-Item.h b/e2sim/asn1c/MatchingUEidPerGP-Item.h new file mode 100644 index 0000000..62943ca --- /dev/null +++ b/e2sim/asn1c/MatchingUEidPerGP-Item.h @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _MatchingUEidPerGP_Item_H_ +#define _MatchingUEidPerGP_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" +#include "constr_CHOICE.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MatchingUEidPerGP_Item__matchedPerGP_PR { + MatchingUEidPerGP_Item__matchedPerGP_PR_NOTHING, /* No components present */ + MatchingUEidPerGP_Item__matchedPerGP_PR_noUEmatched, + MatchingUEidPerGP_Item__matchedPerGP_PR_oneOrMoreUEmatched + /* Extensions may appear below */ + +} MatchingUEidPerGP_Item__matchedPerGP_PR; +typedef enum MatchingUEidPerGP_Item__matchedPerGP__noUEmatched { + MatchingUEidPerGP_Item__matchedPerGP__noUEmatched_true = 0 + /* + * Enumeration is extensible + */ +} e_MatchingUEidPerGP_Item__matchedPerGP__noUEmatched; + +/* Forward declarations */ +struct MatchingUEidList_PerGP; + +/* MatchingUEidPerGP-Item */ +typedef struct MatchingUEidPerGP_Item { + struct MatchingUEidPerGP_Item__matchedPerGP { + MatchingUEidPerGP_Item__matchedPerGP_PR present; + union MatchingUEidPerGP_Item__matchedPerGP_u { + long noUEmatched; + struct MatchingUEidList_PerGP *oneOrMoreUEmatched; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } matchedPerGP; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MatchingUEidPerGP_Item_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_noUEmatched_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_MatchingUEidPerGP_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_MatchingUEidPerGP_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_MatchingUEidPerGP_Item_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MatchingUEidPerGP_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/MatchingUEidPerGP.c b/e2sim/asn1c/MatchingUEidPerGP.c new file mode 100644 index 0000000..3a8d2d1 --- /dev/null +++ b/e2sim/asn1c/MatchingUEidPerGP.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "MatchingUEidPerGP.h" + +#include "MatchingUEidPerGP-Item.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_MatchingUEidPerGP_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_MatchingUEidPerGP_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MatchingUEidPerGP_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MatchingUEidPerGP_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MatchingUEidPerGP_specs_1 = { + sizeof(struct MatchingUEidPerGP), + offsetof(struct MatchingUEidPerGP, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MatchingUEidPerGP = { + "MatchingUEidPerGP", + "MatchingUEidPerGP", + &asn_OP_SEQUENCE_OF, + asn_DEF_MatchingUEidPerGP_tags_1, + sizeof(asn_DEF_MatchingUEidPerGP_tags_1) + /sizeof(asn_DEF_MatchingUEidPerGP_tags_1[0]), /* 1 */ + asn_DEF_MatchingUEidPerGP_tags_1, /* Same as above */ + sizeof(asn_DEF_MatchingUEidPerGP_tags_1) + /sizeof(asn_DEF_MatchingUEidPerGP_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MatchingUEidPerGP_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_MatchingUEidPerGP_1, + 1, /* Single element */ + &asn_SPC_MatchingUEidPerGP_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/MatchingUEidPerGP.h b/e2sim/asn1c/MatchingUEidPerGP.h new file mode 100644 index 0000000..3a1659e --- /dev/null +++ b/e2sim/asn1c/MatchingUEidPerGP.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _MatchingUEidPerGP_H_ +#define _MatchingUEidPerGP_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MatchingUEidPerGP_Item; + +/* MatchingUEidPerGP */ +typedef struct MatchingUEidPerGP { + A_SEQUENCE_OF(struct MatchingUEidPerGP_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MatchingUEidPerGP_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MatchingUEidPerGP; +extern asn_SET_OF_specifics_t asn_SPC_MatchingUEidPerGP_specs_1; +extern asn_TYPE_member_t asn_MBR_MatchingUEidPerGP_1[1]; +extern asn_per_constraints_t asn_PER_type_MatchingUEidPerGP_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MatchingUEidPerGP_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/MatchingUEidPerSubItem.c b/e2sim/asn1c/MatchingUEidPerSubItem.c new file mode 100644 index 0000000..33c31b5 --- /dev/null +++ b/e2sim/asn1c/MatchingUEidPerSubItem.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "MatchingUEidPerSubItem.h" + +asn_TYPE_member_t asn_MBR_MatchingUEidPerSubItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MatchingUEidPerSubItem, ueID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_UEID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ueID" + }, +}; +static const ber_tlv_tag_t asn_DEF_MatchingUEidPerSubItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MatchingUEidPerSubItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ueID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MatchingUEidPerSubItem_specs_1 = { + sizeof(struct MatchingUEidPerSubItem), + offsetof(struct MatchingUEidPerSubItem, _asn_ctx), + asn_MAP_MatchingUEidPerSubItem_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_MatchingUEidPerSubItem = { + "MatchingUEidPerSubItem", + "MatchingUEidPerSubItem", + &asn_OP_SEQUENCE, + asn_DEF_MatchingUEidPerSubItem_tags_1, + sizeof(asn_DEF_MatchingUEidPerSubItem_tags_1) + /sizeof(asn_DEF_MatchingUEidPerSubItem_tags_1[0]), /* 1 */ + asn_DEF_MatchingUEidPerSubItem_tags_1, /* Same as above */ + sizeof(asn_DEF_MatchingUEidPerSubItem_tags_1) + /sizeof(asn_DEF_MatchingUEidPerSubItem_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_MatchingUEidPerSubItem_1, + 1, /* Elements count */ + &asn_SPC_MatchingUEidPerSubItem_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/MatchingUEidPerSubItem.h b/e2sim/asn1c/MatchingUEidPerSubItem.h new file mode 100644 index 0000000..0cc23f8 --- /dev/null +++ b/e2sim/asn1c/MatchingUEidPerSubItem.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _MatchingUEidPerSubItem_H_ +#define _MatchingUEidPerSubItem_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "UEID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* MatchingUEidPerSubItem */ +typedef struct MatchingUEidPerSubItem { + UEID_t ueID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MatchingUEidPerSubItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MatchingUEidPerSubItem; +extern asn_SEQUENCE_specifics_t asn_SPC_MatchingUEidPerSubItem_specs_1; +extern asn_TYPE_member_t asn_MBR_MatchingUEidPerSubItem_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MatchingUEidPerSubItem_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/MatchingUEidPerSubList.c b/e2sim/asn1c/MatchingUEidPerSubList.c new file mode 100644 index 0000000..fb5d010 --- /dev/null +++ b/e2sim/asn1c/MatchingUEidPerSubList.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "MatchingUEidPerSubList.h" + +#include "MatchingUEidPerSubItem.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_MatchingUEidPerSubList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 2, 65535 } /* (SIZE(2..65535)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_MatchingUEidPerSubList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MatchingUEidPerSubItem, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MatchingUEidPerSubList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MatchingUEidPerSubList_specs_1 = { + sizeof(struct MatchingUEidPerSubList), + offsetof(struct MatchingUEidPerSubList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MatchingUEidPerSubList = { + "MatchingUEidPerSubList", + "MatchingUEidPerSubList", + &asn_OP_SEQUENCE_OF, + asn_DEF_MatchingUEidPerSubList_tags_1, + sizeof(asn_DEF_MatchingUEidPerSubList_tags_1) + /sizeof(asn_DEF_MatchingUEidPerSubList_tags_1[0]), /* 1 */ + asn_DEF_MatchingUEidPerSubList_tags_1, /* Same as above */ + sizeof(asn_DEF_MatchingUEidPerSubList_tags_1) + /sizeof(asn_DEF_MatchingUEidPerSubList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MatchingUEidPerSubList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_MatchingUEidPerSubList_1, + 1, /* Single element */ + &asn_SPC_MatchingUEidPerSubList_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/MatchingUEidPerSubList.h b/e2sim/asn1c/MatchingUEidPerSubList.h new file mode 100644 index 0000000..e2b27a0 --- /dev/null +++ b/e2sim/asn1c/MatchingUEidPerSubList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _MatchingUEidPerSubList_H_ +#define _MatchingUEidPerSubList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MatchingUEidPerSubItem; + +/* MatchingUEidPerSubList */ +typedef struct MatchingUEidPerSubList { + A_SEQUENCE_OF(struct MatchingUEidPerSubItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MatchingUEidPerSubList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MatchingUEidPerSubList; +extern asn_SET_OF_specifics_t asn_SPC_MatchingUEidPerSubList_specs_1; +extern asn_TYPE_member_t asn_MBR_MatchingUEidPerSubList_1[1]; +extern asn_per_constraints_t asn_PER_type_MatchingUEidPerSubList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MatchingUEidPerSubList_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/MatchingUeCondPerSubItem.c b/e2sim/asn1c/MatchingUeCondPerSubItem.c new file mode 100644 index 0000000..d14ab5d --- /dev/null +++ b/e2sim/asn1c/MatchingUeCondPerSubItem.c @@ -0,0 +1,86 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "MatchingUeCondPerSubItem.h" + +asn_TYPE_member_t asn_MBR_MatchingUeCondPerSubItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MatchingUeCondPerSubItem, testCondInfo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TestCondInfo, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "testCondInfo" + }, + { ATF_POINTER, 1, offsetof(struct MatchingUeCondPerSubItem, logicalOR), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LogicalOR, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "logicalOR" + }, +}; +static const int asn_MAP_MatchingUeCondPerSubItem_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_MatchingUeCondPerSubItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MatchingUeCondPerSubItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* testCondInfo */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* logicalOR */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MatchingUeCondPerSubItem_specs_1 = { + sizeof(struct MatchingUeCondPerSubItem), + offsetof(struct MatchingUeCondPerSubItem, _asn_ctx), + asn_MAP_MatchingUeCondPerSubItem_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_MatchingUeCondPerSubItem_oms_1, /* Optional members */ + 0, 1, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MatchingUeCondPerSubItem = { + "MatchingUeCondPerSubItem", + "MatchingUeCondPerSubItem", + &asn_OP_SEQUENCE, + asn_DEF_MatchingUeCondPerSubItem_tags_1, + sizeof(asn_DEF_MatchingUeCondPerSubItem_tags_1) + /sizeof(asn_DEF_MatchingUeCondPerSubItem_tags_1[0]), /* 1 */ + asn_DEF_MatchingUeCondPerSubItem_tags_1, /* Same as above */ + sizeof(asn_DEF_MatchingUeCondPerSubItem_tags_1) + /sizeof(asn_DEF_MatchingUeCondPerSubItem_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_MatchingUeCondPerSubItem_1, + 2, /* Elements count */ + &asn_SPC_MatchingUeCondPerSubItem_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/MatchingUeCondPerSubItem.h b/e2sim/asn1c/MatchingUeCondPerSubItem.h new file mode 100644 index 0000000..fed1469 --- /dev/null +++ b/e2sim/asn1c/MatchingUeCondPerSubItem.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _MatchingUeCondPerSubItem_H_ +#define _MatchingUeCondPerSubItem_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "TestCondInfo.h" +#include "LogicalOR.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* MatchingUeCondPerSubItem */ +typedef struct MatchingUeCondPerSubItem { + TestCondInfo_t testCondInfo; + /* + * This type is extensible, + * possible extensions are below. + */ + LogicalOR_t *logicalOR; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MatchingUeCondPerSubItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MatchingUeCondPerSubItem; +extern asn_SEQUENCE_specifics_t asn_SPC_MatchingUeCondPerSubItem_specs_1; +extern asn_TYPE_member_t asn_MBR_MatchingUeCondPerSubItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MatchingUeCondPerSubItem_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/MatchingUeCondPerSubList.c b/e2sim/asn1c/MatchingUeCondPerSubList.c new file mode 100644 index 0000000..3986511 --- /dev/null +++ b/e2sim/asn1c/MatchingUeCondPerSubList.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "MatchingUeCondPerSubList.h" + +#include "MatchingUeCondPerSubItem.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_MatchingUeCondPerSubList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 15, 15, 1, 32768 } /* (SIZE(1..32768)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_MatchingUeCondPerSubList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MatchingUeCondPerSubItem, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MatchingUeCondPerSubList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MatchingUeCondPerSubList_specs_1 = { + sizeof(struct MatchingUeCondPerSubList), + offsetof(struct MatchingUeCondPerSubList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MatchingUeCondPerSubList = { + "MatchingUeCondPerSubList", + "MatchingUeCondPerSubList", + &asn_OP_SEQUENCE_OF, + asn_DEF_MatchingUeCondPerSubList_tags_1, + sizeof(asn_DEF_MatchingUeCondPerSubList_tags_1) + /sizeof(asn_DEF_MatchingUeCondPerSubList_tags_1[0]), /* 1 */ + asn_DEF_MatchingUeCondPerSubList_tags_1, /* Same as above */ + sizeof(asn_DEF_MatchingUeCondPerSubList_tags_1) + /sizeof(asn_DEF_MatchingUeCondPerSubList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MatchingUeCondPerSubList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_MatchingUeCondPerSubList_1, + 1, /* Single element */ + &asn_SPC_MatchingUeCondPerSubList_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/MatchingUeCondPerSubList.h b/e2sim/asn1c/MatchingUeCondPerSubList.h new file mode 100644 index 0000000..b3b7e81 --- /dev/null +++ b/e2sim/asn1c/MatchingUeCondPerSubList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _MatchingUeCondPerSubList_H_ +#define _MatchingUeCondPerSubList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MatchingUeCondPerSubItem; + +/* MatchingUeCondPerSubList */ +typedef struct MatchingUeCondPerSubList { + A_SEQUENCE_OF(struct MatchingUeCondPerSubItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MatchingUeCondPerSubList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MatchingUeCondPerSubList; +extern asn_SET_OF_specifics_t asn_SPC_MatchingUeCondPerSubList_specs_1; +extern asn_TYPE_member_t asn_MBR_MatchingUeCondPerSubList_1[1]; +extern asn_per_constraints_t asn_PER_type_MatchingUeCondPerSubList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MatchingUeCondPerSubList_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/MeasurementCondItem.c b/e2sim/asn1c/MeasurementCondItem.c new file mode 100644 index 0000000..b9c6ed3 --- /dev/null +++ b/e2sim/asn1c/MeasurementCondItem.c @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "MeasurementCondItem.h" + +#include "BinRangeDefinition.h" +asn_TYPE_member_t asn_MBR_MeasurementCondItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasurementCondItem, measType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_MeasurementType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "measType" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasurementCondItem, matchingCond), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MatchingCondList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "matchingCond" + }, + { ATF_POINTER, 1, offsetof(struct MeasurementCondItem, binRangeDef), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BinRangeDefinition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "binRangeDef" + }, +}; +static const int asn_MAP_MeasurementCondItem_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_MeasurementCondItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MeasurementCondItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* matchingCond */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* binRangeDef */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MeasurementCondItem_specs_1 = { + sizeof(struct MeasurementCondItem), + offsetof(struct MeasurementCondItem, _asn_ctx), + asn_MAP_MeasurementCondItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_MeasurementCondItem_oms_1, /* Optional members */ + 0, 1, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasurementCondItem = { + "MeasurementCondItem", + "MeasurementCondItem", + &asn_OP_SEQUENCE, + asn_DEF_MeasurementCondItem_tags_1, + sizeof(asn_DEF_MeasurementCondItem_tags_1) + /sizeof(asn_DEF_MeasurementCondItem_tags_1[0]), /* 1 */ + asn_DEF_MeasurementCondItem_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasurementCondItem_tags_1) + /sizeof(asn_DEF_MeasurementCondItem_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_MeasurementCondItem_1, + 3, /* Elements count */ + &asn_SPC_MeasurementCondItem_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/MeasurementCondItem.h b/e2sim/asn1c/MeasurementCondItem.h new file mode 100644 index 0000000..23b7fde --- /dev/null +++ b/e2sim/asn1c/MeasurementCondItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _MeasurementCondItem_H_ +#define _MeasurementCondItem_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "MeasurementType.h" +#include "MatchingCondList.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct BinRangeDefinition; + +/* MeasurementCondItem */ +typedef struct MeasurementCondItem { + MeasurementType_t measType; + MatchingCondList_t matchingCond; + /* + * This type is extensible, + * possible extensions are below. + */ + struct BinRangeDefinition *binRangeDef; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasurementCondItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasurementCondItem; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasurementCondItem_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasurementCondItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasurementCondItem_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/MeasurementCondList.c b/e2sim/asn1c/MeasurementCondList.c new file mode 100644 index 0000000..8429fb5 --- /dev/null +++ b/e2sim/asn1c/MeasurementCondList.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "MeasurementCondList.h" + +#include "MeasurementCondItem.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_MeasurementCondList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_MeasurementCondList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MeasurementCondItem, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MeasurementCondList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MeasurementCondList_specs_1 = { + sizeof(struct MeasurementCondList), + offsetof(struct MeasurementCondList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasurementCondList = { + "MeasurementCondList", + "MeasurementCondList", + &asn_OP_SEQUENCE_OF, + asn_DEF_MeasurementCondList_tags_1, + sizeof(asn_DEF_MeasurementCondList_tags_1) + /sizeof(asn_DEF_MeasurementCondList_tags_1[0]), /* 1 */ + asn_DEF_MeasurementCondList_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasurementCondList_tags_1) + /sizeof(asn_DEF_MeasurementCondList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MeasurementCondList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_MeasurementCondList_1, + 1, /* Single element */ + &asn_SPC_MeasurementCondList_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/MeasurementCondList.h b/e2sim/asn1c/MeasurementCondList.h new file mode 100644 index 0000000..9d0f331 --- /dev/null +++ b/e2sim/asn1c/MeasurementCondList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _MeasurementCondList_H_ +#define _MeasurementCondList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MeasurementCondItem; + +/* MeasurementCondList */ +typedef struct MeasurementCondList { + A_SEQUENCE_OF(struct MeasurementCondItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasurementCondList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasurementCondList; +extern asn_SET_OF_specifics_t asn_SPC_MeasurementCondList_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasurementCondList_1[1]; +extern asn_per_constraints_t asn_PER_type_MeasurementCondList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasurementCondList_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/MeasurementCondUEidItem.c b/e2sim/asn1c/MeasurementCondUEidItem.c new file mode 100644 index 0000000..fd382dc --- /dev/null +++ b/e2sim/asn1c/MeasurementCondUEidItem.c @@ -0,0 +1,124 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "MeasurementCondUEidItem.h" + +#include "MatchingUEidList.h" +#include "MatchingUEidPerGP.h" +asn_TYPE_member_t asn_MBR_MeasurementCondUEidItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasurementCondUEidItem, measType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_MeasurementType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "measType" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasurementCondUEidItem, matchingCond), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MatchingCondList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "matchingCond" + }, + { ATF_POINTER, 2, offsetof(struct MeasurementCondUEidItem, matchingUEidList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MatchingUEidList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "matchingUEidList" + }, + { ATF_POINTER, 1, offsetof(struct MeasurementCondUEidItem, matchingUEidPerGP), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MatchingUEidPerGP, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "matchingUEidPerGP" + }, +}; +static const int asn_MAP_MeasurementCondUEidItem_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_MeasurementCondUEidItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MeasurementCondUEidItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* matchingCond */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* matchingUEidList */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* matchingUEidPerGP */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MeasurementCondUEidItem_specs_1 = { + sizeof(struct MeasurementCondUEidItem), + offsetof(struct MeasurementCondUEidItem, _asn_ctx), + asn_MAP_MeasurementCondUEidItem_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_MeasurementCondUEidItem_oms_1, /* Optional members */ + 1, 1, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasurementCondUEidItem = { + "MeasurementCondUEidItem", + "MeasurementCondUEidItem", + &asn_OP_SEQUENCE, + asn_DEF_MeasurementCondUEidItem_tags_1, + sizeof(asn_DEF_MeasurementCondUEidItem_tags_1) + /sizeof(asn_DEF_MeasurementCondUEidItem_tags_1[0]), /* 1 */ + asn_DEF_MeasurementCondUEidItem_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasurementCondUEidItem_tags_1) + /sizeof(asn_DEF_MeasurementCondUEidItem_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_MeasurementCondUEidItem_1, + 4, /* Elements count */ + &asn_SPC_MeasurementCondUEidItem_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/MeasurementCondUEidItem.h b/e2sim/asn1c/MeasurementCondUEidItem.h new file mode 100644 index 0000000..1bf7102 --- /dev/null +++ b/e2sim/asn1c/MeasurementCondUEidItem.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _MeasurementCondUEidItem_H_ +#define _MeasurementCondUEidItem_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "MeasurementType.h" +#include "MatchingCondList.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MatchingUEidList; +struct MatchingUEidPerGP; + +/* MeasurementCondUEidItem */ +typedef struct MeasurementCondUEidItem { + MeasurementType_t measType; + MatchingCondList_t matchingCond; + struct MatchingUEidList *matchingUEidList; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct MatchingUEidPerGP *matchingUEidPerGP; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasurementCondUEidItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasurementCondUEidItem; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasurementCondUEidItem_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasurementCondUEidItem_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasurementCondUEidItem_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/MeasurementCondUEidList.c b/e2sim/asn1c/MeasurementCondUEidList.c new file mode 100644 index 0000000..ea10dc9 --- /dev/null +++ b/e2sim/asn1c/MeasurementCondUEidList.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "MeasurementCondUEidList.h" + +#include "MeasurementCondUEidItem.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_MeasurementCondUEidList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_MeasurementCondUEidList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MeasurementCondUEidItem, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MeasurementCondUEidList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MeasurementCondUEidList_specs_1 = { + sizeof(struct MeasurementCondUEidList), + offsetof(struct MeasurementCondUEidList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasurementCondUEidList = { + "MeasurementCondUEidList", + "MeasurementCondUEidList", + &asn_OP_SEQUENCE_OF, + asn_DEF_MeasurementCondUEidList_tags_1, + sizeof(asn_DEF_MeasurementCondUEidList_tags_1) + /sizeof(asn_DEF_MeasurementCondUEidList_tags_1[0]), /* 1 */ + asn_DEF_MeasurementCondUEidList_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasurementCondUEidList_tags_1) + /sizeof(asn_DEF_MeasurementCondUEidList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MeasurementCondUEidList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_MeasurementCondUEidList_1, + 1, /* Single element */ + &asn_SPC_MeasurementCondUEidList_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/MeasurementCondUEidList.h b/e2sim/asn1c/MeasurementCondUEidList.h new file mode 100644 index 0000000..c83548e --- /dev/null +++ b/e2sim/asn1c/MeasurementCondUEidList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _MeasurementCondUEidList_H_ +#define _MeasurementCondUEidList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MeasurementCondUEidItem; + +/* MeasurementCondUEidList */ +typedef struct MeasurementCondUEidList { + A_SEQUENCE_OF(struct MeasurementCondUEidItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasurementCondUEidList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasurementCondUEidList; +extern asn_SET_OF_specifics_t asn_SPC_MeasurementCondUEidList_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasurementCondUEidList_1[1]; +extern asn_per_constraints_t asn_PER_type_MeasurementCondUEidList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasurementCondUEidList_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/MeasurementData.c b/e2sim/asn1c/MeasurementData.c new file mode 100644 index 0000000..6ec30c5 --- /dev/null +++ b/e2sim/asn1c/MeasurementData.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "MeasurementData.h" + +#include "MeasurementDataItem.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_MeasurementData_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_MeasurementData_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MeasurementDataItem, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MeasurementData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MeasurementData_specs_1 = { + sizeof(struct MeasurementData), + offsetof(struct MeasurementData, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasurementData = { + "MeasurementData", + "MeasurementData", + &asn_OP_SEQUENCE_OF, + asn_DEF_MeasurementData_tags_1, + sizeof(asn_DEF_MeasurementData_tags_1) + /sizeof(asn_DEF_MeasurementData_tags_1[0]), /* 1 */ + asn_DEF_MeasurementData_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasurementData_tags_1) + /sizeof(asn_DEF_MeasurementData_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MeasurementData_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_MeasurementData_1, + 1, /* Single element */ + &asn_SPC_MeasurementData_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/MeasurementData.h b/e2sim/asn1c/MeasurementData.h new file mode 100644 index 0000000..fc0c1eb --- /dev/null +++ b/e2sim/asn1c/MeasurementData.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _MeasurementData_H_ +#define _MeasurementData_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MeasurementDataItem; + +/* MeasurementData */ +typedef struct MeasurementData { + A_SEQUENCE_OF(struct MeasurementDataItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasurementData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasurementData; +extern asn_SET_OF_specifics_t asn_SPC_MeasurementData_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasurementData_1[1]; +extern asn_per_constraints_t asn_PER_type_MeasurementData_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasurementData_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/MeasurementDataItem.c b/e2sim/asn1c/MeasurementDataItem.c new file mode 100644 index 0000000..77af400 --- /dev/null +++ b/e2sim/asn1c/MeasurementDataItem.c @@ -0,0 +1,142 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "MeasurementDataItem.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_incompleteFlag_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_incompleteFlag_value2enum_3[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_incompleteFlag_enum2value_3[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_incompleteFlag_specs_3 = { + asn_MAP_incompleteFlag_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_incompleteFlag_enum2value_3, /* 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_incompleteFlag_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_incompleteFlag_3 = { + "incompleteFlag", + "incompleteFlag", + &asn_OP_NativeEnumerated, + asn_DEF_incompleteFlag_tags_3, + sizeof(asn_DEF_incompleteFlag_tags_3) + /sizeof(asn_DEF_incompleteFlag_tags_3[0]) - 1, /* 1 */ + asn_DEF_incompleteFlag_tags_3, /* Same as above */ + sizeof(asn_DEF_incompleteFlag_tags_3) + /sizeof(asn_DEF_incompleteFlag_tags_3[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_incompleteFlag_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_incompleteFlag_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MeasurementDataItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasurementDataItem, measRecord), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasurementRecord, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "measRecord" + }, + { ATF_POINTER, 1, offsetof(struct MeasurementDataItem, incompleteFlag), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_incompleteFlag_3, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "incompleteFlag" + }, +}; +static const int asn_MAP_MeasurementDataItem_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_MeasurementDataItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MeasurementDataItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measRecord */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* incompleteFlag */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MeasurementDataItem_specs_1 = { + sizeof(struct MeasurementDataItem), + offsetof(struct MeasurementDataItem, _asn_ctx), + asn_MAP_MeasurementDataItem_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_MeasurementDataItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasurementDataItem = { + "MeasurementDataItem", + "MeasurementDataItem", + &asn_OP_SEQUENCE, + asn_DEF_MeasurementDataItem_tags_1, + sizeof(asn_DEF_MeasurementDataItem_tags_1) + /sizeof(asn_DEF_MeasurementDataItem_tags_1[0]), /* 1 */ + asn_DEF_MeasurementDataItem_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasurementDataItem_tags_1) + /sizeof(asn_DEF_MeasurementDataItem_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_MeasurementDataItem_1, + 2, /* Elements count */ + &asn_SPC_MeasurementDataItem_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/MeasurementDataItem.h b/e2sim/asn1c/MeasurementDataItem.h new file mode 100644 index 0000000..aa33dcb --- /dev/null +++ b/e2sim/asn1c/MeasurementDataItem.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _MeasurementDataItem_H_ +#define _MeasurementDataItem_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "MeasurementRecord.h" +#include "NativeEnumerated.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MeasurementDataItem__incompleteFlag { + MeasurementDataItem__incompleteFlag_true = 0 + /* + * Enumeration is extensible + */ +} e_MeasurementDataItem__incompleteFlag; + +/* MeasurementDataItem */ +typedef struct MeasurementDataItem { + MeasurementRecord_t measRecord; + long *incompleteFlag; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasurementDataItem_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_incompleteFlag_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_MeasurementDataItem; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasurementDataItem_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasurementDataItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasurementDataItem_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/MeasurementInfo-Action-Item.c b/e2sim/asn1c/MeasurementInfo-Action-Item.c new file mode 100644 index 0000000..9988e1c --- /dev/null +++ b/e2sim/asn1c/MeasurementInfo-Action-Item.c @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "MeasurementInfo-Action-Item.h" + +#include "BinRangeDefinition.h" +asn_TYPE_member_t asn_MBR_MeasurementInfo_Action_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasurementInfo_Action_Item, measName), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasurementTypeName, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "measName" + }, + { ATF_POINTER, 2, offsetof(struct MeasurementInfo_Action_Item, measID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasurementTypeID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "measID" + }, + { ATF_POINTER, 1, offsetof(struct MeasurementInfo_Action_Item, binRangeDef), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BinRangeDefinition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "binRangeDef" + }, +}; +static const int asn_MAP_MeasurementInfo_Action_Item_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_MeasurementInfo_Action_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MeasurementInfo_Action_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measName */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* measID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* binRangeDef */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MeasurementInfo_Action_Item_specs_1 = { + sizeof(struct MeasurementInfo_Action_Item), + offsetof(struct MeasurementInfo_Action_Item, _asn_ctx), + asn_MAP_MeasurementInfo_Action_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_MeasurementInfo_Action_Item_oms_1, /* Optional members */ + 1, 1, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasurementInfo_Action_Item = { + "MeasurementInfo-Action-Item", + "MeasurementInfo-Action-Item", + &asn_OP_SEQUENCE, + asn_DEF_MeasurementInfo_Action_Item_tags_1, + sizeof(asn_DEF_MeasurementInfo_Action_Item_tags_1) + /sizeof(asn_DEF_MeasurementInfo_Action_Item_tags_1[0]), /* 1 */ + asn_DEF_MeasurementInfo_Action_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasurementInfo_Action_Item_tags_1) + /sizeof(asn_DEF_MeasurementInfo_Action_Item_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_MeasurementInfo_Action_Item_1, + 3, /* Elements count */ + &asn_SPC_MeasurementInfo_Action_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/MeasurementInfo-Action-Item.h b/e2sim/asn1c/MeasurementInfo-Action-Item.h new file mode 100644 index 0000000..ea844e8 --- /dev/null +++ b/e2sim/asn1c/MeasurementInfo-Action-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _MeasurementInfo_Action_Item_H_ +#define _MeasurementInfo_Action_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "MeasurementTypeName.h" +#include "MeasurementTypeID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct BinRangeDefinition; + +/* MeasurementInfo-Action-Item */ +typedef struct MeasurementInfo_Action_Item { + MeasurementTypeName_t measName; + MeasurementTypeID_t *measID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct BinRangeDefinition *binRangeDef; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasurementInfo_Action_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasurementInfo_Action_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasurementInfo_Action_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasurementInfo_Action_Item_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasurementInfo_Action_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/MeasurementInfo-Action-List.c b/e2sim/asn1c/MeasurementInfo-Action-List.c new file mode 100644 index 0000000..e0f26a4 --- /dev/null +++ b/e2sim/asn1c/MeasurementInfo-Action-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "MeasurementInfo-Action-List.h" + +#include "MeasurementInfo-Action-Item.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_MeasurementInfo_Action_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_MeasurementInfo_Action_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MeasurementInfo_Action_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MeasurementInfo_Action_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MeasurementInfo_Action_List_specs_1 = { + sizeof(struct MeasurementInfo_Action_List), + offsetof(struct MeasurementInfo_Action_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasurementInfo_Action_List = { + "MeasurementInfo-Action-List", + "MeasurementInfo-Action-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_MeasurementInfo_Action_List_tags_1, + sizeof(asn_DEF_MeasurementInfo_Action_List_tags_1) + /sizeof(asn_DEF_MeasurementInfo_Action_List_tags_1[0]), /* 1 */ + asn_DEF_MeasurementInfo_Action_List_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasurementInfo_Action_List_tags_1) + /sizeof(asn_DEF_MeasurementInfo_Action_List_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MeasurementInfo_Action_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_MeasurementInfo_Action_List_1, + 1, /* Single element */ + &asn_SPC_MeasurementInfo_Action_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/MeasurementInfo-Action-List.h b/e2sim/asn1c/MeasurementInfo-Action-List.h new file mode 100644 index 0000000..a0dda18 --- /dev/null +++ b/e2sim/asn1c/MeasurementInfo-Action-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _MeasurementInfo_Action_List_H_ +#define _MeasurementInfo_Action_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MeasurementInfo_Action_Item; + +/* MeasurementInfo-Action-List */ +typedef struct MeasurementInfo_Action_List { + A_SEQUENCE_OF(struct MeasurementInfo_Action_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasurementInfo_Action_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasurementInfo_Action_List; +extern asn_SET_OF_specifics_t asn_SPC_MeasurementInfo_Action_List_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasurementInfo_Action_List_1[1]; +extern asn_per_constraints_t asn_PER_type_MeasurementInfo_Action_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasurementInfo_Action_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/MeasurementInfoItem.c b/e2sim/asn1c/MeasurementInfoItem.c new file mode 100644 index 0000000..85b73be --- /dev/null +++ b/e2sim/asn1c/MeasurementInfoItem.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "MeasurementInfoItem.h" + +asn_TYPE_member_t asn_MBR_MeasurementInfoItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasurementInfoItem, measType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_MeasurementType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "measType" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasurementInfoItem, labelInfoList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LabelInfoList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "labelInfoList" + }, +}; +static const ber_tlv_tag_t asn_DEF_MeasurementInfoItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MeasurementInfoItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* labelInfoList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MeasurementInfoItem_specs_1 = { + sizeof(struct MeasurementInfoItem), + offsetof(struct MeasurementInfoItem, _asn_ctx), + asn_MAP_MeasurementInfoItem_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_MeasurementInfoItem = { + "MeasurementInfoItem", + "MeasurementInfoItem", + &asn_OP_SEQUENCE, + asn_DEF_MeasurementInfoItem_tags_1, + sizeof(asn_DEF_MeasurementInfoItem_tags_1) + /sizeof(asn_DEF_MeasurementInfoItem_tags_1[0]), /* 1 */ + asn_DEF_MeasurementInfoItem_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasurementInfoItem_tags_1) + /sizeof(asn_DEF_MeasurementInfoItem_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_MeasurementInfoItem_1, + 2, /* Elements count */ + &asn_SPC_MeasurementInfoItem_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/MeasurementInfoItem.h b/e2sim/asn1c/MeasurementInfoItem.h new file mode 100644 index 0000000..3d1c515 --- /dev/null +++ b/e2sim/asn1c/MeasurementInfoItem.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _MeasurementInfoItem_H_ +#define _MeasurementInfoItem_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "MeasurementType.h" +#include "LabelInfoList.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* MeasurementInfoItem */ +typedef struct MeasurementInfoItem { + MeasurementType_t measType; + LabelInfoList_t labelInfoList; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasurementInfoItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasurementInfoItem; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasurementInfoItem_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasurementInfoItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasurementInfoItem_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/MeasurementInfoList.c b/e2sim/asn1c/MeasurementInfoList.c new file mode 100644 index 0000000..daa9119 --- /dev/null +++ b/e2sim/asn1c/MeasurementInfoList.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "MeasurementInfoList.h" + +#include "MeasurementInfoItem.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_MeasurementInfoList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_MeasurementInfoList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MeasurementInfoItem, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MeasurementInfoList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MeasurementInfoList_specs_1 = { + sizeof(struct MeasurementInfoList), + offsetof(struct MeasurementInfoList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasurementInfoList = { + "MeasurementInfoList", + "MeasurementInfoList", + &asn_OP_SEQUENCE_OF, + asn_DEF_MeasurementInfoList_tags_1, + sizeof(asn_DEF_MeasurementInfoList_tags_1) + /sizeof(asn_DEF_MeasurementInfoList_tags_1[0]), /* 1 */ + asn_DEF_MeasurementInfoList_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasurementInfoList_tags_1) + /sizeof(asn_DEF_MeasurementInfoList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MeasurementInfoList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_MeasurementInfoList_1, + 1, /* Single element */ + &asn_SPC_MeasurementInfoList_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/MeasurementInfoList.h b/e2sim/asn1c/MeasurementInfoList.h new file mode 100644 index 0000000..c36a534 --- /dev/null +++ b/e2sim/asn1c/MeasurementInfoList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _MeasurementInfoList_H_ +#define _MeasurementInfoList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MeasurementInfoItem; + +/* MeasurementInfoList */ +typedef struct MeasurementInfoList { + A_SEQUENCE_OF(struct MeasurementInfoItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasurementInfoList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasurementInfoList; +extern asn_SET_OF_specifics_t asn_SPC_MeasurementInfoList_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasurementInfoList_1[1]; +extern asn_per_constraints_t asn_PER_type_MeasurementInfoList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasurementInfoList_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/MeasurementLabel.c b/e2sim/asn1c/MeasurementLabel.c new file mode 100644 index 0000000..dc47d80 --- /dev/null +++ b/e2sim/asn1c/MeasurementLabel.c @@ -0,0 +1,1197 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "MeasurementLabel.h" + +#include "S-NSSAI.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_aRPmax_constraint_1(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 >= 1L && value <= 15L)) { + /* 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_aRPmin_constraint_1(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 >= 1L && value <= 15L)) { + /* 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_bitrateRange_constraint_1(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 >= 1L && value <= 65535L)) { + /* 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_layerMU_MIMO_constraint_1(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 >= 1L && value <= 65535L)) { + /* 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_distBinX_constraint_1(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 >= 1L && value <= 65535L)) { + /* 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_distBinY_constraint_1(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 >= 1L && value <= 65535L)) { + /* 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_distBinZ_constraint_1(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 >= 1L && value <= 65535L)) { + /* 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_ssbIndex_constraint_1(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 >= 1L && value <= 65535L)) { + /* 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_nonGoB_BFmode_Index_constraint_1(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 >= 1L && value <= 65535L)) { + /* 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_mIMO_mode_Index_constraint_1(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 >= 1L && value <= 2L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_noLabel_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_sUM_constr_16 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_preLabelOverride_constr_22 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_startEndInd_constr_25 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_min_constr_29 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_max_constr_32 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_avg_constr_35 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_aRPmax_constr_12 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 1, 15 } /* (1..15,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_aRPmin_constr_13 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 1, 15 } /* (1..15,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_bitrateRange_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 16, 16, 1, 65535 } /* (1..65535,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_layerMU_MIMO_constr_15 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 16, 16, 1, 65535 } /* (1..65535,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_distBinX_constr_19 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 16, 16, 1, 65535 } /* (1..65535,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_distBinY_constr_20 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 16, 16, 1, 65535 } /* (1..65535,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_distBinZ_constr_21 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 16, 16, 1, 65535 } /* (1..65535,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ssbIndex_constr_39 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 16, 16, 1, 65535 } /* (1..65535,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_nonGoB_BFmode_Index_constr_40 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 16, 16, 1, 65535 } /* (1..65535,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_mIMO_mode_Index_constr_41 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 1, 2 } /* (1..2,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_noLabel_value2enum_2[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_noLabel_enum2value_2[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_noLabel_specs_2 = { + asn_MAP_noLabel_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_noLabel_enum2value_2, /* 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_noLabel_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_noLabel_2 = { + "noLabel", + "noLabel", + &asn_OP_NativeEnumerated, + asn_DEF_noLabel_tags_2, + sizeof(asn_DEF_noLabel_tags_2) + /sizeof(asn_DEF_noLabel_tags_2[0]) - 1, /* 1 */ + asn_DEF_noLabel_tags_2, /* Same as above */ + sizeof(asn_DEF_noLabel_tags_2) + /sizeof(asn_DEF_noLabel_tags_2[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_noLabel_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_noLabel_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_sUM_value2enum_16[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_sUM_enum2value_16[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_sUM_specs_16 = { + asn_MAP_sUM_value2enum_16, /* "tag" => N; sorted by tag */ + asn_MAP_sUM_enum2value_16, /* 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_sUM_tags_16[] = { + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_sUM_16 = { + "sUM", + "sUM", + &asn_OP_NativeEnumerated, + asn_DEF_sUM_tags_16, + sizeof(asn_DEF_sUM_tags_16) + /sizeof(asn_DEF_sUM_tags_16[0]) - 1, /* 1 */ + asn_DEF_sUM_tags_16, /* Same as above */ + sizeof(asn_DEF_sUM_tags_16) + /sizeof(asn_DEF_sUM_tags_16[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_sUM_constr_16, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_sUM_specs_16 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_preLabelOverride_value2enum_22[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_preLabelOverride_enum2value_22[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_preLabelOverride_specs_22 = { + asn_MAP_preLabelOverride_value2enum_22, /* "tag" => N; sorted by tag */ + asn_MAP_preLabelOverride_enum2value_22, /* 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_preLabelOverride_tags_22[] = { + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_preLabelOverride_22 = { + "preLabelOverride", + "preLabelOverride", + &asn_OP_NativeEnumerated, + asn_DEF_preLabelOverride_tags_22, + sizeof(asn_DEF_preLabelOverride_tags_22) + /sizeof(asn_DEF_preLabelOverride_tags_22[0]) - 1, /* 1 */ + asn_DEF_preLabelOverride_tags_22, /* Same as above */ + sizeof(asn_DEF_preLabelOverride_tags_22) + /sizeof(asn_DEF_preLabelOverride_tags_22[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_preLabelOverride_constr_22, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_preLabelOverride_specs_22 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_startEndInd_value2enum_25[] = { + { 0, 5, "start" }, + { 1, 3, "end" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_startEndInd_enum2value_25[] = { + 1, /* end(1) */ + 0 /* start(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_startEndInd_specs_25 = { + asn_MAP_startEndInd_value2enum_25, /* "tag" => N; sorted by tag */ + asn_MAP_startEndInd_enum2value_25, /* 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_startEndInd_tags_25[] = { + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_startEndInd_25 = { + "startEndInd", + "startEndInd", + &asn_OP_NativeEnumerated, + asn_DEF_startEndInd_tags_25, + sizeof(asn_DEF_startEndInd_tags_25) + /sizeof(asn_DEF_startEndInd_tags_25[0]) - 1, /* 1 */ + asn_DEF_startEndInd_tags_25, /* Same as above */ + sizeof(asn_DEF_startEndInd_tags_25) + /sizeof(asn_DEF_startEndInd_tags_25[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_startEndInd_constr_25, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_startEndInd_specs_25 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_min_value2enum_29[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_min_enum2value_29[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_min_specs_29 = { + asn_MAP_min_value2enum_29, /* "tag" => N; sorted by tag */ + asn_MAP_min_enum2value_29, /* 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_min_tags_29[] = { + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_min_29 = { + "min", + "min", + &asn_OP_NativeEnumerated, + asn_DEF_min_tags_29, + sizeof(asn_DEF_min_tags_29) + /sizeof(asn_DEF_min_tags_29[0]) - 1, /* 1 */ + asn_DEF_min_tags_29, /* Same as above */ + sizeof(asn_DEF_min_tags_29) + /sizeof(asn_DEF_min_tags_29[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_min_constr_29, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_min_specs_29 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_max_value2enum_32[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_max_enum2value_32[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_max_specs_32 = { + asn_MAP_max_value2enum_32, /* "tag" => N; sorted by tag */ + asn_MAP_max_enum2value_32, /* 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_max_tags_32[] = { + (ASN_TAG_CLASS_CONTEXT | (19 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_max_32 = { + "max", + "max", + &asn_OP_NativeEnumerated, + asn_DEF_max_tags_32, + sizeof(asn_DEF_max_tags_32) + /sizeof(asn_DEF_max_tags_32[0]) - 1, /* 1 */ + asn_DEF_max_tags_32, /* Same as above */ + sizeof(asn_DEF_max_tags_32) + /sizeof(asn_DEF_max_tags_32[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_max_constr_32, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_max_specs_32 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_avg_value2enum_35[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_avg_enum2value_35[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_avg_specs_35 = { + asn_MAP_avg_value2enum_35, /* "tag" => N; sorted by tag */ + asn_MAP_avg_enum2value_35, /* 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_avg_tags_35[] = { + (ASN_TAG_CLASS_CONTEXT | (20 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_avg_35 = { + "avg", + "avg", + &asn_OP_NativeEnumerated, + asn_DEF_avg_tags_35, + sizeof(asn_DEF_avg_tags_35) + /sizeof(asn_DEF_avg_tags_35[0]) - 1, /* 1 */ + asn_DEF_avg_tags_35, /* Same as above */ + sizeof(asn_DEF_avg_tags_35) + /sizeof(asn_DEF_avg_tags_35[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_avg_constr_35, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_avg_specs_35 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MeasurementLabel_1[] = { + { ATF_POINTER, 24, offsetof(struct MeasurementLabel, noLabel), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_noLabel_2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "noLabel" + }, + { ATF_POINTER, 23, offsetof(struct MeasurementLabel, plmnID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PLMNIdentity, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "plmnID" + }, + { ATF_POINTER, 22, offsetof(struct MeasurementLabel, sliceID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_S_NSSAI, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sliceID" + }, + { ATF_POINTER, 21, offsetof(struct MeasurementLabel, fiveQI), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FiveQI, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "fiveQI" + }, + { ATF_POINTER, 20, offsetof(struct MeasurementLabel, qFI), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_QosFlowIdentifier, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "qFI" + }, + { ATF_POINTER, 19, offsetof(struct MeasurementLabel, qCI), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_QCI, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "qCI" + }, + { ATF_POINTER, 18, offsetof(struct MeasurementLabel, qCImax), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_QCI, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "qCImax" + }, + { ATF_POINTER, 17, offsetof(struct MeasurementLabel, qCImin), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_QCI, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "qCImin" + }, + { ATF_POINTER, 16, offsetof(struct MeasurementLabel, aRPmax), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_aRPmax_constr_12, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_aRPmax_constraint_1 + }, + 0, 0, /* No default value */ + "aRPmax" + }, + { ATF_POINTER, 15, offsetof(struct MeasurementLabel, aRPmin), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_aRPmin_constr_13, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_aRPmin_constraint_1 + }, + 0, 0, /* No default value */ + "aRPmin" + }, + { ATF_POINTER, 14, offsetof(struct MeasurementLabel, bitrateRange), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_bitrateRange_constr_14, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_bitrateRange_constraint_1 + }, + 0, 0, /* No default value */ + "bitrateRange" + }, + { ATF_POINTER, 13, offsetof(struct MeasurementLabel, layerMU_MIMO), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_layerMU_MIMO_constr_15, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_layerMU_MIMO_constraint_1 + }, + 0, 0, /* No default value */ + "layerMU-MIMO" + }, + { ATF_POINTER, 12, offsetof(struct MeasurementLabel, sUM), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_sUM_16, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sUM" + }, + { ATF_POINTER, 11, offsetof(struct MeasurementLabel, distBinX), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_distBinX_constr_19, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_distBinX_constraint_1 + }, + 0, 0, /* No default value */ + "distBinX" + }, + { ATF_POINTER, 10, offsetof(struct MeasurementLabel, distBinY), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_distBinY_constr_20, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_distBinY_constraint_1 + }, + 0, 0, /* No default value */ + "distBinY" + }, + { ATF_POINTER, 9, offsetof(struct MeasurementLabel, distBinZ), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_distBinZ_constr_21, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_distBinZ_constraint_1 + }, + 0, 0, /* No default value */ + "distBinZ" + }, + { ATF_POINTER, 8, offsetof(struct MeasurementLabel, preLabelOverride), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_preLabelOverride_22, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "preLabelOverride" + }, + { ATF_POINTER, 7, offsetof(struct MeasurementLabel, startEndInd), + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_startEndInd_25, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "startEndInd" + }, + { ATF_POINTER, 6, offsetof(struct MeasurementLabel, min), + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_min_29, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "min" + }, + { ATF_POINTER, 5, offsetof(struct MeasurementLabel, max), + (ASN_TAG_CLASS_CONTEXT | (19 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_max_32, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "max" + }, + { ATF_POINTER, 4, offsetof(struct MeasurementLabel, avg), + (ASN_TAG_CLASS_CONTEXT | (20 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_avg_35, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "avg" + }, + { ATF_POINTER, 3, offsetof(struct MeasurementLabel, ssbIndex), + (ASN_TAG_CLASS_CONTEXT | (21 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_ssbIndex_constr_39, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_ssbIndex_constraint_1 + }, + 0, 0, /* No default value */ + "ssbIndex" + }, + { ATF_POINTER, 2, offsetof(struct MeasurementLabel, nonGoB_BFmode_Index), + (ASN_TAG_CLASS_CONTEXT | (22 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_nonGoB_BFmode_Index_constr_40, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_nonGoB_BFmode_Index_constraint_1 + }, + 0, 0, /* No default value */ + "nonGoB-BFmode-Index" + }, + { ATF_POINTER, 1, offsetof(struct MeasurementLabel, mIMO_mode_Index), + (ASN_TAG_CLASS_CONTEXT | (23 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_mIMO_mode_Index_constr_41, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_mIMO_mode_Index_constraint_1 + }, + 0, 0, /* No default value */ + "mIMO-mode-Index" + }, +}; +static const int asn_MAP_MeasurementLabel_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 }; +static const ber_tlv_tag_t asn_DEF_MeasurementLabel_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MeasurementLabel_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* noLabel */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* plmnID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sliceID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* fiveQI */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* qFI */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* qCI */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* qCImax */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* qCImin */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* aRPmax */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* aRPmin */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* bitrateRange */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* layerMU-MIMO */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* sUM */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* distBinX */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* distBinY */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 }, /* distBinZ */ + { (ASN_TAG_CLASS_CONTEXT | (16 << 2)), 16, 0, 0 }, /* preLabelOverride */ + { (ASN_TAG_CLASS_CONTEXT | (17 << 2)), 17, 0, 0 }, /* startEndInd */ + { (ASN_TAG_CLASS_CONTEXT | (18 << 2)), 18, 0, 0 }, /* min */ + { (ASN_TAG_CLASS_CONTEXT | (19 << 2)), 19, 0, 0 }, /* max */ + { (ASN_TAG_CLASS_CONTEXT | (20 << 2)), 20, 0, 0 }, /* avg */ + { (ASN_TAG_CLASS_CONTEXT | (21 << 2)), 21, 0, 0 }, /* ssbIndex */ + { (ASN_TAG_CLASS_CONTEXT | (22 << 2)), 22, 0, 0 }, /* nonGoB-BFmode-Index */ + { (ASN_TAG_CLASS_CONTEXT | (23 << 2)), 23, 0, 0 } /* mIMO-mode-Index */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MeasurementLabel_specs_1 = { + sizeof(struct MeasurementLabel), + offsetof(struct MeasurementLabel, _asn_ctx), + asn_MAP_MeasurementLabel_tag2el_1, + 24, /* Count of tags in the map */ + asn_MAP_MeasurementLabel_oms_1, /* Optional members */ + 21, 3, /* Root/Additions */ + 21, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasurementLabel = { + "MeasurementLabel", + "MeasurementLabel", + &asn_OP_SEQUENCE, + asn_DEF_MeasurementLabel_tags_1, + sizeof(asn_DEF_MeasurementLabel_tags_1) + /sizeof(asn_DEF_MeasurementLabel_tags_1[0]), /* 1 */ + asn_DEF_MeasurementLabel_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasurementLabel_tags_1) + /sizeof(asn_DEF_MeasurementLabel_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_MeasurementLabel_1, + 24, /* Elements count */ + &asn_SPC_MeasurementLabel_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/MeasurementLabel.h b/e2sim/asn1c/MeasurementLabel.h new file mode 100644 index 0000000..96507da --- /dev/null +++ b/e2sim/asn1c/MeasurementLabel.h @@ -0,0 +1,127 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _MeasurementLabel_H_ +#define _MeasurementLabel_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" +#include "PLMNIdentity.h" +#include "FiveQI.h" +#include "QosFlowIdentifier.h" +#include "QCI.h" +#include "NativeInteger.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MeasurementLabel__noLabel { + MeasurementLabel__noLabel_true = 0 + /* + * Enumeration is extensible + */ +} e_MeasurementLabel__noLabel; +typedef enum MeasurementLabel__sUM { + MeasurementLabel__sUM_true = 0 + /* + * Enumeration is extensible + */ +} e_MeasurementLabel__sUM; +typedef enum MeasurementLabel__preLabelOverride { + MeasurementLabel__preLabelOverride_true = 0 + /* + * Enumeration is extensible + */ +} e_MeasurementLabel__preLabelOverride; +typedef enum MeasurementLabel__startEndInd { + MeasurementLabel__startEndInd_start = 0, + MeasurementLabel__startEndInd_end = 1 + /* + * Enumeration is extensible + */ +} e_MeasurementLabel__startEndInd; +typedef enum MeasurementLabel__min { + MeasurementLabel__min_true = 0 + /* + * Enumeration is extensible + */ +} e_MeasurementLabel__min; +typedef enum MeasurementLabel__max { + MeasurementLabel__max_true = 0 + /* + * Enumeration is extensible + */ +} e_MeasurementLabel__max; +typedef enum MeasurementLabel__avg { + MeasurementLabel__avg_true = 0 + /* + * Enumeration is extensible + */ +} e_MeasurementLabel__avg; + +/* Forward declarations */ +struct S_NSSAI; + +/* MeasurementLabel */ +typedef struct MeasurementLabel { + long *noLabel; /* OPTIONAL */ + PLMNIdentity_t *plmnID; /* OPTIONAL */ + struct S_NSSAI *sliceID; /* OPTIONAL */ + FiveQI_t *fiveQI; /* OPTIONAL */ + QosFlowIdentifier_t *qFI; /* OPTIONAL */ + QCI_t *qCI; /* OPTIONAL */ + QCI_t *qCImax; /* OPTIONAL */ + QCI_t *qCImin; /* OPTIONAL */ + long *aRPmax; /* OPTIONAL */ + long *aRPmin; /* OPTIONAL */ + long *bitrateRange; /* OPTIONAL */ + long *layerMU_MIMO; /* OPTIONAL */ + long *sUM; /* OPTIONAL */ + long *distBinX; /* OPTIONAL */ + long *distBinY; /* OPTIONAL */ + long *distBinZ; /* OPTIONAL */ + long *preLabelOverride; /* OPTIONAL */ + long *startEndInd; /* OPTIONAL */ + long *min; /* OPTIONAL */ + long *max; /* OPTIONAL */ + long *avg; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + long *ssbIndex; /* OPTIONAL */ + long *nonGoB_BFmode_Index; /* OPTIONAL */ + long *mIMO_mode_Index; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasurementLabel_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_noLabel_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_sUM_16; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_preLabelOverride_22; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_startEndInd_25; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_min_29; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_max_32; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_avg_35; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_MeasurementLabel; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasurementLabel_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasurementLabel_1[24]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasurementLabel_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/MeasurementRecord.c b/e2sim/asn1c/MeasurementRecord.c new file mode 100644 index 0000000..70420a2 --- /dev/null +++ b/e2sim/asn1c/MeasurementRecord.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "MeasurementRecord.h" + +#include "MeasurementRecordItem.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_MeasurementRecord_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 31, -1, 1, 2147483647 } /* (SIZE(1..2147483647)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_MeasurementRecord_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_MeasurementRecordItem, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MeasurementRecord_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MeasurementRecord_specs_1 = { + sizeof(struct MeasurementRecord), + offsetof(struct MeasurementRecord, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasurementRecord = { + "MeasurementRecord", + "MeasurementRecord", + &asn_OP_SEQUENCE_OF, + asn_DEF_MeasurementRecord_tags_1, + sizeof(asn_DEF_MeasurementRecord_tags_1) + /sizeof(asn_DEF_MeasurementRecord_tags_1[0]), /* 1 */ + asn_DEF_MeasurementRecord_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasurementRecord_tags_1) + /sizeof(asn_DEF_MeasurementRecord_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MeasurementRecord_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_MeasurementRecord_1, + 1, /* Single element */ + &asn_SPC_MeasurementRecord_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/MeasurementRecord.h b/e2sim/asn1c/MeasurementRecord.h new file mode 100644 index 0000000..3bff2b9 --- /dev/null +++ b/e2sim/asn1c/MeasurementRecord.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _MeasurementRecord_H_ +#define _MeasurementRecord_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MeasurementRecordItem; + +/* MeasurementRecord */ +typedef struct MeasurementRecord { + A_SEQUENCE_OF(struct MeasurementRecordItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasurementRecord_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasurementRecord; +extern asn_SET_OF_specifics_t asn_SPC_MeasurementRecord_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasurementRecord_1[1]; +extern asn_per_constraints_t asn_PER_type_MeasurementRecord_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasurementRecord_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/MeasurementRecordItem.c b/e2sim/asn1c/MeasurementRecordItem.c new file mode 100644 index 0000000..515911f --- /dev/null +++ b/e2sim/asn1c/MeasurementRecordItem.c @@ -0,0 +1,189 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "MeasurementRecordItem.h" + +static int +integer_2_constraint(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; + } + + + /* Constraint check succeeded */ + return 0; +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static int +memb_integer_constraint_1(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; + } + + + /* Constraint check succeeded */ + return 0; +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_integer_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_integer_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_MeasurementRecordItem_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_specifics_t asn_SPC_integer_specs_2 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_integer_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_integer_2 = { + "integer", + "integer", + &asn_OP_NativeInteger, + asn_DEF_integer_tags_2, + sizeof(asn_DEF_integer_tags_2) + /sizeof(asn_DEF_integer_tags_2[0]) - 1, /* 1 */ + asn_DEF_integer_tags_2, /* Same as above */ + sizeof(asn_DEF_integer_tags_2) + /sizeof(asn_DEF_integer_tags_2[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_integer_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + integer_2_constraint + }, + 0, 0, /* No members */ + &asn_SPC_integer_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MeasurementRecordItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasurementRecordItem, choice.integer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_integer_2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_integer_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_integer_constraint_1 + }, + 0, 0, /* No default value */ + "integer" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasurementRecordItem, choice.real), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeReal, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "real" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasurementRecordItem, choice.noValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "noValue" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_MeasurementRecordItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* integer */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* real */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* noValue */ +}; +asn_CHOICE_specifics_t asn_SPC_MeasurementRecordItem_specs_1 = { + sizeof(struct MeasurementRecordItem), + offsetof(struct MeasurementRecordItem, _asn_ctx), + offsetof(struct MeasurementRecordItem, present), + sizeof(((struct MeasurementRecordItem *)0)->present), + asn_MAP_MeasurementRecordItem_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + 3 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasurementRecordItem = { + "MeasurementRecordItem", + "MeasurementRecordItem", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MeasurementRecordItem_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_MeasurementRecordItem_1, + 3, /* Elements count */ + &asn_SPC_MeasurementRecordItem_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/MeasurementRecordItem.h b/e2sim/asn1c/MeasurementRecordItem.h new file mode 100644 index 0000000..94fe360 --- /dev/null +++ b/e2sim/asn1c/MeasurementRecordItem.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _MeasurementRecordItem_H_ +#define _MeasurementRecordItem_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" +#include "NativeReal.h" +#include "NULL.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MeasurementRecordItem_PR { + MeasurementRecordItem_PR_NOTHING, /* No components present */ + MeasurementRecordItem_PR_integer, + MeasurementRecordItem_PR_real, + MeasurementRecordItem_PR_noValue + /* Extensions may appear below */ + +} MeasurementRecordItem_PR; + +/* MeasurementRecordItem */ +typedef struct MeasurementRecordItem { + MeasurementRecordItem_PR present; + union MeasurementRecordItem_u { + unsigned long integer; + double real; + NULL_t noValue; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasurementRecordItem_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_integer_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_MeasurementRecordItem; +extern asn_CHOICE_specifics_t asn_SPC_MeasurementRecordItem_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasurementRecordItem_1[3]; +extern asn_per_constraints_t asn_PER_type_MeasurementRecordItem_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasurementRecordItem_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/MeasurementType.c b/e2sim/asn1c/MeasurementType.c new file mode 100644 index 0000000..b1764bd --- /dev/null +++ b/e2sim/asn1c/MeasurementType.c @@ -0,0 +1,88 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "MeasurementType.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_MeasurementType_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_MeasurementType_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasurementType, choice.measName), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasurementTypeName, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "measName" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasurementType, choice.measID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasurementTypeID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "measID" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_MeasurementType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measName */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* measID */ +}; +asn_CHOICE_specifics_t asn_SPC_MeasurementType_specs_1 = { + sizeof(struct MeasurementType), + offsetof(struct MeasurementType, _asn_ctx), + offsetof(struct MeasurementType, present), + sizeof(((struct MeasurementType *)0)->present), + asn_MAP_MeasurementType_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasurementType = { + "MeasurementType", + "MeasurementType", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MeasurementType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_MeasurementType_1, + 2, /* Elements count */ + &asn_SPC_MeasurementType_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/MeasurementType.h b/e2sim/asn1c/MeasurementType.h new file mode 100644 index 0000000..d36d11f --- /dev/null +++ b/e2sim/asn1c/MeasurementType.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _MeasurementType_H_ +#define _MeasurementType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "MeasurementTypeName.h" +#include "MeasurementTypeID.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MeasurementType_PR { + MeasurementType_PR_NOTHING, /* No components present */ + MeasurementType_PR_measName, + MeasurementType_PR_measID + /* Extensions may appear below */ + +} MeasurementType_PR; + +/* MeasurementType */ +typedef struct MeasurementType { + MeasurementType_PR present; + union MeasurementType_u { + MeasurementTypeName_t measName; + MeasurementTypeID_t measID; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasurementType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasurementType; +extern asn_CHOICE_specifics_t asn_SPC_MeasurementType_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasurementType_1[2]; +extern asn_per_constraints_t asn_PER_type_MeasurementType_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasurementType_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/MeasurementTypeID.c b/e2sim/asn1c/MeasurementTypeID.c new file mode 100644 index 0000000..13ed9cc --- /dev/null +++ b/e2sim/asn1c/MeasurementTypeID.c @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "MeasurementTypeID.h" + +int +MeasurementTypeID_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 >= 1L && value <= 65536L)) { + /* 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. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_MeasurementTypeID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 16, -1, 1, 65536 } /* (1..65536,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_MeasurementTypeID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MeasurementTypeID = { + "MeasurementTypeID", + "MeasurementTypeID", + &asn_OP_NativeInteger, + asn_DEF_MeasurementTypeID_tags_1, + sizeof(asn_DEF_MeasurementTypeID_tags_1) + /sizeof(asn_DEF_MeasurementTypeID_tags_1[0]), /* 1 */ + asn_DEF_MeasurementTypeID_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasurementTypeID_tags_1) + /sizeof(asn_DEF_MeasurementTypeID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MeasurementTypeID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + MeasurementTypeID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/MeasurementTypeID.h b/e2sim/asn1c/MeasurementTypeID.h new file mode 100644 index 0000000..a8e0505 --- /dev/null +++ b/e2sim/asn1c/MeasurementTypeID.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _MeasurementTypeID_H_ +#define _MeasurementTypeID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* MeasurementTypeID */ +typedef long MeasurementTypeID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MeasurementTypeID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MeasurementTypeID; +asn_struct_free_f MeasurementTypeID_free; +asn_struct_print_f MeasurementTypeID_print; +asn_constr_check_f MeasurementTypeID_constraint; +ber_type_decoder_f MeasurementTypeID_decode_ber; +der_type_encoder_f MeasurementTypeID_encode_der; +xer_type_decoder_f MeasurementTypeID_decode_xer; +xer_type_encoder_f MeasurementTypeID_encode_xer; +jer_type_encoder_f MeasurementTypeID_encode_jer; +per_type_decoder_f MeasurementTypeID_decode_uper; +per_type_encoder_f MeasurementTypeID_encode_uper; +per_type_decoder_f MeasurementTypeID_decode_aper; +per_type_encoder_f MeasurementTypeID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasurementTypeID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/MeasurementTypeName.c b/e2sim/asn1c/MeasurementTypeName.c new file mode 100644 index 0000000..01a2d96 --- /dev/null +++ b/e2sim/asn1c/MeasurementTypeName.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "MeasurementTypeName.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 +MeasurementTypeName_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 >= 1UL && size <= 150UL) + && !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_MeasurementTypeName_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_MeasurementTypeName_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. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_MeasurementTypeName_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_MeasurementTypeName_1_v2c, /* Value to PER code map */ + asn_PER_MAP_MeasurementTypeName_1_c2v /* PER code to value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_MeasurementTypeName_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MeasurementTypeName = { + "MeasurementTypeName", + "MeasurementTypeName", + &asn_OP_PrintableString, + asn_DEF_MeasurementTypeName_tags_1, + sizeof(asn_DEF_MeasurementTypeName_tags_1) + /sizeof(asn_DEF_MeasurementTypeName_tags_1[0]), /* 1 */ + asn_DEF_MeasurementTypeName_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasurementTypeName_tags_1) + /sizeof(asn_DEF_MeasurementTypeName_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MeasurementTypeName_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + MeasurementTypeName_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/MeasurementTypeName.h b/e2sim/asn1c/MeasurementTypeName.h new file mode 100644 index 0000000..ba55bab --- /dev/null +++ b/e2sim/asn1c/MeasurementTypeName.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _MeasurementTypeName_H_ +#define _MeasurementTypeName_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "PrintableString.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* MeasurementTypeName */ +typedef PrintableString_t MeasurementTypeName_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MeasurementTypeName_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MeasurementTypeName; +asn_struct_free_f MeasurementTypeName_free; +asn_struct_print_f MeasurementTypeName_print; +asn_constr_check_f MeasurementTypeName_constraint; +ber_type_decoder_f MeasurementTypeName_decode_ber; +der_type_encoder_f MeasurementTypeName_encode_der; +xer_type_decoder_f MeasurementTypeName_decode_xer; +xer_type_encoder_f MeasurementTypeName_encode_xer; +jer_type_encoder_f MeasurementTypeName_encode_jer; +per_type_decoder_f MeasurementTypeName_decode_uper; +per_type_encoder_f MeasurementTypeName_encode_uper; +per_type_decoder_f MeasurementTypeName_decode_aper; +per_type_encoder_f MeasurementTypeName_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasurementTypeName_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/NG-RANnodeUEXnAPID.c b/e2sim/asn1c/NG-RANnodeUEXnAPID.c new file mode 100644 index 0000000..c45c6c6 --- /dev/null +++ b/e2sim/asn1c/NG-RANnodeUEXnAPID.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "NG-RANnodeUEXnAPID.h" + +int +NG_RANnodeUEXnAPID_constraint(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; + } + + + /* Constraint check succeeded */ + return 0; +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_NG_RANnodeUEXnAPID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +const asn_INTEGER_specifics_t asn_SPC_NG_RANnodeUEXnAPID_specs_1 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_NG_RANnodeUEXnAPID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NG_RANnodeUEXnAPID = { + "NG-RANnodeUEXnAPID", + "NG-RANnodeUEXnAPID", + &asn_OP_NativeInteger, + asn_DEF_NG_RANnodeUEXnAPID_tags_1, + sizeof(asn_DEF_NG_RANnodeUEXnAPID_tags_1) + /sizeof(asn_DEF_NG_RANnodeUEXnAPID_tags_1[0]), /* 1 */ + asn_DEF_NG_RANnodeUEXnAPID_tags_1, /* Same as above */ + sizeof(asn_DEF_NG_RANnodeUEXnAPID_tags_1) + /sizeof(asn_DEF_NG_RANnodeUEXnAPID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_NG_RANnodeUEXnAPID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NG_RANnodeUEXnAPID_constraint + }, + 0, 0, /* No members */ + &asn_SPC_NG_RANnodeUEXnAPID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/NG-RANnodeUEXnAPID.h b/e2sim/asn1c/NG-RANnodeUEXnAPID.h new file mode 100644 index 0000000..e6939ca --- /dev/null +++ b/e2sim/asn1c/NG-RANnodeUEXnAPID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _NG_RANnodeUEXnAPID_H_ +#define _NG_RANnodeUEXnAPID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* NG-RANnodeUEXnAPID */ +typedef unsigned long NG_RANnodeUEXnAPID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_NG_RANnodeUEXnAPID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_NG_RANnodeUEXnAPID; +extern const asn_INTEGER_specifics_t asn_SPC_NG_RANnodeUEXnAPID_specs_1; +asn_struct_free_f NG_RANnodeUEXnAPID_free; +asn_struct_print_f NG_RANnodeUEXnAPID_print; +asn_constr_check_f NG_RANnodeUEXnAPID_constraint; +ber_type_decoder_f NG_RANnodeUEXnAPID_decode_ber; +der_type_encoder_f NG_RANnodeUEXnAPID_encode_der; +xer_type_decoder_f NG_RANnodeUEXnAPID_decode_xer; +xer_type_encoder_f NG_RANnodeUEXnAPID_encode_xer; +jer_type_encoder_f NG_RANnodeUEXnAPID_encode_jer; +per_type_decoder_f NG_RANnodeUEXnAPID_decode_uper; +per_type_encoder_f NG_RANnodeUEXnAPID_encode_uper; +per_type_decoder_f NG_RANnodeUEXnAPID_decode_aper; +per_type_encoder_f NG_RANnodeUEXnAPID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NG_RANnodeUEXnAPID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/NGENB-CU-UE-W1AP-ID.c b/e2sim/asn1c/NGENB-CU-UE-W1AP-ID.c new file mode 100644 index 0000000..1b83802 --- /dev/null +++ b/e2sim/asn1c/NGENB-CU-UE-W1AP-ID.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "NGENB-CU-UE-W1AP-ID.h" + +int +NGENB_CU_UE_W1AP_ID_constraint(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; + } + + + /* Constraint check succeeded */ + return 0; +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_NGENB_CU_UE_W1AP_ID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +const asn_INTEGER_specifics_t asn_SPC_NGENB_CU_UE_W1AP_ID_specs_1 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_NGENB_CU_UE_W1AP_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NGENB_CU_UE_W1AP_ID = { + "NGENB-CU-UE-W1AP-ID", + "NGENB-CU-UE-W1AP-ID", + &asn_OP_NativeInteger, + asn_DEF_NGENB_CU_UE_W1AP_ID_tags_1, + sizeof(asn_DEF_NGENB_CU_UE_W1AP_ID_tags_1) + /sizeof(asn_DEF_NGENB_CU_UE_W1AP_ID_tags_1[0]), /* 1 */ + asn_DEF_NGENB_CU_UE_W1AP_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_NGENB_CU_UE_W1AP_ID_tags_1) + /sizeof(asn_DEF_NGENB_CU_UE_W1AP_ID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_NGENB_CU_UE_W1AP_ID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NGENB_CU_UE_W1AP_ID_constraint + }, + 0, 0, /* No members */ + &asn_SPC_NGENB_CU_UE_W1AP_ID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/NGENB-CU-UE-W1AP-ID.h b/e2sim/asn1c/NGENB-CU-UE-W1AP-ID.h new file mode 100644 index 0000000..c8a60ae --- /dev/null +++ b/e2sim/asn1c/NGENB-CU-UE-W1AP-ID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _NGENB_CU_UE_W1AP_ID_H_ +#define _NGENB_CU_UE_W1AP_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* NGENB-CU-UE-W1AP-ID */ +typedef unsigned long NGENB_CU_UE_W1AP_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_NGENB_CU_UE_W1AP_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_NGENB_CU_UE_W1AP_ID; +extern const asn_INTEGER_specifics_t asn_SPC_NGENB_CU_UE_W1AP_ID_specs_1; +asn_struct_free_f NGENB_CU_UE_W1AP_ID_free; +asn_struct_print_f NGENB_CU_UE_W1AP_ID_print; +asn_constr_check_f NGENB_CU_UE_W1AP_ID_constraint; +ber_type_decoder_f NGENB_CU_UE_W1AP_ID_decode_ber; +der_type_encoder_f NGENB_CU_UE_W1AP_ID_encode_der; +xer_type_decoder_f NGENB_CU_UE_W1AP_ID_decode_xer; +xer_type_encoder_f NGENB_CU_UE_W1AP_ID_encode_xer; +jer_type_encoder_f NGENB_CU_UE_W1AP_ID_encode_jer; +per_type_decoder_f NGENB_CU_UE_W1AP_ID_decode_uper; +per_type_encoder_f NGENB_CU_UE_W1AP_ID_encode_uper; +per_type_decoder_f NGENB_CU_UE_W1AP_ID_decode_aper; +per_type_encoder_f NGENB_CU_UE_W1AP_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NGENB_CU_UE_W1AP_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/NR-ARFCN.c b/e2sim/asn1c/NR-ARFCN.c new file mode 100644 index 0000000..cb2a090 --- /dev/null +++ b/e2sim/asn1c/NR-ARFCN.c @@ -0,0 +1,98 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "NR-ARFCN.h" + +static int +memb_nRARFCN_constraint_1(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 >= 0L && value <= 3279165L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_nRARFCN_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 22, -1, 0, 3279165 } /* (0..3279165) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_NR_ARFCN_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NR_ARFCN, nRARFCN), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_nRARFCN_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_nRARFCN_constraint_1 + }, + 0, 0, /* No default value */ + "nRARFCN" + }, +}; +static const ber_tlv_tag_t asn_DEF_NR_ARFCN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NR_ARFCN_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* nRARFCN */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NR_ARFCN_specs_1 = { + sizeof(struct NR_ARFCN), + offsetof(struct NR_ARFCN, _asn_ctx), + asn_MAP_NR_ARFCN_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_NR_ARFCN = { + "NR-ARFCN", + "NR-ARFCN", + &asn_OP_SEQUENCE, + asn_DEF_NR_ARFCN_tags_1, + sizeof(asn_DEF_NR_ARFCN_tags_1) + /sizeof(asn_DEF_NR_ARFCN_tags_1[0]), /* 1 */ + asn_DEF_NR_ARFCN_tags_1, /* Same as above */ + sizeof(asn_DEF_NR_ARFCN_tags_1) + /sizeof(asn_DEF_NR_ARFCN_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_NR_ARFCN_1, + 1, /* Elements count */ + &asn_SPC_NR_ARFCN_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/NR-ARFCN.h b/e2sim/asn1c/NR-ARFCN.h new file mode 100644 index 0000000..49f273d --- /dev/null +++ b/e2sim/asn1c/NR-ARFCN.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _NR_ARFCN_H_ +#define _NR_ARFCN_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* NR-ARFCN */ +typedef struct NR_ARFCN { + long nRARFCN; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NR_ARFCN_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NR_ARFCN; +extern asn_SEQUENCE_specifics_t asn_SPC_NR_ARFCN_specs_1; +extern asn_TYPE_member_t asn_MBR_NR_ARFCN_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NR_ARFCN_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/NR-CGI.c b/e2sim/asn1c/NR-CGI.c new file mode 100644 index 0000000..a5b8dc6 --- /dev/null +++ b/e2sim/asn1c/NR-CGI.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "NR-CGI.h" + +asn_TYPE_member_t asn_MBR_NR_CGI_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NR_CGI, pLMNIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PLMNIdentity, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pLMNIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct NR_CGI, nRCellIdentity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NRCellIdentity, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "nRCellIdentity" + }, +}; +static const ber_tlv_tag_t asn_DEF_NR_CGI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NR_CGI_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nRCellIdentity */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NR_CGI_specs_1 = { + sizeof(struct NR_CGI), + offsetof(struct NR_CGI, _asn_ctx), + asn_MAP_NR_CGI_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_NR_CGI = { + "NR-CGI", + "NR-CGI", + &asn_OP_SEQUENCE, + asn_DEF_NR_CGI_tags_1, + sizeof(asn_DEF_NR_CGI_tags_1) + /sizeof(asn_DEF_NR_CGI_tags_1[0]), /* 1 */ + asn_DEF_NR_CGI_tags_1, /* Same as above */ + sizeof(asn_DEF_NR_CGI_tags_1) + /sizeof(asn_DEF_NR_CGI_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_NR_CGI_1, + 2, /* Elements count */ + &asn_SPC_NR_CGI_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/NR-CGI.h b/e2sim/asn1c/NR-CGI.h new file mode 100644 index 0000000..2b49716 --- /dev/null +++ b/e2sim/asn1c/NR-CGI.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _NR_CGI_H_ +#define _NR_CGI_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "PLMNIdentity.h" +#include "NRCellIdentity.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* NR-CGI */ +typedef struct NR_CGI { + PLMNIdentity_t pLMNIdentity; + NRCellIdentity_t nRCellIdentity; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NR_CGI_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NR_CGI; +extern asn_SEQUENCE_specifics_t asn_SPC_NR_CGI_specs_1; +extern asn_TYPE_member_t asn_MBR_NR_CGI_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NR_CGI_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/NR-PCI.c b/e2sim/asn1c/NR-PCI.c new file mode 100644 index 0000000..fc146bf --- /dev/null +++ b/e2sim/asn1c/NR-PCI.c @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "NR-PCI.h" + +int +NR_PCI_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 >= 0L && value <= 1007L)) { + /* 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. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_NR_PCI_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 0, 1007 } /* (0..1007) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_NR_PCI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NR_PCI = { + "NR-PCI", + "NR-PCI", + &asn_OP_NativeInteger, + asn_DEF_NR_PCI_tags_1, + sizeof(asn_DEF_NR_PCI_tags_1) + /sizeof(asn_DEF_NR_PCI_tags_1[0]), /* 1 */ + asn_DEF_NR_PCI_tags_1, /* Same as above */ + sizeof(asn_DEF_NR_PCI_tags_1) + /sizeof(asn_DEF_NR_PCI_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_NR_PCI_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NR_PCI_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/NR-PCI.h b/e2sim/asn1c/NR-PCI.h new file mode 100644 index 0000000..c4144a9 --- /dev/null +++ b/e2sim/asn1c/NR-PCI.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _NR_PCI_H_ +#define _NR_PCI_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* NR-PCI */ +typedef long NR_PCI_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_NR_PCI_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_NR_PCI; +asn_struct_free_f NR_PCI_free; +asn_struct_print_f NR_PCI_print; +asn_constr_check_f NR_PCI_constraint; +ber_type_decoder_f NR_PCI_decode_ber; +der_type_encoder_f NR_PCI_encode_der; +xer_type_decoder_f NR_PCI_decode_xer; +xer_type_encoder_f NR_PCI_encode_xer; +jer_type_encoder_f NR_PCI_encode_jer; +per_type_decoder_f NR_PCI_decode_uper; +per_type_encoder_f NR_PCI_encode_uper; +per_type_decoder_f NR_PCI_decode_aper; +per_type_encoder_f NR_PCI_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NR_PCI_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/NRCellIdentity.c b/e2sim/asn1c/NRCellIdentity.c new file mode 100644 index 0000000..2ead6cd --- /dev/null +++ b/e2sim/asn1c/NRCellIdentity.c @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "NRCellIdentity.h" + +int +NRCellIdentity_constraint(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 == 36UL)) { + /* 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 BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_NRCellIdentity_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 36, 36 } /* (SIZE(36..36)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_NRCellIdentity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NRCellIdentity = { + "NRCellIdentity", + "NRCellIdentity", + &asn_OP_BIT_STRING, + asn_DEF_NRCellIdentity_tags_1, + sizeof(asn_DEF_NRCellIdentity_tags_1) + /sizeof(asn_DEF_NRCellIdentity_tags_1[0]), /* 1 */ + asn_DEF_NRCellIdentity_tags_1, /* Same as above */ + sizeof(asn_DEF_NRCellIdentity_tags_1) + /sizeof(asn_DEF_NRCellIdentity_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_NRCellIdentity_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NRCellIdentity_constraint + }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/e2sim/asn1c/NRCellIdentity.h b/e2sim/asn1c/NRCellIdentity.h new file mode 100644 index 0000000..e401343 --- /dev/null +++ b/e2sim/asn1c/NRCellIdentity.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _NRCellIdentity_H_ +#define _NRCellIdentity_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* NRCellIdentity */ +typedef BIT_STRING_t NRCellIdentity_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_NRCellIdentity_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_NRCellIdentity; +asn_struct_free_f NRCellIdentity_free; +asn_struct_print_f NRCellIdentity_print; +asn_constr_check_f NRCellIdentity_constraint; +ber_type_decoder_f NRCellIdentity_decode_ber; +der_type_encoder_f NRCellIdentity_encode_der; +xer_type_decoder_f NRCellIdentity_decode_xer; +xer_type_encoder_f NRCellIdentity_encode_xer; +jer_type_encoder_f NRCellIdentity_encode_jer; +per_type_decoder_f NRCellIdentity_decode_uper; +per_type_encoder_f NRCellIdentity_encode_uper; +per_type_decoder_f NRCellIdentity_decode_aper; +per_type_encoder_f NRCellIdentity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NRCellIdentity_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/NRFrequencyBand-List.c b/e2sim/asn1c/NRFrequencyBand-List.c new file mode 100644 index 0000000..2deec04 --- /dev/null +++ b/e2sim/asn1c/NRFrequencyBand-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "NRFrequencyBand-List.h" + +#include "NRFrequencyBandItem.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_NRFrequencyBand_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_NRFrequencyBand_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NRFrequencyBandItem, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_NRFrequencyBand_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_NRFrequencyBand_List_specs_1 = { + sizeof(struct NRFrequencyBand_List), + offsetof(struct NRFrequencyBand_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_NRFrequencyBand_List = { + "NRFrequencyBand-List", + "NRFrequencyBand-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_NRFrequencyBand_List_tags_1, + sizeof(asn_DEF_NRFrequencyBand_List_tags_1) + /sizeof(asn_DEF_NRFrequencyBand_List_tags_1[0]), /* 1 */ + asn_DEF_NRFrequencyBand_List_tags_1, /* Same as above */ + sizeof(asn_DEF_NRFrequencyBand_List_tags_1) + /sizeof(asn_DEF_NRFrequencyBand_List_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_NRFrequencyBand_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_NRFrequencyBand_List_1, + 1, /* Single element */ + &asn_SPC_NRFrequencyBand_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/NRFrequencyBand-List.h b/e2sim/asn1c/NRFrequencyBand-List.h new file mode 100644 index 0000000..17bd230 --- /dev/null +++ b/e2sim/asn1c/NRFrequencyBand-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _NRFrequencyBand_List_H_ +#define _NRFrequencyBand_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NRFrequencyBandItem; + +/* NRFrequencyBand-List */ +typedef struct NRFrequencyBand_List { + A_SEQUENCE_OF(struct NRFrequencyBandItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NRFrequencyBand_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NRFrequencyBand_List; +extern asn_SET_OF_specifics_t asn_SPC_NRFrequencyBand_List_specs_1; +extern asn_TYPE_member_t asn_MBR_NRFrequencyBand_List_1[1]; +extern asn_per_constraints_t asn_PER_type_NRFrequencyBand_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NRFrequencyBand_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/NRFrequencyBandItem.c b/e2sim/asn1c/NRFrequencyBandItem.c new file mode 100644 index 0000000..128e9fc --- /dev/null +++ b/e2sim/asn1c/NRFrequencyBandItem.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "NRFrequencyBandItem.h" + +static int +memb_freqBandIndicatorNr_constraint_1(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 >= 1L && value <= 1024L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_freqBandIndicatorNr_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 10, 10, 1, 1024 } /* (1..1024,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_NRFrequencyBandItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NRFrequencyBandItem, freqBandIndicatorNr), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_freqBandIndicatorNr_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_freqBandIndicatorNr_constraint_1 + }, + 0, 0, /* No default value */ + "freqBandIndicatorNr" + }, + { ATF_NOFLAGS, 0, offsetof(struct NRFrequencyBandItem, supportedSULBandList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SupportedSULBandList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "supportedSULBandList" + }, +}; +static const ber_tlv_tag_t asn_DEF_NRFrequencyBandItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NRFrequencyBandItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* freqBandIndicatorNr */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* supportedSULBandList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NRFrequencyBandItem_specs_1 = { + sizeof(struct NRFrequencyBandItem), + offsetof(struct NRFrequencyBandItem, _asn_ctx), + asn_MAP_NRFrequencyBandItem_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_NRFrequencyBandItem = { + "NRFrequencyBandItem", + "NRFrequencyBandItem", + &asn_OP_SEQUENCE, + asn_DEF_NRFrequencyBandItem_tags_1, + sizeof(asn_DEF_NRFrequencyBandItem_tags_1) + /sizeof(asn_DEF_NRFrequencyBandItem_tags_1[0]), /* 1 */ + asn_DEF_NRFrequencyBandItem_tags_1, /* Same as above */ + sizeof(asn_DEF_NRFrequencyBandItem_tags_1) + /sizeof(asn_DEF_NRFrequencyBandItem_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_NRFrequencyBandItem_1, + 2, /* Elements count */ + &asn_SPC_NRFrequencyBandItem_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/NRFrequencyBandItem.h b/e2sim/asn1c/NRFrequencyBandItem.h new file mode 100644 index 0000000..82000af --- /dev/null +++ b/e2sim/asn1c/NRFrequencyBandItem.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _NRFrequencyBandItem_H_ +#define _NRFrequencyBandItem_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" +#include "SupportedSULBandList.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* NRFrequencyBandItem */ +typedef struct NRFrequencyBandItem { + long freqBandIndicatorNr; + SupportedSULBandList_t supportedSULBandList; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NRFrequencyBandItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NRFrequencyBandItem; +extern asn_SEQUENCE_specifics_t asn_SPC_NRFrequencyBandItem_specs_1; +extern asn_TYPE_member_t asn_MBR_NRFrequencyBandItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NRFrequencyBandItem_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/NRFrequencyInfo.c b/e2sim/asn1c/NRFrequencyInfo.c new file mode 100644 index 0000000..341991c --- /dev/null +++ b/e2sim/asn1c/NRFrequencyInfo.c @@ -0,0 +1,104 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "NRFrequencyInfo.h" + +static asn_TYPE_member_t asn_MBR_NRFrequencyInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NRFrequencyInfo, nrARFCN), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NR_ARFCN, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "nrARFCN" + }, + { ATF_NOFLAGS, 0, offsetof(struct NRFrequencyInfo, frequencyBand_List), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NRFrequencyBand_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "frequencyBand-List" + }, + { ATF_POINTER, 1, offsetof(struct NRFrequencyInfo, frequencyShift7p5khz), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NRFrequencyShift7p5khz, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "frequencyShift7p5khz" + }, +}; +static const int asn_MAP_NRFrequencyInfo_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_NRFrequencyInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NRFrequencyInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nrARFCN */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* frequencyBand-List */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* frequencyShift7p5khz */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_NRFrequencyInfo_specs_1 = { + sizeof(struct NRFrequencyInfo), + offsetof(struct NRFrequencyInfo, _asn_ctx), + asn_MAP_NRFrequencyInfo_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_NRFrequencyInfo_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NRFrequencyInfo = { + "NRFrequencyInfo", + "NRFrequencyInfo", + &asn_OP_SEQUENCE, + asn_DEF_NRFrequencyInfo_tags_1, + sizeof(asn_DEF_NRFrequencyInfo_tags_1) + /sizeof(asn_DEF_NRFrequencyInfo_tags_1[0]), /* 1 */ + asn_DEF_NRFrequencyInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_NRFrequencyInfo_tags_1) + /sizeof(asn_DEF_NRFrequencyInfo_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_NRFrequencyInfo_1, + 3, /* Elements count */ + &asn_SPC_NRFrequencyInfo_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/NRFrequencyInfo.h b/e2sim/asn1c/NRFrequencyInfo.h new file mode 100644 index 0000000..4429f77 --- /dev/null +++ b/e2sim/asn1c/NRFrequencyInfo.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _NRFrequencyInfo_H_ +#define _NRFrequencyInfo_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NR-ARFCN.h" +#include "NRFrequencyBand-List.h" +#include "NRFrequencyShift7p5khz.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* NRFrequencyInfo */ +typedef struct NRFrequencyInfo { + NR_ARFCN_t nrARFCN; + NRFrequencyBand_List_t frequencyBand_List; + NRFrequencyShift7p5khz_t *frequencyShift7p5khz; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NRFrequencyInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NRFrequencyInfo; + +#ifdef __cplusplus +} +#endif + +#endif /* _NRFrequencyInfo_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/NRFrequencyShift7p5khz.c b/e2sim/asn1c/NRFrequencyShift7p5khz.c new file mode 100644 index 0000000..b9a75ec --- /dev/null +++ b/e2sim/asn1c/NRFrequencyShift7p5khz.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "NRFrequencyShift7p5khz.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_NRFrequencyShift7p5khz_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_NRFrequencyShift7p5khz_value2enum_1[] = { + { 0, 5, "false" }, + { 1, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_NRFrequencyShift7p5khz_enum2value_1[] = { + 0, /* false(0) */ + 1 /* true(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_NRFrequencyShift7p5khz_specs_1 = { + asn_MAP_NRFrequencyShift7p5khz_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_NRFrequencyShift7p5khz_enum2value_1, /* 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_NRFrequencyShift7p5khz_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NRFrequencyShift7p5khz = { + "NRFrequencyShift7p5khz", + "NRFrequencyShift7p5khz", + &asn_OP_NativeEnumerated, + asn_DEF_NRFrequencyShift7p5khz_tags_1, + sizeof(asn_DEF_NRFrequencyShift7p5khz_tags_1) + /sizeof(asn_DEF_NRFrequencyShift7p5khz_tags_1[0]), /* 1 */ + asn_DEF_NRFrequencyShift7p5khz_tags_1, /* Same as above */ + sizeof(asn_DEF_NRFrequencyShift7p5khz_tags_1) + /sizeof(asn_DEF_NRFrequencyShift7p5khz_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_NRFrequencyShift7p5khz_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_NRFrequencyShift7p5khz_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/NRFrequencyShift7p5khz.h b/e2sim/asn1c/NRFrequencyShift7p5khz.h new file mode 100644 index 0000000..ba21a53 --- /dev/null +++ b/e2sim/asn1c/NRFrequencyShift7p5khz.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _NRFrequencyShift7p5khz_H_ +#define _NRFrequencyShift7p5khz_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NRFrequencyShift7p5khz { + NRFrequencyShift7p5khz_false = 0, + NRFrequencyShift7p5khz_true = 1 + /* + * Enumeration is extensible + */ +} e_NRFrequencyShift7p5khz; + +/* NRFrequencyShift7p5khz */ +typedef long NRFrequencyShift7p5khz_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_NRFrequencyShift7p5khz_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_NRFrequencyShift7p5khz; +extern const asn_INTEGER_specifics_t asn_SPC_NRFrequencyShift7p5khz_specs_1; +asn_struct_free_f NRFrequencyShift7p5khz_free; +asn_struct_print_f NRFrequencyShift7p5khz_print; +asn_constr_check_f NRFrequencyShift7p5khz_constraint; +ber_type_decoder_f NRFrequencyShift7p5khz_decode_ber; +der_type_encoder_f NRFrequencyShift7p5khz_encode_der; +xer_type_decoder_f NRFrequencyShift7p5khz_decode_xer; +xer_type_encoder_f NRFrequencyShift7p5khz_encode_xer; +jer_type_encoder_f NRFrequencyShift7p5khz_encode_jer; +per_type_decoder_f NRFrequencyShift7p5khz_decode_uper; +per_type_encoder_f NRFrequencyShift7p5khz_encode_uper; +per_type_decoder_f NRFrequencyShift7p5khz_decode_aper; +per_type_encoder_f NRFrequencyShift7p5khz_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NRFrequencyShift7p5khz_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/NULL.c b/e2sim/asn1c/NULL.c new file mode 100644 index 0000000..d160e69 --- /dev/null +++ b/e2sim/asn1c/NULL.c @@ -0,0 +1,113 @@ +/*- + * Copyright (c) 2003, 2005 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * NULL basic type description. + */ +static const ber_tlv_tag_t asn_DEF_NULL_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (5 << 2)) +}; +asn_TYPE_operation_t asn_OP_NULL = { + NULL_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + NULL_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + NULL_compare, +#if !defined(ASN_DISABLE_BER_SUPPORT) + NULL_decode_ber, + NULL_encode_der, /* Special handling of DER encoding */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + NULL_decode_xer, + NULL_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + NULL_encode_jer, +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + NULL_decode_oer, + NULL_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + NULL_decode_uper, /* Unaligned PER decoder */ + NULL_encode_uper, /* Unaligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + NULL_decode_aper, /* Aligned PER decoder */ + NULL_encode_aper, /* Aligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + NULL_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_NULL = { + "NULL", + "NULL", + &asn_OP_NULL, + asn_DEF_NULL_tags, + sizeof(asn_DEF_NULL_tags) / sizeof(asn_DEF_NULL_tags[0]), + asn_DEF_NULL_tags, /* Same as above */ + sizeof(asn_DEF_NULL_tags) / sizeof(asn_DEF_NULL_tags[0]), + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + asn_generic_no_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +void +NULL_free(const asn_TYPE_descriptor_t *td, void *ptr, + enum asn_struct_free_method method) { + if(td && ptr) { + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(ptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset(ptr, 0, sizeof(NULL_t)); + break; + } + } +} + +int +NULL_compare(const asn_TYPE_descriptor_t *td, const void *a, const void *b) { + (void)td; + (void)a; + (void)b; + return 0; +} diff --git a/e2sim/asn1c/NULL.h b/e2sim/asn1c/NULL.h new file mode 100644 index 0000000..7264475 --- /dev/null +++ b/e2sim/asn1c/NULL.h @@ -0,0 +1,69 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_TYPE_NULL_H +#define ASN_TYPE_NULL_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * The value of the NULL type is meaningless. + * Use the BOOLEAN type if you need to carry true/false semantics. + */ +typedef int NULL_t; + +extern asn_TYPE_descriptor_t asn_DEF_NULL; +extern asn_TYPE_operation_t asn_OP_NULL; + +asn_struct_free_f NULL_free; + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +asn_struct_print_f NULL_print; +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +asn_struct_compare_f NULL_compare; + +#define NULL_constraint asn_generic_no_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +ber_type_decoder_f NULL_decode_ber; +der_type_encoder_f NULL_encode_der; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +xer_type_decoder_f NULL_decode_xer; +xer_type_encoder_f NULL_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_encoder_f NULL_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +oer_type_decoder_f NULL_decode_oer; +oer_type_encoder_f NULL_encode_oer; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f NULL_decode_uper; +per_type_encoder_f NULL_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +per_type_decoder_f NULL_decode_aper; +per_type_encoder_f NULL_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +asn_random_fill_f NULL_random_fill; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +#ifdef __cplusplus +} +#endif + +#endif /* NULL_H */ diff --git a/e2sim/asn1c/NULL_aper.c b/e2sim/asn1c/NULL_aper.c new file mode 100644 index 0000000..5176880 --- /dev/null +++ b/e2sim/asn1c/NULL_aper.c @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +NULL_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + asn_dec_rval_t rv = {RC_OK, 0}; + + (void)opt_codec_ctx; + (void)td; + (void)constraints; + (void)pd; + + if(!*sptr) { + *sptr = MALLOC(sizeof(NULL_t)); + if(*sptr) { + *(NULL_t *)*sptr = 0; + } else { + ASN__DECODE_FAILED; + } + } + + /* + * NULL type does not have content octets. + */ + + rv.code = RC_OK; + rv.consumed = 0; + return rv; +} + + +asn_enc_rval_t +NULL_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + asn_enc_rval_t er = {0,0,0}; + + (void)td; + (void)constraints; + (void)sptr; + (void)po; + + er.encoded = 0; + ASN__ENCODED_OK(er); +} diff --git a/e2sim/asn1c/NULL_ber.c b/e2sim/asn1c/NULL_ber.c new file mode 100644 index 0000000..38c85c9 --- /dev/null +++ b/e2sim/asn1c/NULL_ber.c @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * Decode NULL type. + */ +asn_dec_rval_t +NULL_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **bool_value, + const void *buf_ptr, size_t size, int tag_mode) { + NULL_t *st = (NULL_t *)*bool_value; + asn_dec_rval_t rval; + ber_tlv_len_t length; + + if(st == NULL) { + st = (NULL_t *)(*bool_value = CALLOC(1, sizeof(*st))); + if(st == NULL) { + rval.code = RC_FAIL; + rval.consumed = 0; + return rval; + } + } + + ASN_DEBUG("Decoding %s as NULL (tm=%d)", td->name, tag_mode); + + /* + * Check tags. + */ + rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size, tag_mode, 0, + &length, 0); + if(rval.code != RC_OK) { + return rval; + } + + // X.690-201508, #8.8.2, length shall be zero. + if(length != 0) { + ASN_DEBUG("Decoding %s as NULL failed: too much data", td->name); + rval.code = RC_FAIL; + rval.consumed = 0; + return rval; + } + + return rval; +} + +asn_enc_rval_t +NULL_encode_der(const asn_TYPE_descriptor_t *td, const void *ptr, int tag_mode, + ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, void *app_key) { + asn_enc_rval_t erval = {0,0,0}; + + erval.encoded = der_write_tags(td, 0, tag_mode, 0, tag, cb, app_key); + if(erval.encoded == -1) { + erval.failed_type = td; + erval.structure_ptr = ptr; + } + + ASN__ENCODED_OK(erval); +} diff --git a/e2sim/asn1c/NULL_jer.c b/e2sim/asn1c/NULL_jer.c new file mode 100644 index 0000000..f69c64e --- /dev/null +++ b/e2sim/asn1c/NULL_jer.c @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_enc_rval_t +NULL_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + enum jer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, + void *app_key) { + asn_enc_rval_t er = {0,0,0}; + + (void)td; + (void)sptr; + (void)ilevel; + (void)flags; + (void)cb; + (void)app_key; + + /* XMLNullValue is empty */ + er.encoded = 0; + ASN__ENCODED_OK(er); +} diff --git a/e2sim/asn1c/NULL_print.c b/e2sim/asn1c/NULL_print.c new file mode 100644 index 0000000..52fcc0e --- /dev/null +++ b/e2sim/asn1c/NULL_print.c @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +int +NULL_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + (void)td; /* Unused argument */ + (void)ilevel; /* Unused argument */ + + if(sptr) { + return (cb("", 9, app_key) < 0) ? -1 : 0; + } else { + return (cb("", 8, app_key) < 0) ? -1 : 0; + } +} diff --git a/e2sim/asn1c/NULL_rfill.c b/e2sim/asn1c/NULL_rfill.c new file mode 100644 index 0000000..f1b60ce --- /dev/null +++ b/e2sim/asn1c/NULL_rfill.c @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_random_fill_result_t +NULL_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constr, + size_t max_length) { + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + NULL_t *st = *sptr; + + (void)td; + (void)constr; + + if(max_length == 0) return result_skipped; + + if(st == NULL) { + st = (NULL_t *)(*sptr = CALLOC(1, sizeof(*st))); + if(st == NULL) { + return result_failed; + } + } + + return result_ok; +} diff --git a/e2sim/asn1c/NULL_uper.c b/e2sim/asn1c/NULL_uper.c new file mode 100644 index 0000000..c871a48 --- /dev/null +++ b/e2sim/asn1c/NULL_uper.c @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +NULL_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + asn_dec_rval_t rv; + + (void)opt_codec_ctx; + (void)td; + (void)constraints; + (void)pd; + + if(!*sptr) { + *sptr = MALLOC(sizeof(NULL_t)); + if(*sptr) { + *(NULL_t *)*sptr = 0; + } else { + ASN__DECODE_FAILED; + } + } + + /* + * NULL type does not have content octets. + */ + + rv.code = RC_OK; + rv.consumed = 0; + return rv; +} + +asn_enc_rval_t +NULL_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + asn_enc_rval_t er = {0,0,0}; + + (void)td; + (void)constraints; + (void)sptr; + (void)po; + + er.encoded = 0; + ASN__ENCODED_OK(er); +} diff --git a/e2sim/asn1c/NULL_xer.c b/e2sim/asn1c/NULL_xer.c new file mode 100644 index 0000000..5a6e4b9 --- /dev/null +++ b/e2sim/asn1c/NULL_xer.c @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_enc_rval_t +NULL_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, + void *app_key) { + asn_enc_rval_t er = {0,0,0}; + + (void)td; + (void)sptr; + (void)ilevel; + (void)flags; + (void)cb; + (void)app_key; + + /* XMLNullValue is empty */ + er.encoded = 0; + ASN__ENCODED_OK(er); +} + + +static enum xer_pbd_rval +NULL__xer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr, + const void *chunk_buf, size_t chunk_size) { + (void)td; + (void)sptr; + (void)chunk_buf; /* Going to be empty according to the rules below. */ + + /* + * There must be no content in self-terminating tag. + */ + if(chunk_size) + return XPBD_BROKEN_ENCODING; + else + return XPBD_BODY_CONSUMED; +} + +asn_dec_rval_t +NULL_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, size_t size) { + return xer_decode_primitive(opt_codec_ctx, td, + sptr, sizeof(NULL_t), opt_mname, buf_ptr, size, + NULL__xer_body_decode); +} diff --git a/e2sim/asn1c/NativeEnumerated.c b/e2sim/asn1c/NativeEnumerated.c new file mode 100644 index 0000000..aee450c --- /dev/null +++ b/e2sim/asn1c/NativeEnumerated.c @@ -0,0 +1,108 @@ +/*- + * Copyright (c) 2004, 2007 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * Read the NativeInteger.h for the explanation wrt. differences between + * INTEGER and NativeInteger. + * Basically, both are decoders and encoders of ASN.1 INTEGER type, but this + * implementation deals with the standard (machine-specific) representation + * of them instead of using the platform-independent buffer. + */ +#include +#include + +/* + * NativeEnumerated basic type description. + */ +static const ber_tlv_tag_t asn_DEF_NativeEnumerated_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_operation_t asn_OP_NativeEnumerated = { + NativeInteger_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + NativeInteger_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + NativeInteger_compare, +#if !defined(ASN_DISABLE_BER_SUPPORT) + NativeInteger_decode_ber, + NativeInteger_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + NativeInteger_decode_xer, + NativeEnumerated_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + NativeEnumerated_encode_jer, +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + NativeEnumerated_decode_oer, + NativeEnumerated_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + NativeEnumerated_decode_uper, + NativeEnumerated_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + NativeEnumerated_decode_aper, + NativeEnumerated_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + NativeEnumerated_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_NativeEnumerated = { + "ENUMERATED", /* The ASN.1 type is still ENUMERATED */ + "ENUMERATED", + &asn_OP_NativeEnumerated, + asn_DEF_NativeEnumerated_tags, + sizeof(asn_DEF_NativeEnumerated_tags) / sizeof(asn_DEF_NativeEnumerated_tags[0]), + asn_DEF_NativeEnumerated_tags, /* Same as above */ + sizeof(asn_DEF_NativeEnumerated_tags) / sizeof(asn_DEF_NativeEnumerated_tags[0]), + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + asn_generic_no_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +int +NativeEnumerated__compar_value2enum(const void *ap, const void *bp) { + const asn_INTEGER_enum_map_t *a = ap; + const asn_INTEGER_enum_map_t *b = bp; + if(a->nat_value == b->nat_value) + return 0; + if(a->nat_value < b->nat_value) + return -1; + return 1; +} +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ diff --git a/e2sim/asn1c/NativeEnumerated.h b/e2sim/asn1c/NativeEnumerated.h new file mode 100644 index 0000000..0c711e3 --- /dev/null +++ b/e2sim/asn1c/NativeEnumerated.h @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * This type differs from the standard ENUMERATED in that it is modelled using + * the fixed machine type (long, int, short), so it can hold only values of + * limited length. There is no type (i.e., NativeEnumerated_t, any integer type + * will do). + * This type may be used when integer range is limited by subtype constraints. + */ +#ifndef _NativeEnumerated_H_ +#define _NativeEnumerated_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern asn_TYPE_descriptor_t asn_DEF_NativeEnumerated; +extern asn_TYPE_operation_t asn_OP_NativeEnumerated; + +#define NativeEnumerated_free NativeInteger_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +#define NativeEnumerated_print NativeInteger_print +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +#define NativeEnumerated_compare NativeInteger_compare + +#define NativeEnumerated_constraint asn_generic_no_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#define NativeEnumerated_decode_ber NativeInteger_decode_ber +#define NativeEnumerated_encode_der NativeInteger_encode_der +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +#define NativeEnumerated_decode_xer NativeInteger_decode_xer +xer_type_encoder_f NativeEnumerated_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_encoder_f NativeEnumerated_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +oer_type_decoder_f NativeEnumerated_decode_oer; +oer_type_encoder_f NativeEnumerated_encode_oer; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f NativeEnumerated_decode_uper; +per_type_encoder_f NativeEnumerated_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +per_type_decoder_f NativeEnumerated_decode_aper; +per_type_encoder_f NativeEnumerated_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +#define NativeEnumerated_random_fill NativeInteger_random_fill +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +int NativeEnumerated__compar_value2enum( + const void *ap, + const void *bp); +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + +#ifdef __cplusplus +} +#endif + +#endif /* _NativeEnumerated_H_ */ diff --git a/e2sim/asn1c/NativeEnumerated_aper.c b/e2sim/asn1c/NativeEnumerated_aper.c new file mode 100644 index 0000000..5c4c256 --- /dev/null +++ b/e2sim/asn1c/NativeEnumerated_aper.c @@ -0,0 +1,157 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +NativeEnumerated_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd) { + const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; + asn_dec_rval_t rval = { RC_OK, 0 }; + long *native = (long *)*sptr; + const asn_per_constraint_t *ct; + long value; + + (void)opt_codec_ctx; + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ASN__DECODE_FAILED; /* Mandatory! */ + if(!specs) ASN__DECODE_FAILED; + + if(!native) { + native = (long *)(*sptr = CALLOC(1, sizeof(*native))); + if(!native) ASN__DECODE_FAILED; + } + + ASN_DEBUG("Decoding %s as NativeEnumerated", td->name); + + if(ct->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) ASN__DECODE_STARVED; + if(inext) ct = 0; + } + + /* Deal with APER padding */ + if(ct && ct->upper_bound >= 255) { + int padding = 0; + padding = (8 - (pd->moved % 8)) % 8; + ASN_DEBUG("For NativeEnumerated %s,offset = %zu Padding bits = %d", + td->name, pd->moved, padding); + ASN_DEBUG("For NativeEnumerated %s, upper bound = %llu", + td->name, (unsigned long long)ct->upper_bound); + if(padding > 0) + per_get_few_bits(pd, padding); + } + + if(ct && ct->range_bits >= 0) { + value = per_get_few_bits(pd, ct->range_bits); + if(value < 0) ASN__DECODE_STARVED; + if(value >= (specs->extension + ? specs->extension - 1 : specs->map_count)) + ASN__DECODE_FAILED; + } else { + if(!specs->extension) + ASN__DECODE_FAILED; + /* + * X.691, #10.6: normally small non-negative whole number; + */ + + /* XXX handle indefinite index length > 64k */ + value = aper_get_nsnnwn(pd, 65537); + if(value < 0) ASN__DECODE_STARVED; + value += specs->extension - 1; + //if(value >= specs->map_count) + // ASN__DECODE_FAILED; + if(value >= specs->map_count) { + ASN_DEBUG("Decoded unknown index value %s = %ld", td->name, value); + /* unknown index. Workaround => set the first enumeration value */ + *native = specs->value2enum[0].nat_value; + return rval; + } + } + + *native = specs->value2enum[value].nat_value; + ASN_DEBUG("Decoded %s = %ld", td->name, *native); + + return rval; +} + +asn_enc_rval_t +NativeEnumerated_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + long native, value; + const asn_per_constraint_t *ct; + int inext = 0, range_bits = 1; + asn_INTEGER_enum_map_t key; + asn_INTEGER_enum_map_t *kf; + + if(!sptr) ASN__ENCODE_FAILED; + if(!specs) ASN__ENCODE_FAILED; + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ASN__ENCODE_FAILED; /* Mandatory! */ + + ASN_DEBUG("Encoding %s as NativeEnumerated", td->name); + + er.encoded = 0; + + native = *(const long *)sptr; + if(native < 0) ASN__ENCODE_FAILED; + + key.nat_value = native; + kf = bsearch(&key, specs->value2enum, specs->map_count, + sizeof(key), NativeEnumerated__compar_value2enum); + if(!kf) { + ASN_DEBUG("No element corresponds to %ld", native); + ASN__ENCODE_FAILED; + } + value = kf - specs->value2enum; + + if(ct->range_bits >= 0) { + int cmpWith = specs->extension + ? specs->extension - 1 : specs->map_count; + if(value >= cmpWith) + inext = 1; + } + if(ct->flags & APC_EXTENSIBLE) { + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + if(inext) range_bits = 0; + } else if(inext) { + ASN__ENCODE_FAILED; + } + + if(range_bits && ct && ct->range_bits >= 0) { + if(per_put_few_bits(po, value, ct->range_bits)) + ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } + + if(!specs->extension) + ASN__ENCODE_FAILED; + + /* + * X.691, #10.6: normally small non-negative whole number; + */ + ASN_DEBUG("value = %ld, ext = %d, inext = %d, res = %ld", + value, specs->extension, inext, + value - (inext ? (specs->extension - 1) : 0)); + if(aper_put_nsnnwn(po, + ct->upper_bound - ct->lower_bound + 1, + value - (inext ? (specs->extension - 1) : 0))) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/e2sim/asn1c/NativeEnumerated_jer.c b/e2sim/asn1c/NativeEnumerated_jer.c new file mode 100644 index 0000000..046afe9 --- /dev/null +++ b/e2sim/asn1c/NativeEnumerated_jer.c @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_enc_rval_t +NativeEnumerated_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum jer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + const long *native = (const long *)sptr; + const asn_INTEGER_enum_map_t *el; + + (void)ilevel; + (void)flags; + + if(!native) ASN__ENCODE_FAILED; + + el = INTEGER_map_value2enum(specs, *native); + if(el) { + er.encoded = + asn__format_to_callback(cb, app_key, "\"%s\"", el->enum_name); + if(er.encoded < 0) ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } else { + ASN_DEBUG( + "ASN.1 forbids dealing with " + "unknown value of ENUMERATED type"); + ASN__ENCODE_FAILED; + } +} diff --git a/e2sim/asn1c/NativeEnumerated_uper.c b/e2sim/asn1c/NativeEnumerated_uper.c new file mode 100644 index 0000000..e2f932a --- /dev/null +++ b/e2sim/asn1c/NativeEnumerated_uper.c @@ -0,0 +1,135 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +NativeEnumerated_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd) { + const asn_INTEGER_specifics_t *specs = td->specifics; + asn_dec_rval_t rval = { RC_OK, 0 }; + long *native = (long *)*sptr; + const asn_per_constraint_t *ct; + long value; + + (void)opt_codec_ctx; + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ASN__DECODE_FAILED; /* Mandatory! */ + if(!specs) ASN__DECODE_FAILED; + + if(!native) { + native = (long *)(*sptr = CALLOC(1, sizeof(*native))); + if(!native) ASN__DECODE_FAILED; + } + + ASN_DEBUG("Decoding %s as NativeEnumerated", td->name); + + if(ct->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) ASN__DECODE_STARVED; + if(inext) ct = 0; + } + + if(ct && ct->range_bits >= 0) { + value = per_get_few_bits(pd, ct->range_bits); + if(value < 0) ASN__DECODE_STARVED; + if(value >= (specs->extension + ? specs->extension - 1 : specs->map_count)) + ASN__DECODE_FAILED; + } else { + if(!specs->extension) + ASN__DECODE_FAILED; + /* + * X.691, #10.6: normally small non-negative whole number; + */ + value = uper_get_nsnnwn(pd); + if(value < 0) ASN__DECODE_STARVED; + value += specs->extension - 1; + if(value >= specs->map_count) + ASN__DECODE_FAILED; + } + + *native = specs->value2enum[value].nat_value; + ASN_DEBUG("Decoded %s = %ld", td->name, *native); + + return rval; +} + +asn_enc_rval_t +NativeEnumerated_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + long native, value; + const asn_per_constraint_t *ct; + int inext = 0; + asn_INTEGER_enum_map_t key; + const asn_INTEGER_enum_map_t *kf; + + if(!sptr) ASN__ENCODE_FAILED; + if(!specs) ASN__ENCODE_FAILED; + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ASN__ENCODE_FAILED; /* Mandatory! */ + + ASN_DEBUG("Encoding %s as NativeEnumerated", td->name); + + er.encoded = 0; + + native = *(const long *)sptr; + + key.nat_value = native; + kf = bsearch(&key, specs->value2enum, specs->map_count, + sizeof(key), NativeEnumerated__compar_value2enum); + if(!kf) { + ASN_DEBUG("No element corresponds to %ld", native); + ASN__ENCODE_FAILED; + } + value = kf - specs->value2enum; + + if(ct->range_bits >= 0) { + int cmpWith = specs->extension + ? specs->extension - 1 : specs->map_count; + if(value >= cmpWith) + inext = 1; + } + if(ct->flags & APC_EXTENSIBLE) { + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + if(inext) ct = 0; + } else if(inext) { + ASN__ENCODE_FAILED; + } + + if(ct && ct->range_bits >= 0) { + if(per_put_few_bits(po, value, ct->range_bits)) + ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } + + if(!specs->extension) + ASN__ENCODE_FAILED; + + /* + * X.691, #10.6: normally small non-negative whole number; + */ + ASN_DEBUG("value = %ld, ext = %d, inext = %d, res = %ld", + value, specs->extension, inext, + value - (inext ? (specs->extension - 1) : 0)); + if(uper_put_nsnnwn(po, value - (inext ? (specs->extension - 1) : 0))) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/e2sim/asn1c/NativeEnumerated_xer.c b/e2sim/asn1c/NativeEnumerated_xer.c new file mode 100644 index 0000000..e8d6d0d --- /dev/null +++ b/e2sim/asn1c/NativeEnumerated_xer.c @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_enc_rval_t +NativeEnumerated_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + const long *native = (const long *)sptr; + const asn_INTEGER_enum_map_t *el; + + (void)ilevel; + (void)flags; + + if(!native) ASN__ENCODE_FAILED; + + el = INTEGER_map_value2enum(specs, *native); + if(el) { + er.encoded = + asn__format_to_callback(cb, app_key, "<%s/>", el->enum_name); + if(er.encoded < 0) ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } else { + ASN_DEBUG( + "ASN.1 forbids dealing with " + "unknown value of ENUMERATED type"); + ASN__ENCODE_FAILED; + } +} diff --git a/e2sim/asn1c/NativeInteger.c b/e2sim/asn1c/NativeInteger.c new file mode 100644 index 0000000..f0309b0 --- /dev/null +++ b/e2sim/asn1c/NativeInteger.c @@ -0,0 +1,152 @@ +/*- + * Copyright (c) 2004, 2005, 2006 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * Read the NativeInteger.h for the explanation wrt. differences between + * INTEGER and NativeInteger. + * Basically, both are decoders and encoders of ASN.1 INTEGER type, but this + * implementation deals with the standard (machine-specific) representation + * of them instead of using the platform-independent buffer. + */ +#include +#include + +/* + * NativeInteger basic type description. + */ +static const ber_tlv_tag_t asn_DEF_NativeInteger_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_operation_t asn_OP_NativeInteger = { + NativeInteger_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + NativeInteger_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + NativeInteger_compare, +#if !defined(ASN_DISABLE_BER_SUPPORT) + NativeInteger_decode_ber, + NativeInteger_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + NativeInteger_decode_xer, + NativeInteger_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + NativeInteger_encode_jer, +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + NativeInteger_decode_oer, /* OER decoder */ + NativeInteger_encode_oer, /* Canonical OER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + NativeInteger_decode_uper, /* Unaligned PER decoder */ + NativeInteger_encode_uper, /* Unaligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + NativeInteger_decode_aper, /* Aligned PER decoder */ + NativeInteger_encode_aper, /* Aligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + NativeInteger_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_NativeInteger = { + "INTEGER", /* The ASN.1 type is still INTEGER */ + "INTEGER", + &asn_OP_NativeInteger, + asn_DEF_NativeInteger_tags, + sizeof(asn_DEF_NativeInteger_tags) / sizeof(asn_DEF_NativeInteger_tags[0]), + asn_DEF_NativeInteger_tags, /* Same as above */ + sizeof(asn_DEF_NativeInteger_tags) / sizeof(asn_DEF_NativeInteger_tags[0]), + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + asn_generic_no_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +void +NativeInteger_free(const asn_TYPE_descriptor_t *td, void *ptr, + enum asn_struct_free_method method) { + if(!td || !ptr) + return; + + ASN_DEBUG("Freeing %s as INTEGER (%d, %p, Native)", + td->name, method, ptr); + + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(ptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset(ptr, 0, sizeof(long)); + break; + } +} + +int +NativeInteger_compare(const asn_TYPE_descriptor_t *td, const void *aptr, const void *bptr) { + (void)td; + + if(aptr && bptr) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + if(specs && specs->field_unsigned) { + const unsigned long *a = aptr; + const unsigned long *b = bptr; + if(*a < *b) { + return -1; + } else if(*a > *b) { + return 1; + } else { + return 0; + } + } else { + const long *a = aptr; + const long *b = bptr; + if(*a < *b) { + return -1; + } else if(*a > *b) { + return 1; + } else { + return 0; + } + } + } else if(!aptr) { + return -1; + } else { + return 1; + } +} diff --git a/e2sim/asn1c/NativeInteger.h b/e2sim/asn1c/NativeInteger.h new file mode 100644 index 0000000..3a47c11 --- /dev/null +++ b/e2sim/asn1c/NativeInteger.h @@ -0,0 +1,71 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * This type differs from the standard INTEGER in that it is modelled using + * the fixed machine type (long, int, short), so it can hold only values of + * limited length. There is no type (i.e., NativeInteger_t, any integer type + * will do). + * This type may be used when integer range is limited by subtype constraints. + */ +#ifndef _NativeInteger_H_ +#define _NativeInteger_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern asn_TYPE_descriptor_t asn_DEF_NativeInteger; +extern asn_TYPE_operation_t asn_OP_NativeInteger; + +asn_struct_free_f NativeInteger_free; + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +asn_struct_print_f NativeInteger_print; +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +asn_struct_compare_f NativeInteger_compare; + +#define NativeInteger_constraint asn_generic_no_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +ber_type_decoder_f NativeInteger_decode_ber; +der_type_encoder_f NativeInteger_encode_der; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +xer_type_decoder_f NativeInteger_decode_xer; +xer_type_encoder_f NativeInteger_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_encoder_f NativeInteger_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +oer_type_decoder_f NativeInteger_decode_oer; +oer_type_encoder_f NativeInteger_encode_oer; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f NativeInteger_decode_uper; +per_type_encoder_f NativeInteger_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +per_type_decoder_f NativeInteger_decode_aper; +per_type_encoder_f NativeInteger_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +asn_random_fill_f NativeInteger_random_fill; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +#ifdef __cplusplus +} +#endif + +#endif /* _NativeInteger_H_ */ diff --git a/e2sim/asn1c/NativeInteger_aper.c b/e2sim/asn1c/NativeInteger_aper.c new file mode 100644 index 0000000..1d13070 --- /dev/null +++ b/e2sim/asn1c/NativeInteger_aper.c @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +NativeInteger_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + + const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; + asn_dec_rval_t rval; + long *native = (long *)*sptr; + INTEGER_t tmpint; + void *tmpintptr = &tmpint; + + (void)opt_codec_ctx; + ASN_DEBUG("Decoding NativeInteger %s (APER)", td->name); + + if(!native) { + native = (long *)(*sptr = CALLOC(1, sizeof(*native))); + if(!native) ASN__DECODE_FAILED; + } + + memset(&tmpint, 0, sizeof tmpint); + rval = INTEGER_decode_aper(opt_codec_ctx, td, constraints, + &tmpintptr, pd); + if(rval.code == RC_OK) { + if((specs&&specs->field_unsigned) + ? asn_INTEGER2ulong(&tmpint, (unsigned long *)native) + : asn_INTEGER2long(&tmpint, native)) + rval.code = RC_FAIL; + else + ASN_DEBUG("NativeInteger %s got value %ld", + td->name, *native); + } + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); + + return rval; +} + +asn_enc_rval_t +NativeInteger_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + + const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + long native; + INTEGER_t tmpint; + + if(!sptr) ASN__ENCODE_FAILED; + + native = *(const long *)sptr; + + ASN_DEBUG("Encoding NativeInteger %s %ld (APER)", td->name, native); + + memset(&tmpint, 0, sizeof(tmpint)); + if((specs&&specs->field_unsigned) + ? asn_ulong2INTEGER(&tmpint, (unsigned long)native) + : asn_long2INTEGER(&tmpint, native)) + ASN__ENCODE_FAILED; + er = INTEGER_encode_aper(td, constraints, &tmpint, po); + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); + return er; +} diff --git a/e2sim/asn1c/NativeInteger_ber.c b/e2sim/asn1c/NativeInteger_ber.c new file mode 100644 index 0000000..ed68362 --- /dev/null +++ b/e2sim/asn1c/NativeInteger_ber.c @@ -0,0 +1,130 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * Decode INTEGER type. + */ +asn_dec_rval_t +NativeInteger_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **nint_ptr, + const void *buf_ptr, size_t size, int tag_mode) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + long *native = (long *)*nint_ptr; + asn_dec_rval_t rval; + ber_tlv_len_t length; + + /* + * If the structure is not there, allocate it. + */ + if(native == NULL) { + native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); + if(native == NULL) { + rval.code = RC_FAIL; + rval.consumed = 0; + return rval; + } + } + + ASN_DEBUG("Decoding %s as INTEGER (tm=%d)", + td->name, tag_mode); + + /* + * Check tags. + */ + rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size, + tag_mode, 0, &length, 0); + if(rval.code != RC_OK) + return rval; + + ASN_DEBUG("%s length is %d bytes", td->name, (int)length); + + /* + * Make sure we have this length. + */ + buf_ptr = ((const char *)buf_ptr) + rval.consumed; + size -= rval.consumed; + if(length > (ber_tlv_len_t)size) { + rval.code = RC_WMORE; + rval.consumed = 0; + return rval; + } + + /* + * ASN.1 encoded INTEGER: buf_ptr, length + * Fill the native, at the same time checking for overflow. + * If overflow occurred, return with RC_FAIL. + */ + { + INTEGER_t tmp; + union { + const void *constbuf; + void *nonconstbuf; + } unconst_buf; + long l; + + unconst_buf.constbuf = buf_ptr; + tmp.buf = (uint8_t *)unconst_buf.nonconstbuf; + tmp.size = length; + + if((specs&&specs->field_unsigned) + ? asn_INTEGER2ulong(&tmp, (unsigned long *)&l) /* sic */ + : asn_INTEGER2long(&tmp, &l)) { + rval.code = RC_FAIL; + rval.consumed = 0; + return rval; + } + + *native = l; + } + + rval.code = RC_OK; + rval.consumed += length; + + ASN_DEBUG("Took %ld/%ld bytes to encode %s (%ld)", + (long)rval.consumed, (long)length, td->name, (long)*native); + + return rval; +} + +/* + * Encode the NativeInteger using the standard INTEGER type DER encoder. + */ +asn_enc_rval_t +NativeInteger_encode_der(const asn_TYPE_descriptor_t *sd, const void *ptr, + int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + unsigned long native = *(const unsigned long *)ptr; /* Disable sign ext. */ + asn_enc_rval_t erval = {0,0,0}; + INTEGER_t tmp; + +#ifdef WORDS_BIGENDIAN /* Opportunistic optimization */ + + tmp.buf = (uint8_t *)&native; + tmp.size = sizeof(native); + +#else /* Works even if WORDS_BIGENDIAN is not set where should've been */ + uint8_t buf[sizeof(native)]; + uint8_t *p; + + /* Prepare a fake INTEGER */ + for(p = buf + sizeof(buf) - 1; p >= buf; p--, native >>= 8) + *p = (uint8_t)native; + + tmp.buf = buf; + tmp.size = sizeof(buf); +#endif /* WORDS_BIGENDIAN */ + + /* Encode fake INTEGER */ + erval = INTEGER_encode_der(sd, &tmp, tag_mode, tag, cb, app_key); + if(erval.structure_ptr == &tmp) { + erval.structure_ptr = ptr; + } + return erval; +} diff --git a/e2sim/asn1c/NativeInteger_jer.c b/e2sim/asn1c/NativeInteger_jer.c new file mode 100644 index 0000000..f48f8ec --- /dev/null +++ b/e2sim/asn1c/NativeInteger_jer.c @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_enc_rval_t +NativeInteger_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum jer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + char scratch[32]; /* Enough for 64-bit int */ + asn_enc_rval_t er = {0,0,0}; + const long *native = (const long *)sptr; + + (void)ilevel; + (void)flags; + + if(!native) ASN__ENCODE_FAILED; + + er.encoded = snprintf(scratch, sizeof(scratch), + (specs && specs->field_unsigned) + ? "%lu" : "%ld", *native); + if(er.encoded <= 0 || (size_t)er.encoded >= sizeof(scratch) + || cb(scratch, er.encoded, app_key) < 0) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/e2sim/asn1c/NativeInteger_print.c b/e2sim/asn1c/NativeInteger_print.c new file mode 100644 index 0000000..0602e0d --- /dev/null +++ b/e2sim/asn1c/NativeInteger_print.c @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * INTEGER specific human-readable output. + */ +int +NativeInteger_print(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + const long *native = (const long *)sptr; + char scratch[32]; /* Enough for 64-bit int */ + int ret; + + (void)td; /* Unused argument */ + (void)ilevel; /* Unused argument */ + + if(native) { + long value = *native; + ret = snprintf(scratch, sizeof(scratch), + (specs && specs->field_unsigned) ? "%lu" : "%ld", value); + assert(ret > 0 && (size_t)ret < sizeof(scratch)); + if(cb(scratch, ret, app_key) < 0) return -1; + if(specs && (value >= 0 || !specs->field_unsigned)) { + const asn_INTEGER_enum_map_t *el = + INTEGER_map_value2enum(specs, value); + if(el) { + if(cb(" (", 2, app_key) < 0) return -1; + if(cb(el->enum_name, el->enum_len, app_key) < 0) return -1; + if(cb(")", 1, app_key) < 0) return -1; + } + } + return 0; + } else { + return (cb("", 8, app_key) < 0) ? -1 : 0; + } +} diff --git a/e2sim/asn1c/NativeInteger_rfill.c b/e2sim/asn1c/NativeInteger_rfill.c new file mode 100644 index 0000000..0e2cee8 --- /dev/null +++ b/e2sim/asn1c/NativeInteger_rfill.c @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_random_fill_result_t +NativeInteger_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + long *st = *sptr; + const asn_INTEGER_enum_map_t *emap; + size_t emap_len; + intmax_t value; + int find_inside_map; + + if(max_length == 0) return result_skipped; + + if(st == NULL) { + st = (long *)CALLOC(1, sizeof(*st)); + if(st == NULL) { + return result_failed; + } + } + + if(specs) { + emap = specs->value2enum; + emap_len = specs->map_count; + if(specs->strict_enumeration) { + find_inside_map = emap_len > 0; + } else { + find_inside_map = emap_len ? asn_random_between(0, 1) : 0; + } + } else { + emap = 0; + emap_len = 0; + find_inside_map = 0; + } + + if(find_inside_map) { + assert(emap_len > 0); + value = emap[asn_random_between(0, emap_len - 1)].nat_value; + } else { + static const long variants[] = { + -65536, -65535, -65534, -32769, -32768, -32767, -16385, -16384, + -16383, -257, -256, -255, -254, -129, -128, -127, + -126, -1, 0, 1, 126, 127, 128, 129, + 254, 255, 256, 257, 16383, 16384, 16385, 32767, + 32768, 32769, 65534, 65535, 65536, 65537}; + if(specs && specs->field_unsigned) { + assert(variants[18] == 0); + value = variants[asn_random_between( + 18, sizeof(variants) / sizeof(variants[0]) - 1)]; + } else { + value = variants[asn_random_between( + 0, sizeof(variants) / sizeof(variants[0]) - 1)]; + } + + if(!constraints) constraints = &td->encoding_constraints; +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + const asn_per_constraints_t *ct; + + ct = constraints ? constraints->per_constraints : 0; + if(ct && (ct->value.flags & APC_CONSTRAINED)) { + if(value < ct->value.lower_bound || value > ct->value.upper_bound) { + value = asn_random_between(ct->value.lower_bound, + ct->value.upper_bound); + } + } +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + } + + *sptr = st; + *st = value; + return result_ok; +} diff --git a/e2sim/asn1c/NativeInteger_uper.c b/e2sim/asn1c/NativeInteger_uper.c new file mode 100644 index 0000000..4fc4ba1 --- /dev/null +++ b/e2sim/asn1c/NativeInteger_uper.c @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +NativeInteger_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_dec_rval_t rval; + long *native = (long *)*sptr; + INTEGER_t tmpint; + void *tmpintptr = &tmpint; + + (void)opt_codec_ctx; + ASN_DEBUG("Decoding NativeInteger %s (UPER)", td->name); + + if(!native) { + native = (long *)(*sptr = CALLOC(1, sizeof(*native))); + if(!native) ASN__DECODE_FAILED; + } + + memset(&tmpint, 0, sizeof tmpint); + rval = INTEGER_decode_uper(opt_codec_ctx, td, constraints, + &tmpintptr, pd); + if(rval.code == RC_OK) { + if((specs&&specs->field_unsigned) + ? asn_INTEGER2ulong(&tmpint, (unsigned long *)native) + : asn_INTEGER2long(&tmpint, native)) + rval.code = RC_FAIL; + else + ASN_DEBUG("NativeInteger %s got value %ld", + td->name, *native); + } + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); + + return rval; +} + +asn_enc_rval_t +NativeInteger_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + long native; + INTEGER_t tmpint; + + if(!sptr) ASN__ENCODE_FAILED; + + native = *(const long *)sptr; + + ASN_DEBUG("Encoding NativeInteger %s %ld (UPER)", td->name, native); + + memset(&tmpint, 0, sizeof(tmpint)); + if((specs&&specs->field_unsigned) + ? asn_ulong2INTEGER(&tmpint, native) + : asn_long2INTEGER(&tmpint, native)) + ASN__ENCODE_FAILED; + er = INTEGER_encode_uper(td, constraints, &tmpint, po); + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); + return er; +} diff --git a/e2sim/asn1c/NativeInteger_xer.c b/e2sim/asn1c/NativeInteger_xer.c new file mode 100644 index 0000000..18ec59a --- /dev/null +++ b/e2sim/asn1c/NativeInteger_xer.c @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * Decode the chunk of XML text encoding INTEGER. + */ +asn_dec_rval_t +NativeInteger_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, + size_t size) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_dec_rval_t rval; + INTEGER_t st; + void *st_ptr = (void *)&st; + long *native = (long *)*sptr; + + if(!native) { + native = (long *)(*sptr = CALLOC(1, sizeof(*native))); + if(!native) ASN__DECODE_FAILED; + } + + memset(&st, 0, sizeof(st)); + rval = INTEGER_decode_xer(opt_codec_ctx, td, &st_ptr, + opt_mname, buf_ptr, size); + if(rval.code == RC_OK) { + long l; + if((specs&&specs->field_unsigned) + ? asn_INTEGER2ulong(&st, (unsigned long *)&l) /* sic */ + : asn_INTEGER2long(&st, &l)) { + rval.code = RC_FAIL; + rval.consumed = 0; + } else { + *native = l; + } + } else { + /* + * Cannot restart from the middle; + * there is no place to save state in the native type. + * Request a continuation from the very beginning. + */ + rval.consumed = 0; + } + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &st); + return rval; +} + + +asn_enc_rval_t +NativeInteger_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + char scratch[32]; /* Enough for 64-bit int */ + asn_enc_rval_t er = {0,0,0}; + const long *native = (const long *)sptr; + + (void)ilevel; + (void)flags; + + if(!native) ASN__ENCODE_FAILED; + + er.encoded = snprintf(scratch, sizeof(scratch), + (specs && specs->field_unsigned) + ? "%lu" : "%ld", *native); + if(er.encoded <= 0 || (size_t)er.encoded >= sizeof(scratch) + || cb(scratch, er.encoded, app_key) < 0) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/e2sim/asn1c/NativeReal.c b/e2sim/asn1c/NativeReal.c new file mode 100644 index 0000000..f6c37e1 --- /dev/null +++ b/e2sim/asn1c/NativeReal.c @@ -0,0 +1,218 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * Read the NativeReal.h for the explanation wrt. differences between + * REAL and NativeReal. + * Basically, both are decoders and encoders of ASN.1 REAL type, but this + * implementation deals with the standard (machine-specific) representation + * of them instead of using the platform-independent buffer. + */ +#include +#include +#include +#include + +#if defined(__clang__) +/* + * isnan() is defined using generic selections and won't compile in + * strict C89 mode because of too fancy system's standard library. + * However, prior to C11 the math had a perfectly working isnan() + * in the math library. + * Disable generic selection warning so we can test C89 mode with newer libc. + */ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc11-extensions" +static int asn_isnan(double d) { + return isnan(d); +} +#pragma clang diagnostic pop +#else +#define asn_isnan(v) isnan(v) +#endif /* generic selections */ + +/* + * NativeReal basic type description. + */ +static const ber_tlv_tag_t asn_DEF_NativeReal_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (9 << 2)) +}; +asn_TYPE_operation_t asn_OP_NativeReal = { + NativeReal_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + NativeReal_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + NativeReal_compare, +#if !defined(ASN_DISABLE_BER_SUPPORT) + NativeReal_decode_ber, + NativeReal_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + NativeReal_decode_xer, + NativeReal_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + NativeReal_encode_jer, +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + NativeReal_decode_oer, + NativeReal_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + NativeReal_decode_uper, + NativeReal_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + NativeReal_decode_aper, + NativeReal_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + NativeReal_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_NativeReal = { + "REAL", /* The ASN.1 type is still REAL */ + "REAL", + &asn_OP_NativeReal, + asn_DEF_NativeReal_tags, + sizeof(asn_DEF_NativeReal_tags) / sizeof(asn_DEF_NativeReal_tags[0]), + asn_DEF_NativeReal_tags, /* Same as above */ + sizeof(asn_DEF_NativeReal_tags) / sizeof(asn_DEF_NativeReal_tags[0]), + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + asn_generic_no_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +int +NativeReal_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + + if(aptr && bptr) { + double a = NativeReal__get_double(td, aptr); + double b = NativeReal__get_double(td, bptr); + + /* NaN sorted above everything else */ + if(asn_isnan(a)) { + if(asn_isnan(b)) { + return 0; + } else { + return -1; + } + } else if(asn_isnan(b)) { + return 1; + } + /* Value comparison. */ + if(a < b) { + return -1; + } else if(a > b) { + return 1; + } else { + return 0; + } + } else if(!aptr) { + return -1; + } else { + return 1; + } +} + +void +NativeReal_free(const asn_TYPE_descriptor_t *td, void *ptr, + enum asn_struct_free_method method) { + if(!td || !ptr) + return; + + ASN_DEBUG("Freeing %s as REAL (%d, %p, Native)", + td->name, method, ptr); + + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(ptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: { + const asn_NativeReal_specifics_t *specs; + size_t float_size; + specs = (const asn_NativeReal_specifics_t *)td->specifics; + float_size = specs ? specs->float_size : sizeof(double); + memset(ptr, 0, float_size); + } break; + } +} + +/* + * Local helper functions. + */ + +size_t +NativeReal__float_size(const asn_TYPE_descriptor_t *td) { + const asn_NativeReal_specifics_t *specs = + (const asn_NativeReal_specifics_t *)td->specifics; + return specs ? specs->float_size : sizeof(double); +} + +double +NativeReal__get_double(const asn_TYPE_descriptor_t *td, const void *ptr) { + size_t float_size = NativeReal__float_size(td); + if(float_size == sizeof(float)) { + return *(const float *)ptr; + } else { + return *(const double *)ptr; + } +} + +ssize_t /* Returns -1 or float size. */ +NativeReal__set(const asn_TYPE_descriptor_t *td, void **sptr, double d) { + size_t float_size = NativeReal__float_size(td); + void *native; + + if(!(native = *sptr)) { + native = (*sptr = CALLOC(1, float_size)); + if(!native) { + return -1; + } + } + + if(float_size == sizeof(float)) { + if(asn_double2float(d, (float *)native)) { + return -1; + } + } else { + *(double *)native = d; + } + + return float_size; +} + diff --git a/e2sim/asn1c/NativeReal.h b/e2sim/asn1c/NativeReal.h new file mode 100644 index 0000000..513876e --- /dev/null +++ b/e2sim/asn1c/NativeReal.h @@ -0,0 +1,79 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * This type differs from the standard REAL in that it is modelled using + * the fixed machine type (double), so it can hold only values of + * limited precision. There is no explicit type (i.e., NativeReal_t). + * Use of this type is normally enabled by -fnative-types. + */ +#ifndef ASN_TYPE_NativeReal_H +#define ASN_TYPE_NativeReal_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct asn_NativeReal_specifics_s { + unsigned float_size; /* sizeof(float) or sizeof(double) */ +} asn_NativeReal_specifics_t; + +extern asn_TYPE_descriptor_t asn_DEF_NativeReal; +extern asn_TYPE_operation_t asn_OP_NativeReal; + +size_t NativeReal__float_size(const asn_TYPE_descriptor_t *td); +double NativeReal__get_double(const asn_TYPE_descriptor_t *td, + const void *ptr); +ssize_t NativeReal__set(const asn_TYPE_descriptor_t *td, void **sptr, + double d); + +asn_struct_free_f NativeReal_free; + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +asn_struct_print_f NativeReal_print; +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +asn_struct_compare_f NativeReal_compare; + +#define NativeReal_constraint asn_generic_no_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +ber_type_decoder_f NativeReal_decode_ber; +der_type_encoder_f NativeReal_encode_der; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +xer_type_decoder_f NativeReal_decode_xer; +xer_type_encoder_f NativeReal_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_encoder_f NativeReal_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +oer_type_decoder_f NativeReal_decode_oer; +oer_type_encoder_f NativeReal_encode_oer; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f NativeReal_decode_uper; +per_type_encoder_f NativeReal_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +per_type_decoder_f NativeReal_decode_aper; +per_type_encoder_f NativeReal_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +asn_random_fill_f NativeReal_random_fill; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_TYPE_NativeReal_H */ diff --git a/e2sim/asn1c/NativeReal_aper.c b/e2sim/asn1c/NativeReal_aper.c new file mode 100644 index 0000000..27f0f1d --- /dev/null +++ b/e2sim/asn1c/NativeReal_aper.c @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +asn_dec_rval_t +NativeReal_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **dbl_ptr, asn_per_data_t *pd) { + double *Dbl = (double *)*dbl_ptr; + asn_dec_rval_t rval; + REAL_t tmp; + void *ptmp = &tmp; + int ret; + + (void)constraints; + + /* + * If the structure is not there, allocate it. + */ + if(Dbl == NULL) { + *dbl_ptr = CALLOC(1, sizeof(*Dbl)); + Dbl = (double *)*dbl_ptr; + if(Dbl == NULL) + ASN__DECODE_FAILED; + } + + memset(&tmp, 0, sizeof(tmp)); + rval = OCTET_STRING_decode_aper(opt_codec_ctx, td, NULL, + &ptmp, pd); + if(rval.code != RC_OK) { + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_REAL, &tmp); + return rval; + } + + ret = asn_REAL2double(&tmp, Dbl); + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_REAL, &tmp); + if(ret) ASN__DECODE_FAILED; + + return rval; +} + +asn_enc_rval_t +NativeReal_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + double Dbl = *(const double *)sptr; + asn_enc_rval_t erval = {0,0,0}; + REAL_t tmp; + + (void)constraints; + + /* Prepare a temporary clean structure */ + memset(&tmp, 0, sizeof(tmp)); + + if(asn_double2REAL(&tmp, Dbl)) + ASN__ENCODE_FAILED; + + /* Encode a DER REAL */ + erval = OCTET_STRING_encode_aper(td, NULL, &tmp, po); + if(erval.encoded == -1) + erval.structure_ptr = sptr; + + /* Free possibly allocated members of the temporary structure */ + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_REAL, &tmp); + + return erval; +} diff --git a/e2sim/asn1c/NativeReal_ber.c b/e2sim/asn1c/NativeReal_ber.c new file mode 100644 index 0000000..923c3df --- /dev/null +++ b/e2sim/asn1c/NativeReal_ber.c @@ -0,0 +1,120 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * Decode REAL type. + */ +asn_dec_rval_t +NativeReal_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const void *buf_ptr, size_t size, int tag_mode) { + asn_dec_rval_t rval; + ber_tlv_len_t length; + + ASN_DEBUG("Decoding %s as REAL (tm=%d)", td->name, tag_mode); + + /* + * Check tags. + */ + rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size, tag_mode, 0, + &length, 0); + if(rval.code != RC_OK) return rval; + assert(length >= 0); /* Ensured by ber_check_tags */ + + ASN_DEBUG("%s length is %d bytes", td->name, (int)length); + + /* + * Make sure we have this length. + */ + buf_ptr = ((const char *)buf_ptr) + rval.consumed; + size -= rval.consumed; + if(length > (ber_tlv_len_t)size) { + rval.code = RC_WMORE; + rval.consumed = 0; + return rval; + } + + /* + * ASN.1 encoded REAL: buf_ptr, length + * Fill the Dbl, at the same time checking for overflow. + * If overflow occurred, return with RC_FAIL. + */ + { + uint8_t scratch[24]; /* Longer than %.16f in decimal */ + REAL_t tmp; + double d; + int ret; + + if((size_t)length < sizeof(scratch)) { + tmp.buf = scratch; + tmp.size = length; + } else { + /* This rarely happens: impractically long value */ + tmp.buf = CALLOC(1, length + 1); + tmp.size = length; + if(!tmp.buf) { + rval.code = RC_FAIL; + rval.consumed = 0; + return rval; + } + } + + memcpy(tmp.buf, buf_ptr, length); + tmp.buf[length] = '\0'; + + ret = asn_REAL2double(&tmp, &d); + if(tmp.buf != scratch) FREEMEM(tmp.buf); + if(ret) { + rval.code = RC_FAIL; + rval.consumed = 0; + return rval; + } + + if(NativeReal__set(td, sptr, d) < 0) + ASN__DECODE_FAILED; + } + + rval.code = RC_OK; + rval.consumed += length; + + ASN_DEBUG("Took %ld/%ld bytes to encode %s", (long)rval.consumed, + (long)length, td->name); + + return rval; +} + +/* + * Encode the NativeReal using the standard REAL type DER encoder. + */ +asn_enc_rval_t +NativeReal_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, + int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + double d = NativeReal__get_double(td, sptr); + asn_enc_rval_t erval = {0,0,0}; + REAL_t tmp; + + /* Prepare a temporary clean structure */ + memset(&tmp, 0, sizeof(tmp)); + + if(asn_double2REAL(&tmp, d)) + ASN__ENCODE_FAILED; + + /* Encode a fake REAL */ + erval = der_encode_primitive(td, &tmp, tag_mode, tag, cb, app_key); + if(erval.encoded == -1) { + assert(erval.structure_ptr == &tmp); + erval.structure_ptr = sptr; + } + + /* Free possibly allocated members of the temporary structure */ + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_REAL, &tmp); + + return erval; +} diff --git a/e2sim/asn1c/NativeReal_jer.c b/e2sim/asn1c/NativeReal_jer.c new file mode 100644 index 0000000..9c62208 --- /dev/null +++ b/e2sim/asn1c/NativeReal_jer.c @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_enc_rval_t + NativeReal_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum jer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + double d = NativeReal__get_double(td, sptr); + asn_enc_rval_t er = {0,0,0}; + + (void)ilevel; + + er.encoded = REAL__dump(d, flags, cb, app_key); + if(er.encoded < 0) ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/e2sim/asn1c/NativeReal_print.c b/e2sim/asn1c/NativeReal_print.c new file mode 100644 index 0000000..1914696 --- /dev/null +++ b/e2sim/asn1c/NativeReal_print.c @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * REAL specific human-readable output. + */ +int +NativeReal_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + (void)ilevel; /* Unused argument */ + + if(sptr) { + double d = NativeReal__get_double(td, sptr); + return (REAL__dump(d, 0, cb, app_key) < 0) ? -1 : 0; + } else { + return (cb("", 8, app_key) < 0) ? -1 : 0; + } +} diff --git a/e2sim/asn1c/NativeReal_rfill.c b/e2sim/asn1c/NativeReal_rfill.c new file mode 100644 index 0000000..04153ea --- /dev/null +++ b/e2sim/asn1c/NativeReal_rfill.c @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +asn_random_fill_result_t +NativeReal_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + asn_random_fill_result_t result_ok = {ARFILL_OK, 0}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; +#ifndef INFINITY +#define INFINITY (1.0/0.0) +#endif +#ifndef NAN +#define NAN (0.0/0.0) +#endif + static const double double_values[] = { + -M_E, M_E, -M_PI, M_PI, /* Better precision than with floats */ + -1E+308, 1E+308, + /* 2^51 */ + -2251799813685248.0, 2251799813685248.0, + /* 2^52 */ + -4503599627370496.0, 4503599627370496.0, + /* 2^100 */ + -1267650600228229401496703205376.0, 1267650600228229401496703205376.0, + -DBL_MIN, DBL_MIN, + -DBL_MAX, DBL_MAX, +#ifdef DBL_TRUE_MIN + -DBL_TRUE_MIN, DBL_TRUE_MIN +#endif + }; + static const float float_values[] = { + 0, -0.0, -1, 1, -M_E, M_E, -3.14, 3.14, -M_PI, M_PI, -255, 255, + -FLT_MIN, FLT_MIN, + -FLT_MAX, FLT_MAX, +#ifdef FLT_TRUE_MIN + -FLT_TRUE_MIN, FLT_TRUE_MIN, +#endif + INFINITY, -INFINITY, NAN + }; + ssize_t float_set_size = NativeReal__float_size(td); + const size_t n_doubles = sizeof(double_values) / sizeof(double_values[0]); + const size_t n_floats = sizeof(float_values) / sizeof(float_values[0]); + double d; + + (void)constraints; + + if(max_length == 0) return result_skipped; + + if(float_set_size == sizeof(double) && asn_random_between(0, 1) == 0) { + d = double_values[asn_random_between(0, n_doubles - 1)]; + } else { + d = float_values[asn_random_between(0, n_floats - 1)]; + } + + if(NativeReal__set(td, sptr, d) < 0) { + return result_failed; + } + + result_ok.length = float_set_size; + return result_ok; +} diff --git a/e2sim/asn1c/NativeReal_uper.c b/e2sim/asn1c/NativeReal_uper.c new file mode 100644 index 0000000..78fc242 --- /dev/null +++ b/e2sim/asn1c/NativeReal_uper.c @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +/* + * Decode REAL type using PER. + */ +asn_dec_rval_t +NativeReal_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + asn_dec_rval_t rval; + double d; + REAL_t tmp; + void *ptmp = &tmp; + int ret; + + (void)constraints; + + memset(&tmp, 0, sizeof(tmp)); + rval = OCTET_STRING_decode_uper(opt_codec_ctx, &asn_DEF_REAL, + NULL, &ptmp, pd); + if(rval.code != RC_OK) { + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_REAL, &tmp); + return rval; + } + + ret = asn_REAL2double(&tmp, &d); + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_REAL, &tmp); + if(ret) ASN__DECODE_FAILED; + + if(NativeReal__set(td, sptr, d) < 0 ) + ASN__DECODE_FAILED; + + return rval; +} + +/* + * Encode the NativeReal using the OCTET STRING PER encoder. + */ +asn_enc_rval_t +NativeReal_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + double d = NativeReal__get_double(td, sptr); + asn_enc_rval_t erval = {0,0,0}; + REAL_t tmp; + + (void)constraints; + + /* Prepare a temporary clean structure */ + memset(&tmp, 0, sizeof(tmp)); + + if(asn_double2REAL(&tmp, d)) + ASN__ENCODE_FAILED; + + /* Encode a DER REAL */ + erval = OCTET_STRING_encode_uper(&asn_DEF_REAL, NULL, &tmp, po); + if(erval.encoded == -1) + erval.structure_ptr = sptr; + + /* Free possibly allocated members of the temporary structure */ + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_REAL, &tmp); + + return erval; +} diff --git a/e2sim/asn1c/NativeReal_xer.c b/e2sim/asn1c/NativeReal_xer.c new file mode 100644 index 0000000..21cbe66 --- /dev/null +++ b/e2sim/asn1c/NativeReal_xer.c @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * Decode the chunk of XML text encoding REAL. + */ +asn_dec_rval_t +NativeReal_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, size_t size) { + asn_dec_rval_t rval; + REAL_t st = { 0, 0 }; + REAL_t *stp = &st; + + rval = REAL_decode_xer(opt_codec_ctx, td, (void **)&stp, opt_mname, + buf_ptr, size); + if(rval.code == RC_OK) { + double d; + if(asn_REAL2double(&st, &d) || NativeReal__set(td, sptr, d) < 0) { + rval.code = RC_FAIL; + rval.consumed = 0; + } + } else { + /* Convert all errors into RC_FAIL */ + rval.consumed = 0; + } + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_REAL, &st); + return rval; +} + +asn_enc_rval_t +NativeReal_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + double d = NativeReal__get_double(td, sptr); + asn_enc_rval_t er = {0,0,0}; + + (void)ilevel; + + er.encoded = REAL__dump(d, flags & XER_F_CANONICAL, cb, app_key); + if(er.encoded < 0) ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/e2sim/asn1c/NgENB-ID.c b/e2sim/asn1c/NgENB-ID.c new file mode 100644 index 0000000..9b07ba7 --- /dev/null +++ b/e2sim/asn1c/NgENB-ID.c @@ -0,0 +1,220 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "NgENB-ID.h" + +static int +memb_macroNgENB_ID_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 == 20UL)) { + /* 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_shortMacroNgENB_ID_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 == 18UL)) { + /* 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_longMacroNgENB_ID_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 == 21UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_macroNgENB_ID_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_shortMacroNgENB_ID_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 18, 18 } /* (SIZE(18..18)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_longMacroNgENB_ID_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 21, 21 } /* (SIZE(21..21)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_NgENB_ID_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_NgENB_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NgENB_ID, choice.macroNgENB_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_macroNgENB_ID_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_macroNgENB_ID_constraint_1 + }, + 0, 0, /* No default value */ + "macroNgENB-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct NgENB_ID, choice.shortMacroNgENB_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_shortMacroNgENB_ID_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_shortMacroNgENB_ID_constraint_1 + }, + 0, 0, /* No default value */ + "shortMacroNgENB-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct NgENB_ID, choice.longMacroNgENB_ID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_longMacroNgENB_ID_constr_4, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_longMacroNgENB_ID_constraint_1 + }, + 0, 0, /* No default value */ + "longMacroNgENB-ID" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_NgENB_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* macroNgENB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* shortMacroNgENB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* longMacroNgENB-ID */ +}; +asn_CHOICE_specifics_t asn_SPC_NgENB_ID_specs_1 = { + sizeof(struct NgENB_ID), + offsetof(struct NgENB_ID, _asn_ctx), + offsetof(struct NgENB_ID, present), + sizeof(((struct NgENB_ID *)0)->present), + asn_MAP_NgENB_ID_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + 3 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_NgENB_ID = { + "NgENB-ID", + "NgENB-ID", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_NgENB_ID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_NgENB_ID_1, + 3, /* Elements count */ + &asn_SPC_NgENB_ID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/NgENB-ID.h b/e2sim/asn1c/NgENB-ID.h new file mode 100644 index 0000000..8a4987c --- /dev/null +++ b/e2sim/asn1c/NgENB-ID.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _NgENB_ID_H_ +#define _NgENB_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NgENB_ID_PR { + NgENB_ID_PR_NOTHING, /* No components present */ + NgENB_ID_PR_macroNgENB_ID, + NgENB_ID_PR_shortMacroNgENB_ID, + NgENB_ID_PR_longMacroNgENB_ID + /* Extensions may appear below */ + +} NgENB_ID_PR; + +/* NgENB-ID */ +typedef struct NgENB_ID { + NgENB_ID_PR present; + union NgENB_ID_u { + BIT_STRING_t macroNgENB_ID; + BIT_STRING_t shortMacroNgENB_ID; + BIT_STRING_t longMacroNgENB_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NgENB_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NgENB_ID; +extern asn_CHOICE_specifics_t asn_SPC_NgENB_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_NgENB_ID_1[3]; +extern asn_per_constraints_t asn_PER_type_NgENB_ID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NgENB_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/OBJECT_IDENTIFIER.c b/e2sim/asn1c/OBJECT_IDENTIFIER.c new file mode 100644 index 0000000..5cf2d60 --- /dev/null +++ b/e2sim/asn1c/OBJECT_IDENTIFIER.c @@ -0,0 +1,532 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include +#include /* for CHAR_BIT */ +#include +#include + +/* + * OBJECT IDENTIFIER basic type description. + */ +static const ber_tlv_tag_t asn_DEF_OBJECT_IDENTIFIER_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (6 << 2)) +}; +asn_TYPE_operation_t asn_OP_OBJECT_IDENTIFIER = { + ASN__PRIMITIVE_TYPE_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + OBJECT_IDENTIFIER_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + OCTET_STRING_compare, /* Implemented in terms of a string comparison */ +#if !defined(ASN_DISABLE_BER_SUPPORT) + ber_decode_primitive, + der_encode_primitive, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + OBJECT_IDENTIFIER_decode_xer, + OBJECT_IDENTIFIER_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + OBJECT_IDENTIFIER_encode_jer, +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + OBJECT_IDENTIFIER_decode_oer, + OBJECT_IDENTIFIER_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + OCTET_STRING_decode_uper, + OCTET_STRING_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + OCTET_STRING_decode_aper, + OCTET_STRING_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + OBJECT_IDENTIFIER_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_OBJECT_IDENTIFIER = { + "OBJECT IDENTIFIER", + "OBJECT_IDENTIFIER", + &asn_OP_OBJECT_IDENTIFIER, + asn_DEF_OBJECT_IDENTIFIER_tags, + sizeof(asn_DEF_OBJECT_IDENTIFIER_tags) + / sizeof(asn_DEF_OBJECT_IDENTIFIER_tags[0]), + asn_DEF_OBJECT_IDENTIFIER_tags, /* Same as above */ + sizeof(asn_DEF_OBJECT_IDENTIFIER_tags) + / sizeof(asn_DEF_OBJECT_IDENTIFIER_tags[0]), + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OBJECT_IDENTIFIER_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +int +OBJECT_IDENTIFIER_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, + void *app_key) { + const OBJECT_IDENTIFIER_t *st = (const OBJECT_IDENTIFIER_t *)sptr; + + if(st && st->buf) { + if(st->size < 1) { + ASN__CTFAIL(app_key, td, sptr, + "%s: at least one numerical value " + "expected (%s:%d)", + td->name, __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; +} + +static ssize_t +OBJECT_IDENTIFIER_get_first_arcs(const uint8_t *arcbuf, size_t arcbuf_len, + asn_oid_arc_t *arc0, asn_oid_arc_t *arc1) { + asn_oid_arc_t value; + + ssize_t rd = OBJECT_IDENTIFIER_get_single_arc(arcbuf, arcbuf_len, &value); + if(rd <= 0) return rd; + + if(value >= 80) { + *arc0 = 2; + *arc1 = value - 80; + } else if(value >= 40) { + *arc0 = 1; + *arc1 = value - 40; + } else { + *arc0 = 0; + *arc1 = value; + } + + return rd; +} + +ssize_t +OBJECT_IDENTIFIER_get_single_arc(const uint8_t *arcbuf, size_t arcbuf_len, + asn_oid_arc_t *ret_value) { + const uint8_t *b = arcbuf; + const uint8_t *arcend = arcbuf + arcbuf_len; /* End of arc */ + + if(arcbuf == arcend) { + return 0; + } else { + asn_oid_arc_t accum; + asn_oid_arc_t upper_limit = (ASN_OID_ARC_MAX >> 7); + /* When the value reaches "upper_limit", it can take */ + /* at most one more digit. If it exceeds "upper_limit" */ + /* but there are more digits - it's an Overflow condition */ + /* Gather all bits into the accumulator */ + for(accum = 0; b < arcend; b++) { + accum = (accum << 7) | (*b & ~0x80); + if((*b & 0x80) == 0) { // no more digits + if(accum <= ASN_OID_ARC_MAX) { + *ret_value = accum; + return 1 + (b - arcbuf); + } else { + errno = ERANGE; /* Overflow */ + return -1; + } + } else { // to make sure we aren't wrapping around + if(accum > upper_limit) { + errno = ERANGE; /* Overflow */ + return -1; + } + } + } + errno = EINVAL; + return -1; + } + +} + +ssize_t +OBJECT_IDENTIFIER__dump_body(const OBJECT_IDENTIFIER_t *st, + asn_app_consume_bytes_f *cb, void *app_key) { + char scratch[32]; + asn_oid_arc_t arc0 = 0; + asn_oid_arc_t arc1 = 0; + size_t produced = 0; + size_t off = 0; + ssize_t rd; + int ret; + + rd = OBJECT_IDENTIFIER_get_first_arcs(st->buf, st->size, &arc0, &arc1); + if(rd <= 0) { + return -1; + } + + ret = snprintf(scratch, sizeof(scratch), "%"PRIu32".%"PRIu32, arc0, arc1); + if(ret >= (ssize_t)sizeof(scratch)) { + return -1; + } + produced += ret; + if(cb(scratch, ret, app_key) < 0) + return -1; + + for(off = rd; ; ) { + asn_oid_arc_t arc; + rd = OBJECT_IDENTIFIER_get_single_arc(st->buf + off, st->size - off, + &arc); + if(rd < 0) { + return -1; + } else if(rd == 0) { + /* No more arcs. */ + break; + } else { + off += rd; + assert(off <= st->size); + ret = snprintf(scratch, sizeof(scratch), ".%" PRIu32, arc); + if(ret >= (ssize_t)sizeof(scratch)) { + return -1; + } + produced += ret; + if(cb(scratch, ret, app_key) < 0) return -1; + } + } + + if(off != st->size) { + ASN_DEBUG("Could not scan to the end of Object Identifier"); + return -1; + } + + return produced; +} + +ssize_t +OBJECT_IDENTIFIER_get_arcs(const OBJECT_IDENTIFIER_t *st, asn_oid_arc_t *arcs, + size_t arc_slots) { + asn_oid_arc_t arc0 = 0; + asn_oid_arc_t arc1 = 0; + size_t num_arcs = 0; + size_t off; + ssize_t rd; + + if(!st || !st->buf) { + errno = EINVAL; + return -1; + } + + rd = OBJECT_IDENTIFIER_get_first_arcs(st->buf, st->size, &arc0, &arc1); + if(rd <= 0) { + return -1; + } + num_arcs = 2; + switch(arc_slots) { + default: + case 2: + arcs[1] = arc1; + /* Fall through */ + case 1: + arcs[0] = arc0; + /* Fall through */ + case 0: + break; + } + + for(off = rd; ; ) { + asn_oid_arc_t arc; + rd = OBJECT_IDENTIFIER_get_single_arc(st->buf + off, st->size - off, + &arc); + if(rd < 0) { + return -1; + } else if(rd == 0) { + /* No more arcs. */ + break; + } else { + off += rd; + if(num_arcs < arc_slots) { + arcs[num_arcs] = arc; + } + num_arcs++; + } + } + + if(off != st->size) { + return -1; + } + + return num_arcs; +} + + +/* + * Save the single value as an object identifier arc. + */ +ssize_t +OBJECT_IDENTIFIER_set_single_arc(uint8_t *arcbuf, size_t arcbuf_len, + asn_oid_arc_t value) { + /* + * The following conditions must hold: + * assert(arcbuf); + */ + uint8_t scratch[((sizeof(value) * CHAR_BIT + 6) / 7)]; + uint8_t *scratch_end = &scratch[sizeof(scratch)-1]; + uint8_t *b; + size_t result_len; + uint8_t mask; + + for(b = scratch_end, mask = 0; ; mask = 0x80, b--) { + *b = mask | (value & 0x7f); + value >>= 7; + if(!value) { + break; + } + } + + result_len = (scratch_end - b) + 1; + + if(result_len > arcbuf_len) { + return -1; + } + + memcpy(arcbuf, b, result_len); + + return result_len; +} + +int +OBJECT_IDENTIFIER_set_arcs(OBJECT_IDENTIFIER_t *st, const asn_oid_arc_t *arcs, + size_t arc_slots) { + uint8_t *buf; + uint8_t *bp; + ssize_t wrote; + asn_oid_arc_t arc0; + asn_oid_arc_t arc1; + size_t size; + size_t i; + + if(!st || !arcs || arc_slots < 2) { + errno = EINVAL; + return -1; + } + + arc0 = arcs[0]; + arc1 = arcs[1]; + + if(arc0 <= 1) { + if(arc1 >= 40) { + /* 8.19.4: At most 39 subsequent values (including 0) */ + errno = ERANGE; + return -1; + } + } else if(arc0 == 2) { + if(arc1 > ASN_OID_ARC_MAX - 80) { + errno = ERANGE; + return -1; + } + } else if(arc0 > 2) { + /* 8.19.4: Only three values are allocated from the root node */ + errno = ERANGE; + return -1; + } + + /* + * After above tests it is known that the value of arc0 is completely + * trustworthy (0..2). However, the arc1's value is still meaningless. + */ + + /* + * Roughly estimate the maximum size necessary to encode these arcs. + * This estimation implicitly takes in account the following facts, + * that cancel each other: + * * the first two arcs are encoded in a single value. + * * the first value may require more space (+1 byte) + * * the value of the first arc which is in range (0..2) + */ + size = ((sizeof(asn_oid_arc_t) * CHAR_BIT + 6) / 7) * arc_slots; + bp = buf = (uint8_t *)MALLOC(size + 1); + if(!buf) { + /* ENOMEM */ + return -1; + } + + wrote = OBJECT_IDENTIFIER_set_single_arc(bp, size, arc0 * 40 + arc1); + if(wrote <= 0) { + FREEMEM(buf); + return -1; + } + assert((size_t)wrote <= size); + bp += wrote; + size -= wrote; + + for(i = 2; i < arc_slots; i++) { + wrote = OBJECT_IDENTIFIER_set_single_arc(bp, size, arcs[i]); + if(wrote <= 0) { + FREEMEM(buf); + return -1; + } + assert((size_t)wrote <= size); + bp += wrote; + size -= wrote; + } + + /* + * Replace buffer. + */ + st->size = bp - buf; + bp = st->buf; + st->buf = buf; + st->buf[st->size] = '\0'; + if(bp) FREEMEM(bp); + + return 0; +} + +ssize_t +OBJECT_IDENTIFIER_parse_arcs(const char *oid_text, ssize_t oid_txt_length, + asn_oid_arc_t *arcs, size_t arcs_count, + const char **opt_oid_text_end) { + size_t num_arcs = 0; + const char *oid_end; + enum { + ST_LEADSPACE, + ST_TAILSPACE, + ST_AFTERVALUE, /* Next character ought to be '.' or a space */ + ST_WAITDIGITS /* Next character is expected to be a digit */ + } state = ST_LEADSPACE; + + if(!oid_text || oid_txt_length < -1 || (arcs_count && !arcs)) { + if(opt_oid_text_end) *opt_oid_text_end = oid_text; + errno = EINVAL; + return -1; + } + + if(oid_txt_length == -1) + oid_txt_length = strlen(oid_text); + +#define _OID_CAPTURE_ARC(oid_text, oid_end) \ + do { \ + const char *endp = oid_end; \ + unsigned long value; \ + switch(asn_strtoul_lim(oid_text, &endp, &value)) { \ + case ASN_STRTOX_EXTRA_DATA: \ + case ASN_STRTOX_OK: \ + if(value <= ASN_OID_ARC_MAX) { \ + if(num_arcs < arcs_count) arcs[num_arcs] = value; \ + num_arcs++; \ + oid_text = endp - 1; \ + break; \ + } \ + /* Fall through */ \ + case ASN_STRTOX_ERROR_RANGE: \ + if(opt_oid_text_end) *opt_oid_text_end = oid_text; \ + errno = ERANGE; \ + return -1; \ + case ASN_STRTOX_ERROR_INVAL: \ + case ASN_STRTOX_EXPECT_MORE: \ + if(opt_oid_text_end) *opt_oid_text_end = oid_text; \ + errno = EINVAL; \ + return -1; \ + } \ + } while(0) + + for(oid_end = oid_text + oid_txt_length; oid_text broken OID */ + return -1; + case ST_LEADSPACE: + case ST_WAITDIGITS: + _OID_CAPTURE_ARC(oid_text, oid_end); + state = ST_AFTERVALUE; + continue; + } + break; + default: + /* Unexpected symbols */ + state = ST_WAITDIGITS; + break; + } /* switch() */ + break; + } /* for() */ + + + if(opt_oid_text_end) *opt_oid_text_end = oid_text; + + /* Finalize last arc */ + switch(state) { + case ST_LEADSPACE: + return 0; /* No OID found in input data */ + case ST_WAITDIGITS: + errno = EINVAL; /* Broken OID */ + return -1; + case ST_AFTERVALUE: + case ST_TAILSPACE: + return num_arcs; + } + + errno = EINVAL; /* Broken OID */ + return -1; +} diff --git a/e2sim/asn1c/OBJECT_IDENTIFIER.h b/e2sim/asn1c/OBJECT_IDENTIFIER.h new file mode 100644 index 0000000..f878055 --- /dev/null +++ b/e2sim/asn1c/OBJECT_IDENTIFIER.h @@ -0,0 +1,184 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _OBJECT_IDENTIFIER_H_ +#define _OBJECT_IDENTIFIER_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef uint32_t asn_oid_arc_t; +#define ASN_OID_ARC_MAX (~((asn_oid_arc_t)0)) + +typedef ASN__PRIMITIVE_TYPE_t OBJECT_IDENTIFIER_t; + +extern asn_TYPE_descriptor_t asn_DEF_OBJECT_IDENTIFIER; +extern asn_TYPE_operation_t asn_OP_OBJECT_IDENTIFIER; + +ssize_t OBJECT_IDENTIFIER__dump_body(const OBJECT_IDENTIFIER_t *st, + asn_app_consume_bytes_f *cb, + void *app_key); + +#define OBJECT_IDENTIFIER_free ASN__PRIMITIVE_TYPE_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +asn_struct_print_f OBJECT_IDENTIFIER_print; +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +#define OBJECT_IDENTIFIER_compare OCTET_STRING_compare + +asn_constr_check_f OBJECT_IDENTIFIER_constraint; + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#define OBJECT_IDENTIFIER_decode_ber ber_decode_primitive +#define OBJECT_IDENTIFIER_encode_der der_encode_primitive +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +xer_type_decoder_f OBJECT_IDENTIFIER_decode_xer; +xer_type_encoder_f OBJECT_IDENTIFIER_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_encoder_f OBJECT_IDENTIFIER_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +#define OBJECT_IDENTIFIER_decode_oer oer_decode_primitive +#define OBJECT_IDENTIFIER_encode_oer oer_encode_primitive +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +#define OBJECT_IDENTIFIER_decode_uper OCTET_STRING_decode_uper +#define OBJECT_IDENTIFIER_encode_uper OCTET_STRING_encode_uper +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +#define OBJECT_IDENTIFIER_decode_aper OCTET_STRING_decode_aper +#define OBJECT_IDENTIFIER_encode_aper OCTET_STRING_encode_aper +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +asn_random_fill_f OBJECT_IDENTIFIER_random_fill; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +/********************************** + * Some handy conversion routines * + **********************************/ + +/* + * This function fills an (arcs) array with OBJECT IDENTIFIER arcs + * up to specified (arc_slots) elements. + * + * EXAMPLE: + * void print_arcs(OBJECT_IDENTIFIER_t *oid) { + * asn_oid_arc_t fixed_arcs[10]; // Try with fixed space first + * asn_oid_arc_t *arcs = fixed_arcs; + * size_t arc_slots = sizeof(fixed_arcs)/sizeof(fixed_arcs[0]); // 10 + * ssize_t count; // Real number of arcs. + * int i; + * + * count = OBJECT_IDENTIFIER_get_arcs(oid, arcs, arc_slots); + * // If necessary, reallocate arcs array and try again. + * if(count > arc_slots) { + * arc_slots = count; + * arcs = malloc(sizeof(asn_oid_arc_t) * arc_slots); + * if(!arcs) return; + * count = OBJECT_IDENTIFIER_get_arcs(oid, arcs, arc_slots); + * assert(count == arc_slots); + * } + * + * // Print the contents of the arcs array. + * for(i = 0; i < count; i++) + * printf("%"PRIu32"\n", arcs[i]); + * + * // Avoid memory leak. + * if(arcs != fixed_arcs) free(arcs); + * } + * + * RETURN VALUES: + * -1/EINVAL: Invalid arguments (oid is missing) + * -1/ERANGE: One or more arcs have value out of array cell type range. + * >=0: Number of arcs contained in the OBJECT IDENTIFIER + * + * WARNING: The function always returns the actual number of arcs, + * even if there is no sufficient (arc_slots) provided. + */ +ssize_t OBJECT_IDENTIFIER_get_arcs(const OBJECT_IDENTIFIER_t *oid, + asn_oid_arc_t *arcs, size_t arc_slots); + +/* + * This functions initializes the OBJECT IDENTIFIER object with + * the given set of arcs. + * The minimum of two arcs must be present; some restrictions apply. + * RETURN VALUES: + * -1/EINVAL: Invalid arguments + * -1/ERANGE: The first two arcs do not conform to ASN.1 restrictions. + * -1/ENOMEM: Memory allocation failed + * 0: The object was initialized with new arcs. + */ +int OBJECT_IDENTIFIER_set_arcs(OBJECT_IDENTIFIER_t *oid, + const asn_oid_arc_t *arcs, size_t arcs_count); + + +/* + * Parse the OBJECT IDENTIFIER textual representation ("1.3.6.1.4.1.9363"). + * No arc can exceed the (0..ASN_OID_ARC_MAX, which is the same as UINT32_MAX). + * This function is not specific to OBJECT IDENTIFIER, it may be used to parse + * the RELATIVE-OID data, or any other data consisting of dot-separated + * series of numeric values. + * + * If (oid_txt_length == -1), the strlen() will be invoked to determine the + * size of the (oid_text) string. + * + * After return, the optional (opt_oid_text_end) is set to the character after + * the last parsed one. (opt_oid_text_end) is never less than (oid_text). + * + * RETURN VALUES: + * -1: Parse error. + * >= 0: Number of arcs contained in the OBJECT IDENTIFIER. + * + * WARNING: The function always returns the real number of arcs, + * even if there is no sufficient (arc_slots) provided. + * This is useful for (arc_slots) value estimation. + */ +ssize_t OBJECT_IDENTIFIER_parse_arcs(const char *oid_text, + ssize_t oid_txt_length, + asn_oid_arc_t *arcs, size_t arcs_count, + const char **opt_oid_text_end); + +/* + * Internal functions. + * Used by RELATIVE-OID implementation in particular. + */ + +/* + * Retrieve a single arc of size from the (arcbuf) buffer. + * RETURN VALUES: + * -1: Failed to retrieve the value from the (arcbuf). + * >0: Number of bytes consumed from the (arcbuf), <= (arcbuf_len). + */ +ssize_t OBJECT_IDENTIFIER_get_single_arc(const uint8_t *arcbuf, + size_t arcbuf_len, + asn_oid_arc_t *ret_value); + +/* + * Write the unterminated arc value into the (arcbuf) which has the size at + * least (arcbuf_len). + * RETURN VALUES: + * -1: (arcbuf_len) size is not sufficient to write the value. + * : Number of bytes appended to the arcbuf (<= arcbuf_len). + */ +ssize_t OBJECT_IDENTIFIER_set_single_arc(uint8_t *arcbuf, size_t arcbuf_len, + asn_oid_arc_t arc_value); + +#ifdef __cplusplus +} +#endif + +#endif /* _OBJECT_IDENTIFIER_H_ */ diff --git a/e2sim/asn1c/OBJECT_IDENTIFIER_jer.c b/e2sim/asn1c/OBJECT_IDENTIFIER_jer.c new file mode 100644 index 0000000..f105f03 --- /dev/null +++ b/e2sim/asn1c/OBJECT_IDENTIFIER_jer.c @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + + +asn_enc_rval_t +OBJECT_IDENTIFIER_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum jer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const OBJECT_IDENTIFIER_t *st = (const OBJECT_IDENTIFIER_t *)sptr; + asn_enc_rval_t er = {0,0,0}; + + (void)ilevel; + (void)flags; + + if(!st || !st->buf) { + ASN__ENCODE_FAILED; + } + + er.encoded = OBJECT_IDENTIFIER__dump_body(st, cb, app_key); + if(er.encoded < 0) ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/e2sim/asn1c/OBJECT_IDENTIFIER_print.c b/e2sim/asn1c/OBJECT_IDENTIFIER_print.c new file mode 100644 index 0000000..b0c3a9e --- /dev/null +++ b/e2sim/asn1c/OBJECT_IDENTIFIER_print.c @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +int +OBJECT_IDENTIFIER_print(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, asn_app_consume_bytes_f *cb, + void *app_key) { + const OBJECT_IDENTIFIER_t *st = (const OBJECT_IDENTIFIER_t *)sptr; + + (void)td; /* Unused argument */ + (void)ilevel; /* Unused argument */ + + if(!st || !st->buf) + return (cb("", 8, app_key) < 0) ? -1 : 0; + + /* Dump preamble */ + if(cb("{ ", 2, app_key) < 0) + return -1; + + if(OBJECT_IDENTIFIER__dump_body(st, cb, app_key) < 0) { + return -1; + } + + return (cb(" }", 2, app_key) < 0) ? -1 : 0; +} diff --git a/e2sim/asn1c/OBJECT_IDENTIFIER_rfill.c b/e2sim/asn1c/OBJECT_IDENTIFIER_rfill.c new file mode 100644 index 0000000..55093c8 --- /dev/null +++ b/e2sim/asn1c/OBJECT_IDENTIFIER_rfill.c @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * Generate values from the list of interesting values, or just a random + * value up to the upper limit. + */ +static asn_oid_arc_t +OBJECT_IDENTIFIER__biased_random_arc(asn_oid_arc_t upper_bound) { + const asn_oid_arc_t values[] = {0, 1, 127, 128, 129, 254, 255, 256}; + size_t idx; + + switch(asn_random_between(0, 2)) { + case 0: + idx = asn_random_between(0, sizeof(values) / sizeof(values[0]) - 1); + if(values[idx] < upper_bound) { + return values[idx]; + } + /* Fall through */ + case 1: + return asn_random_between(0, upper_bound); + case 2: + default: + return upper_bound; + } +} + +asn_random_fill_result_t +OBJECT_IDENTIFIER_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + OBJECT_IDENTIFIER_t *st; + asn_oid_arc_t arcs[5]; + size_t arcs_len = asn_random_between(2, 5); + size_t i; + + (void)constraints; + + if(max_length < arcs_len) return result_skipped; + + if(*sptr) { + st = *sptr; + } else { + st = CALLOC(1, sizeof(*st)); + } + + arcs[0] = asn_random_between(0, 2); + arcs[1] = OBJECT_IDENTIFIER__biased_random_arc( + arcs[0] <= 1 ? 39 : (ASN_OID_ARC_MAX - 80)); + for(i = 2; i < arcs_len; i++) { + arcs[i] = OBJECT_IDENTIFIER__biased_random_arc(ASN_OID_ARC_MAX); + } + + if(OBJECT_IDENTIFIER_set_arcs(st, arcs, arcs_len)) { + if(st != *sptr) { + ASN_STRUCT_FREE(*td, st); + } + return result_failed; + } + + *sptr = st; + + result_ok.length = st->size; + return result_ok; +} diff --git a/e2sim/asn1c/OBJECT_IDENTIFIER_xer.c b/e2sim/asn1c/OBJECT_IDENTIFIER_xer.c new file mode 100644 index 0000000..706e51a --- /dev/null +++ b/e2sim/asn1c/OBJECT_IDENTIFIER_xer.c @@ -0,0 +1,80 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +static enum xer_pbd_rval +OBJECT_IDENTIFIER__xer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr, + const void *chunk_buf, size_t chunk_size) { + OBJECT_IDENTIFIER_t *st = (OBJECT_IDENTIFIER_t *)sptr; + const char *chunk_end = (const char *)chunk_buf + chunk_size; + const char *endptr; + asn_oid_arc_t s_arcs[10]; + asn_oid_arc_t *arcs = s_arcs; + ssize_t num_arcs; + ssize_t ret; + + (void)td; + + num_arcs = OBJECT_IDENTIFIER_parse_arcs( + (const char *)chunk_buf, chunk_size, arcs, + sizeof(s_arcs) / sizeof(s_arcs[0]), &endptr); + if(num_arcs < 0) { + /* Expecting more than zero arcs */ + return XPBD_BROKEN_ENCODING; + } else if(num_arcs == 0) { + return XPBD_NOT_BODY_IGNORE; + } + (void)chunk_end; + assert(endptr == chunk_end); + + if((size_t)num_arcs > sizeof(s_arcs)/sizeof(s_arcs[0])) { + arcs = (asn_oid_arc_t *)MALLOC(num_arcs * sizeof(asn_oid_arc_t)); + if(!arcs) return XPBD_SYSTEM_FAILURE; + ret = OBJECT_IDENTIFIER_parse_arcs((const char *)chunk_buf, chunk_size, + arcs, num_arcs, &endptr); + if(ret != num_arcs) + return XPBD_SYSTEM_FAILURE; /* assert?.. */ + } + + /* + * Convert arcs into BER representation. + */ + ret = OBJECT_IDENTIFIER_set_arcs(st, arcs, num_arcs); + if(arcs != s_arcs) FREEMEM(arcs); + + return ret ? XPBD_SYSTEM_FAILURE : XPBD_BODY_CONSUMED; +} + +asn_dec_rval_t +OBJECT_IDENTIFIER_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, + size_t size) { + return xer_decode_primitive(opt_codec_ctx, td, + sptr, sizeof(OBJECT_IDENTIFIER_t), opt_mname, + buf_ptr, size, OBJECT_IDENTIFIER__xer_body_decode); +} + +asn_enc_rval_t +OBJECT_IDENTIFIER_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const OBJECT_IDENTIFIER_t *st = (const OBJECT_IDENTIFIER_t *)sptr; + asn_enc_rval_t er = {0,0,0}; + + (void)ilevel; + (void)flags; + + if(!st || !st->buf) { + ASN__ENCODE_FAILED; + } + + er.encoded = OBJECT_IDENTIFIER__dump_body(st, cb, app_key); + if(er.encoded < 0) ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/e2sim/asn1c/OCTET_STRING.c b/e2sim/asn1c/OCTET_STRING.c new file mode 100644 index 0000000..d0bdead --- /dev/null +++ b/e2sim/asn1c/OCTET_STRING.c @@ -0,0 +1,383 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * OCTET STRING basic type description. + */ +static const ber_tlv_tag_t asn_DEF_OCTET_STRING_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_OCTET_STRING_specifics_t asn_SPC_OCTET_STRING_specs = { + sizeof(OCTET_STRING_t), + offsetof(OCTET_STRING_t, _asn_ctx), + ASN_OSUBV_STR +}; +asn_TYPE_operation_t asn_OP_OCTET_STRING = { + OCTET_STRING_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + OCTET_STRING_print, /* OCTET STRING generally means a non-ascii sequence */ +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + OCTET_STRING_compare, +#if !defined(ASN_DISABLE_BER_SUPPORT) + OCTET_STRING_decode_ber, + OCTET_STRING_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + OCTET_STRING_decode_xer_hex, + OCTET_STRING_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + OCTET_STRING_encode_jer, +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + OCTET_STRING_decode_oer, + OCTET_STRING_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + OCTET_STRING_decode_uper, /* Unaligned PER decoder */ + OCTET_STRING_encode_uper, /* Unaligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + OCTET_STRING_decode_aper, /* Aligned PER decoder */ + OCTET_STRING_encode_aper, /* Aligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + OCTET_STRING_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_OCTET_STRING = { + "OCTET STRING", /* Canonical name */ + "OCTET_STRING", /* XML tag name */ + &asn_OP_OCTET_STRING, + asn_DEF_OCTET_STRING_tags, + sizeof(asn_DEF_OCTET_STRING_tags) + / sizeof(asn_DEF_OCTET_STRING_tags[0]), + asn_DEF_OCTET_STRING_tags, /* Same as above */ + sizeof(asn_DEF_OCTET_STRING_tags) + / sizeof(asn_DEF_OCTET_STRING_tags[0]), + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + asn_generic_no_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs +}; + +void +OCTET_STRING_free(const asn_TYPE_descriptor_t *td, void *sptr, + enum asn_struct_free_method method) { + OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; + + if(!td || !st) + return; + + ASN_DEBUG("Freeing %s as OCTET STRING", td->name); + + if(st->buf) { + FREEMEM(st->buf); + st->buf = 0; + } + +#if !defined(ASN_DISABLE_BER_SUPPORT) + const asn_OCTET_STRING_specifics_t *specs; + asn_struct_ctx_t *ctx; + + specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + /* + * Remove decode-time stack. + */ + struct _stack *stck; + stck = (struct _stack *)ctx->ptr; + if(stck) { + while(stck->tail) { + struct _stack_el *sel = stck->tail; + stck->tail = sel->prev; + FREEMEM(sel); + } + FREEMEM(stck); + } +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(sptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset(sptr, 0, + td->specifics + ? ((const asn_OCTET_STRING_specifics_t *)(td->specifics)) + ->struct_size + : sizeof(OCTET_STRING_t)); + break; + } +} + +/* + * Conversion routines. + */ +int +OCTET_STRING_fromBuf(OCTET_STRING_t *st, const char *str, int len) { + void *buf; + + if(st == 0 || (str == 0 && len)) { + errno = EINVAL; + return -1; + } + + /* + * Clear the OCTET STRING. + */ + if(str == NULL) { + FREEMEM(st->buf); + st->buf = 0; + st->size = 0; + return 0; + } + + /* Determine the original string size, if not explicitly given */ + if(len < 0) + len = strlen(str); + + /* Allocate and fill the memory */ + buf = MALLOC(len + 1); + if(buf == NULL) + return -1; + + memcpy(buf, str, len); + ((uint8_t *)buf)[len] = '\0'; /* Couldn't use memcpy(len+1)! */ + FREEMEM(st->buf); + st->buf = (uint8_t *)buf; + st->size = len; + + return 0; +} + +OCTET_STRING_t * +OCTET_STRING_new_fromBuf(const asn_TYPE_descriptor_t *td, const char *str, + int len) { + const asn_OCTET_STRING_specifics_t *specs = + td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + OCTET_STRING_t *st; + + st = (OCTET_STRING_t *)CALLOC(1, specs->struct_size); + if(st && str && OCTET_STRING_fromBuf(st, str, len)) { + FREEMEM(st); + st = NULL; + } + + return st; +} + +/* + * Lexicographically compare the common prefix of both strings, + * and if it is the same return -1 for the smallest string. + */ +int +OCTET_STRING_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + const asn_OCTET_STRING_specifics_t *specs = td->specifics; + const OCTET_STRING_t *a = aptr; + const OCTET_STRING_t *b = bptr; + + (void)specs; + assert(!specs || specs->subvariant != ASN_OSUBV_BIT); + + if(a && b) { + size_t common_prefix_size = a->size <= b->size ? a->size : b->size; + int ret = memcmp(a->buf, b->buf, common_prefix_size); + if(ret == 0) { + /* Figure out which string with equal prefixes is longer. */ + if(a->size < b->size) { + return -1; + } else if(a->size > b->size) { + return 1; + } else { + return 0; + } + } else { + return ret < 0 ? -1 : 1; + } + } else if(!a && !b) { + return 0; + } else if(!a) { + return -1; + } else { + return 1; + } + +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +int +OCTET_STRING_per_get_characters(asn_per_data_t *po, uint8_t *buf, + size_t units, unsigned int bpc, unsigned int unit_bits, + long lb, long ub, const asn_per_constraints_t *pc) { + uint8_t *end = buf + units * bpc; + + ASN_DEBUG("Expanding %d characters into (%ld..%ld):%d", + (int)units, lb, ub, unit_bits); + + /* X.691: 27.5.4 */ + if((unsigned long)ub <= ((unsigned long)2 << (unit_bits - 1))) { + /* Decode without translation */ + lb = 0; + } else if(pc && pc->code2value) { + if(unit_bits > 16) + return 1; /* FATAL: can't have constrained + * UniversalString with more than + * 16 million code points */ + for(; buf < end; buf += bpc) { + int value; + int code = per_get_few_bits(po, unit_bits); + if(code < 0) return -1; /* WMORE */ + value = pc->code2value(code); + if(value < 0) { + ASN_DEBUG("Code %d (0x%02x) is" + " not in map (%ld..%ld)", + code, code, lb, ub); + return 1; /* FATAL */ + } + switch(bpc) { + case 1: *buf = value; break; + case 2: buf[0] = value >> 8; buf[1] = value; break; + case 4: buf[0] = value >> 24; buf[1] = value >> 16; + buf[2] = value >> 8; buf[3] = value; break; + } + } + return 0; + } + + /* Shortcut the no-op copying to the aligned structure */ + if(lb == 0 && (unit_bits == 8 * bpc)) { + return per_get_many_bits(po, buf, 0, unit_bits * units); + } + + for(; buf < end; buf += bpc) { + int32_t code = per_get_few_bits(po, unit_bits); + int32_t ch = code + lb; + if(code < 0) return -1; /* WMORE */ + if(ch > ub) { + ASN_DEBUG("Code %d is out of range (%ld..%ld)", + ch, lb, ub); + return 1; /* FATAL */ + } + switch(bpc) { + case 1: *buf = ch; break; + case 2: buf[0] = ch >> 8; buf[1] = ch; break; + case 4: buf[0] = ch >> 24; buf[1] = ch >> 16; + buf[2] = ch >> 8; buf[3] = ch; break; + } + } + + return 0; +} + +int +OCTET_STRING_per_put_characters(asn_per_outp_t *po, const uint8_t *buf, + size_t units, unsigned int bpc, unsigned int unit_bits, + long lb, long ub, const asn_per_constraints_t *pc) { + const uint8_t *end = buf + units * bpc; + + ASN_DEBUG("Squeezing %d characters into (%ld..%ld):%d (%d bpc)", + (int)units, lb, ub, unit_bits, bpc); + + /* X.691: 27.5.4 */ + if((unsigned long)ub <= ((unsigned long)2 << (unit_bits - 1))) { + /* Encode as is */ + lb = 0; + } else if(pc && pc->value2code) { + for(; buf < end; buf += bpc) { + int code; + uint32_t value; + switch(bpc) { + case 1: value = *(const uint8_t *)buf; break; + case 2: value = (buf[0] << 8) | buf[1]; break; + case 4: value = (buf[0] << 24) | (buf[1] << 16) + | (buf[2] << 8) | buf[3]; break; + default: return -1; + } + code = pc->value2code(value); + if(code < 0) { + ASN_DEBUG("Character %d (0x%02x) is" + " not in map (%ld..%ld)", + *buf, *buf, lb, ub); + return -1; + } + if(per_put_few_bits(po, code, unit_bits)) + return -1; + } + } + + /* Shortcut the no-op copying to the aligned structure */ + if(lb == 0 && (unit_bits == 8 * bpc)) { + return per_put_many_bits(po, buf, unit_bits * units); + } + + for(ub -= lb; buf < end; buf += bpc) { + int ch; + uint32_t value; + switch(bpc) { + case 1: + value = *(const uint8_t *)buf; + break; + case 2: + value = (buf[0] << 8) | buf[1]; + break; + case 4: + value = (buf[0] << 24) | (buf[1] << 16) | (buf[2] << 8) | buf[3]; + break; + default: + return -1; + } + ch = value - lb; + if(ch < 0 || ch > ub) { + ASN_DEBUG("Character %d (0x%02x) is out of range (%ld..%ld)", *buf, + value, lb, ub + lb); + return -1; + } + if(per_put_few_bits(po, ch, unit_bits)) return -1; + } + + return 0; +} +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ diff --git a/e2sim/asn1c/OCTET_STRING.h b/e2sim/asn1c/OCTET_STRING.h new file mode 100644 index 0000000..b1ace14 --- /dev/null +++ b/e2sim/asn1c/OCTET_STRING.h @@ -0,0 +1,165 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _OCTET_STRING_H_ +#define _OCTET_STRING_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct OCTET_STRING { + uint8_t *buf; /* Buffer with consecutive OCTET_STRING bits */ + size_t size; /* Size of the buffer */ + + asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ +} OCTET_STRING_t; + +extern asn_TYPE_descriptor_t asn_DEF_OCTET_STRING; +extern asn_TYPE_operation_t asn_OP_OCTET_STRING; + +asn_struct_free_f OCTET_STRING_free; + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +asn_struct_print_f OCTET_STRING_print; +asn_struct_print_f OCTET_STRING_print_utf8; +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +asn_struct_compare_f OCTET_STRING_compare; + +#define OCTET_STRING_constraint asn_generic_no_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +ber_type_decoder_f OCTET_STRING_decode_ber; +der_type_encoder_f OCTET_STRING_encode_der; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +xer_type_decoder_f OCTET_STRING_decode_xer_hex; /* Hexadecimal */ +xer_type_decoder_f OCTET_STRING_decode_xer_binary; /* 01010111010 */ +xer_type_decoder_f OCTET_STRING_decode_xer_utf8; /* ASCII/UTF-8 */ +xer_type_encoder_f OCTET_STRING_encode_xer; +xer_type_encoder_f OCTET_STRING_encode_xer_utf8; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_encoder_f OCTET_STRING_encode_jer; +jer_type_encoder_f OCTET_STRING_encode_jer_utf8; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +oer_type_decoder_f OCTET_STRING_decode_oer; +oer_type_encoder_f OCTET_STRING_encode_oer; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f OCTET_STRING_decode_uper; +per_type_encoder_f OCTET_STRING_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +per_type_decoder_f OCTET_STRING_decode_aper; +per_type_encoder_f OCTET_STRING_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +asn_random_fill_f OCTET_STRING_random_fill; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +int OCTET_STRING_per_get_characters( + asn_per_data_t *po, + uint8_t *buf, + size_t units, + unsigned int bpc, + unsigned int unit_bits, + long lb, + long ub, + const asn_per_constraints_t *pc); + +int OCTET_STRING_per_put_characters( + asn_per_outp_t *po, + const uint8_t *buf, + size_t units, + unsigned int bpc, + unsigned int unit_bits, + long lb, + long ub, + const asn_per_constraints_t *pc); +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +/****************************** + * Handy conversion routines. * + ******************************/ + +/* + * This function clears the previous value of the OCTET STRING (if any) + * and then allocates a new memory with the specified content (str/size). + * If size = -1, the size of the original string will be determined + * using strlen(str). + * If str equals to NULL, the function will silently clear the + * current contents of the OCTET STRING. + * Returns 0 if it was possible to perform operation, -1 otherwise. + */ +int OCTET_STRING_fromBuf(OCTET_STRING_t *s, const char *str, int size); + +/* Handy conversion from the C string into the OCTET STRING. */ +#define OCTET_STRING_fromString(s, str) OCTET_STRING_fromBuf(s, str, -1) + +/* + * Allocate and fill the new OCTET STRING and return a pointer to the newly + * allocated object. NULL is permitted in str: the function will just allocate + * empty OCTET STRING. + */ +OCTET_STRING_t *OCTET_STRING_new_fromBuf(const asn_TYPE_descriptor_t *td, + const char *str, int size); + +/**************************** + * Internally useful stuff. * + ****************************/ + +typedef struct asn_OCTET_STRING_specifics_s { + /* + * Target structure description. + */ + unsigned struct_size; /* Size of the structure */ + unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ + + enum asn_OS_Subvariant { + ASN_OSUBV_ANY, /* The open type (ANY) */ + ASN_OSUBV_BIT, /* BIT STRING */ + ASN_OSUBV_STR, /* String types, not {BMP,Universal}String */ + ASN_OSUBV_U16, /* 16-bit character (BMPString) */ + ASN_OSUBV_U32 /* 32-bit character (UniversalString) */ + } subvariant; +} asn_OCTET_STRING_specifics_t; + +extern asn_OCTET_STRING_specifics_t asn_SPC_OCTET_STRING_specs; + +size_t OCTET_STRING_random_length_constrained( + const asn_TYPE_descriptor_t *, const asn_encoding_constraints_t *, + size_t max_length); + +#if !defined(ASN_DISABLE_BER_SUPPORT) +struct _stack_el { + ber_tlv_len_t left; /* What's left to read (or -1) */ + ber_tlv_len_t got; /* What was actually processed */ + unsigned cont_level; /* Depth of subcontainment */ + int want_nulls; /* Want null "end of content" octets? */ + int bits_chopped; /* Flag in BIT STRING mode */ + ber_tlv_tag_t tag; /* For debugging purposes */ + struct _stack_el *prev; + struct _stack_el *next; +}; +struct _stack { + struct _stack_el *tail; + struct _stack_el *cur_ptr; +}; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#ifdef __cplusplus +} +#endif + +#endif /* _OCTET_STRING_H_ */ diff --git a/e2sim/asn1c/OCTET_STRING_aper.c b/e2sim/asn1c/OCTET_STRING_aper.c new file mode 100644 index 0000000..0373fe6 --- /dev/null +++ b/e2sim/asn1c/OCTET_STRING_aper.c @@ -0,0 +1,414 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include /* for .bits_unused member */ + +#undef RETURN +#define RETURN(_code) do {\ + asn_dec_rval_t tmprval;\ + tmprval.code = _code;\ + tmprval.consumed = consumed_myself;\ + return tmprval;\ + } while(0) + +static asn_per_constraints_t asn_DEF_OCTET_STRING_constraints = { + { APC_CONSTRAINED, 8, 8, 0, 255 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, + 0, 0 +}; + +asn_dec_rval_t +OCTET_STRING_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd) { + + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + const asn_per_constraints_t *pc = constraints + ? constraints + : td->encoding_constraints.per_constraints; + const asn_per_constraint_t *cval; + const asn_per_constraint_t *csiz; + asn_dec_rval_t rval = { RC_OK, 0 }; + BIT_STRING_t *st = (BIT_STRING_t *)*sptr; + ssize_t consumed_myself = 0; + int repeat; + enum { + OS__BPC_BIT = 0, + OS__BPC_CHAR = 1, + OS__BPC_U16 = 2, + OS__BPC_U32 = 4 + } bpc; /* Bytes per character */ + unsigned int unit_bits; + unsigned int canonical_unit_bits; + + (void)opt_codec_ctx; + + if(pc) { + cval = &pc->value; + csiz = &pc->size; + } else { + cval = &asn_DEF_OCTET_STRING_constraints.value; + csiz = &asn_DEF_OCTET_STRING_constraints.size; + } + + switch(specs->subvariant) { + default: +/* + case ASN_OSUBV_ANY: + ASN_DEBUG("Unrecognized subvariant %d", specs->subvariant); + RETURN(RC_FAIL); +*/ + case ASN_OSUBV_BIT: + canonical_unit_bits = unit_bits = 1; + bpc = OS__BPC_BIT; + break; + case ASN_OSUBV_ANY: + case ASN_OSUBV_STR: + canonical_unit_bits = unit_bits = 8; +/* + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; +*/ + bpc = OS__BPC_CHAR; + break; + case ASN_OSUBV_U16: + canonical_unit_bits = unit_bits = 16; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U16; + break; + case ASN_OSUBV_U32: + canonical_unit_bits = unit_bits = 32; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U32; + break; + } + + /* + * Allocate the string. + */ + if(!st) { + st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) RETURN(RC_FAIL); + } + + ASN_DEBUG("PER Decoding %s size %lld .. %lld bits %d", + csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", + (long long int)csiz->lower_bound, (long long int)csiz->upper_bound, + csiz->effective_bits); + + if(csiz->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) RETURN(RC_WMORE); + if(inext) { + csiz = &asn_DEF_OCTET_STRING_constraints.size; + cval = &asn_DEF_OCTET_STRING_constraints.value; + unit_bits = canonical_unit_bits; + } + } + + if(csiz->effective_bits >= 0) { + FREEMEM(st->buf); + if(bpc) { + st->size = csiz->upper_bound * bpc; + } else { + st->size = (csiz->upper_bound + 7) >> 3; + } + st->buf = (uint8_t *)MALLOC(st->size + 1); + if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } + } + + /* X.691, #16.5: zero-length encoding */ + /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ + /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ + if(csiz->effective_bits == 0) { + int ret; + /* X.691 #16 NOTE 1 for fixed length (<= 16 bits) strings */ + if (st->size > 2 || csiz->range_bits != 0) { + if (aper_get_align(pd) < 0) + RETURN(RC_FAIL); + } + if(bpc) { + ASN_DEBUG("Decoding OCTET STRING size %lld", + (long long int)csiz->upper_bound); + ret = OCTET_STRING_per_get_characters(pd, st->buf, + csiz->upper_bound, + bpc, unit_bits, + cval->lower_bound, + cval->upper_bound, + pc); + if(ret > 0) RETURN(RC_FAIL); + } else { + ASN_DEBUG("Decoding BIT STRING size %lld", + (long long int)csiz->upper_bound); + ret = per_get_many_bits(pd, st->buf, 0, + unit_bits * csiz->upper_bound); + } + if(ret < 0) RETURN(RC_WMORE); + consumed_myself += unit_bits * csiz->upper_bound; + st->buf[st->size] = 0; + if(bpc == 0) { + int ubs = (csiz->upper_bound & 0x7); + st->bits_unused = ubs ? 8 - ubs : 0; + } + RETURN(RC_OK); + } + + st->size = 0; + do { + ssize_t raw_len; + ssize_t len_bytes; + ssize_t len_bits; + void *p; + int ret; + + repeat = 0; + /* Get the PER length */ + if (csiz->upper_bound - csiz->lower_bound == 0) + /* Indefinite length case */ + raw_len = aper_get_length(pd, -1, -1, csiz->effective_bits, &repeat); + else + raw_len = aper_get_length(pd, csiz->lower_bound, csiz->upper_bound, + csiz->effective_bits, &repeat); + if(raw_len < 0) RETURN(RC_WMORE); + raw_len += csiz->lower_bound; + + ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", + (long)csiz->effective_bits, (long)raw_len, + repeat ? "repeat" : "once", td->name); + + /* X.691 #16 NOTE 1 for fixed length (<=16 bits) strings */ + if ((raw_len > 2) || (csiz->upper_bound > 2) || (csiz->range_bits != 0)) + { + if (aper_get_align(pd) < 0) + RETURN(RC_FAIL); + } + + if(bpc) { + len_bytes = raw_len * bpc; + len_bits = len_bytes * unit_bits; + } else { + len_bits = raw_len; + len_bytes = (len_bits + 7) >> 3; + if(len_bits & 0x7) + st->bits_unused = 8 - (len_bits & 0x7); + /* len_bits be multiple of 16K if repeat is set */ + } + p = REALLOC(st->buf, st->size + len_bytes + 1); + if(!p) RETURN(RC_FAIL); + st->buf = (uint8_t *)p; + + if(bpc) { + ret = OCTET_STRING_per_get_characters(pd, + &st->buf[st->size], + raw_len, bpc, + unit_bits, + cval->lower_bound, + cval->upper_bound, + pc); + if(ret > 0) RETURN(RC_FAIL); + } else { + ret = per_get_many_bits(pd, &st->buf[st->size], + 0, len_bits); + } + if(ret < 0) RETURN(RC_WMORE); + st->size += len_bytes; + } while(repeat); + st->buf[st->size] = 0; /* nul-terminate */ + + return rval; +} + +asn_enc_rval_t +OCTET_STRING_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + const asn_per_constraints_t *pc = constraints + ? constraints + : td->encoding_constraints.per_constraints; + const asn_per_constraint_t *cval; + const asn_per_constraint_t *csiz; + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + asn_enc_rval_t er = { 0, 0, 0 }; + int inext = 0; /* Lies not within extension root */ + unsigned int unit_bits; + unsigned int canonical_unit_bits; + unsigned int sizeinunits; + const uint8_t *buf; + int ret; + enum { + OS__BPC_BIT = 0, + OS__BPC_CHAR = 1, + OS__BPC_U16 = 2, + OS__BPC_U32 = 4 + } bpc; /* Bytes per character */ + int ct_extensible; + + if(!st || (!st->buf && st->size)) + ASN__ENCODE_FAILED; + + if(pc) { + cval = &pc->value; + csiz = &pc->size; + } else { + cval = &asn_DEF_OCTET_STRING_constraints.value; + csiz = &asn_DEF_OCTET_STRING_constraints.size; + } + ct_extensible = csiz->flags & APC_EXTENSIBLE; + + switch(specs->subvariant) { + default: +/* + case ASN_OSUBV_ANY: + ASN__ENCODE_FAILED; +*/ + case ASN_OSUBV_BIT: + canonical_unit_bits = unit_bits = 1; + bpc = OS__BPC_BIT; + sizeinunits = st->size * 8 - (st->bits_unused & 0x07); + ASN_DEBUG("BIT STRING of %d bytes", + sizeinunits); + break; + case ASN_OSUBV_ANY: + case ASN_OSUBV_STR: + canonical_unit_bits = unit_bits = 8; +/* + if(cval->flags & APC_CONSTRAINED) + unit_bits = 8; +*/ + bpc = OS__BPC_CHAR; + sizeinunits = st->size; + break; + case ASN_OSUBV_U16: + canonical_unit_bits = unit_bits = 16; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U16; + sizeinunits = st->size / 2; + break; + case ASN_OSUBV_U32: + canonical_unit_bits = unit_bits = 32; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U32; + sizeinunits = st->size / 4; + break; + } + + ASN_DEBUG("Encoding %s into %d units of %d bits" + " (%lld..%lld, effective %d)%s", + td->name, sizeinunits, unit_bits, + (long long int)csiz->lower_bound, + (long long int)csiz->upper_bound, + csiz->effective_bits, ct_extensible ? " EXT" : ""); + + /* Figure out wheter size lies within PER visible constraint */ + + if(csiz->effective_bits >= 0) { + if((int)sizeinunits < csiz->lower_bound + || (int)sizeinunits > csiz->upper_bound) { + if(ct_extensible) { + cval = &asn_DEF_OCTET_STRING_constraints.value; + csiz = &asn_DEF_OCTET_STRING_constraints.size; + unit_bits = canonical_unit_bits; + inext = 1; + } else + ASN__ENCODE_FAILED; + } + } else { + inext = 0; + } + + if(ct_extensible) { + /* Declare whether length is [not] within extension root */ + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + } + + /* X.691, #16.5: zero-length encoding */ + /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ + /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ + if(csiz->effective_bits >= 0) { + ASN_DEBUG("Encoding %zu bytes (%lld), length in %d bits", + st->size, (long long int)(sizeinunits - csiz->lower_bound), + csiz->effective_bits); + if (csiz->effective_bits > 0) { + ret = aper_put_length(po, csiz->lower_bound, csiz->upper_bound, + sizeinunits - csiz->lower_bound, NULL); + if(ret < 0) ASN__ENCODE_FAILED; + } + if (csiz->effective_bits > 0 || (st->size > 2) + || (csiz->upper_bound > (2 * 8 / unit_bits)) + || (csiz->range_bits != 0)) + { /* X.691 #16 NOTE 1 for fixed length (<=16 bits) strings*/ + if (aper_put_align(po) < 0) + ASN__ENCODE_FAILED; + } + if(bpc) { + ret = OCTET_STRING_per_put_characters(po, st->buf, + sizeinunits, + bpc, unit_bits, + cval->lower_bound, + cval->upper_bound, + pc); + } else { + ret = per_put_many_bits(po, st->buf, + sizeinunits * unit_bits); + } + if(ret) ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } + + ASN_DEBUG("Encoding %zu bytes", st->size); + + if(sizeinunits == 0) { + if(aper_put_length(po, -1, -1, 0, NULL) < 0) + ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } + + buf = st->buf; + while(sizeinunits) { + int need_eom = 0; + ssize_t maySave = aper_put_length(po, -1, -1, sizeinunits, &need_eom); + + if(maySave < 0) ASN__ENCODE_FAILED; + + ASN_DEBUG("Encoding %ld of %ld", + (long)maySave, (long)sizeinunits); + + if(bpc) { + ret = OCTET_STRING_per_put_characters(po, buf, maySave, + bpc, unit_bits, + cval->lower_bound, + cval->upper_bound, + pc); + } else { + ret = per_put_many_bits(po, buf, maySave * unit_bits); + } + if(ret) ASN__ENCODE_FAILED; + + if(bpc) + buf += maySave * bpc; + else + buf += maySave >> 3; + sizeinunits -= maySave; + assert(!(maySave & 0x07) || !sizeinunits); + if(need_eom && (aper_put_length(po, -1, -1, 0, NULL) < 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + } + + ASN__ENCODED_OK(er); +} diff --git a/e2sim/asn1c/OCTET_STRING_ber.c b/e2sim/asn1c/OCTET_STRING_ber.c new file mode 100644 index 0000000..9530eae --- /dev/null +++ b/e2sim/asn1c/OCTET_STRING_ber.c @@ -0,0 +1,525 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include /* for .bits_unused member */ + +#undef _CH_PHASE +#define _CH_PHASE(ctx, inc) do {\ + if(ctx->phase == 0)\ + ctx->context = 0;\ + ctx->phase += inc;\ + } while(0) + +#undef NEXT_PHASE +#define NEXT_PHASE(ctx) _CH_PHASE(ctx, +1) +#undef PREV_PHASE +#define PREV_PHASE(ctx) _CH_PHASE(ctx, -1) + +#undef ADVANCE +#define ADVANCE(num_bytes) do {\ + size_t num = (num_bytes);\ + buf_ptr = ((const char *)buf_ptr) + num;\ + size -= num;\ + consumed_myself += num;\ + } while(0) + +#undef RETURN +#define RETURN(_code) do {\ + asn_dec_rval_t tmprval;\ + tmprval.code = _code;\ + tmprval.consumed = consumed_myself;\ + return tmprval;\ + } while(0) + +#undef APPEND +#define APPEND(bufptr, bufsize) do {\ + size_t _bs = (bufsize); /* Append size */\ + size_t _ns = ctx->context; /* Allocated now */\ + size_t _es = st->size + _bs; /* Expected size */\ + /* int is really a typeof(st->size): */\ + if((int)_es < 0) RETURN(RC_FAIL);\ + if(_ns <= _es) {\ + void *ptr;\ + /* Be nice and round to the memory allocator */\ + do { _ns = _ns ? _ns << 1 : 16; }\ + while(_ns <= _es);\ + /* int is really a typeof(st->size): */\ + if((int)_ns < 0) RETURN(RC_FAIL);\ + ptr = REALLOC(st->buf, _ns);\ + if(ptr) {\ + st->buf = (uint8_t *)ptr;\ + ctx->context = _ns;\ + } else {\ + RETURN(RC_FAIL);\ + }\ + ASN_DEBUG("Reallocating into %ld", (long)_ns);\ + }\ + memcpy(st->buf + st->size, bufptr, _bs);\ + /* Convenient nul-termination */\ + st->buf[_es] = '\0';\ + st->size = _es;\ + } while(0) + +/* + * The main reason why ASN.1 is still alive is that too much time and effort + * is necessary for learning it more or less adequately, thus creating a gut + * necessity to demonstrate that acquired skill everywhere afterwards. + * No, I am not going to explain what the following stuff is. + */ +static struct _stack_el * +OS__add_stack_el(struct _stack *st) { + struct _stack_el *nel; + + /* + * Reuse the old stack frame or allocate a new one. + */ + if(st->cur_ptr && st->cur_ptr->next) { + nel = st->cur_ptr->next; + nel->bits_chopped = 0; + nel->got = 0; + /* Retain the nel->cont_level, it's correct. */ + } else { + nel = (struct _stack_el *)CALLOC(1, sizeof(struct _stack_el)); + if(nel == NULL) + return NULL; + + if(st->tail) { + /* Increase a subcontainment depth */ + nel->cont_level = st->tail->cont_level + 1; + st->tail->next = nel; + } + nel->prev = st->tail; + st->tail = nel; + } + + st->cur_ptr = nel; + + return nel; +} + +static struct _stack * +_new_stack(void) { + return (struct _stack *)CALLOC(1, sizeof(struct _stack)); +} + +/* + * Decode OCTET STRING type. + */ +asn_dec_rval_t +OCTET_STRING_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const void *buf_ptr, size_t size, int tag_mode) { + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + BIT_STRING_t *st = (BIT_STRING_t *)*sptr; + asn_dec_rval_t rval; + asn_struct_ctx_t *ctx; + ssize_t consumed_myself = 0; + struct _stack *stck; /* Expectations stack structure */ + struct _stack_el *sel = 0; /* Stack element */ + int tlv_constr; + enum asn_OS_Subvariant type_variant = specs->subvariant; + + ASN_DEBUG("Decoding %s as %s (frame %ld)", + td->name, + (type_variant == ASN_OSUBV_STR) ? + "OCTET STRING" : "OS-SpecialCase", + (long)size); + + /* + * Create the string if does not exist. + */ + if(st == NULL) { + st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(st == NULL) RETURN(RC_FAIL); + } + + /* Restore parsing context */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + switch(ctx->phase) { + case 0: + /* + * Check tags. + */ + rval = ber_check_tags(opt_codec_ctx, td, ctx, + buf_ptr, size, tag_mode, -1, + &ctx->left, &tlv_constr); + if(rval.code != RC_OK) + return rval; + + if(tlv_constr) { + /* + * Complex operation, requires stack of expectations. + */ + ctx->ptr = _new_stack(); + if(!ctx->ptr) { + RETURN(RC_FAIL); + } + } else { + /* + * Jump into stackless primitive decoding. + */ + _CH_PHASE(ctx, 3); + if(type_variant == ASN_OSUBV_ANY && tag_mode != 1) + APPEND(buf_ptr, rval.consumed); + ADVANCE(rval.consumed); + goto phase3; + } + + NEXT_PHASE(ctx); + /* Fall through */ + case 1: + phase1: + /* + * Fill the stack with expectations. + */ + stck = (struct _stack *)ctx->ptr; + sel = stck->cur_ptr; + do { + ber_tlv_tag_t tlv_tag; + ber_tlv_len_t tlv_len; + ber_tlv_tag_t expected_tag; + ssize_t tl, ll, tlvl; + /* This one works even if (sel->left == -1) */ + size_t Left = ((!sel||(size_t)sel->left >= size) + ?size:(size_t)sel->left); + + + ASN_DEBUG("%p, s->l=%ld, s->wn=%ld, s->g=%ld\n", (void *)sel, + (long)(sel?sel->left:0), + (long)(sel?sel->want_nulls:0), + (long)(sel?sel->got:0) + ); + if(sel && sel->left <= 0 && sel->want_nulls == 0) { + if(sel->prev) { + struct _stack_el *prev = sel->prev; + if(prev->left != -1) { + if(prev->left < sel->got) + RETURN(RC_FAIL); + prev->left -= sel->got; + } + prev->got += sel->got; + sel = stck->cur_ptr = prev; + if(!sel) break; + tlv_constr = 1; + continue; + } else { + sel = stck->cur_ptr = 0; + break; /* Nothing to wait */ + } + } + + tl = ber_fetch_tag(buf_ptr, Left, &tlv_tag); + ASN_DEBUG("fetch tag(size=%ld,L=%ld), %sstack, left=%ld, wn=%ld, tl=%ld", + (long)size, (long)Left, sel?"":"!", + (long)(sel?sel->left:0), + (long)(sel?sel->want_nulls:0), + (long)tl); + switch(tl) { + case -1: RETURN(RC_FAIL); + case 0: RETURN(RC_WMORE); + } + + tlv_constr = BER_TLV_CONSTRUCTED(buf_ptr); + + ll = ber_fetch_length(tlv_constr, + (const char *)buf_ptr + tl,Left - tl,&tlv_len); + ASN_DEBUG("Got tag=%s, tc=%d, left=%ld, tl=%ld, len=%ld, ll=%ld", + ber_tlv_tag_string(tlv_tag), tlv_constr, + (long)Left, (long)tl, (long)tlv_len, (long)ll); + switch(ll) { + case -1: RETURN(RC_FAIL); + case 0: RETURN(RC_WMORE); + } + + if(sel && sel->want_nulls + && ((const uint8_t *)buf_ptr)[0] == 0 + && ((const uint8_t *)buf_ptr)[1] == 0) + { + ASN_DEBUG("Eat EOC; wn=%d--", sel->want_nulls); + + if(type_variant == ASN_OSUBV_ANY + && (tag_mode != 1 || sel->cont_level)) + APPEND("\0\0", 2); + + ADVANCE(2); + sel->got += 2; + if(sel->left != -1) { + sel->left -= 2; /* assert(sel->left >= 2) */ + } + + sel->want_nulls--; + if(sel->want_nulls == 0) { + /* Move to the next expectation */ + sel->left = 0; + tlv_constr = 1; + } + + continue; + } + + /* + * Set up expected tags, + * depending on ASN.1 type being decoded. + */ + switch(type_variant) { + case ASN_OSUBV_BIT: + /* X.690: 8.6.4.1, NOTE 2 */ + /* Fall through */ + case ASN_OSUBV_STR: + default: + if(sel) { + unsigned level = sel->cont_level; + if(level < td->all_tags_count) { + expected_tag = td->all_tags[level]; + break; + } else if(td->all_tags_count) { + expected_tag = td->all_tags + [td->all_tags_count - 1]; + break; + } + /* else, Fall through */ + } + /* Fall through */ + case ASN_OSUBV_ANY: + expected_tag = tlv_tag; + break; + } + + if(tlv_tag != expected_tag) { + char buf[2][32]; + ber_tlv_tag_snprint(tlv_tag, + buf[0], sizeof(buf[0])); + ber_tlv_tag_snprint(td->tags[td->tags_count-1], + buf[1], sizeof(buf[1])); + ASN_DEBUG("Tag does not match expectation: %s != %s", + buf[0], buf[1]); + RETURN(RC_FAIL); + } + + tlvl = tl + ll; /* Combined length of T and L encoding */ + if((tlv_len + tlvl) < 0) { + /* tlv_len value is too big */ + ASN_DEBUG("TLV encoding + length (%ld) is too big", + (long)tlv_len); + RETURN(RC_FAIL); + } + + /* + * Append a new expectation. + */ + sel = OS__add_stack_el(stck); + if(!sel) RETURN(RC_FAIL); + + sel->tag = tlv_tag; + + sel->want_nulls = (tlv_len==-1); + if(sel->prev && sel->prev->left != -1) { + /* Check that the parent frame is big enough */ + if(sel->prev->left < tlvl + (tlv_len==-1?0:tlv_len)) + RETURN(RC_FAIL); + if(tlv_len == -1) + sel->left = sel->prev->left - tlvl; + else + sel->left = tlv_len; + } else { + sel->left = tlv_len; + } + if(type_variant == ASN_OSUBV_ANY + && (tag_mode != 1 || sel->cont_level)) + APPEND(buf_ptr, tlvl); + sel->got += tlvl; + ADVANCE(tlvl); + + ASN_DEBUG("+EXPECT2 got=%ld left=%ld, wn=%d, clvl=%u", + (long)sel->got, (long)sel->left, + sel->want_nulls, sel->cont_level); + + } while(tlv_constr); + if(sel == NULL) { + /* Finished operation, "phase out" */ + ASN_DEBUG("Phase out"); + _CH_PHASE(ctx, +3); + break; + } + + NEXT_PHASE(ctx); + /* Fall through */ + case 2: + stck = (struct _stack *)ctx->ptr; + sel = stck->cur_ptr; + ASN_DEBUG("Phase 2: Need %ld bytes, size=%ld, alrg=%ld, wn=%d", + (long)sel->left, (long)size, (long)sel->got, + sel->want_nulls); + { + ber_tlv_len_t len; + + assert(sel->left >= 0); + + len = ((ber_tlv_len_t)size < sel->left) + ? (ber_tlv_len_t)size : sel->left; + if(len > 0) { + if(type_variant == ASN_OSUBV_BIT + && sel->bits_chopped == 0) { + /* Put the unused-bits-octet away */ + st->bits_unused = *(const uint8_t *)buf_ptr; + APPEND(((const char *)buf_ptr+1), (len - 1)); + sel->bits_chopped = 1; + } else { + APPEND(buf_ptr, len); + } + ADVANCE(len); + sel->left -= len; + sel->got += len; + } + + if(sel->left) { + ASN_DEBUG("OS left %ld, size = %ld, wn=%d\n", + (long)sel->left, (long)size, sel->want_nulls); + RETURN(RC_WMORE); + } + + PREV_PHASE(ctx); + goto phase1; + } + break; + case 3: + phase3: + /* + * Primitive form, no stack required. + */ + assert(ctx->left >= 0); + + if(size < (size_t)ctx->left) { + if(!size) RETURN(RC_WMORE); + if(type_variant == ASN_OSUBV_BIT && !ctx->context) { + st->bits_unused = *(const uint8_t *)buf_ptr; + ctx->left--; + ADVANCE(1); + } + APPEND(buf_ptr, size); + assert(ctx->context > 0); + ctx->left -= size; + ADVANCE(size); + RETURN(RC_WMORE); + } else { + if(type_variant == ASN_OSUBV_BIT + && !ctx->context && ctx->left) { + st->bits_unused = *(const uint8_t *)buf_ptr; + ctx->left--; + ADVANCE(1); + } + APPEND(buf_ptr, ctx->left); + ADVANCE(ctx->left); + ctx->left = 0; + + NEXT_PHASE(ctx); + } + break; + } + + if(sel) { + ASN_DEBUG("3sel p=%p, wn=%d, l=%ld, g=%ld, size=%ld", + (void *)sel->prev, sel->want_nulls, + (long)sel->left, (long)sel->got, (long)size); + if(sel->prev || sel->want_nulls > 1 || sel->left > 0) { + RETURN(RC_WMORE); + } + } + + /* + * BIT STRING-specific processing. + */ + if(type_variant == ASN_OSUBV_BIT) { + if(st->size) { + if(st->bits_unused < 0 || st->bits_unused > 7) { + RETURN(RC_FAIL); + } + /* Finalize BIT STRING: zero out unused bits. */ + st->buf[st->size-1] &= 0xff << st->bits_unused; + } else { + if(st->bits_unused) { + RETURN(RC_FAIL); + } + } + } + + ASN_DEBUG("Took %ld bytes to encode %s: [%s]:%ld", + (long)consumed_myself, td->name, + (type_variant == ASN_OSUBV_STR) ? (char *)st->buf : "", + (long)st->size); + + + RETURN(RC_OK); +} + +/* + * Encode OCTET STRING type using DER. + */ +asn_enc_rval_t +OCTET_STRING_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, + int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_enc_rval_t er = { 0, 0, 0 }; + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + enum asn_OS_Subvariant type_variant = specs->subvariant; + int fix_last_byte = 0; + + ASN_DEBUG("%s %s as OCTET STRING", + cb?"Estimating":"Encoding", td->name); + + /* + * Write tags. + */ + if(type_variant != ASN_OSUBV_ANY || tag_mode == 1) { + er.encoded = der_write_tags(td, + (type_variant == ASN_OSUBV_BIT) + st->size, + tag_mode, type_variant == ASN_OSUBV_ANY, tag, + cb, app_key); + if(er.encoded == -1) { + er.failed_type = td; + er.structure_ptr = sptr; + return er; + } + } else { + /* Disallow: [] IMPLICIT ANY */ + assert(type_variant != ASN_OSUBV_ANY || tag_mode != -1); + er.encoded = 0; + } + + if(!cb) { + er.encoded += (type_variant == ASN_OSUBV_BIT) + st->size; + ASN__ENCODED_OK(er); + } + + /* + * Prepare to deal with the last octet of BIT STRING. + */ + if(type_variant == ASN_OSUBV_BIT) { + uint8_t b = st->bits_unused & 0x07; + if(b && st->size) fix_last_byte = 1; + ASN__CALLBACK(&b, 1); + } + + /* Invoke callback for the main part of the buffer */ + ASN__CALLBACK(st->buf, st->size - fix_last_byte); + + /* The last octet should be stripped off the unused bits */ + if(fix_last_byte) { + uint8_t b = st->buf[st->size-1] & (0xff << st->bits_unused); + ASN__CALLBACK(&b, 1); + } + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} diff --git a/e2sim/asn1c/OCTET_STRING_jer.c b/e2sim/asn1c/OCTET_STRING_jer.c new file mode 100644 index 0000000..19b4fc3 --- /dev/null +++ b/e2sim/asn1c/OCTET_STRING_jer.c @@ -0,0 +1,151 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include /* for .bits_unused member */ + +asn_enc_rval_t +OCTET_STRING_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum jer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const char * const h2c = "0123456789ABCDEF"; + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + asn_enc_rval_t er = { 0, 0, 0 }; + char scratch[16 * 3 + 4]; + char *p = scratch; + uint8_t *buf; + uint8_t *end; + size_t i; + + if(!st || (!st->buf && st->size)) + ASN__ENCODE_FAILED; + + er.encoded = 0; + + /* + * Dump the contents of the buffer in hexadecimal. + */ + buf = st->buf; + end = buf + st->size; + for(i = 0; buf < end; buf++, i++) { + if(!(i % 16) && (i || st->size > 16)) { + ASN__CALLBACK(scratch, p-scratch); + p = scratch; + ASN__TEXT_INDENT(1, ilevel); + } + *p++ = h2c[(*buf >> 4) & 0x0F]; + *p++ = h2c[*buf & 0x0F]; + *p++ = 0x20; + } + if(p - scratch) { + p--; /* Remove the tail space */ + ASN__CALLBACK3("\"", 1, scratch, p-scratch, "\"", 1); /* Dump the rest */ + if(st->size > 16) + ASN__TEXT_INDENT(1, ilevel-1); + } + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} + +static const struct OCTET_STRING__jer_escape_table_s { + const char *string; + int size; +} OCTET_STRING__jer_escape_table[] = { +#define OSXET(s) { s, sizeof(s) - 1 } + OSXET("\074\156\165\154\057\076"), /* */ + OSXET("\074\163\157\150\057\076"), /* */ + OSXET("\074\163\164\170\057\076"), /* */ + OSXET("\074\145\164\170\057\076"), /* */ + OSXET("\074\145\157\164\057\076"), /* */ + OSXET("\074\145\156\161\057\076"), /* */ + OSXET("\074\141\143\153\057\076"), /* */ + OSXET("\074\142\145\154\057\076"), /* */ + OSXET("\074\142\163\057\076"), /* */ + OSXET("\011"), /* \t */ + OSXET("\012"), /* \n */ + OSXET("\074\166\164\057\076"), /* */ + OSXET("\074\146\146\057\076"), /* */ + OSXET("\015"), /* \r */ + OSXET("\074\163\157\057\076"), /* */ + OSXET("\074\163\151\057\076"), /* */ + OSXET("\074\144\154\145\057\076"), /* */ + OSXET("\074\144\143\061\057\076"), /* */ + OSXET("\074\144\143\062\057\076"), /* */ + OSXET("\074\144\143\063\057\076"), /* */ + OSXET("\074\144\143\064\057\076"), /* */ + OSXET("\074\156\141\153\057\076"), /* */ + OSXET("\074\163\171\156\057\076"), /* */ + OSXET("\074\145\164\142\057\076"), /* */ + OSXET("\074\143\141\156\057\076"), /* */ + OSXET("\074\145\155\057\076"), /* */ + OSXET("\074\163\165\142\057\076"), /* */ + OSXET("\074\145\163\143\057\076"), /* */ + OSXET("\074\151\163\064\057\076"), /* */ + OSXET("\074\151\163\063\057\076"), /* */ + OSXET("\074\151\163\062\057\076"), /* */ + OSXET("\074\151\163\061\057\076"), /* */ + { 0, 0 }, /* " " */ + { 0, 0 }, /* ! */ + { 0, 0 }, /* \" */ + { 0, 0 }, /* # */ + { 0, 0 }, /* $ */ + { 0, 0 }, /* % */ + OSXET("\046\141\155\160\073"), /* & */ + { 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},{0,0}, /* 01234567 */ + {0,0},{0,0},{0,0},{0,0}, /* 89:; */ + OSXET("\046\154\164\073"), /* < */ + { 0, 0 }, /* = */ + OSXET("\046\147\164\073"), /* > */ +}; + +asn_enc_rval_t +OCTET_STRING_encode_jer_utf8(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum jer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + asn_enc_rval_t er = { 0, 0, 0 }; + uint8_t *buf, *end; + uint8_t *ss; /* Sequence start */ + ssize_t encoded_len = 0; + + (void)ilevel; /* Unused argument */ + (void)flags; /* Unused argument */ + + if(!st || (!st->buf && st->size)) + ASN__ENCODE_FAILED; + + buf = st->buf; + end = buf + st->size; + for(ss = buf; buf < end; buf++) { + unsigned int ch = *buf; + int s_len; /* Special encoding sequence length */ + + /* + * Escape certain characters: X.680/11.15 + */ + if(ch < sizeof(OCTET_STRING__jer_escape_table) + / sizeof(OCTET_STRING__jer_escape_table[0]) + && (s_len = OCTET_STRING__jer_escape_table[ch].size)) { + if(((buf - ss) && cb(ss, buf - ss, app_key) < 0) + || cb(OCTET_STRING__jer_escape_table[ch].string, s_len, app_key) < 0) + ASN__ENCODE_FAILED; + encoded_len += (buf - ss) + s_len; + ss = buf + 1; + } + } + + encoded_len += (buf - ss); + if((buf - ss) && cb(ss, buf - ss, app_key) < 0) + ASN__ENCODE_FAILED; + + er.encoded = encoded_len; + ASN__ENCODED_OK(er); +} + diff --git a/e2sim/asn1c/OCTET_STRING_print.c b/e2sim/asn1c/OCTET_STRING_print.c new file mode 100644 index 0000000..6daa33e --- /dev/null +++ b/e2sim/asn1c/OCTET_STRING_print.c @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +int +OCTET_STRING_print(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + const char * const h2c = "0123456789ABCDEF"; + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + char scratch[16 * 3 + 4]; + char *p = scratch; + uint8_t *buf; + uint8_t *end; + size_t i; + + (void)td; /* Unused argument */ + + if(!st || (!st->buf && st->size)) + return (cb("", 8, app_key) < 0) ? -1 : 0; + + /* + * Dump the contents of the buffer in hexadecimal. + */ + buf = st->buf; + end = (buf == NULL)? NULL : buf + st->size; + for(i = 0; buf < end; buf++, i++) { + if(!(i % 16) && (i || st->size > 16)) { + if(cb(scratch, p - scratch, app_key) < 0) + return -1; + _i_INDENT(1); + p = scratch; + } + *p++ = h2c[(*buf >> 4) & 0x0F]; + *p++ = h2c[*buf & 0x0F]; + *p++ = 0x20; + } + + if(p > scratch) { + p--; /* Remove the tail space */ + if(cb(scratch, p - scratch, app_key) < 0) + return -1; + } + + return 0; +} + +int +OCTET_STRING_print_utf8(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, asn_app_consume_bytes_f *cb, + void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + + (void)td; /* Unused argument */ + (void)ilevel; /* Unused argument */ + + if(st && (st->buf || !st->size)) { + return (cb(st->buf, st->size, app_key) < 0) ? -1 : 0; + } else { + return (cb("", 8, app_key) < 0) ? -1 : 0; + } +} diff --git a/e2sim/asn1c/OCTET_STRING_rfill.c b/e2sim/asn1c/OCTET_STRING_rfill.c new file mode 100644 index 0000000..5c8b064 --- /dev/null +++ b/e2sim/asn1c/OCTET_STRING_rfill.c @@ -0,0 +1,209 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * Biased function for randomizing character values around their limits. + */ +static uint32_t +OCTET_STRING__random_char(unsigned long lb, unsigned long ub) { + assert(lb <= ub); + switch(asn_random_between(0, 16)) { + case 0: + if(lb < ub) return lb + 1; + /* Fall through */ + case 1: + return lb; + case 2: + if(lb < ub) return ub - 1; + /* Fall through */ + case 3: + return ub; + default: + return asn_random_between(lb, ub); + } +} + +asn_random_fill_result_t +OCTET_STRING_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + unsigned int unit_bytes = 1; + unsigned long clb = 0; /* Lower bound on char */ + unsigned long cub = 255; /* Higher bound on char value */ + uint8_t *buf; + uint8_t *bend; + uint8_t *b; + size_t rnd_len; + OCTET_STRING_t *st; + + if(max_length == 0 && !*sptr) return result_skipped; + + switch(specs->subvariant) { + default: + case ASN_OSUBV_ANY: + return result_failed; + case ASN_OSUBV_BIT: + /* Handled by BIT_STRING itself. */ + return result_failed; + case ASN_OSUBV_STR: + unit_bytes = 1; + clb = 0; + cub = 255; + break; + case ASN_OSUBV_U16: + unit_bytes = 2; + clb = 0; + cub = 65535; + break; + case ASN_OSUBV_U32: + unit_bytes = 4; + clb = 0; + cub = 0x10FFFF; + break; + } + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + if(!constraints || !constraints->per_constraints) + constraints = &td->encoding_constraints; + if(constraints->per_constraints) { + const asn_per_constraint_t *pc = &constraints->per_constraints->value; + if(pc->flags & APC_SEMI_CONSTRAINED) { + clb = pc->lower_bound; + } else if(pc->flags & APC_CONSTRAINED) { + clb = pc->lower_bound; + cub = pc->upper_bound; + } + } +#else + if(!constraints) constraints = &td->encoding_constraints; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + + rnd_len = + OCTET_STRING_random_length_constrained(td, constraints, max_length); + + buf = CALLOC(unit_bytes, rnd_len + 1); + if(!buf) return result_failed; + + bend = &buf[unit_bytes * rnd_len]; + + switch(unit_bytes) { + case 1: + for(b = buf; b < bend; b += unit_bytes) { + *(uint8_t *)b = OCTET_STRING__random_char(clb, cub); + } + *(uint8_t *)b = 0; + break; + case 2: + for(b = buf; b < bend; b += unit_bytes) { + uint32_t code = OCTET_STRING__random_char(clb, cub); + b[0] = code >> 8; + b[1] = code; + } + *(uint16_t *)b = 0; + break; + case 4: + for(b = buf; b < bend; b += unit_bytes) { + uint32_t code = OCTET_STRING__random_char(clb, cub); + b[0] = code >> 24; + b[1] = code >> 16; + b[2] = code >> 8; + b[3] = code; + } + *(uint32_t *)b = 0; + break; + } + + if(*sptr) { + st = *sptr; + FREEMEM(st->buf); + } else { + st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) { + FREEMEM(buf); + return result_failed; + } + } + + st->buf = buf; + st->size = unit_bytes * rnd_len; + + result_ok.length = st->size; + return result_ok; +} + +size_t +OCTET_STRING_random_length_constrained( + const asn_TYPE_descriptor_t *td, + const asn_encoding_constraints_t *constraints, size_t max_length) { + const unsigned lengths[] = {0, 1, 2, 3, 4, 8, + 126, 127, 128, 16383, 16384, 16385, + 65534, 65535, 65536, 65537}; + size_t rnd_len; + + /* Figure out how far we should go */ + rnd_len = lengths[asn_random_between( + 0, sizeof(lengths) / sizeof(lengths[0]) - 1)]; + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + if(!constraints || !constraints->per_constraints) + constraints = &td->encoding_constraints; + if(constraints->per_constraints) { + const asn_per_constraint_t *pc = &constraints->per_constraints->size; + if(pc->flags & APC_CONSTRAINED) { + long suggested_upper_bound = pc->upper_bound < (ssize_t)max_length + ? pc->upper_bound + : (ssize_t)max_length; + if(max_length <= (size_t)pc->lower_bound) { + return pc->lower_bound; + } + if(pc->flags & APC_EXTENSIBLE) { + switch(asn_random_between(0, 5)) { + case 0: + if(pc->lower_bound > 0) { + rnd_len = pc->lower_bound - 1; + break; + } + /* Fall through */ + case 1: + rnd_len = pc->upper_bound + 1; + break; + case 2: + /* Keep rnd_len from the table */ + if(rnd_len <= max_length) { + break; + } + /* Fall through */ + default: + rnd_len = asn_random_between(pc->lower_bound, + suggested_upper_bound); + } + } else { + rnd_len = + asn_random_between(pc->lower_bound, suggested_upper_bound); + } + } else { + rnd_len = asn_random_between(0, max_length); + } + } else { +#else + if(!constraints) constraints = &td->encoding_constraints; + { +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + if(rnd_len > max_length) { + rnd_len = asn_random_between(0, max_length); + } + } + + return rnd_len; +} diff --git a/e2sim/asn1c/OCTET_STRING_uper.c b/e2sim/asn1c/OCTET_STRING_uper.c new file mode 100644 index 0000000..80130ca --- /dev/null +++ b/e2sim/asn1c/OCTET_STRING_uper.c @@ -0,0 +1,319 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include /* for .bits_unused member */ + +#undef RETURN +#define RETURN(_code) do {\ + asn_dec_rval_t tmprval;\ + tmprval.code = _code;\ + tmprval.consumed = consumed_myself;\ + return tmprval;\ + } while(0) + +static asn_per_constraints_t asn_DEF_OCTET_STRING_constraints = { + { APC_CONSTRAINED, 8, 8, 0, 255 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, + 0, 0 +}; + +asn_dec_rval_t +OCTET_STRING_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + const asn_per_constraints_t *pc = + constraints ? constraints : td->encoding_constraints.per_constraints; + const asn_per_constraint_t *cval; + const asn_per_constraint_t *csiz; + asn_dec_rval_t rval = { RC_OK, 0 }; + OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr; + ssize_t consumed_myself = 0; + int repeat; + enum { + OS__BPC_CHAR = 1, + OS__BPC_U16 = 2, + OS__BPC_U32 = 4 + } bpc; /* Bytes per character */ + unsigned int unit_bits; + unsigned int canonical_unit_bits; + + (void)opt_codec_ctx; + + if(pc) { + cval = &pc->value; + csiz = &pc->size; + } else { + cval = &asn_DEF_OCTET_STRING_constraints.value; + csiz = &asn_DEF_OCTET_STRING_constraints.size; + } + + switch(specs->subvariant) { + default: + case ASN_OSUBV_ANY: + case ASN_OSUBV_BIT: + ASN_DEBUG("Unrecognized subvariant %d", specs->subvariant); + RETURN(RC_FAIL); + break; + case ASN_OSUBV_STR: + canonical_unit_bits = unit_bits = 8; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_CHAR; + break; + case ASN_OSUBV_U16: + canonical_unit_bits = unit_bits = 16; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U16; + break; + case ASN_OSUBV_U32: + canonical_unit_bits = unit_bits = 32; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U32; + break; + } + + /* + * Allocate the string. + */ + if(!st) { + st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) RETURN(RC_FAIL); + } + + ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d", + csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", + csiz->lower_bound, csiz->upper_bound, csiz->effective_bits); + + if(csiz->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) RETURN(RC_WMORE); + if(inext) { + csiz = &asn_DEF_OCTET_STRING_constraints.size; + unit_bits = canonical_unit_bits; + } + } + + if(csiz->effective_bits >= 0) { + FREEMEM(st->buf); + if(bpc) { + st->size = csiz->upper_bound * bpc; + } else { + st->size = (csiz->upper_bound + 7) >> 3; + } + st->buf = (uint8_t *)MALLOC(st->size + 1); + if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } + } + + /* X.691, #16.5: zero-length encoding */ + /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ + /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ + if(csiz->effective_bits == 0) { + int ret; + if(bpc) { + ASN_DEBUG("Encoding OCTET STRING size %ld", + csiz->upper_bound); + ret = OCTET_STRING_per_get_characters(pd, st->buf, + csiz->upper_bound, + bpc, unit_bits, + cval->lower_bound, + cval->upper_bound, + pc); + if(ret > 0) RETURN(RC_FAIL); + } else { + ASN_DEBUG("Encoding BIT STRING size %ld", + csiz->upper_bound); + ret = per_get_many_bits(pd, st->buf, 0, + unit_bits * csiz->upper_bound); + } + if(ret < 0) RETURN(RC_WMORE); + consumed_myself += unit_bits * csiz->upper_bound; + st->buf[st->size] = 0; + RETURN(RC_OK); + } + + st->size = 0; + do { + ssize_t raw_len; + ssize_t len_bytes; + void *p; + int ret; + + /* Get the PER length */ + raw_len = uper_get_length(pd, csiz->effective_bits, csiz->lower_bound, + &repeat); + if(raw_len < 0) RETURN(RC_WMORE); + if(raw_len == 0 && st->buf) break; + + ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", + (long)csiz->effective_bits, (long)raw_len, + repeat ? "repeat" : "once", td->name); + len_bytes = raw_len * bpc; + p = REALLOC(st->buf, st->size + len_bytes + 1); + if(!p) RETURN(RC_FAIL); + st->buf = (uint8_t *)p; + + ret = OCTET_STRING_per_get_characters(pd, &st->buf[st->size], raw_len, + bpc, unit_bits, cval->lower_bound, + cval->upper_bound, pc); + if(ret > 0) RETURN(RC_FAIL); + if(ret < 0) RETURN(RC_WMORE); + st->size += len_bytes; + } while(repeat); + st->buf[st->size] = 0; /* nul-terminate */ + + return rval; +} + +asn_enc_rval_t +OCTET_STRING_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + const asn_per_constraints_t *pc = constraints + ? constraints + : td->encoding_constraints.per_constraints; + const asn_per_constraint_t *cval; + const asn_per_constraint_t *csiz; + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + asn_enc_rval_t er = { 0, 0, 0 }; + int inext = 0; /* Lies not within extension root */ + unsigned int unit_bits; + unsigned int canonical_unit_bits; + size_t size_in_units; + const uint8_t *buf; + int ret; + enum { + OS__BPC_CHAR = 1, + OS__BPC_U16 = 2, + OS__BPC_U32 = 4 + } bpc; /* Bytes per character */ + int ct_extensible; + + if(!st || (!st->buf && st->size)) + ASN__ENCODE_FAILED; + + if(pc) { + cval = &pc->value; + csiz = &pc->size; + } else { + cval = &asn_DEF_OCTET_STRING_constraints.value; + csiz = &asn_DEF_OCTET_STRING_constraints.size; + } + ct_extensible = csiz->flags & APC_EXTENSIBLE; + + switch(specs->subvariant) { + default: + case ASN_OSUBV_ANY: + case ASN_OSUBV_BIT: + ASN__ENCODE_FAILED; + case ASN_OSUBV_STR: + canonical_unit_bits = unit_bits = 8; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_CHAR; + size_in_units = st->size; + break; + case ASN_OSUBV_U16: + canonical_unit_bits = unit_bits = 16; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U16; + size_in_units = st->size >> 1; + if(st->size & 1) { + ASN_DEBUG("%s string size is not modulo 2", td->name); + ASN__ENCODE_FAILED; + } + break; + case ASN_OSUBV_U32: + canonical_unit_bits = unit_bits = 32; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U32; + size_in_units = st->size >> 2; + if(st->size & 3) { + ASN_DEBUG("%s string size is not modulo 4", td->name); + ASN__ENCODE_FAILED; + } + break; + } + + ASN_DEBUG("Encoding %s into %" ASN_PRI_SIZE " units of %d bits" + " (%ld..%ld, effective %d)%s", + td->name, size_in_units, unit_bits, + csiz->lower_bound, csiz->upper_bound, + csiz->effective_bits, ct_extensible ? " EXT" : ""); + + /* Figure out whether size lies within PER visible constraint */ + + if(csiz->effective_bits >= 0) { + if((ssize_t)size_in_units < csiz->lower_bound + || (ssize_t)size_in_units > csiz->upper_bound) { + if(ct_extensible) { + csiz = &asn_DEF_OCTET_STRING_constraints.size; + unit_bits = canonical_unit_bits; + inext = 1; + } else { + ASN__ENCODE_FAILED; + } + } + } else { + inext = 0; + } + + if(ct_extensible) { + /* Declare whether length is [not] within extension root */ + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + } + + if(csiz->effective_bits >= 0 && !inext) { + ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes (%ld), length in %d bits", st->size, + size_in_units - csiz->lower_bound, csiz->effective_bits); + ret = per_put_few_bits(po, size_in_units - csiz->lower_bound, + csiz->effective_bits); + if(ret) ASN__ENCODE_FAILED; + ret = OCTET_STRING_per_put_characters(po, st->buf, size_in_units, bpc, + unit_bits, cval->lower_bound, + cval->upper_bound, pc); + if(ret) ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } + + ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes", st->size); + + buf = st->buf; + ASN_DEBUG("Encoding %" ASN_PRI_SIZE " in units", size_in_units); + do { + int need_eom = 0; + ssize_t may_save = uper_put_length(po, size_in_units, &need_eom); + if(may_save < 0) ASN__ENCODE_FAILED; + + ASN_DEBUG("Encoding %" ASN_PRI_SSIZE " of %" ASN_PRI_SIZE "%s", may_save, size_in_units, + need_eom ? ",+EOM" : ""); + + ret = OCTET_STRING_per_put_characters(po, buf, may_save, bpc, unit_bits, + cval->lower_bound, + cval->upper_bound, pc); + if(ret) ASN__ENCODE_FAILED; + + buf += may_save * bpc; + size_in_units -= may_save; + assert(!(may_save & 0x07) || !size_in_units); + if(need_eom && uper_put_length(po, 0, 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + } while(size_in_units); + + ASN__ENCODED_OK(er); +} diff --git a/e2sim/asn1c/OCTET_STRING_xer.c b/e2sim/asn1c/OCTET_STRING_xer.c new file mode 100644 index 0000000..490f362 --- /dev/null +++ b/e2sim/asn1c/OCTET_STRING_xer.c @@ -0,0 +1,627 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include /* for .bits_unused member */ + +asn_enc_rval_t +OCTET_STRING_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const char * const h2c = "0123456789ABCDEF"; + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + asn_enc_rval_t er = { 0, 0, 0 }; + char scratch[16 * 3 + 4]; + char *p = scratch; + uint8_t *buf; + uint8_t *end; + size_t i; + + if(!st || (!st->buf && st->size)) + ASN__ENCODE_FAILED; + + er.encoded = 0; + + /* + * Dump the contents of the buffer in hexadecimal. + */ + buf = st->buf; + end = buf + st->size; + if(flags & XER_F_CANONICAL) { + char *scend = scratch + (sizeof(scratch) - 2); + for(; buf < end; buf++) { + if(p >= scend) { + ASN__CALLBACK(scratch, p - scratch); + p = scratch; + } + *p++ = h2c[(*buf >> 4) & 0x0F]; + *p++ = h2c[*buf & 0x0F]; + } + + ASN__CALLBACK(scratch, p-scratch); /* Dump the rest */ + } else { + for(i = 0; buf < end; buf++, i++) { + if(!(i % 16) && (i || st->size > 16)) { + ASN__CALLBACK(scratch, p-scratch); + p = scratch; + ASN__TEXT_INDENT(1, ilevel); + } + *p++ = h2c[(*buf >> 4) & 0x0F]; + *p++ = h2c[*buf & 0x0F]; + *p++ = 0x20; + } + if(p - scratch) { + p--; /* Remove the tail space */ + ASN__CALLBACK(scratch, p-scratch); /* Dump the rest */ + if(st->size > 16) + ASN__TEXT_INDENT(1, ilevel-1); + } + } + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} + +static const struct OCTET_STRING__xer_escape_table_s { + const char *string; + int size; +} OCTET_STRING__xer_escape_table[] = { +#define OSXET(s) { s, sizeof(s) - 1 } + OSXET("\074\156\165\154\057\076"), /* */ + OSXET("\074\163\157\150\057\076"), /* */ + OSXET("\074\163\164\170\057\076"), /* */ + OSXET("\074\145\164\170\057\076"), /* */ + OSXET("\074\145\157\164\057\076"), /* */ + OSXET("\074\145\156\161\057\076"), /* */ + OSXET("\074\141\143\153\057\076"), /* */ + OSXET("\074\142\145\154\057\076"), /* */ + OSXET("\074\142\163\057\076"), /* */ + OSXET("\011"), /* \t */ + OSXET("\012"), /* \n */ + OSXET("\074\166\164\057\076"), /* */ + OSXET("\074\146\146\057\076"), /* */ + OSXET("\015"), /* \r */ + OSXET("\074\163\157\057\076"), /* */ + OSXET("\074\163\151\057\076"), /* */ + OSXET("\074\144\154\145\057\076"), /* */ + OSXET("\074\144\143\061\057\076"), /* */ + OSXET("\074\144\143\062\057\076"), /* */ + OSXET("\074\144\143\063\057\076"), /* */ + OSXET("\074\144\143\064\057\076"), /* */ + OSXET("\074\156\141\153\057\076"), /* */ + OSXET("\074\163\171\156\057\076"), /* */ + OSXET("\074\145\164\142\057\076"), /* */ + OSXET("\074\143\141\156\057\076"), /* */ + OSXET("\074\145\155\057\076"), /* */ + OSXET("\074\163\165\142\057\076"), /* */ + OSXET("\074\145\163\143\057\076"), /* */ + OSXET("\074\151\163\064\057\076"), /* */ + OSXET("\074\151\163\063\057\076"), /* */ + OSXET("\074\151\163\062\057\076"), /* */ + OSXET("\074\151\163\061\057\076"), /* */ + { 0, 0 }, /* " " */ + { 0, 0 }, /* ! */ + { 0, 0 }, /* \" */ + { 0, 0 }, /* # */ + { 0, 0 }, /* $ */ + { 0, 0 }, /* % */ + OSXET("\046\141\155\160\073"), /* & */ + { 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},{0,0}, /* 01234567 */ + {0,0},{0,0},{0,0},{0,0}, /* 89:; */ + OSXET("\046\154\164\073"), /* < */ + { 0, 0 }, /* = */ + OSXET("\046\147\164\073"), /* > */ +}; + +static int +OS__check_escaped_control_char(const void *buf, int size) { + size_t i; + /* + * Inefficient algorithm which translates the escape sequences + * defined above into characters. Returns -1 if not found. + * TODO: replace by a faster algorithm (bsearch(), hash or + * nested table lookups). + */ + for(i = 0; i < 32 /* Don't spend time on the bottom half */; i++) { + const struct OCTET_STRING__xer_escape_table_s *el; + el = &OCTET_STRING__xer_escape_table[i]; + if(el->size == size && memcmp(buf, el->string, size) == 0) + return i; + } + return -1; +} + +static int +OCTET_STRING__handle_control_chars(void *struct_ptr, const void *chunk_buf, size_t chunk_size) { + /* + * This might be one of the escape sequences + * for control characters. Check it out. + * #11.15.5 + */ + int control_char = OS__check_escaped_control_char(chunk_buf,chunk_size); + if(control_char >= 0) { + OCTET_STRING_t *st = (OCTET_STRING_t *)struct_ptr; + void *p = REALLOC(st->buf, st->size + 2); + if(p) { + st->buf = (uint8_t *)p; + st->buf[st->size++] = control_char; + st->buf[st->size] = '\0'; /* nul-termination */ + return 0; + } + } + + return -1; /* No, it's not */ +} + +asn_enc_rval_t +OCTET_STRING_encode_xer_utf8(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + asn_enc_rval_t er = { 0, 0, 0 }; + uint8_t *buf, *end; + uint8_t *ss; /* Sequence start */ + ssize_t encoded_len = 0; + + (void)ilevel; /* Unused argument */ + (void)flags; /* Unused argument */ + + if(!st || (!st->buf && st->size)) + ASN__ENCODE_FAILED; + + buf = st->buf; + end = buf + st->size; + for(ss = buf; buf < end; buf++) { + unsigned int ch = *buf; + int s_len; /* Special encoding sequence length */ + + /* + * Escape certain characters: X.680/11.15 + */ + if(ch < sizeof(OCTET_STRING__xer_escape_table) + / sizeof(OCTET_STRING__xer_escape_table[0]) + && (s_len = OCTET_STRING__xer_escape_table[ch].size)) { + if(((buf - ss) && cb(ss, buf - ss, app_key) < 0) + || cb(OCTET_STRING__xer_escape_table[ch].string, s_len, app_key) < 0) + ASN__ENCODE_FAILED; + encoded_len += (buf - ss) + s_len; + ss = buf + 1; + } + } + + encoded_len += (buf - ss); + if((buf - ss) && cb(ss, buf - ss, app_key) < 0) + ASN__ENCODE_FAILED; + + er.encoded = encoded_len; + ASN__ENCODED_OK(er); +} + +/* + * Convert from hexadecimal format (cstring): "AB CD EF" + */ +static ssize_t OCTET_STRING__convert_hexadecimal(void *sptr, const void *chunk_buf, size_t chunk_size, int have_more) { + OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; + const char *chunk_stop = (const char *)chunk_buf; + const char *p = chunk_stop; + const char *pend = p + chunk_size; + unsigned int clv = 0; + int half = 0; /* Half bit */ + uint8_t *buf; + + /* Reallocate buffer according to high cap estimation */ + size_t new_size = st->size + (chunk_size + 1) / 2; + void *nptr = REALLOC(st->buf, new_size + 1); + if(!nptr) return -1; + st->buf = (uint8_t *)nptr; + buf = st->buf + st->size; + + /* + * If something like " a b c " appears here, the " a b":3 will be + * converted, and the rest skipped. That is, unless buf_size is greater + * than chunk_size, then it'll be equivalent to "ABC0". + */ + for(; p < pend; p++) { + int ch = *(const unsigned char *)p; + switch(ch) { + case 0x09: case 0x0a: case 0x0c: case 0x0d: + case 0x20: + /* Ignore whitespace */ + continue; + case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: /*01234*/ + case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: /*56789*/ + clv = (clv << 4) + (ch - 0x30); + break; + case 0x41: case 0x42: case 0x43: /* ABC */ + case 0x44: case 0x45: case 0x46: /* DEF */ + clv = (clv << 4) + (ch - 0x41 + 10); + break; + case 0x61: case 0x62: case 0x63: /* abc */ + case 0x64: case 0x65: case 0x66: /* def */ + clv = (clv << 4) + (ch - 0x61 + 10); + break; + default: + *buf = 0; /* JIC */ + return -1; + } + if(half++) { + half = 0; + *buf++ = clv; + chunk_stop = p + 1; + } + } + + /* + * Check partial decoding. + */ + if(half) { + if(have_more) { + /* + * Partial specification is fine, + * because no more more PXER_TEXT data is available. + */ + *buf++ = clv << 4; + chunk_stop = p; + } + } else { + chunk_stop = p; + } + + st->size = buf - st->buf; /* Adjust the buffer size */ + assert(st->size <= new_size); + st->buf[st->size] = 0; /* Courtesy termination */ + + return (chunk_stop - (const char *)chunk_buf); /* Converted size */ +} + +/* + * Convert from binary format: "00101011101" + */ +static ssize_t OCTET_STRING__convert_binary(void *sptr, const void *chunk_buf, size_t chunk_size, int have_more) { + BIT_STRING_t *st = (BIT_STRING_t *)sptr; + const char *p = (const char *)chunk_buf; + const char *pend = (p == NULL)? NULL : p + chunk_size; + int bits_unused = st->bits_unused & 0x7; + uint8_t *buf; + + /* Reallocate buffer according to high cap estimation */ + size_t new_size = st->size + (chunk_size + 7) / 8; + void *nptr = REALLOC(st->buf, new_size + 1); + if(!nptr) return -1; + st->buf = (uint8_t *)nptr; + buf = st->buf + st->size; + + (void)have_more; + + if(bits_unused == 0) + bits_unused = 8; + else if(st->size) + buf--; + + /* + * Convert series of 0 and 1 into the octet string. + */ + for(; p < pend; p++) { + int ch = *(const unsigned char *)p; + switch(ch) { + case 0x09: case 0x0a: case 0x0c: case 0x0d: + case 0x20: + /* Ignore whitespace */ + break; + case 0x30: + case 0x31: + if(bits_unused-- <= 0) { + *++buf = 0; /* Clean the cell */ + bits_unused = 7; + } + *buf |= (ch&1) << bits_unused; + break; + default: + st->bits_unused = bits_unused; + return -1; + } + } + + if(bits_unused == 8) { + st->size = buf - st->buf; + st->bits_unused = 0; + } else { + st->size = buf - st->buf + 1; + st->bits_unused = bits_unused; + } + + assert(st->size <= new_size); + st->buf[st->size] = 0; /* Courtesy termination */ + + return chunk_size; /* Converted in full */ +} + +/* + * Something like strtod(), but with stricter rules. + */ +static int +OS__strtoent(int base, const char *buf, const char *end, int32_t *ret_value) { + const int32_t last_unicode_codepoint = 0x10ffff; + int32_t val = 0; + const char *p; + + for(p = buf; p < end; p++) { + int ch = *p; + + switch(ch) { + case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: /*01234*/ + case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: /*56789*/ + val = val * base + (ch - 0x30); + break; + case 0x41: case 0x42: case 0x43: /* ABC */ + case 0x44: case 0x45: case 0x46: /* DEF */ + val = val * base + (ch - 0x41 + 10); + break; + case 0x61: case 0x62: case 0x63: /* abc */ + case 0x64: case 0x65: case 0x66: /* def */ + val = val * base + (ch - 0x61 + 10); + break; + case 0x3b: /* ';' */ + *ret_value = val; + return (p - buf) + 1; + default: + return -1; /* Character set error */ + } + + /* Value exceeds the Unicode range. */ + if(val > last_unicode_codepoint) { + return -1; + } + } + + *ret_value = -1; + return (p - buf); +} + +/* + * Convert from the plain UTF-8 format, expanding entity references: "2 < 3" + */ +static ssize_t +OCTET_STRING__convert_entrefs(void *sptr, const void *chunk_buf, + size_t chunk_size, int have_more) { + OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; + const char *p = (const char *)chunk_buf; + const char *pend = p + chunk_size; + uint8_t *buf; + + /* Reallocate buffer */ + size_t new_size = st->size + chunk_size; + void *nptr = REALLOC(st->buf, new_size + 1); + if(!nptr) return -1; + st->buf = (uint8_t *)nptr; + buf = st->buf + st->size; + + /* + * Convert series of 0 and 1 into the octet string. + */ + for(; p < pend; p++) { + int ch = *(const unsigned char *)p; + int len; /* Length of the rest of the chunk */ + + if(ch != 0x26 /* '&' */) { + *buf++ = ch; + continue; /* That was easy... */ + } + + /* + * Process entity reference. + */ + len = chunk_size - (p - (const char *)chunk_buf); + if(len == 1 /* "&" */) goto want_more; + if(p[1] == 0x23 /* '#' */) { + const char *pval; /* Pointer to start of digits */ + int32_t val = 0; /* Entity reference value */ + int base; + + if(len == 2 /* "&#" */) goto want_more; + if(p[2] == 0x78 /* 'x' */) + pval = p + 3, base = 16; + else + pval = p + 2, base = 10; + len = OS__strtoent(base, pval, p + len, &val); + if(len == -1) { + /* Invalid charset. Just copy verbatim. */ + *buf++ = ch; + continue; + } + if(!len || pval[len-1] != 0x3b) goto want_more; + assert(val > 0); + p += (pval - p) + len - 1; /* Advance past entref */ + + if(val < 0x80) { + *buf++ = (char)val; + } else if(val < 0x800) { + *buf++ = 0xc0 | ((val >> 6)); + *buf++ = 0x80 | ((val & 0x3f)); + } else if(val < 0x10000) { + *buf++ = 0xe0 | ((val >> 12)); + *buf++ = 0x80 | ((val >> 6) & 0x3f); + *buf++ = 0x80 | ((val & 0x3f)); + } else if(val < 0x200000) { + *buf++ = 0xf0 | ((val >> 18)); + *buf++ = 0x80 | ((val >> 12) & 0x3f); + *buf++ = 0x80 | ((val >> 6) & 0x3f); + *buf++ = 0x80 | ((val & 0x3f)); + } else if(val < 0x4000000) { + *buf++ = 0xf8 | ((val >> 24)); + *buf++ = 0x80 | ((val >> 18) & 0x3f); + *buf++ = 0x80 | ((val >> 12) & 0x3f); + *buf++ = 0x80 | ((val >> 6) & 0x3f); + *buf++ = 0x80 | ((val & 0x3f)); + } else { + *buf++ = 0xfc | ((val >> 30) & 0x1); + *buf++ = 0x80 | ((val >> 24) & 0x3f); + *buf++ = 0x80 | ((val >> 18) & 0x3f); + *buf++ = 0x80 | ((val >> 12) & 0x3f); + *buf++ = 0x80 | ((val >> 6) & 0x3f); + *buf++ = 0x80 | ((val & 0x3f)); + } + } else { + /* + * Ugly, limited parsing of & > < + */ + char *sc = (char *)memchr(p, 0x3b, len > 5 ? 5 : len); + if(!sc) goto want_more; + if((sc - p) == 4 + && p[1] == 0x61 /* 'a' */ + && p[2] == 0x6d /* 'm' */ + && p[3] == 0x70 /* 'p' */) { + *buf++ = 0x26; + p = sc; + continue; + } + if((sc - p) == 3) { + if(p[1] == 0x6c) { + *buf = 0x3c; /* '<' */ + } else if(p[1] == 0x67) { + *buf = 0x3e; /* '>' */ + } else { + /* Unsupported entity reference */ + *buf++ = ch; + continue; + } + if(p[2] != 0x74) { + /* Unsupported entity reference */ + *buf++ = ch; + continue; + } + buf++; + p = sc; + continue; + } + /* Unsupported entity reference */ + *buf++ = ch; + } + + continue; + want_more: + if(have_more) { + /* + * We know that no more data (of the same type) + * is coming. Copy the rest verbatim. + */ + *buf++ = ch; + continue; + } + chunk_size = (p - (const char *)chunk_buf); + /* Processing stalled: need more data */ + break; + } + + st->size = buf - st->buf; + assert(st->size <= new_size); + st->buf[st->size] = 0; /* Courtesy termination */ + + return chunk_size; /* Converted in full */ +} + +/* + * Decode OCTET STRING from the XML element's body. + */ +static asn_dec_rval_t +OCTET_STRING__decode_xer( + const asn_codec_ctx_t *opt_codec_ctx, const asn_TYPE_descriptor_t *td, + void **sptr, const char *opt_mname, const void *buf_ptr, size_t size, + int (*opt_unexpected_tag_decoder)(void *struct_ptr, const void *chunk_buf, + size_t chunk_size), + ssize_t (*body_receiver)(void *struct_ptr, const void *chunk_buf, + size_t chunk_size, int have_more)) { + OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr; + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; + asn_struct_ctx_t *ctx; /* Per-structure parser context */ + asn_dec_rval_t rval; /* Return value from the decoder */ + int st_allocated; + + /* + * Create the string if does not exist. + */ + if(!st) { + st = (OCTET_STRING_t *)CALLOC(1, specs->struct_size); + *sptr = (void *)st; + if(!st) goto sta_failed; + st_allocated = 1; + } else { + st_allocated = 0; + } + if(!st->buf) { + /* This is separate from above section */ + st->buf = (uint8_t *)CALLOC(1, 1); + if(!st->buf) { + if(st_allocated) { + *sptr = 0; + goto stb_failed; + } else { + goto sta_failed; + } + } + } + + /* Restore parsing context */ + ctx = (asn_struct_ctx_t *)(((char *)*sptr) + specs->ctx_offset); + + return xer_decode_general(opt_codec_ctx, ctx, *sptr, xml_tag, + buf_ptr, size, + opt_unexpected_tag_decoder, + body_receiver); + +stb_failed: + FREEMEM(st); +sta_failed: + rval.code = RC_FAIL; + rval.consumed = 0; + return rval; +} + +/* + * Decode OCTET STRING from the hexadecimal data. + */ +asn_dec_rval_t +OCTET_STRING_decode_xer_hex(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, + size_t size) { + return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname, + buf_ptr, size, 0, + OCTET_STRING__convert_hexadecimal); +} + +/* + * Decode OCTET STRING from the binary (0/1) data. + */ +asn_dec_rval_t +OCTET_STRING_decode_xer_binary(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, + size_t size) { + return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname, + buf_ptr, size, 0, + OCTET_STRING__convert_binary); +} + +/* + * Decode OCTET STRING from the string (ASCII/UTF-8) data. + */ +asn_dec_rval_t +OCTET_STRING_decode_xer_utf8(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, + size_t size) { + return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname, + buf_ptr, size, + OCTET_STRING__handle_control_chars, + OCTET_STRING__convert_entrefs); +} diff --git a/e2sim/asn1c/OPEN_TYPE.c b/e2sim/asn1c/OPEN_TYPE.c new file mode 100644 index 0000000..c9afecf --- /dev/null +++ b/e2sim/asn1c/OPEN_TYPE.c @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_TYPE_operation_t asn_OP_OPEN_TYPE = { + OPEN_TYPE_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + OPEN_TYPE_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + OPEN_TYPE_compare, +#if !defined(ASN_DISABLE_BER_SUPPORT) + OPEN_TYPE_decode_ber, + OPEN_TYPE_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + OPEN_TYPE_decode_xer, + OPEN_TYPE_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + OPEN_TYPE_encode_jer, +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + OPEN_TYPE_decode_oer, + OPEN_TYPE_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + OPEN_TYPE_decode_uper, + OPEN_TYPE_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + OPEN_TYPE_decode_aper, + OPEN_TYPE_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + 0, /* Random fill is not supported for open type */ +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; diff --git a/e2sim/asn1c/OPEN_TYPE.h b/e2sim/asn1c/OPEN_TYPE.h new file mode 100644 index 0000000..5e97977 --- /dev/null +++ b/e2sim/asn1c/OPEN_TYPE.h @@ -0,0 +1,117 @@ +/*- + * Copyright (c) 2017-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_OPEN_TYPE_H +#define ASN_OPEN_TYPE_H + +#include +///////////#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Decode an Open Type which is potentially constraiend + * by the other members of the parent structure. + */ + +#undef ADVANCE +#define ADVANCE(num_bytes) \ + do { \ + size_t num = num_bytes; \ + ptr = ((const char *)ptr) + num; \ + size -= num; \ + consumed_myself += num; \ + } while(0) + +#define OPEN_TYPE_free CHOICE_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +#define OPEN_TYPE_print CHOICE_print +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +#define OPEN_TYPE_compare CHOICE_compare + +#define OPEN_TYPE_constraint CHOICE_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +asn_dec_rval_t OPEN_TYPE_ber_get( + const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *parent_type, + void *parent_structure, + const asn_TYPE_member_t *element, + const void *ptr, size_t size); +#define OPEN_TYPE_decode_ber NULL +#define OPEN_TYPE_encode_der CHOICE_encode_der +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +asn_dec_rval_t OPEN_TYPE_xer_get( + const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *parent_type, + void *parent_structure, + const asn_TYPE_member_t *element, + const void *ptr, size_t size); +#define OPEN_TYPE_decode_xer NULL +#define OPEN_TYPE_encode_xer CHOICE_encode_xer +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +#define OPEN_TYPE_encode_jer CHOICE_encode_jer +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +asn_dec_rval_t OPEN_TYPE_oer_get( + const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *parent_type, + void *parent_structure, + asn_TYPE_member_t *element, const void *ptr, + size_t size); +#define OPEN_TYPE_decode_oer NULL +#define OPEN_TYPE_encode_oer CHOICE_encode_oer +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +asn_dec_rval_t OPEN_TYPE_uper_get( + const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *parent_type, + void *parent_structure, + const asn_TYPE_member_t *element, + asn_per_data_t *pd); +#define OPEN_TYPE_decode_uper NULL +asn_enc_rval_t OPEN_TYPE_encode_uper( + const asn_TYPE_descriptor_t *type_descriptor, + const asn_per_constraints_t *constraints, const void *struct_ptr, + asn_per_outp_t *per_output); +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +asn_dec_rval_t OPEN_TYPE_aper_get( + const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *parent_type, + void *parent_structure, + const asn_TYPE_member_t *element, + asn_per_data_t *pd); +#define OPEN_TYPE_decode_aper NULL +asn_enc_rval_t OPEN_TYPE_encode_aper( + const asn_TYPE_descriptor_t *type_descriptor, + const asn_per_constraints_t *constraints, const void *struct_ptr, + asn_per_outp_t *per_output); + +int OPEN_TYPE_aper_is_unknown_type( + const asn_TYPE_descriptor_t *td, + void *sptr, + const asn_TYPE_member_t *elm); + +asn_dec_rval_t OPEN_TYPE_aper_unknown_type_discard_bytes( + asn_per_data_t *pd); +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +extern asn_TYPE_operation_t asn_OP_OPEN_TYPE; + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_OPEN_TYPE_H */ diff --git a/e2sim/asn1c/OPEN_TYPE_aper.c b/e2sim/asn1c/OPEN_TYPE_aper.c new file mode 100644 index 0000000..3e2ab18 --- /dev/null +++ b/e2sim/asn1c/OPEN_TYPE_aper.c @@ -0,0 +1,173 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +asn_dec_rval_t +OPEN_TYPE_aper_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void *sptr, + const asn_TYPE_member_t *elm, asn_per_data_t *pd) { + asn_type_selector_result_t selected; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + void *inner_value; + asn_dec_rval_t rv; + + if(!(elm->flags & ATF_OPEN_TYPE)) { + ASN__DECODE_FAILED; + } + + if(!elm->type_selector) { + ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", + td->name, elm->name, elm->type->name); + ASN__DECODE_FAILED; + } + + selected = elm->type_selector(td, sptr); + if(!selected.presence_index) { + ASN__DECODE_FAILED; + } + + /* Fetch the pointer to this member */ + assert(elm->flags == ATF_OPEN_TYPE); + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); + } else { + memb_ptr = (char *)sptr + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + if(*memb_ptr2 != NULL) { + /* Make sure we reset the structure first before encoding */ + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) + != 0) { + ASN__DECODE_FAILED; + } + } + + inner_value = + (char *)*memb_ptr2 + + elm->type->elements[selected.presence_index - 1].memb_offset; + + rv = aper_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL, + &inner_value, pd); + switch(rv.code) { + case RC_OK: + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, + selected.presence_index) + == 0) { + break; + } else { + rv.code = RC_FAIL; + } + /* Fall through */ + case RC_WMORE: + case RC_FAIL: + if(*memb_ptr2) { + if(elm->flags & ATF_POINTER) { + ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); + *memb_ptr2 = NULL; + } else { + ASN_STRUCT_RESET(*selected.type_descriptor, + inner_value); + } + } + } + return rv; +} + +asn_enc_rval_t +OPEN_TYPE_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const void *memb_ptr; /* Pointer to the member */ + asn_TYPE_member_t *elm; /* CHOICE's element */ + asn_enc_rval_t er = {0,0,0}; + unsigned present; + + (void)constraints; + + present = CHOICE_variant_get_presence(td, sptr); + if(present == 0 || present > td->elements_count) { + ASN__ENCODE_FAILED; + } else { + present--; + } + + ASN_DEBUG("Encoding %s OPEN TYPE element %d", td->name, present); + + elm = &td->elements[present]; + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) ASN__ENCODE_FAILED; + } else { + memb_ptr = (const char *)sptr + elm->memb_offset; + } + + if(aper_open_type_put(elm->type, NULL, memb_ptr, po) < 0) { + ASN__ENCODE_FAILED; + } + + er.encoded = 0; + ASN__ENCODED_OK(er); +} + + +int OPEN_TYPE_aper_is_unknown_type(const asn_TYPE_descriptor_t *td, void *sptr, const asn_TYPE_member_t *elm) { + asn_type_selector_result_t selected; + + if(!elm->type_selector) { + return 1; + } + else { + selected = elm->type_selector(td, sptr); + if(!selected.presence_index) { + return 1; + } + } + return 0; +} + +asn_dec_rval_t +OPEN_TYPE_aper_unknown_type_discard_bytes (asn_per_data_t *pd) { +#define ASN_DUMMY_BYTES 256 + unsigned char dummy[ASN_DUMMY_BYTES], *dummy_ptr = NULL; + ssize_t bytes; + int repeat; + asn_dec_rval_t rv; + + rv.consumed = 0; + rv.code = RC_FAIL; + + do { + bytes = aper_get_length(pd, -1, -1, -1, &repeat); + if (bytes > 10 * ASN_DUMMY_BYTES) + { + return rv; + } + else if (bytes > ASN_DUMMY_BYTES) + { + dummy_ptr = CALLOC(1, bytes); + if (!dummy_ptr) + return rv; + } + + per_get_many_bits(pd, (dummy_ptr ? dummy_ptr : dummy), 0, bytes << 3); + + if (dummy_ptr) + { + FREEMEM(dummy_ptr); + dummy_ptr = NULL; + } + } while (repeat); + + rv.code = RC_OK; + return rv; +#undef ASN_DUMMY_BYTES +} diff --git a/e2sim/asn1c/OPEN_TYPE_ber.c b/e2sim/asn1c/OPEN_TYPE_ber.c new file mode 100644 index 0000000..7d89480 --- /dev/null +++ b/e2sim/asn1c/OPEN_TYPE_ber.c @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_dec_rval_t +OPEN_TYPE_ber_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void *sptr, + const asn_TYPE_member_t *elm, const void *ptr, size_t size) { + size_t consumed_myself = 0; + asn_type_selector_result_t selected; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + void *inner_value; + asn_dec_rval_t rv; + + if(!(elm->flags & ATF_OPEN_TYPE)) { + ASN__DECODE_FAILED; + } + + if(!elm->type_selector) { + ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", + td->name, elm->name, elm->type->name); + ASN__DECODE_FAILED; + } + + selected = elm->type_selector(td, sptr); + if(!selected.presence_index) { + ASN__DECODE_FAILED; + } + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); + } else { + memb_ptr = (char *)sptr + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + if(*memb_ptr2 != NULL) { + /* Make sure we reset the structure first before encoding */ + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) != 0) { + ASN__DECODE_FAILED; + } + } + + inner_value = + (char *)*memb_ptr2 + + elm->type->elements[selected.presence_index - 1].memb_offset; + + ASN_DEBUG("presence %d\n", selected.presence_index); + + rv = selected.type_descriptor->op->ber_decoder( + opt_codec_ctx, selected.type_descriptor, &inner_value, ptr, size, + elm->tag_mode); + ADVANCE(rv.consumed); + rv.consumed = 0; + switch(rv.code) { + case RC_OK: + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, + selected.presence_index) + == 0) { + rv.code = RC_OK; + rv.consumed = consumed_myself; + return rv; + } else { + /* Oh, now a full-blown failure failure */ + } + /* Fall through */ + case RC_FAIL: + rv.consumed = consumed_myself; + /* Fall through */ + case RC_WMORE: + break; + } + + if(*memb_ptr2) { + if(elm->flags & ATF_POINTER) { + ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); + *memb_ptr2 = NULL; + } else { + ASN_STRUCT_RESET(*selected.type_descriptor, + inner_value); + } + } + return rv; +} diff --git a/e2sim/asn1c/OPEN_TYPE_uper.c b/e2sim/asn1c/OPEN_TYPE_uper.c new file mode 100644 index 0000000..2f27bb9 --- /dev/null +++ b/e2sim/asn1c/OPEN_TYPE_uper.c @@ -0,0 +1,119 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +asn_dec_rval_t +OPEN_TYPE_uper_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void *sptr, + const asn_TYPE_member_t *elm, asn_per_data_t *pd) { + asn_type_selector_result_t selected; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + void *inner_value; + asn_dec_rval_t rv; + + if(!(elm->flags & ATF_OPEN_TYPE)) { + ASN__DECODE_FAILED; + } + + if(!elm->type_selector) { + ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", + td->name, elm->name, elm->type->name); + ASN__DECODE_FAILED; + } + + selected = elm->type_selector(td, sptr); + if(!selected.presence_index) { + ASN__DECODE_FAILED; + } + + /* Fetch the pointer to this member */ + assert(elm->flags == ATF_OPEN_TYPE); + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); + } else { + memb_ptr = (char *)sptr + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + if(*memb_ptr2 != NULL) { + /* Make sure we reset the structure first before encoding */ + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) + != 0) { + ASN__DECODE_FAILED; + } + } + + inner_value = + (char *)*memb_ptr2 + + elm->type->elements[selected.presence_index - 1].memb_offset; + + rv = uper_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL, + &inner_value, pd); + switch(rv.code) { + case RC_OK: + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, + selected.presence_index) + == 0) { + break; + } else { + rv.code = RC_FAIL; + } + /* Fall through */ + case RC_WMORE: + case RC_FAIL: + if(*memb_ptr2) { + if(elm->flags & ATF_POINTER) { + ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); + *memb_ptr2 = NULL; + } else { + ASN_STRUCT_RESET(*selected.type_descriptor, + inner_value); + } + } + } + return rv; +} + +asn_enc_rval_t +OPEN_TYPE_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const void *memb_ptr; /* Pointer to the member */ + asn_TYPE_member_t *elm; /* CHOICE's element */ + asn_enc_rval_t er = {0,0,0}; + unsigned present; + + (void)constraints; + + present = CHOICE_variant_get_presence(td, sptr); + if(present == 0 || present > td->elements_count) { + ASN__ENCODE_FAILED; + } else { + present--; + } + + ASN_DEBUG("Encoding %s OPEN TYPE element %d", td->name, present); + + elm = &td->elements[present]; + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) ASN__ENCODE_FAILED; + } else { + memb_ptr = (const char *)sptr + elm->memb_offset; + } + + if(uper_open_type_put(elm->type, NULL, memb_ptr, po) < 0) { + ASN__ENCODE_FAILED; + } + + er.encoded = 0; + ASN__ENCODED_OK(er); +} diff --git a/e2sim/asn1c/OPEN_TYPE_xer.c b/e2sim/asn1c/OPEN_TYPE_xer.c new file mode 100644 index 0000000..fc38562 --- /dev/null +++ b/e2sim/asn1c/OPEN_TYPE_xer.c @@ -0,0 +1,166 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_dec_rval_t +OPEN_TYPE_xer_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void *sptr, + const asn_TYPE_member_t *elm, const void *ptr, size_t size) { + size_t consumed_myself = 0; + asn_type_selector_result_t selected; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + void *inner_value; + asn_dec_rval_t rv; + + int xer_context = 0; + ssize_t ch_size; + pxer_chunk_type_e ch_type; + + if(!(elm->flags & ATF_OPEN_TYPE)) { + ASN__DECODE_FAILED; + } + + if(!elm->type_selector) { + ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", + td->name, elm->name, elm->type->name); + ASN__DECODE_FAILED; + } + + selected = elm->type_selector(td, sptr); + if(!selected.presence_index) { + ASN__DECODE_FAILED; + } + + /* Fetch the pointer to this member */ + assert(elm->flags == ATF_OPEN_TYPE); + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); + } else { + memb_ptr = (char *)sptr + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + if(*memb_ptr2 != NULL) { + /* Make sure we reset the structure first before encoding */ + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) + != 0) { + ASN__DECODE_FAILED; + } + } + + /* + * Confirm wrapper. + */ + for(;;) { + ch_size = xer_next_token(&xer_context, ptr, size, &ch_type); + if(ch_size < 0) { + ASN__DECODE_FAILED; + } else { + switch(ch_type) { + case PXER_WMORE: + ASN__DECODE_STARVED; + case PXER_COMMENT: + case PXER_TEXT: + ADVANCE(ch_size); + continue; + case PXER_TAG: + break; + } + break; + } + } + + /* + * Wrapper value confirmed. + */ + switch(xer_check_tag(ptr, ch_size, elm->name)) { + case XCT_OPENING: + ADVANCE(ch_size); + break; + case XCT_BROKEN: + default: + ASN__DECODE_FAILED; + } + + inner_value = + (char *)*memb_ptr2 + + elm->type->elements[selected.presence_index - 1].memb_offset; + + rv = selected.type_descriptor->op->xer_decoder( + opt_codec_ctx, selected.type_descriptor, &inner_value, NULL, ptr, size); + ADVANCE(rv.consumed); + rv.consumed = 0; + switch(rv.code) { + case RC_OK: + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, + selected.presence_index) + == 0) { + break; + } else { + rv.code = RC_FAIL; + } + /* Fall through */ + case RC_FAIL: + /* Point to a best position where failure occurred */ + rv.consumed = consumed_myself; + /* Fall through */ + case RC_WMORE: + /* Wrt. rv.consumed==0: + * In case a genuine RC_WMORE, the whole Open Type decoding + * will have to be restarted. + */ + if(*memb_ptr2) { + if(elm->flags & ATF_POINTER) { + ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); + *memb_ptr2 = NULL; + } else { + ASN_STRUCT_RESET(*selected.type_descriptor, + inner_value); + } + } + return rv; + } + + /* + * Finalize wrapper. + */ + for(;;) { + ch_size = xer_next_token(&xer_context, ptr, size, &ch_type); + if(ch_size < 0) { + ASN__DECODE_FAILED; + } else { + switch(ch_type) { + case PXER_WMORE: + ASN__DECODE_STARVED; + case PXER_COMMENT: + case PXER_TEXT: + ADVANCE(ch_size); + continue; + case PXER_TAG: + break; + } + break; + } + } + + /* + * Wrapper value confirmed. + */ + switch(xer_check_tag(ptr, ch_size, elm->name)) { + case XCT_CLOSING: + ADVANCE(ch_size); + break; + case XCT_BROKEN: + default: + ASN__DECODE_FAILED; + } + + rv.consumed += consumed_myself; + + return rv; +} diff --git a/e2sim/asn1c/ObjectDescriptor.c b/e2sim/asn1c/ObjectDescriptor.c new file mode 100644 index 0000000..c311a92 --- /dev/null +++ b/e2sim/asn1c/ObjectDescriptor.c @@ -0,0 +1,91 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * ObjectDescriptor basic type description. + */ +static const ber_tlv_tag_t asn_DEF_ObjectDescriptor_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (7 << 2)), /* [UNIVERSAL 7] IMPLICIT ... */ + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */ +}; +asn_TYPE_operation_t asn_OP_ObjectDescriptor = { + OCTET_STRING_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + OCTET_STRING_print_utf8, /* Treat as ASCII subset (it's not) */ +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + OCTET_STRING_compare, +#if !defined(ASN_DISABLE_BER_SUPPORT) + OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + OCTET_STRING_decode_xer_utf8, + OCTET_STRING_encode_xer_utf8, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + OCTET_STRING_encode_jer_utf8, +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, + 0, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + OCTET_STRING_decode_uper, + OCTET_STRING_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + OCTET_STRING_decode_aper, + OCTET_STRING_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + 0, /* Not supported for ObjectDescriptor */ +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_ObjectDescriptor = { + "ObjectDescriptor", + "ObjectDescriptor", + &asn_OP_ObjectDescriptor, + asn_DEF_ObjectDescriptor_tags, + sizeof(asn_DEF_ObjectDescriptor_tags) + / sizeof(asn_DEF_ObjectDescriptor_tags[0]) - 1, + asn_DEF_ObjectDescriptor_tags, + sizeof(asn_DEF_ObjectDescriptor_tags) + / sizeof(asn_DEF_ObjectDescriptor_tags[0]), + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + asn_generic_unknown_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; diff --git a/e2sim/asn1c/ObjectDescriptor.h b/e2sim/asn1c/ObjectDescriptor.h new file mode 100644 index 0000000..852c45d --- /dev/null +++ b/e2sim/asn1c/ObjectDescriptor.h @@ -0,0 +1,54 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _ObjectDescriptor_H_ +#define _ObjectDescriptor_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef GraphicString_t ObjectDescriptor_t; /* Implemented via GraphicString */ + +extern asn_TYPE_descriptor_t asn_DEF_ObjectDescriptor; +extern asn_TYPE_operation_t asn_OP_ObjectDescriptor; + +#define ObjectDescriptor_free OCTET_STRING_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +#define ObjectDescriptor_print OCTET_STRING_print_utf8 +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +#define ObjectDescriptor_constraint asn_generic_unknown_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#define ObjectDescriptor_decode_ber OCTET_STRING_decode_ber +#define ObjectDescriptor_encode_der OCTET_STRING_encode_der +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +#define ObjectDescriptor_decode_xer OCTET_STRING_decode_xer_utf8 +#define ObjectDescriptor_encode_xer OCTET_STRING_encode_xer_utf8 +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +#define ObjectDescriptor_encode_jer OCTET_STRING_encode_jer_utf8 +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +#define ObjectDescriptor_decode_uper OCTET_STRING_decode_uper +#define ObjectDescriptor_encode_uper OCTET_STRING_encode_uper +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +#define ObjectDescriptor_decode_aper OCTET_STRING_decode_aper +#define ObjectDescriptor_encode_aper OCTET_STRING_encode_aper +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#ifdef __cplusplus +} +#endif + +#endif /* _ObjectDescriptor_H_ */ diff --git a/e2sim/asn1c/PLMN-Identity.c b/e2sim/asn1c/PLMN-Identity.c new file mode 100644 index 0000000..1a15c0e --- /dev/null +++ b/e2sim/asn1c/PLMN-Identity.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "PLMN-Identity.h" + +int +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; + + 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 == 3UL)) { + /* 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 OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +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_Identity = { + "PLMN-Identity", + "PLMN-Identity", + &asn_OP_OCTET_STRING, + 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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_PLMN_Identity_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + PLMN_Identity_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/e2sim/asn1c/PLMN-Identity.h b/e2sim/asn1c/PLMN-Identity.h new file mode 100644 index 0000000..29df23e --- /dev/null +++ b/e2sim/asn1c/PLMN-Identity.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _PLMN_Identity_H_ +#define _PLMN_Identity_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#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; +jer_type_encoder_f PLMN_Identity_encode_jer; +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 "asn_internal.h" diff --git a/e2sim/asn1c/PLMNIdentity.c b/e2sim/asn1c/PLMNIdentity.c new file mode 100644 index 0000000..e6ec291 --- /dev/null +++ b/e2sim/asn1c/PLMNIdentity.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "PLMNIdentity.h" + +int +PLMNIdentity_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; + + 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 == 3UL)) { + /* 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 OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_PLMNIdentity_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_PLMNIdentity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PLMNIdentity = { + "PLMNIdentity", + "PLMNIdentity", + &asn_OP_OCTET_STRING, + asn_DEF_PLMNIdentity_tags_1, + sizeof(asn_DEF_PLMNIdentity_tags_1) + /sizeof(asn_DEF_PLMNIdentity_tags_1[0]), /* 1 */ + asn_DEF_PLMNIdentity_tags_1, /* Same as above */ + sizeof(asn_DEF_PLMNIdentity_tags_1) + /sizeof(asn_DEF_PLMNIdentity_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_PLMNIdentity_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + PLMNIdentity_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/e2sim/asn1c/PLMNIdentity.h b/e2sim/asn1c/PLMNIdentity.h new file mode 100644 index 0000000..56784ac --- /dev/null +++ b/e2sim/asn1c/PLMNIdentity.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _PLMNIdentity_H_ +#define _PLMNIdentity_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* PLMNIdentity */ +typedef OCTET_STRING_t PLMNIdentity_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PLMNIdentity_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PLMNIdentity; +asn_struct_free_f PLMNIdentity_free; +asn_struct_print_f PLMNIdentity_print; +asn_constr_check_f PLMNIdentity_constraint; +ber_type_decoder_f PLMNIdentity_decode_ber; +der_type_encoder_f PLMNIdentity_encode_der; +xer_type_decoder_f PLMNIdentity_decode_xer; +xer_type_encoder_f PLMNIdentity_encode_xer; +jer_type_encoder_f PLMNIdentity_encode_jer; +per_type_decoder_f PLMNIdentity_decode_uper; +per_type_encoder_f PLMNIdentity_encode_uper; +per_type_decoder_f PLMNIdentity_decode_aper; +per_type_encoder_f PLMNIdentity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PLMNIdentity_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/Presence.c b/e2sim/asn1c/Presence.c new file mode 100644 index 0000000..4168e14 --- /dev/null +++ b/e2sim/asn1c/Presence.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-CommonDataTypes" + * found in "e2ap-common-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "Presence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Presence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_Presence_value2enum_1[] = { + { 0, 8, "optional" }, + { 1, 11, "conditional" }, + { 2, 9, "mandatory" } +}; +static const unsigned int asn_MAP_Presence_enum2value_1[] = { + 1, /* conditional(1) */ + 2, /* mandatory(2) */ + 0 /* optional(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_Presence_specs_1 = { + asn_MAP_Presence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Presence_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_Presence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Presence = { + "Presence", + "Presence", + &asn_OP_NativeEnumerated, + asn_DEF_Presence_tags_1, + sizeof(asn_DEF_Presence_tags_1) + /sizeof(asn_DEF_Presence_tags_1[0]), /* 1 */ + asn_DEF_Presence_tags_1, /* Same as above */ + sizeof(asn_DEF_Presence_tags_1) + /sizeof(asn_DEF_Presence_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Presence_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Presence_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/Presence.h b/e2sim/asn1c/Presence.h new file mode 100644 index 0000000..fffe860 --- /dev/null +++ b/e2sim/asn1c/Presence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-CommonDataTypes" + * found in "e2ap-common-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _Presence_H_ +#define _Presence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Presence { + Presence_optional = 0, + Presence_conditional = 1, + Presence_mandatory = 2 +} e_Presence; + +/* Presence */ +typedef long Presence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Presence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Presence; +extern const asn_INTEGER_specifics_t asn_SPC_Presence_specs_1; +asn_struct_free_f Presence_free; +asn_struct_print_f Presence_print; +asn_constr_check_f Presence_constraint; +ber_type_decoder_f Presence_decode_ber; +der_type_encoder_f Presence_encode_der; +xer_type_decoder_f Presence_decode_xer; +xer_type_encoder_f Presence_encode_xer; +jer_type_encoder_f Presence_encode_jer; +per_type_decoder_f Presence_decode_uper; +per_type_encoder_f Presence_encode_uper; +per_type_decoder_f Presence_decode_aper; +per_type_encoder_f Presence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Presence_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/PrintableString.c b/e2sim/asn1c/PrintableString.c new file mode 100644 index 0000000..f046f12 --- /dev/null +++ b/e2sim/asn1c/PrintableString.c @@ -0,0 +1,165 @@ +/*- + * 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 */ +}; +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_operation_t asn_OP_PrintableString = { + OCTET_STRING_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + OCTET_STRING_print_utf8, /* ASCII subset */ +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + OCTET_STRING_compare, +#if !defined(ASN_DISABLE_BER_SUPPORT) + OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + OCTET_STRING_decode_xer_utf8, + OCTET_STRING_encode_xer_utf8, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + OCTET_STRING_encode_jer_utf8, +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + OCTET_STRING_decode_oer, + OCTET_STRING_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + OCTET_STRING_decode_uper, + OCTET_STRING_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + OCTET_STRING_decode_aper, + OCTET_STRING_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + OCTET_STRING_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 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]), + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_DEF_PrintableString_per_constraints, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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/e2sim/asn1c/PrintableString.h b/e2sim/asn1c/PrintableString.h new file mode 100644 index 0000000..c24861d --- /dev/null +++ b/e2sim/asn1c/PrintableString.h @@ -0,0 +1,56 @@ +/*- + * 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; + +#define PrintableString_free OCTET_STRING_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +#define PrintableString_print OCTET_STRING_print_utf8 +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +#define PrintableString_compare OCTET_STRING_compare + +asn_constr_check_f PrintableString_constraint; + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#define PrintableString_decode_ber OCTET_STRING_decode_ber +#define PrintableString_encode_der OCTET_STRING_encode_der +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +#define PrintableString_decode_xer OCTET_STRING_decode_xer_utf8 +#define PrintableString_encode_xer OCTET_STRING_encode_xer_utf8 +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +#define PrintableString_encode_jer OCTET_STRING_encode_jer_utf8 +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +#define PrintableString_decode_uper OCTET_STRING_decode_uper +#define PrintableString_encode_uper OCTET_STRING_encode_uper +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +#define PrintableString_decode_aper OCTET_STRING_decode_aper +#define PrintableString_encode_aper OCTET_STRING_encode_aper +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#ifdef __cplusplus +} +#endif + +#endif /* _PrintableString_H_ */ diff --git a/e2sim/asn1c/ProcedureCode.c b/e2sim/asn1c/ProcedureCode.c new file mode 100644 index 0000000..fc8bdc4 --- /dev/null +++ b/e2sim/asn1c/ProcedureCode.c @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-CommonDataTypes" + * found in "e2ap-common-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "ProcedureCode.h" + +int +ProcedureCode_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 >= 0L && value <= 255L)) { + /* 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. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProcedureCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_ProcedureCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProcedureCode = { + "ProcedureCode", + "ProcedureCode", + &asn_OP_NativeInteger, + asn_DEF_ProcedureCode_tags_1, + sizeof(asn_DEF_ProcedureCode_tags_1) + /sizeof(asn_DEF_ProcedureCode_tags_1[0]), /* 1 */ + asn_DEF_ProcedureCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ProcedureCode_tags_1) + /sizeof(asn_DEF_ProcedureCode_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProcedureCode_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + ProcedureCode_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/ProcedureCode.h b/e2sim/asn1c/ProcedureCode.h new file mode 100644 index 0000000..2864da3 --- /dev/null +++ b/e2sim/asn1c/ProcedureCode.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-CommonDataTypes" + * found in "e2ap-common-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _ProcedureCode_H_ +#define _ProcedureCode_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ProcedureCode */ +typedef long ProcedureCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ProcedureCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProcedureCode; +asn_struct_free_f ProcedureCode_free; +asn_struct_print_f ProcedureCode_print; +asn_constr_check_f ProcedureCode_constraint; +ber_type_decoder_f ProcedureCode_decode_ber; +der_type_encoder_f ProcedureCode_encode_der; +xer_type_decoder_f ProcedureCode_decode_xer; +xer_type_encoder_f ProcedureCode_encode_xer; +jer_type_encoder_f ProcedureCode_encode_jer; +per_type_decoder_f ProcedureCode_decode_uper; +per_type_encoder_f ProcedureCode_encode_uper; +per_type_decoder_f ProcedureCode_decode_aper; +per_type_encoder_f ProcedureCode_encode_aper; +#define ProcedureCode_id_E2setup ((ProcedureCode_t)1) +#define ProcedureCode_id_ErrorIndication ((ProcedureCode_t)2) +#define ProcedureCode_id_Reset ((ProcedureCode_t)3) +#define ProcedureCode_id_RICcontrol ((ProcedureCode_t)4) +#define ProcedureCode_id_RICindication ((ProcedureCode_t)5) +#define ProcedureCode_id_RICserviceQuery ((ProcedureCode_t)6) +#define ProcedureCode_id_RICserviceUpdate ((ProcedureCode_t)7) +#define ProcedureCode_id_RICsubscription ((ProcedureCode_t)8) +#define ProcedureCode_id_RICsubscriptionDelete ((ProcedureCode_t)9) +#define ProcedureCode_id_E2nodeConfigurationUpdate ((ProcedureCode_t)10) +#define ProcedureCode_id_E2connectionUpdate ((ProcedureCode_t)11) +#define ProcedureCode_id_RICsubscriptionDeleteRequired ((ProcedureCode_t)12) +#define ProcedureCode_id_E2removal ((ProcedureCode_t)13) +#define ProcedureCode_id_RICsubscriptionModification ((ProcedureCode_t)14) +#define ProcedureCode_id_RICsubscriptionModificationRequired ((ProcedureCode_t)15) +#define ProcedureCode_id_RICquery ((ProcedureCode_t)16) + +#ifdef __cplusplus +} +#endif + +#endif /* _ProcedureCode_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/ProtocolIE-Container.c b/e2sim/asn1c/ProtocolIE-Container.c new file mode 100644 index 0000000..44e1857 --- /dev/null +++ b/e2sim/asn1c/ProtocolIE-Container.c @@ -0,0 +1,2272 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-Containers" + * found in "e2ap-container-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "ProtocolIE-Container.h" + +#include "ProtocolIE-Field.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P0_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P1_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P2_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P3_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P4_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P5_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P6_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P7_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P8_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P9_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P10_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P11_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P12_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P13_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P14_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P15_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P16_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P17_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P18_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P19_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P20_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P21_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P22_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P23_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P24_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P25_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P26_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P27_constr_55 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P28_constr_57 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P29_constr_59 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P30_constr_61 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P31_constr_63 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P32_constr_65 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P33_constr_67 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P34_constr_69 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P35_constr_71 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P36_constr_73 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P37_constr_75 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P38_constr_77 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P0_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscriptionRequest_IEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P0_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P0_specs_1 = { + sizeof(struct ProtocolIE_Container_85P0), + offsetof(struct ProtocolIE_Container_85P0, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P0 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P0_tags_1, + sizeof(asn_DEF_ProtocolIE_Container_85P0_tags_1) + /sizeof(asn_DEF_ProtocolIE_Container_85P0_tags_1[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P0_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P0_tags_1) + /sizeof(asn_DEF_ProtocolIE_Container_85P0_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P0_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P0_1, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P0_specs_1 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P1_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscriptionResponse_IEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P1_tags_3[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P1_specs_3 = { + sizeof(struct ProtocolIE_Container_85P1), + offsetof(struct ProtocolIE_Container_85P1, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P1 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P1_tags_3, + sizeof(asn_DEF_ProtocolIE_Container_85P1_tags_3) + /sizeof(asn_DEF_ProtocolIE_Container_85P1_tags_3[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P1_tags_3, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P1_tags_3) + /sizeof(asn_DEF_ProtocolIE_Container_85P1_tags_3[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P1_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P1_3, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P1_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P2_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscriptionFailure_IEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P2_tags_5[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P2_specs_5 = { + sizeof(struct ProtocolIE_Container_85P2), + offsetof(struct ProtocolIE_Container_85P2, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P2 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P2_tags_5, + sizeof(asn_DEF_ProtocolIE_Container_85P2_tags_5) + /sizeof(asn_DEF_ProtocolIE_Container_85P2_tags_5[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P2_tags_5, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P2_tags_5) + /sizeof(asn_DEF_ProtocolIE_Container_85P2_tags_5[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P2_constr_5, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P2_5, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P2_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P3_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscriptionDeleteRequest_IEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P3_tags_7[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P3_specs_7 = { + sizeof(struct ProtocolIE_Container_85P3), + offsetof(struct ProtocolIE_Container_85P3, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P3 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P3_tags_7, + sizeof(asn_DEF_ProtocolIE_Container_85P3_tags_7) + /sizeof(asn_DEF_ProtocolIE_Container_85P3_tags_7[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P3_tags_7, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P3_tags_7) + /sizeof(asn_DEF_ProtocolIE_Container_85P3_tags_7[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P3_constr_7, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P3_7, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P3_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P4_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscriptionDeleteResponse_IEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P4_tags_9[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P4_specs_9 = { + sizeof(struct ProtocolIE_Container_85P4), + offsetof(struct ProtocolIE_Container_85P4, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P4 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P4_tags_9, + sizeof(asn_DEF_ProtocolIE_Container_85P4_tags_9) + /sizeof(asn_DEF_ProtocolIE_Container_85P4_tags_9[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P4_tags_9, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P4_tags_9) + /sizeof(asn_DEF_ProtocolIE_Container_85P4_tags_9[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P4_constr_9, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P4_9, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P4_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P5_11[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscriptionDeleteFailure_IEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P5_tags_11[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P5_specs_11 = { + sizeof(struct ProtocolIE_Container_85P5), + offsetof(struct ProtocolIE_Container_85P5, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P5 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P5_tags_11, + sizeof(asn_DEF_ProtocolIE_Container_85P5_tags_11) + /sizeof(asn_DEF_ProtocolIE_Container_85P5_tags_11[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P5_tags_11, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P5_tags_11) + /sizeof(asn_DEF_ProtocolIE_Container_85P5_tags_11[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P5_constr_11, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P5_11, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P5_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P6_13[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscriptionDeleteRequired_IEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P6_tags_13[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P6_specs_13 = { + sizeof(struct ProtocolIE_Container_85P6), + offsetof(struct ProtocolIE_Container_85P6, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P6 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P6_tags_13, + sizeof(asn_DEF_ProtocolIE_Container_85P6_tags_13) + /sizeof(asn_DEF_ProtocolIE_Container_85P6_tags_13[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P6_tags_13, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P6_tags_13) + /sizeof(asn_DEF_ProtocolIE_Container_85P6_tags_13[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P6_constr_13, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P6_13, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P6_specs_13 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P7_15[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscriptionModificationRequest_IEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P7_tags_15[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P7_specs_15 = { + sizeof(struct ProtocolIE_Container_85P7), + offsetof(struct ProtocolIE_Container_85P7, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P7 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P7_tags_15, + sizeof(asn_DEF_ProtocolIE_Container_85P7_tags_15) + /sizeof(asn_DEF_ProtocolIE_Container_85P7_tags_15[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P7_tags_15, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P7_tags_15) + /sizeof(asn_DEF_ProtocolIE_Container_85P7_tags_15[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P7_constr_15, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P7_15, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P7_specs_15 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P8_17[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscriptionModificationResponse_IEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P8_tags_17[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P8_specs_17 = { + sizeof(struct ProtocolIE_Container_85P8), + offsetof(struct ProtocolIE_Container_85P8, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P8 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P8_tags_17, + sizeof(asn_DEF_ProtocolIE_Container_85P8_tags_17) + /sizeof(asn_DEF_ProtocolIE_Container_85P8_tags_17[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P8_tags_17, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P8_tags_17) + /sizeof(asn_DEF_ProtocolIE_Container_85P8_tags_17[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P8_constr_17, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P8_17, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P8_specs_17 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P9_19[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscriptionModificationFailure_IEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P9_tags_19[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P9_specs_19 = { + sizeof(struct ProtocolIE_Container_85P9), + offsetof(struct ProtocolIE_Container_85P9, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P9 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P9_tags_19, + sizeof(asn_DEF_ProtocolIE_Container_85P9_tags_19) + /sizeof(asn_DEF_ProtocolIE_Container_85P9_tags_19[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P9_tags_19, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P9_tags_19) + /sizeof(asn_DEF_ProtocolIE_Container_85P9_tags_19[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P9_constr_19, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P9_19, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P9_specs_19 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P10_21[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscriptionModificationRequired_IEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P10_tags_21[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P10_specs_21 = { + sizeof(struct ProtocolIE_Container_85P10), + offsetof(struct ProtocolIE_Container_85P10, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P10 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P10_tags_21, + sizeof(asn_DEF_ProtocolIE_Container_85P10_tags_21) + /sizeof(asn_DEF_ProtocolIE_Container_85P10_tags_21[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P10_tags_21, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P10_tags_21) + /sizeof(asn_DEF_ProtocolIE_Container_85P10_tags_21[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P10_constr_21, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P10_21, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P10_specs_21 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P11_23[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscriptionModificationConfirm_IEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P11_tags_23[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P11_specs_23 = { + sizeof(struct ProtocolIE_Container_85P11), + offsetof(struct ProtocolIE_Container_85P11, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P11 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P11_tags_23, + sizeof(asn_DEF_ProtocolIE_Container_85P11_tags_23) + /sizeof(asn_DEF_ProtocolIE_Container_85P11_tags_23[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P11_tags_23, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P11_tags_23) + /sizeof(asn_DEF_ProtocolIE_Container_85P11_tags_23[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P11_constr_23, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P11_23, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P11_specs_23 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P12_25[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscriptionModificationRefuse_IEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P12_tags_25[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P12_specs_25 = { + sizeof(struct ProtocolIE_Container_85P12), + offsetof(struct ProtocolIE_Container_85P12, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P12 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P12_tags_25, + sizeof(asn_DEF_ProtocolIE_Container_85P12_tags_25) + /sizeof(asn_DEF_ProtocolIE_Container_85P12_tags_25[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P12_tags_25, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P12_tags_25) + /sizeof(asn_DEF_ProtocolIE_Container_85P12_tags_25[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P12_constr_25, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P12_25, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P12_specs_25 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P13_27[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICindication_IEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P13_tags_27[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P13_specs_27 = { + sizeof(struct ProtocolIE_Container_85P13), + offsetof(struct ProtocolIE_Container_85P13, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P13 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P13_tags_27, + sizeof(asn_DEF_ProtocolIE_Container_85P13_tags_27) + /sizeof(asn_DEF_ProtocolIE_Container_85P13_tags_27[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P13_tags_27, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P13_tags_27) + /sizeof(asn_DEF_ProtocolIE_Container_85P13_tags_27[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P13_constr_27, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P13_27, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P13_specs_27 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P14_29[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICcontrolRequest_IEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P14_tags_29[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P14_specs_29 = { + sizeof(struct ProtocolIE_Container_85P14), + offsetof(struct ProtocolIE_Container_85P14, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P14 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P14_tags_29, + sizeof(asn_DEF_ProtocolIE_Container_85P14_tags_29) + /sizeof(asn_DEF_ProtocolIE_Container_85P14_tags_29[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P14_tags_29, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P14_tags_29) + /sizeof(asn_DEF_ProtocolIE_Container_85P14_tags_29[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P14_constr_29, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P14_29, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P14_specs_29 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P15_31[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICcontrolAcknowledge_IEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P15_tags_31[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P15_specs_31 = { + sizeof(struct ProtocolIE_Container_85P15), + offsetof(struct ProtocolIE_Container_85P15, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P15 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P15_tags_31, + sizeof(asn_DEF_ProtocolIE_Container_85P15_tags_31) + /sizeof(asn_DEF_ProtocolIE_Container_85P15_tags_31[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P15_tags_31, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P15_tags_31) + /sizeof(asn_DEF_ProtocolIE_Container_85P15_tags_31[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P15_constr_31, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P15_31, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P15_specs_31 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P16_33[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICcontrolFailure_IEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P16_tags_33[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P16_specs_33 = { + sizeof(struct ProtocolIE_Container_85P16), + offsetof(struct ProtocolIE_Container_85P16, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P16 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P16_tags_33, + sizeof(asn_DEF_ProtocolIE_Container_85P16_tags_33) + /sizeof(asn_DEF_ProtocolIE_Container_85P16_tags_33[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P16_tags_33, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P16_tags_33) + /sizeof(asn_DEF_ProtocolIE_Container_85P16_tags_33[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P16_constr_33, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P16_33, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P16_specs_33 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P17_35[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICQueryRequest_IEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P17_tags_35[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P17_specs_35 = { + sizeof(struct ProtocolIE_Container_85P17), + offsetof(struct ProtocolIE_Container_85P17, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P17 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P17_tags_35, + sizeof(asn_DEF_ProtocolIE_Container_85P17_tags_35) + /sizeof(asn_DEF_ProtocolIE_Container_85P17_tags_35[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P17_tags_35, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P17_tags_35) + /sizeof(asn_DEF_ProtocolIE_Container_85P17_tags_35[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P17_constr_35, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P17_35, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P17_specs_35 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P18_37[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICQueryResponse_IEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P18_tags_37[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P18_specs_37 = { + sizeof(struct ProtocolIE_Container_85P18), + offsetof(struct ProtocolIE_Container_85P18, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P18 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P18_tags_37, + sizeof(asn_DEF_ProtocolIE_Container_85P18_tags_37) + /sizeof(asn_DEF_ProtocolIE_Container_85P18_tags_37[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P18_tags_37, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P18_tags_37) + /sizeof(asn_DEF_ProtocolIE_Container_85P18_tags_37[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P18_constr_37, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P18_37, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P18_specs_37 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P19_39[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICQueryFailure_IEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P19_tags_39[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P19_specs_39 = { + sizeof(struct ProtocolIE_Container_85P19), + offsetof(struct ProtocolIE_Container_85P19, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P19 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P19_tags_39, + sizeof(asn_DEF_ProtocolIE_Container_85P19_tags_39) + /sizeof(asn_DEF_ProtocolIE_Container_85P19_tags_39[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P19_tags_39, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P19_tags_39) + /sizeof(asn_DEF_ProtocolIE_Container_85P19_tags_39[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P19_constr_39, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P19_39, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P19_specs_39 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P20_41[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ErrorIndication_IEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P20_tags_41[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P20_specs_41 = { + sizeof(struct ProtocolIE_Container_85P20), + offsetof(struct ProtocolIE_Container_85P20, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P20 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P20_tags_41, + sizeof(asn_DEF_ProtocolIE_Container_85P20_tags_41) + /sizeof(asn_DEF_ProtocolIE_Container_85P20_tags_41[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P20_tags_41, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P20_tags_41) + /sizeof(asn_DEF_ProtocolIE_Container_85P20_tags_41[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P20_constr_41, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P20_41, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P20_specs_41 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P21_43[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2setupRequestIEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P21_tags_43[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P21_specs_43 = { + sizeof(struct ProtocolIE_Container_85P21), + offsetof(struct ProtocolIE_Container_85P21, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P21 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P21_tags_43, + sizeof(asn_DEF_ProtocolIE_Container_85P21_tags_43) + /sizeof(asn_DEF_ProtocolIE_Container_85P21_tags_43[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P21_tags_43, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P21_tags_43) + /sizeof(asn_DEF_ProtocolIE_Container_85P21_tags_43[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P21_constr_43, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P21_43, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P21_specs_43 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P22_45[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2setupResponseIEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P22_tags_45[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P22_specs_45 = { + sizeof(struct ProtocolIE_Container_85P22), + offsetof(struct ProtocolIE_Container_85P22, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P22 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P22_tags_45, + sizeof(asn_DEF_ProtocolIE_Container_85P22_tags_45) + /sizeof(asn_DEF_ProtocolIE_Container_85P22_tags_45[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P22_tags_45, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P22_tags_45) + /sizeof(asn_DEF_ProtocolIE_Container_85P22_tags_45[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P22_constr_45, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P22_45, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P22_specs_45 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P23_47[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2setupFailureIEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P23_tags_47[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P23_specs_47 = { + sizeof(struct ProtocolIE_Container_85P23), + offsetof(struct ProtocolIE_Container_85P23, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P23 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P23_tags_47, + sizeof(asn_DEF_ProtocolIE_Container_85P23_tags_47) + /sizeof(asn_DEF_ProtocolIE_Container_85P23_tags_47[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P23_tags_47, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P23_tags_47) + /sizeof(asn_DEF_ProtocolIE_Container_85P23_tags_47[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P23_constr_47, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P23_47, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P23_specs_47 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P24_49[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2connectionUpdate_IEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P24_tags_49[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P24_specs_49 = { + sizeof(struct ProtocolIE_Container_85P24), + offsetof(struct ProtocolIE_Container_85P24, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P24 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P24_tags_49, + sizeof(asn_DEF_ProtocolIE_Container_85P24_tags_49) + /sizeof(asn_DEF_ProtocolIE_Container_85P24_tags_49[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P24_tags_49, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P24_tags_49) + /sizeof(asn_DEF_ProtocolIE_Container_85P24_tags_49[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P24_constr_49, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P24_49, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P24_specs_49 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P25_51[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2connectionUpdateAck_IEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P25_tags_51[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P25_specs_51 = { + sizeof(struct ProtocolIE_Container_85P25), + offsetof(struct ProtocolIE_Container_85P25, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P25 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P25_tags_51, + sizeof(asn_DEF_ProtocolIE_Container_85P25_tags_51) + /sizeof(asn_DEF_ProtocolIE_Container_85P25_tags_51[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P25_tags_51, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P25_tags_51) + /sizeof(asn_DEF_ProtocolIE_Container_85P25_tags_51[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P25_constr_51, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P25_51, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P25_specs_51 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P26_53[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2connectionUpdateFailure_IEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P26_tags_53[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P26_specs_53 = { + sizeof(struct ProtocolIE_Container_85P26), + offsetof(struct ProtocolIE_Container_85P26, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P26 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P26_tags_53, + sizeof(asn_DEF_ProtocolIE_Container_85P26_tags_53) + /sizeof(asn_DEF_ProtocolIE_Container_85P26_tags_53[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P26_tags_53, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P26_tags_53) + /sizeof(asn_DEF_ProtocolIE_Container_85P26_tags_53[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P26_constr_53, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P26_53, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P26_specs_53 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P27_55[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeConfigurationUpdate_IEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P27_tags_55[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P27_specs_55 = { + sizeof(struct ProtocolIE_Container_85P27), + offsetof(struct ProtocolIE_Container_85P27, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P27 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P27_tags_55, + sizeof(asn_DEF_ProtocolIE_Container_85P27_tags_55) + /sizeof(asn_DEF_ProtocolIE_Container_85P27_tags_55[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P27_tags_55, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P27_tags_55) + /sizeof(asn_DEF_ProtocolIE_Container_85P27_tags_55[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P27_constr_55, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P27_55, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P27_specs_55 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P28_57[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P28_tags_57[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P28_specs_57 = { + sizeof(struct ProtocolIE_Container_85P28), + offsetof(struct ProtocolIE_Container_85P28, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P28 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P28_tags_57, + sizeof(asn_DEF_ProtocolIE_Container_85P28_tags_57) + /sizeof(asn_DEF_ProtocolIE_Container_85P28_tags_57[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P28_tags_57, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P28_tags_57) + /sizeof(asn_DEF_ProtocolIE_Container_85P28_tags_57[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P28_constr_57, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P28_57, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P28_specs_57 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P29_59[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeConfigurationUpdateFailure_IEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P29_tags_59[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P29_specs_59 = { + sizeof(struct ProtocolIE_Container_85P29), + offsetof(struct ProtocolIE_Container_85P29, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P29 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P29_tags_59, + sizeof(asn_DEF_ProtocolIE_Container_85P29_tags_59) + /sizeof(asn_DEF_ProtocolIE_Container_85P29_tags_59[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P29_tags_59, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P29_tags_59) + /sizeof(asn_DEF_ProtocolIE_Container_85P29_tags_59[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P29_constr_59, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P29_59, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P29_specs_59 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P30_61[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ResetRequestIEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P30_tags_61[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P30_specs_61 = { + sizeof(struct ProtocolIE_Container_85P30), + offsetof(struct ProtocolIE_Container_85P30, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P30 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P30_tags_61, + sizeof(asn_DEF_ProtocolIE_Container_85P30_tags_61) + /sizeof(asn_DEF_ProtocolIE_Container_85P30_tags_61[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P30_tags_61, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P30_tags_61) + /sizeof(asn_DEF_ProtocolIE_Container_85P30_tags_61[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P30_constr_61, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P30_61, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P30_specs_61 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P31_63[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ResetResponseIEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P31_tags_63[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P31_specs_63 = { + sizeof(struct ProtocolIE_Container_85P31), + offsetof(struct ProtocolIE_Container_85P31, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P31 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P31_tags_63, + sizeof(asn_DEF_ProtocolIE_Container_85P31_tags_63) + /sizeof(asn_DEF_ProtocolIE_Container_85P31_tags_63[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P31_tags_63, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P31_tags_63) + /sizeof(asn_DEF_ProtocolIE_Container_85P31_tags_63[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P31_constr_63, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P31_63, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P31_specs_63 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P32_65[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICserviceUpdate_IEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P32_tags_65[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P32_specs_65 = { + sizeof(struct ProtocolIE_Container_85P32), + offsetof(struct ProtocolIE_Container_85P32, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P32 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P32_tags_65, + sizeof(asn_DEF_ProtocolIE_Container_85P32_tags_65) + /sizeof(asn_DEF_ProtocolIE_Container_85P32_tags_65[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P32_tags_65, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P32_tags_65) + /sizeof(asn_DEF_ProtocolIE_Container_85P32_tags_65[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P32_constr_65, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P32_65, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P32_specs_65 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P33_67[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICserviceUpdateAcknowledge_IEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P33_tags_67[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P33_specs_67 = { + sizeof(struct ProtocolIE_Container_85P33), + offsetof(struct ProtocolIE_Container_85P33, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P33 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P33_tags_67, + sizeof(asn_DEF_ProtocolIE_Container_85P33_tags_67) + /sizeof(asn_DEF_ProtocolIE_Container_85P33_tags_67[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P33_tags_67, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P33_tags_67) + /sizeof(asn_DEF_ProtocolIE_Container_85P33_tags_67[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P33_constr_67, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P33_67, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P33_specs_67 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P34_69[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICserviceUpdateFailure_IEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P34_tags_69[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P34_specs_69 = { + sizeof(struct ProtocolIE_Container_85P34), + offsetof(struct ProtocolIE_Container_85P34, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P34 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P34_tags_69, + sizeof(asn_DEF_ProtocolIE_Container_85P34_tags_69) + /sizeof(asn_DEF_ProtocolIE_Container_85P34_tags_69[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P34_tags_69, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P34_tags_69) + /sizeof(asn_DEF_ProtocolIE_Container_85P34_tags_69[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P34_constr_69, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P34_69, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P34_specs_69 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P35_71[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICserviceQuery_IEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P35_tags_71[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P35_specs_71 = { + sizeof(struct ProtocolIE_Container_85P35), + offsetof(struct ProtocolIE_Container_85P35, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P35 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P35_tags_71, + sizeof(asn_DEF_ProtocolIE_Container_85P35_tags_71) + /sizeof(asn_DEF_ProtocolIE_Container_85P35_tags_71[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P35_tags_71, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P35_tags_71) + /sizeof(asn_DEF_ProtocolIE_Container_85P35_tags_71[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P35_constr_71, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P35_71, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P35_specs_71 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P36_73[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2RemovalRequestIEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P36_tags_73[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P36_specs_73 = { + sizeof(struct ProtocolIE_Container_85P36), + offsetof(struct ProtocolIE_Container_85P36, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P36 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P36_tags_73, + sizeof(asn_DEF_ProtocolIE_Container_85P36_tags_73) + /sizeof(asn_DEF_ProtocolIE_Container_85P36_tags_73[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P36_tags_73, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P36_tags_73) + /sizeof(asn_DEF_ProtocolIE_Container_85P36_tags_73[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P36_constr_73, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P36_73, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P36_specs_73 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P37_75[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2RemovalResponseIEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P37_tags_75[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P37_specs_75 = { + sizeof(struct ProtocolIE_Container_85P37), + offsetof(struct ProtocolIE_Container_85P37, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P37 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P37_tags_75, + sizeof(asn_DEF_ProtocolIE_Container_85P37_tags_75) + /sizeof(asn_DEF_ProtocolIE_Container_85P37_tags_75[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P37_tags_75, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P37_tags_75) + /sizeof(asn_DEF_ProtocolIE_Container_85P37_tags_75[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P37_constr_75, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P37_75, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P37_specs_75 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P38_77[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2RemovalFailureIEs, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_85P38_tags_77[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P38_specs_77 = { + sizeof(struct ProtocolIE_Container_85P38), + offsetof(struct ProtocolIE_Container_85P38, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P38 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_85P38_tags_77, + sizeof(asn_DEF_ProtocolIE_Container_85P38_tags_77) + /sizeof(asn_DEF_ProtocolIE_Container_85P38_tags_77[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_85P38_tags_77, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_85P38_tags_77) + /sizeof(asn_DEF_ProtocolIE_Container_85P38_tags_77[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_Container_85P38_constr_77, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ProtocolIE_Container_85P38_77, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_85P38_specs_77 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/ProtocolIE-Container.h b/e2sim/asn1c/ProtocolIE-Container.h new file mode 100644 index 0000000..cea28a6 --- /dev/null +++ b/e2sim/asn1c/ProtocolIE-Container.h @@ -0,0 +1,462 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-Containers" + * found in "e2ap-container-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _ProtocolIE_Container_H_ +#define _ProtocolIE_Container_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RICsubscriptionRequest_IEs; +struct RICsubscriptionResponse_IEs; +struct RICsubscriptionFailure_IEs; +struct RICsubscriptionDeleteRequest_IEs; +struct RICsubscriptionDeleteResponse_IEs; +struct RICsubscriptionDeleteFailure_IEs; +struct RICsubscriptionDeleteRequired_IEs; +struct RICsubscriptionModificationRequest_IEs; +struct RICsubscriptionModificationResponse_IEs; +struct RICsubscriptionModificationFailure_IEs; +struct RICsubscriptionModificationRequired_IEs; +struct RICsubscriptionModificationConfirm_IEs; +struct RICsubscriptionModificationRefuse_IEs; +struct RICindication_IEs; +struct RICcontrolRequest_IEs; +struct RICcontrolAcknowledge_IEs; +struct RICcontrolFailure_IEs; +struct RICQueryRequest_IEs; +struct RICQueryResponse_IEs; +struct RICQueryFailure_IEs; +struct ErrorIndication_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; +struct RICserviceUpdateAcknowledge_IEs; +struct RICserviceUpdateFailure_IEs; +struct RICserviceQuery_IEs; +struct E2RemovalRequestIEs; +struct E2RemovalResponseIEs; +struct E2RemovalFailureIEs; + +/* ProtocolIE-Container */ +typedef struct ProtocolIE_Container_85P0 { + A_SEQUENCE_OF(struct RICsubscriptionRequest_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P0_t; +typedef struct ProtocolIE_Container_85P1 { + A_SEQUENCE_OF(struct RICsubscriptionResponse_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P1_t; +typedef struct ProtocolIE_Container_85P2 { + A_SEQUENCE_OF(struct RICsubscriptionFailure_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P2_t; +typedef struct ProtocolIE_Container_85P3 { + A_SEQUENCE_OF(struct RICsubscriptionDeleteRequest_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P3_t; +typedef struct ProtocolIE_Container_85P4 { + A_SEQUENCE_OF(struct RICsubscriptionDeleteResponse_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P4_t; +typedef struct ProtocolIE_Container_85P5 { + A_SEQUENCE_OF(struct RICsubscriptionDeleteFailure_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P5_t; +typedef struct ProtocolIE_Container_85P6 { + A_SEQUENCE_OF(struct RICsubscriptionDeleteRequired_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P6_t; +typedef struct ProtocolIE_Container_85P7 { + A_SEQUENCE_OF(struct RICsubscriptionModificationRequest_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P7_t; +typedef struct ProtocolIE_Container_85P8 { + A_SEQUENCE_OF(struct RICsubscriptionModificationResponse_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P8_t; +typedef struct ProtocolIE_Container_85P9 { + A_SEQUENCE_OF(struct RICsubscriptionModificationFailure_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P9_t; +typedef struct ProtocolIE_Container_85P10 { + A_SEQUENCE_OF(struct RICsubscriptionModificationRequired_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P10_t; +typedef struct ProtocolIE_Container_85P11 { + A_SEQUENCE_OF(struct RICsubscriptionModificationConfirm_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P11_t; +typedef struct ProtocolIE_Container_85P12 { + A_SEQUENCE_OF(struct RICsubscriptionModificationRefuse_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P12_t; +typedef struct ProtocolIE_Container_85P13 { + A_SEQUENCE_OF(struct RICindication_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P13_t; +typedef struct ProtocolIE_Container_85P14 { + A_SEQUENCE_OF(struct RICcontrolRequest_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P14_t; +typedef struct ProtocolIE_Container_85P15 { + A_SEQUENCE_OF(struct RICcontrolAcknowledge_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P15_t; +typedef struct ProtocolIE_Container_85P16 { + A_SEQUENCE_OF(struct RICcontrolFailure_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P16_t; +typedef struct ProtocolIE_Container_85P17 { + A_SEQUENCE_OF(struct RICQueryRequest_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P17_t; +typedef struct ProtocolIE_Container_85P18 { + A_SEQUENCE_OF(struct RICQueryResponse_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P18_t; +typedef struct ProtocolIE_Container_85P19 { + A_SEQUENCE_OF(struct RICQueryFailure_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P19_t; +typedef struct ProtocolIE_Container_85P20 { + A_SEQUENCE_OF(struct ErrorIndication_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P20_t; +typedef struct ProtocolIE_Container_85P21 { + A_SEQUENCE_OF(struct E2setupRequestIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P21_t; +typedef struct ProtocolIE_Container_85P22 { + A_SEQUENCE_OF(struct E2setupResponseIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P22_t; +typedef struct ProtocolIE_Container_85P23 { + A_SEQUENCE_OF(struct E2setupFailureIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P23_t; +typedef struct ProtocolIE_Container_85P24 { + A_SEQUENCE_OF(struct E2connectionUpdate_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P24_t; +typedef struct ProtocolIE_Container_85P25 { + A_SEQUENCE_OF(struct E2connectionUpdateAck_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P25_t; +typedef struct ProtocolIE_Container_85P26 { + A_SEQUENCE_OF(struct E2connectionUpdateFailure_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P26_t; +typedef struct ProtocolIE_Container_85P27 { + A_SEQUENCE_OF(struct E2nodeConfigurationUpdate_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P27_t; +typedef struct ProtocolIE_Container_85P28 { + A_SEQUENCE_OF(struct E2nodeConfigurationUpdateAcknowledge_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P28_t; +typedef struct ProtocolIE_Container_85P29 { + A_SEQUENCE_OF(struct E2nodeConfigurationUpdateFailure_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P29_t; +typedef struct ProtocolIE_Container_85P30 { + A_SEQUENCE_OF(struct ResetRequestIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P30_t; +typedef struct ProtocolIE_Container_85P31 { + A_SEQUENCE_OF(struct ResetResponseIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P31_t; +typedef struct ProtocolIE_Container_85P32 { + A_SEQUENCE_OF(struct RICserviceUpdate_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P32_t; +typedef struct ProtocolIE_Container_85P33 { + A_SEQUENCE_OF(struct RICserviceUpdateAcknowledge_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P33_t; +typedef struct ProtocolIE_Container_85P34 { + A_SEQUENCE_OF(struct RICserviceUpdateFailure_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P34_t; +typedef struct ProtocolIE_Container_85P35 { + A_SEQUENCE_OF(struct RICserviceQuery_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P35_t; +typedef struct ProtocolIE_Container_85P36 { + A_SEQUENCE_OF(struct E2RemovalRequestIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P36_t; +typedef struct ProtocolIE_Container_85P37 { + A_SEQUENCE_OF(struct E2RemovalResponseIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P37_t; +typedef struct ProtocolIE_Container_85P38 { + A_SEQUENCE_OF(struct E2RemovalFailureIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_85P38_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P0; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P0_specs_1; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P0_1[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P0_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P1; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P1_specs_3; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P1_3[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P1_constr_3; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P2; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P2_specs_5; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P2_5[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P2_constr_5; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P3; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P3_specs_7; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P3_7[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P3_constr_7; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P4; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P4_specs_9; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P4_9[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P4_constr_9; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P5; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P5_specs_11; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P5_11[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P5_constr_11; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P6; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P6_specs_13; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P6_13[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P6_constr_13; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P7; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P7_specs_15; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P7_15[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P7_constr_15; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P8; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P8_specs_17; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P8_17[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P8_constr_17; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P9; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P9_specs_19; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P9_19[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P9_constr_19; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P10; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P10_specs_21; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P10_21[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P10_constr_21; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P11; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P11_specs_23; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P11_23[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P11_constr_23; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P12; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P12_specs_25; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P12_25[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P12_constr_25; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P13; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P13_specs_27; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P13_27[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P13_constr_27; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P14; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P14_specs_29; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P14_29[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P14_constr_29; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P15; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P15_specs_31; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P15_31[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P15_constr_31; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P16; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P16_specs_33; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P16_33[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P16_constr_33; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P17; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P17_specs_35; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P17_35[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P17_constr_35; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P18; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P18_specs_37; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P18_37[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P18_constr_37; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P19; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P19_specs_39; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P19_39[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P19_constr_39; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P20; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P20_specs_41; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P20_41[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P20_constr_41; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P21; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P21_specs_43; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P21_43[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P21_constr_43; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P22; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P22_specs_45; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P22_45[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P22_constr_45; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P23; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P23_specs_47; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P23_47[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P23_constr_47; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P24; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P24_specs_49; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P24_49[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P24_constr_49; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P25; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P25_specs_51; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P25_51[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P25_constr_51; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P26; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P26_specs_53; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P26_53[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P26_constr_53; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P27; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P27_specs_55; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P27_55[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P27_constr_55; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P28; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P28_specs_57; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P28_57[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P28_constr_57; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P29; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P29_specs_59; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P29_59[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P29_constr_59; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P30; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P30_specs_61; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P30_61[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P30_constr_61; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P31; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P31_specs_63; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P31_63[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P31_constr_63; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P32; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P32_specs_65; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P32_65[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P32_constr_65; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P33; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P33_specs_67; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P33_67[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P33_constr_67; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P34; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P34_specs_69; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P34_69[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P34_constr_69; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P35; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P35_specs_71; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P35_71[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P35_constr_71; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P36; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P36_specs_73; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P36_73[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P36_constr_73; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P37; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P37_specs_75; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P37_75[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P37_constr_75; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_85P38; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_85P38_specs_77; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_85P38_77[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_85P38_constr_77; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtocolIE_Container_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/ProtocolIE-ContainerList.c b/e2sim/asn1c/ProtocolIE-ContainerList.c new file mode 100644 index 0000000..db8959d --- /dev/null +++ b/e2sim/asn1c/ProtocolIE-ContainerList.c @@ -0,0 +1,9 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-Containers" + * found in "e2ap-container-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "ProtocolIE-ContainerList.h" + diff --git a/e2sim/asn1c/ProtocolIE-ContainerList.h b/e2sim/asn1c/ProtocolIE-ContainerList.h new file mode 100644 index 0000000..305a1b3 --- /dev/null +++ b/e2sim/asn1c/ProtocolIE-ContainerList.h @@ -0,0 +1,23 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-Containers" + * found in "e2ap-container-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _ProtocolIE_ContainerList_H_ +#define _ProtocolIE_ContainerList_H_ + + +#include "asn_application.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtocolIE_ContainerList_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/ProtocolIE-ContainerPair.c b/e2sim/asn1c/ProtocolIE-ContainerPair.c new file mode 100644 index 0000000..4c2e06e --- /dev/null +++ b/e2sim/asn1c/ProtocolIE-ContainerPair.c @@ -0,0 +1,9 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-Containers" + * found in "e2ap-container-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "ProtocolIE-ContainerPair.h" + diff --git a/e2sim/asn1c/ProtocolIE-ContainerPair.h b/e2sim/asn1c/ProtocolIE-ContainerPair.h new file mode 100644 index 0000000..748fbf8 --- /dev/null +++ b/e2sim/asn1c/ProtocolIE-ContainerPair.h @@ -0,0 +1,23 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-Containers" + * found in "e2ap-container-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _ProtocolIE_ContainerPair_H_ +#define _ProtocolIE_ContainerPair_H_ + + +#include "asn_application.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtocolIE_ContainerPair_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/ProtocolIE-ContainerPairList.c b/e2sim/asn1c/ProtocolIE-ContainerPairList.c new file mode 100644 index 0000000..726186b --- /dev/null +++ b/e2sim/asn1c/ProtocolIE-ContainerPairList.c @@ -0,0 +1,9 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-Containers" + * found in "e2ap-container-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "ProtocolIE-ContainerPairList.h" + diff --git a/e2sim/asn1c/ProtocolIE-ContainerPairList.h b/e2sim/asn1c/ProtocolIE-ContainerPairList.h new file mode 100644 index 0000000..ae86322 --- /dev/null +++ b/e2sim/asn1c/ProtocolIE-ContainerPairList.h @@ -0,0 +1,23 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-Containers" + * found in "e2ap-container-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _ProtocolIE_ContainerPairList_H_ +#define _ProtocolIE_ContainerPairList_H_ + + +#include "asn_application.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtocolIE_ContainerPairList_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/ProtocolIE-Field.c b/e2sim/asn1c/ProtocolIE-Field.c new file mode 100644 index 0000000..5675252 --- /dev/null +++ b/e2sim/asn1c/ProtocolIE-Field.c @@ -0,0 +1,24173 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-Containers" + * found in "e2ap-container-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "ProtocolIE-Field.h" + +static const long asn_VAL_6_id_RICaction_ToBeSetup_Item = 19; +static const long asn_VAL_6_ignore = 1; +static const long asn_VAL_6_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_RICaction_ToBeSetup_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_6_id_RICaction_ToBeSetup_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_ignore }, + { "&Value", aioc__type, &asn_DEF_RICaction_ToBeSetup_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_6_mandatory } +}; +static const asn_ioc_set_t asn_IOS_RICaction_ToBeSetup_ItemIEs_1[] = { + { 1, 4, asn_IOS_RICaction_ToBeSetup_ItemIEs_1_rows } +}; +static const long asn_VAL_11_id_RICaction_Admitted_Item = 14; +static const long asn_VAL_11_ignore = 1; +static const long asn_VAL_11_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_RICaction_Admitted_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_11_id_RICaction_Admitted_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_ignore }, + { "&Value", aioc__type, &asn_DEF_RICaction_Admitted_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_11_mandatory } +}; +static const asn_ioc_set_t asn_IOS_RICaction_Admitted_ItemIEs_1[] = { + { 1, 4, asn_IOS_RICaction_Admitted_ItemIEs_1_rows } +}; +static const long asn_VAL_12_id_RICaction_NotAdmitted_Item = 16; +static const long asn_VAL_12_ignore = 1; +static const long asn_VAL_12_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_RICaction_NotAdmitted_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_12_id_RICaction_NotAdmitted_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_ignore }, + { "&Value", aioc__type, &asn_DEF_RICaction_NotAdmitted_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_12_mandatory } +}; +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_26_id_RICsubscription_withCause_Item = 61; +static const long asn_VAL_26_ignore = 1; +static const long asn_VAL_26_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_RICsubscription_withCause_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_26_id_RICsubscription_withCause_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_26_ignore }, + { "&Value", aioc__type, &asn_DEF_RICsubscription_withCause_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_26_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_33_id_RICaction_ToBeRemovedForModification_Item = 66; +static const long asn_VAL_33_ignore = 1; +static const long asn_VAL_33_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_RICaction_ToBeRemovedForModification_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_33_id_RICaction_ToBeRemovedForModification_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_33_ignore }, + { "&Value", aioc__type, &asn_DEF_RICaction_ToBeRemovedForModification_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_33_mandatory } +}; +static const asn_ioc_set_t asn_IOS_RICaction_ToBeRemovedForModification_ItemIEs_1[] = { + { 1, 4, asn_IOS_RICaction_ToBeRemovedForModification_ItemIEs_1_rows } +}; +static const long asn_VAL_34_id_RICaction_ToBeModifiedForModification_Item = 68; +static const long asn_VAL_34_ignore = 1; +static const long asn_VAL_34_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_RICaction_ToBeModifiedForModification_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_34_id_RICaction_ToBeModifiedForModification_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_34_ignore }, + { "&Value", aioc__type, &asn_DEF_RICaction_ToBeModifiedForModification_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_34_mandatory } +}; +static const asn_ioc_set_t asn_IOS_RICaction_ToBeModifiedForModification_ItemIEs_1[] = { + { 1, 4, asn_IOS_RICaction_ToBeModifiedForModification_ItemIEs_1_rows } +}; +static const long asn_VAL_35_id_RICaction_ToBeAddedForModification_Item = 70; +static const long asn_VAL_35_ignore = 1; +static const long asn_VAL_35_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_RICaction_ToBeAddedForModification_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_35_id_RICaction_ToBeAddedForModification_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_35_ignore }, + { "&Value", aioc__type, &asn_DEF_RICaction_ToBeAddedForModification_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_35_mandatory } +}; +static const asn_ioc_set_t asn_IOS_RICaction_ToBeAddedForModification_ItemIEs_1[] = { + { 1, 4, asn_IOS_RICaction_ToBeAddedForModification_ItemIEs_1_rows } +}; +static const long asn_VAL_44_id_RICaction_RemovedForModification_Item = 72; +static const long asn_VAL_44_ignore = 1; +static const long asn_VAL_44_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_RICaction_RemovedForModification_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_44_id_RICaction_RemovedForModification_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_44_ignore }, + { "&Value", aioc__type, &asn_DEF_RICaction_RemovedForModification_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_44_mandatory } +}; +static const asn_ioc_set_t asn_IOS_RICaction_RemovedForModification_ItemIEs_1[] = { + { 1, 4, asn_IOS_RICaction_RemovedForModification_ItemIEs_1_rows } +}; +static const long asn_VAL_45_id_RICaction_FailedToBeRemovedForModification_Item = 74; +static const long asn_VAL_45_ignore = 1; +static const long asn_VAL_45_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_RICaction_FailedToBeRemovedForModification_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_45_id_RICaction_FailedToBeRemovedForModification_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_45_ignore }, + { "&Value", aioc__type, &asn_DEF_RICaction_FailedToBeRemovedForModification_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_45_mandatory } +}; +static const asn_ioc_set_t asn_IOS_RICaction_FailedToBeRemovedForModification_ItemIEs_1[] = { + { 1, 4, asn_IOS_RICaction_FailedToBeRemovedForModification_ItemIEs_1_rows } +}; +static const long asn_VAL_46_id_RICaction_ModifiedForModification_Item = 76; +static const long asn_VAL_46_ignore = 1; +static const long asn_VAL_46_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_RICaction_ModifiedForModification_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_46_id_RICaction_ModifiedForModification_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_46_ignore }, + { "&Value", aioc__type, &asn_DEF_RICaction_ModifiedForModification_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_46_mandatory } +}; +static const asn_ioc_set_t asn_IOS_RICaction_ModifiedForModification_ItemIEs_1[] = { + { 1, 4, asn_IOS_RICaction_ModifiedForModification_ItemIEs_1_rows } +}; +static const long asn_VAL_47_id_RICaction_FailedToBeModifiedForModification_Item = 78; +static const long asn_VAL_47_ignore = 1; +static const long asn_VAL_47_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_RICaction_FailedToBeModifiedForModification_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_47_id_RICaction_FailedToBeModifiedForModification_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_47_ignore }, + { "&Value", aioc__type, &asn_DEF_RICaction_FailedToBeModifiedForModification_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_47_mandatory } +}; +static const asn_ioc_set_t asn_IOS_RICaction_FailedToBeModifiedForModification_ItemIEs_1[] = { + { 1, 4, asn_IOS_RICaction_FailedToBeModifiedForModification_ItemIEs_1_rows } +}; +static const long asn_VAL_48_id_RICaction_AddedForModification_Item = 80; +static const long asn_VAL_48_ignore = 1; +static const long asn_VAL_48_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_RICaction_AddedForModification_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_48_id_RICaction_AddedForModification_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_48_ignore }, + { "&Value", aioc__type, &asn_DEF_RICaction_AddedForModification_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_48_mandatory } +}; +static const asn_ioc_set_t asn_IOS_RICaction_AddedForModification_ItemIEs_1[] = { + { 1, 4, asn_IOS_RICaction_AddedForModification_ItemIEs_1_rows } +}; +static const long asn_VAL_49_id_RICaction_FailedToBeAddedForModification_Item = 82; +static const long asn_VAL_49_ignore = 1; +static const long asn_VAL_49_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_RICaction_FailedToBeAddedForModification_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_49_id_RICaction_FailedToBeAddedForModification_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_49_ignore }, + { "&Value", aioc__type, &asn_DEF_RICaction_FailedToBeAddedForModification_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_49_mandatory } +}; +static const asn_ioc_set_t asn_IOS_RICaction_FailedToBeAddedForModification_ItemIEs_1[] = { + { 1, 4, asn_IOS_RICaction_FailedToBeAddedForModification_ItemIEs_1_rows } +}; +static const long asn_VAL_58_id_RICaction_RequiredToBeModified_Item = 84; +static const long asn_VAL_58_ignore = 1; +static const long asn_VAL_58_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_RICaction_RequiredToBeModified_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_58_id_RICaction_RequiredToBeModified_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_58_ignore }, + { "&Value", aioc__type, &asn_DEF_RICaction_RequiredToBeModified_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_58_mandatory } +}; +static const asn_ioc_set_t asn_IOS_RICaction_RequiredToBeModified_ItemIEs_1[] = { + { 1, 4, asn_IOS_RICaction_RequiredToBeModified_ItemIEs_1_rows } +}; +static const long asn_VAL_59_id_RICaction_RequiredToBeRemoved_Item = 86; +static const long asn_VAL_59_ignore = 1; +static const long asn_VAL_59_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_RICaction_RequiredToBeRemoved_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_59_id_RICaction_RequiredToBeRemoved_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_59_ignore }, + { "&Value", aioc__type, &asn_DEF_RICaction_RequiredToBeRemoved_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_59_mandatory } +}; +static const asn_ioc_set_t asn_IOS_RICaction_RequiredToBeRemoved_ItemIEs_1[] = { + { 1, 4, asn_IOS_RICaction_RequiredToBeRemoved_ItemIEs_1_rows } +}; +static const long asn_VAL_66_id_RICaction_ConfirmedForModification_Item = 88; +static const long asn_VAL_66_ignore = 1; +static const long asn_VAL_66_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_RICaction_ConfirmedForModification_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_66_id_RICaction_ConfirmedForModification_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_66_ignore }, + { "&Value", aioc__type, &asn_DEF_RICaction_ConfirmedForModification_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_66_mandatory } +}; +static const asn_ioc_set_t asn_IOS_RICaction_ConfirmedForModification_ItemIEs_1[] = { + { 1, 4, asn_IOS_RICaction_ConfirmedForModification_ItemIEs_1_rows } +}; +static const long asn_VAL_67_id_RICaction_RefusedToBeModified_Item = 90; +static const long asn_VAL_67_ignore = 1; +static const long asn_VAL_67_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_RICaction_RefusedToBeModified_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_67_id_RICaction_RefusedToBeModified_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_67_ignore }, + { "&Value", aioc__type, &asn_DEF_RICaction_RefusedToBeModified_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_67_mandatory } +}; +static const asn_ioc_set_t asn_IOS_RICaction_RefusedToBeModified_ItemIEs_1[] = { + { 1, 4, asn_IOS_RICaction_RefusedToBeModified_ItemIEs_1_rows } +}; +static const long asn_VAL_68_id_RICaction_ConfirmedForRemoval_Item = 92; +static const long asn_VAL_68_ignore = 1; +static const long asn_VAL_68_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_RICaction_ConfirmedForRemoval_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_68_id_RICaction_ConfirmedForRemoval_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_68_ignore }, + { "&Value", aioc__type, &asn_DEF_RICaction_ConfirmedForRemoval_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_68_mandatory } +}; +static const asn_ioc_set_t asn_IOS_RICaction_ConfirmedForRemoval_ItemIEs_1[] = { + { 1, 4, asn_IOS_RICaction_ConfirmedForRemoval_ItemIEs_1_rows } +}; +static const long asn_VAL_69_id_RICaction_RefusedToBeRemoved_Item = 94; +static const long asn_VAL_69_ignore = 1; +static const long asn_VAL_69_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_RICaction_RefusedToBeRemoved_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_69_id_RICaction_RefusedToBeRemoved_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_69_ignore }, + { "&Value", aioc__type, &asn_DEF_RICaction_RefusedToBeRemoved_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_69_mandatory } +}; +static const asn_ioc_set_t asn_IOS_RICaction_RefusedToBeRemoved_ItemIEs_1[] = { + { 1, 4, asn_IOS_RICaction_RefusedToBeRemoved_ItemIEs_1_rows } +}; +static const long asn_VAL_132_id_E2connectionUpdate_Item = 43; +static const long asn_VAL_132_ignore = 1; +static const long asn_VAL_132_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2connectionUpdate_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_132_id_E2connectionUpdate_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_132_ignore }, + { "&Value", aioc__type, &asn_DEF_E2connectionUpdate_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_132_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_133_id_E2connectionUpdateRemove_Item = 47; +static const long asn_VAL_133_ignore = 1; +static const long asn_VAL_133_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2connectionUpdateRemove_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_133_id_E2connectionUpdateRemove_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_133_ignore }, + { "&Value", aioc__type, &asn_DEF_E2connectionUpdateRemove_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_133_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_137_id_E2connectionSetupFailed_Item = 41; +static const long asn_VAL_137_ignore = 1; +static const long asn_VAL_137_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2connectionSetupFailed_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_137_id_E2connectionSetupFailed_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_137_ignore }, + { "&Value", aioc__type, &asn_DEF_E2connectionSetupFailed_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_137_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_148_id_E2nodeComponentConfigAddition_Item = 51; +static const long asn_VAL_148_reject = 0; +static const long asn_VAL_148_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2nodeComponentConfigAddition_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_148_id_E2nodeComponentConfigAddition_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_148_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAddition_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_148_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_149_id_E2nodeComponentConfigUpdate_Item = 34; +static const long asn_VAL_149_reject = 0; +static const long asn_VAL_149_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2nodeComponentConfigUpdate_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_149_id_E2nodeComponentConfigUpdate_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_149_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigUpdate_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_149_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_150_id_E2nodeComponentConfigRemoval_Item = 55; +static const long asn_VAL_150_reject = 0; +static const long asn_VAL_150_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2nodeComponentConfigRemoval_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_150_id_E2nodeComponentConfigRemoval_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_150_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigRemoval_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_150_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_151_id_E2nodeTNLassociationRemoval_Item = 59; +static const long asn_VAL_151_reject = 0; +static const long asn_VAL_151_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2nodeTNLassociationRemoval_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_151_id_E2nodeTNLassociationRemoval_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_151_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeTNLassociationRemoval_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_151_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_156_id_E2nodeComponentConfigAdditionAck_Item = 53; +static const long asn_VAL_156_reject = 0; +static const long asn_VAL_156_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2nodeComponentConfigAdditionAck_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_156_id_E2nodeComponentConfigAdditionAck_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_156_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAdditionAck_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_156_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_157_id_E2nodeComponentConfigUpdateAck_Item = 36; +static const long asn_VAL_157_reject = 0; +static const long asn_VAL_157_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2nodeComponentConfigUpdateAck_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_157_id_E2nodeComponentConfigUpdateAck_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_157_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigUpdateAck_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_157_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_158_id_E2nodeComponentConfigRemovalAck_Item = 57; +static const long asn_VAL_158_reject = 0; +static const long asn_VAL_158_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2nodeComponentConfigRemovalAck_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_158_id_E2nodeComponentConfigRemovalAck_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_158_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigRemovalAck_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_158_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_171_id_RANfunction_Item = 8; +static const long asn_VAL_171_ignore = 1; +static const long asn_VAL_171_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_RANfunction_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_171_id_RANfunction_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_171_ignore }, + { "&Value", aioc__type, &asn_DEF_RANfunction_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_171_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_172_id_RANfunctionID_Item = 6; +static const long asn_VAL_172_ignore = 1; +static const long asn_VAL_172_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_RANfunctionID_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_172_id_RANfunctionID_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_172_ignore }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_172_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_176_id_RANfunctionIEcause_Item = 7; +static const long asn_VAL_176_ignore = 1; +static const long asn_VAL_176_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_RANfunctionIDcause_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_176_id_RANfunctionIEcause_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_176_ignore }, + { "&Value", aioc__type, &asn_DEF_RANfunctionIDcause_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_176_mandatory } +}; +static const asn_ioc_set_t asn_IOS_RANfunctionIDcause_ItemIEs_1[] = { + { 1, 4, asn_IOS_RANfunctionIDcause_ItemIEs_1_rows } +}; +static const long asn_VAL_1_id_RICrequestID = 29; +static const long asn_VAL_1_reject = 0; +static const long asn_VAL_1_mandatory = 2; +static const long asn_VAL_2_id_RANfunctionID = 5; +static const long asn_VAL_2_reject = 0; +static const long asn_VAL_2_mandatory = 2; +static const long asn_VAL_3_id_RICsubscriptionDetails = 30; +static const long asn_VAL_3_reject = 0; +static const long asn_VAL_3_mandatory = 2; +static const long asn_VAL_4_id_RICsubscriptionStartTime = 62; +static const long asn_VAL_4_reject = 0; +static const long asn_VAL_4_optional = 0; +static const long asn_VAL_5_id_RICsubscriptionEndTime = 63; +static const long asn_VAL_5_reject = 0; +static const long asn_VAL_5_optional = 0; +static const asn_ioc_cell_t asn_IOS_RICsubscriptionRequest_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_1_id_RICrequestID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_1_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_2_id_RANfunctionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_2_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_3_id_RICsubscriptionDetails }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, + { "&Value", aioc__type, &asn_DEF_RICsubscriptionDetails }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_3_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_4_id_RICsubscriptionStartTime }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject }, + { "&Value", aioc__type, &asn_DEF_RICsubscriptionTime }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_4_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_5_id_RICsubscriptionEndTime }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, + { "&Value", aioc__type, &asn_DEF_RICsubscriptionTime }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_5_optional } +}; +static const asn_ioc_set_t asn_IOS_RICsubscriptionRequest_IEs_1[] = { + { 5, 4, asn_IOS_RICsubscriptionRequest_IEs_1_rows } +}; +static const long asn_VAL_7_id_RICrequestID = 29; +static const long asn_VAL_7_reject = 0; +static const long asn_VAL_7_mandatory = 2; +static const long asn_VAL_8_id_RANfunctionID = 5; +static const long asn_VAL_8_reject = 0; +static const long asn_VAL_8_mandatory = 2; +static const long asn_VAL_9_id_RICactions_Admitted = 17; +static const long asn_VAL_9_reject = 0; +static const long asn_VAL_9_mandatory = 2; +static const long asn_VAL_10_id_RICactions_NotAdmitted = 18; +static const long asn_VAL_10_reject = 0; +static const long asn_VAL_10_optional = 0; +static const asn_ioc_cell_t asn_IOS_RICsubscriptionResponse_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_7_id_RICrequestID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_reject }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_7_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_8_id_RANfunctionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_8_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_9_id_RICactions_Admitted }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_reject }, + { "&Value", aioc__type, &asn_DEF_RICaction_Admitted_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_9_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_10_id_RICactions_NotAdmitted }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_reject }, + { "&Value", aioc__type, &asn_DEF_RICaction_NotAdmitted_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_10_optional } +}; +static const asn_ioc_set_t asn_IOS_RICsubscriptionResponse_IEs_1[] = { + { 4, 4, asn_IOS_RICsubscriptionResponse_IEs_1_rows } +}; +static const long asn_VAL_13_id_RICrequestID = 29; +static const long asn_VAL_13_reject = 0; +static const long asn_VAL_13_mandatory = 2; +static const long asn_VAL_14_id_RANfunctionID = 5; +static const long asn_VAL_14_reject = 0; +static const long asn_VAL_14_mandatory = 2; +static const long asn_VAL_15_id_Cause = 1; +static const long asn_VAL_15_reject = 0; +static const long asn_VAL_15_mandatory = 2; +static const long asn_VAL_16_id_CriticalityDiagnostics = 2; +static const long asn_VAL_16_ignore = 1; +static const long asn_VAL_16_optional = 0; +static const asn_ioc_cell_t asn_IOS_RICsubscriptionFailure_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_13_id_RICrequestID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_13_reject }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_13_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_14_id_RANfunctionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_14_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_14_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_15_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_15_reject }, + { "&Value", aioc__type, &asn_DEF_Cause }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_15_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_16_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_16_ignore }, + { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_16_optional } +}; +static const asn_ioc_set_t asn_IOS_RICsubscriptionFailure_IEs_1[] = { + { 4, 4, asn_IOS_RICsubscriptionFailure_IEs_1_rows } +}; +static const long asn_VAL_17_id_RICrequestID = 29; +static const long asn_VAL_17_reject = 0; +static const long asn_VAL_17_mandatory = 2; +static const long asn_VAL_18_id_RANfunctionID = 5; +static const long asn_VAL_18_reject = 0; +static const long asn_VAL_18_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteRequest_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_17_id_RICrequestID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_17_reject }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_17_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_18_id_RANfunctionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_18_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_18_mandatory } +}; +static const asn_ioc_set_t asn_IOS_RICsubscriptionDeleteRequest_IEs_1[] = { + { 2, 4, asn_IOS_RICsubscriptionDeleteRequest_IEs_1_rows } +}; +static const long asn_VAL_19_id_RICrequestID = 29; +static const long asn_VAL_19_reject = 0; +static const long asn_VAL_19_mandatory = 2; +static const long asn_VAL_20_id_RANfunctionID = 5; +static const long asn_VAL_20_reject = 0; +static const long asn_VAL_20_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteResponse_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_19_id_RICrequestID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_19_reject }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_19_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_20_id_RANfunctionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_20_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_20_mandatory } +}; +static const asn_ioc_set_t asn_IOS_RICsubscriptionDeleteResponse_IEs_1[] = { + { 2, 4, asn_IOS_RICsubscriptionDeleteResponse_IEs_1_rows } +}; +static const long asn_VAL_21_id_RICrequestID = 29; +static const long asn_VAL_21_reject = 0; +static const long asn_VAL_21_mandatory = 2; +static const long asn_VAL_22_id_RANfunctionID = 5; +static const long asn_VAL_22_reject = 0; +static const long asn_VAL_22_mandatory = 2; +static const long asn_VAL_23_id_Cause = 1; +static const long asn_VAL_23_ignore = 1; +static const long asn_VAL_23_mandatory = 2; +static const long asn_VAL_24_id_CriticalityDiagnostics = 2; +static const long asn_VAL_24_ignore = 1; +static const long asn_VAL_24_optional = 0; +static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteFailure_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_21_id_RICrequestID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_21_reject }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_21_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_22_id_RANfunctionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_22_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_22_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_23_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_23_ignore }, + { "&Value", aioc__type, &asn_DEF_Cause }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_23_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_24_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_24_ignore }, + { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_24_optional } +}; +static const asn_ioc_set_t asn_IOS_RICsubscriptionDeleteFailure_IEs_1[] = { + { 4, 4, asn_IOS_RICsubscriptionDeleteFailure_IEs_1_rows } +}; +static const long asn_VAL_25_id_RICsubscriptionToBeRemoved = 60; +static const long asn_VAL_25_ignore = 1; +static const long asn_VAL_25_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteRequired_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_25_id_RICsubscriptionToBeRemoved }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_25_ignore }, + { "&Value", aioc__type, &asn_DEF_RICsubscription_List_withCause }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_25_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_27_id_RICrequestID = 29; +static const long asn_VAL_27_reject = 0; +static const long asn_VAL_27_mandatory = 2; +static const long asn_VAL_28_id_RANfunctionID = 5; +static const long asn_VAL_28_reject = 0; +static const long asn_VAL_28_mandatory = 2; +static const long asn_VAL_29_id_RICeventTriggerDefinitionToBeModified = 64; +static const long asn_VAL_29_ignore = 1; +static const long asn_VAL_29_optional = 0; +static const long asn_VAL_30_id_RICactionsToBeRemovedForModification_List = 65; +static const long asn_VAL_30_ignore = 1; +static const long asn_VAL_30_optional = 0; +static const long asn_VAL_31_id_RICactionsToBeModifiedForModification_List = 67; +static const long asn_VAL_31_ignore = 1; +static const long asn_VAL_31_optional = 0; +static const long asn_VAL_32_id_RICactionsToBeAddedForModification_List = 69; +static const long asn_VAL_32_ignore = 1; +static const long asn_VAL_32_optional = 0; +static const asn_ioc_cell_t asn_IOS_RICsubscriptionModificationRequest_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_27_id_RICrequestID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_27_reject }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_27_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_28_id_RANfunctionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_28_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_28_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_29_id_RICeventTriggerDefinitionToBeModified }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_29_ignore }, + { "&Value", aioc__type, &asn_DEF_RICeventTriggerDefinition }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_29_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_30_id_RICactionsToBeRemovedForModification_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_30_ignore }, + { "&Value", aioc__type, &asn_DEF_RICactions_ToBeRemovedForModification_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_30_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_31_id_RICactionsToBeModifiedForModification_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_31_ignore }, + { "&Value", aioc__type, &asn_DEF_RICactions_ToBeModifiedForModification_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_31_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_32_id_RICactionsToBeAddedForModification_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_32_ignore }, + { "&Value", aioc__type, &asn_DEF_RICactions_ToBeAddedForModification_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_32_optional } +}; +static const asn_ioc_set_t asn_IOS_RICsubscriptionModificationRequest_IEs_1[] = { + { 6, 4, asn_IOS_RICsubscriptionModificationRequest_IEs_1_rows } +}; +static const long asn_VAL_36_id_RICrequestID = 29; +static const long asn_VAL_36_reject = 0; +static const long asn_VAL_36_mandatory = 2; +static const long asn_VAL_37_id_RANfunctionID = 5; +static const long asn_VAL_37_reject = 0; +static const long asn_VAL_37_mandatory = 2; +static const long asn_VAL_38_id_RICactionsRemovedForModification_List = 71; +static const long asn_VAL_38_ignore = 1; +static const long asn_VAL_38_optional = 0; +static const long asn_VAL_39_id_RICactionsFailedToBeRemovedForModification_List = 73; +static const long asn_VAL_39_ignore = 1; +static const long asn_VAL_39_optional = 0; +static const long asn_VAL_40_id_RICactionsModifiedForModification_List = 75; +static const long asn_VAL_40_ignore = 1; +static const long asn_VAL_40_optional = 0; +static const long asn_VAL_41_id_RICactionsFailedToBeModifiedForModification_List = 77; +static const long asn_VAL_41_ignore = 1; +static const long asn_VAL_41_optional = 0; +static const long asn_VAL_42_id_RICactionsAddedForModification_List = 79; +static const long asn_VAL_42_ignore = 1; +static const long asn_VAL_42_optional = 0; +static const long asn_VAL_43_id_RICactionsFailedToBeAddedForModification_List = 81; +static const long asn_VAL_43_ignore = 1; +static const long asn_VAL_43_optional = 0; +static const asn_ioc_cell_t asn_IOS_RICsubscriptionModificationResponse_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_36_id_RICrequestID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_36_reject }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_36_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_37_id_RANfunctionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_37_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_37_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_38_id_RICactionsRemovedForModification_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_38_ignore }, + { "&Value", aioc__type, &asn_DEF_RICactions_RemovedForModification_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_38_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_39_id_RICactionsFailedToBeRemovedForModification_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_39_ignore }, + { "&Value", aioc__type, &asn_DEF_RICactions_FailedToBeRemovedForModification_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_39_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_40_id_RICactionsModifiedForModification_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_40_ignore }, + { "&Value", aioc__type, &asn_DEF_RICactions_ModifiedForModification_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_40_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_41_id_RICactionsFailedToBeModifiedForModification_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_41_ignore }, + { "&Value", aioc__type, &asn_DEF_RICactions_FailedToBeModifiedForModification_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_41_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_42_id_RICactionsAddedForModification_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_42_ignore }, + { "&Value", aioc__type, &asn_DEF_RICactions_AddedForModification_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_42_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_43_id_RICactionsFailedToBeAddedForModification_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_43_ignore }, + { "&Value", aioc__type, &asn_DEF_RICactions_FailedToBeAddedForModification_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_43_optional } +}; +static const asn_ioc_set_t asn_IOS_RICsubscriptionModificationResponse_IEs_1[] = { + { 8, 4, asn_IOS_RICsubscriptionModificationResponse_IEs_1_rows } +}; +static const long asn_VAL_50_id_RICrequestID = 29; +static const long asn_VAL_50_reject = 0; +static const long asn_VAL_50_mandatory = 2; +static const long asn_VAL_51_id_RANfunctionID = 5; +static const long asn_VAL_51_reject = 0; +static const long asn_VAL_51_mandatory = 2; +static const long asn_VAL_52_id_Cause = 1; +static const long asn_VAL_52_reject = 0; +static const long asn_VAL_52_mandatory = 2; +static const long asn_VAL_53_id_CriticalityDiagnostics = 2; +static const long asn_VAL_53_ignore = 1; +static const long asn_VAL_53_optional = 0; +static const asn_ioc_cell_t asn_IOS_RICsubscriptionModificationFailure_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_50_id_RICrequestID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_50_reject }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_50_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_51_id_RANfunctionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_51_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_51_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_52_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_52_reject }, + { "&Value", aioc__type, &asn_DEF_Cause }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_52_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_53_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_53_ignore }, + { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_53_optional } +}; +static const asn_ioc_set_t asn_IOS_RICsubscriptionModificationFailure_IEs_1[] = { + { 4, 4, asn_IOS_RICsubscriptionModificationFailure_IEs_1_rows } +}; +static const long asn_VAL_54_id_RICrequestID = 29; +static const long asn_VAL_54_reject = 0; +static const long asn_VAL_54_mandatory = 2; +static const long asn_VAL_55_id_RANfunctionID = 5; +static const long asn_VAL_55_reject = 0; +static const long asn_VAL_55_mandatory = 2; +static const long asn_VAL_56_id_RICactionsRequiredToBeModified_List = 83; +static const long asn_VAL_56_ignore = 1; +static const long asn_VAL_56_optional = 0; +static const long asn_VAL_57_id_RICactionsRequiredToBeRemoved_List = 85; +static const long asn_VAL_57_ignore = 1; +static const long asn_VAL_57_optional = 0; +static const asn_ioc_cell_t asn_IOS_RICsubscriptionModificationRequired_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_54_id_RICrequestID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_54_reject }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_54_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_55_id_RANfunctionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_55_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_55_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_56_id_RICactionsRequiredToBeModified_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_56_ignore }, + { "&Value", aioc__type, &asn_DEF_RICactions_RequiredToBeModified_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_56_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_57_id_RICactionsRequiredToBeRemoved_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_57_ignore }, + { "&Value", aioc__type, &asn_DEF_RICactions_RequiredToBeRemoved_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_57_optional } +}; +static const asn_ioc_set_t asn_IOS_RICsubscriptionModificationRequired_IEs_1[] = { + { 4, 4, asn_IOS_RICsubscriptionModificationRequired_IEs_1_rows } +}; +static const long asn_VAL_60_id_RICrequestID = 29; +static const long asn_VAL_60_reject = 0; +static const long asn_VAL_60_mandatory = 2; +static const long asn_VAL_61_id_RANfunctionID = 5; +static const long asn_VAL_61_reject = 0; +static const long asn_VAL_61_mandatory = 2; +static const long asn_VAL_62_id_RICactionsConfirmedForModification_List = 87; +static const long asn_VAL_62_ignore = 1; +static const long asn_VAL_62_optional = 0; +static const long asn_VAL_63_id_RICactionsRefusedToBeModified_List = 89; +static const long asn_VAL_63_ignore = 1; +static const long asn_VAL_63_optional = 0; +static const long asn_VAL_64_id_RICactionsConfirmedForRemoval_List = 91; +static const long asn_VAL_64_ignore = 1; +static const long asn_VAL_64_optional = 0; +static const long asn_VAL_65_id_RICactionsRefusedToBeRemoved_List = 93; +static const long asn_VAL_65_ignore = 1; +static const long asn_VAL_65_optional = 0; +static const asn_ioc_cell_t asn_IOS_RICsubscriptionModificationConfirm_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_60_id_RICrequestID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_60_reject }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_60_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_61_id_RANfunctionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_61_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_61_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_62_id_RICactionsConfirmedForModification_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_62_ignore }, + { "&Value", aioc__type, &asn_DEF_RICactions_ConfirmedForModification_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_62_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_63_id_RICactionsRefusedToBeModified_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_63_ignore }, + { "&Value", aioc__type, &asn_DEF_RICactions_RefusedToBeModified_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_63_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_64_id_RICactionsConfirmedForRemoval_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_64_ignore }, + { "&Value", aioc__type, &asn_DEF_RICactions_ConfirmedForRemoval_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_64_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_65_id_RICactionsRefusedToBeRemoved_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_65_ignore }, + { "&Value", aioc__type, &asn_DEF_RICactions_RefusedToBeRemoved_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_65_optional } +}; +static const asn_ioc_set_t asn_IOS_RICsubscriptionModificationConfirm_IEs_1[] = { + { 6, 4, asn_IOS_RICsubscriptionModificationConfirm_IEs_1_rows } +}; +static const long asn_VAL_70_id_RICrequestID = 29; +static const long asn_VAL_70_reject = 0; +static const long asn_VAL_70_mandatory = 2; +static const long asn_VAL_71_id_RANfunctionID = 5; +static const long asn_VAL_71_reject = 0; +static const long asn_VAL_71_mandatory = 2; +static const long asn_VAL_72_id_Cause = 1; +static const long asn_VAL_72_reject = 0; +static const long asn_VAL_72_mandatory = 2; +static const long asn_VAL_73_id_CriticalityDiagnostics = 2; +static const long asn_VAL_73_ignore = 1; +static const long asn_VAL_73_optional = 0; +static const asn_ioc_cell_t asn_IOS_RICsubscriptionModificationRefuse_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_70_id_RICrequestID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_70_reject }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_70_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_71_id_RANfunctionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_71_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_71_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_72_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_72_reject }, + { "&Value", aioc__type, &asn_DEF_Cause }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_72_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_73_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_73_ignore }, + { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_73_optional } +}; +static const asn_ioc_set_t asn_IOS_RICsubscriptionModificationRefuse_IEs_1[] = { + { 4, 4, asn_IOS_RICsubscriptionModificationRefuse_IEs_1_rows } +}; +static const long asn_VAL_74_id_RICrequestID = 29; +static const long asn_VAL_74_reject = 0; +static const long asn_VAL_74_mandatory = 2; +static const long asn_VAL_75_id_RANfunctionID = 5; +static const long asn_VAL_75_reject = 0; +static const long asn_VAL_75_mandatory = 2; +static const long asn_VAL_76_id_RICactionID = 15; +static const long asn_VAL_76_reject = 0; +static const long asn_VAL_76_mandatory = 2; +static const long asn_VAL_77_id_RICindicationSN = 27; +static const long asn_VAL_77_reject = 0; +static const long asn_VAL_77_optional = 0; +static const long asn_VAL_78_id_RICindicationType = 28; +static const long asn_VAL_78_reject = 0; +static const long asn_VAL_78_mandatory = 2; +static const long asn_VAL_79_id_RICindicationHeader = 25; +static const long asn_VAL_79_reject = 0; +static const long asn_VAL_79_mandatory = 2; +static const long asn_VAL_80_id_RICindicationMessage = 26; +static const long asn_VAL_80_reject = 0; +static const long asn_VAL_80_mandatory = 2; +static const long asn_VAL_81_id_RICcallProcessID = 20; +static const long asn_VAL_81_reject = 0; +static const long asn_VAL_81_optional = 0; +static const asn_ioc_cell_t asn_IOS_RICindication_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_74_id_RICrequestID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_74_reject }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_74_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_75_id_RANfunctionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_75_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_75_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_76_id_RICactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_76_reject }, + { "&Value", aioc__type, &asn_DEF_RICactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_76_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_77_id_RICindicationSN }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_77_reject }, + { "&Value", aioc__type, &asn_DEF_RICindicationSN }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_77_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_78_id_RICindicationType }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_78_reject }, + { "&Value", aioc__type, &asn_DEF_RICindicationType }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_78_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_79_id_RICindicationHeader }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_79_reject }, + { "&Value", aioc__type, &asn_DEF_RICindicationHeader }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_79_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_80_id_RICindicationMessage }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_80_reject }, + { "&Value", aioc__type, &asn_DEF_RICindicationMessage }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_80_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_81_id_RICcallProcessID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_81_reject }, + { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_81_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_82_id_RICrequestID = 29; +static const long asn_VAL_82_reject = 0; +static const long asn_VAL_82_mandatory = 2; +static const long asn_VAL_83_id_RANfunctionID = 5; +static const long asn_VAL_83_reject = 0; +static const long asn_VAL_83_mandatory = 2; +static const long asn_VAL_84_id_RICcallProcessID = 20; +static const long asn_VAL_84_reject = 0; +static const long asn_VAL_84_optional = 0; +static const long asn_VAL_85_id_RICcontrolHeader = 22; +static const long asn_VAL_85_reject = 0; +static const long asn_VAL_85_mandatory = 2; +static const long asn_VAL_86_id_RICcontrolMessage = 23; +static const long asn_VAL_86_reject = 0; +static const long asn_VAL_86_mandatory = 2; +static const long asn_VAL_87_id_RICcontrolAckRequest = 21; +static const long asn_VAL_87_reject = 0; +static const long asn_VAL_87_optional = 0; +static const asn_ioc_cell_t asn_IOS_RICcontrolRequest_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_82_id_RICrequestID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_82_reject }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_82_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_83_id_RANfunctionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_83_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_83_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_84_id_RICcallProcessID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_84_reject }, + { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_84_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_85_id_RICcontrolHeader }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_85_reject }, + { "&Value", aioc__type, &asn_DEF_RICcontrolHeader }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_85_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_86_id_RICcontrolMessage }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_86_reject }, + { "&Value", aioc__type, &asn_DEF_RICcontrolMessage }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_86_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_87_id_RICcontrolAckRequest }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_87_reject }, + { "&Value", aioc__type, &asn_DEF_RICcontrolAckRequest }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_87_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_88_id_RICrequestID = 29; +static const long asn_VAL_88_reject = 0; +static const long asn_VAL_88_mandatory = 2; +static const long asn_VAL_89_id_RANfunctionID = 5; +static const long asn_VAL_89_reject = 0; +static const long asn_VAL_89_mandatory = 2; +static const long asn_VAL_90_id_RICcallProcessID = 20; +static const long asn_VAL_90_reject = 0; +static const long asn_VAL_90_optional = 0; +static const long asn_VAL_91_id_RICcontrolOutcome = 32; +static const long asn_VAL_91_reject = 0; +static const long asn_VAL_91_optional = 0; +static const asn_ioc_cell_t asn_IOS_RICcontrolAcknowledge_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_88_id_RICrequestID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_88_reject }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_88_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_89_id_RANfunctionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_89_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_89_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_90_id_RICcallProcessID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_90_reject }, + { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_90_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_91_id_RICcontrolOutcome }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_91_reject }, + { "&Value", aioc__type, &asn_DEF_RICcontrolOutcome }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_91_optional } +}; +static const asn_ioc_set_t asn_IOS_RICcontrolAcknowledge_IEs_1[] = { + { 4, 4, asn_IOS_RICcontrolAcknowledge_IEs_1_rows } +}; +static const long asn_VAL_92_id_RICrequestID = 29; +static const long asn_VAL_92_reject = 0; +static const long asn_VAL_92_mandatory = 2; +static const long asn_VAL_93_id_RANfunctionID = 5; +static const long asn_VAL_93_reject = 0; +static const long asn_VAL_93_mandatory = 2; +static const long asn_VAL_94_id_RICcallProcessID = 20; +static const long asn_VAL_94_reject = 0; +static const long asn_VAL_94_optional = 0; +static const long asn_VAL_95_id_Cause = 1; +static const long asn_VAL_95_ignore = 1; +static const long asn_VAL_95_mandatory = 2; +static const long asn_VAL_96_id_RICcontrolOutcome = 32; +static const long asn_VAL_96_reject = 0; +static const long asn_VAL_96_optional = 0; +static const long asn_VAL_97_id_CriticalityDiagnostics = 2; +static const long asn_VAL_97_ignore = 1; +static const long asn_VAL_97_optional = 0; +static const asn_ioc_cell_t asn_IOS_RICcontrolFailure_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_92_id_RICrequestID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_92_reject }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_92_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_93_id_RANfunctionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_93_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_93_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_94_id_RICcallProcessID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_94_reject }, + { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_94_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_95_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_95_ignore }, + { "&Value", aioc__type, &asn_DEF_Cause }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_95_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_96_id_RICcontrolOutcome }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_96_reject }, + { "&Value", aioc__type, &asn_DEF_RICcontrolOutcome }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_96_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_97_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_97_ignore }, + { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_97_optional } +}; +static const asn_ioc_set_t asn_IOS_RICcontrolFailure_IEs_1[] = { + { 6, 4, asn_IOS_RICcontrolFailure_IEs_1_rows } +}; +static const long asn_VAL_98_id_RICrequestID = 29; +static const long asn_VAL_98_reject = 0; +static const long asn_VAL_98_mandatory = 2; +static const long asn_VAL_99_id_RANfunctionID = 5; +static const long asn_VAL_99_reject = 0; +static const long asn_VAL_99_mandatory = 2; +static const long asn_VAL_100_id_RICqueryHeader = 95; +static const long asn_VAL_100_reject = 0; +static const long asn_VAL_100_mandatory = 2; +static const long asn_VAL_101_id_RICqueryDefinition = 96; +static const long asn_VAL_101_reject = 0; +static const long asn_VAL_101_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_RICQueryRequest_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_98_id_RICrequestID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_98_reject }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_98_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_99_id_RANfunctionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_99_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_99_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_100_id_RICqueryHeader }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_100_reject }, + { "&Value", aioc__type, &asn_DEF_RICqueryHeader }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_100_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_101_id_RICqueryDefinition }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_101_reject }, + { "&Value", aioc__type, &asn_DEF_RICqueryDefinition }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_101_mandatory } +}; +static const asn_ioc_set_t asn_IOS_RICQueryRequest_IEs_1[] = { + { 4, 4, asn_IOS_RICQueryRequest_IEs_1_rows } +}; +static const long asn_VAL_102_id_RICrequestID = 29; +static const long asn_VAL_102_reject = 0; +static const long asn_VAL_102_mandatory = 2; +static const long asn_VAL_103_id_RANfunctionID = 5; +static const long asn_VAL_103_reject = 0; +static const long asn_VAL_103_mandatory = 2; +static const long asn_VAL_104_id_RICqueryOutcome = 97; +static const long asn_VAL_104_reject = 0; +static const long asn_VAL_104_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_RICQueryResponse_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_102_id_RICrequestID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_102_reject }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_102_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_103_id_RANfunctionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_103_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_103_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_104_id_RICqueryOutcome }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_104_reject }, + { "&Value", aioc__type, &asn_DEF_RICqueryOutcome }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_104_mandatory } +}; +static const asn_ioc_set_t asn_IOS_RICQueryResponse_IEs_1[] = { + { 3, 4, asn_IOS_RICQueryResponse_IEs_1_rows } +}; +static const long asn_VAL_105_id_RICrequestID = 29; +static const long asn_VAL_105_reject = 0; +static const long asn_VAL_105_mandatory = 2; +static const long asn_VAL_106_id_RANfunctionID = 5; +static const long asn_VAL_106_reject = 0; +static const long asn_VAL_106_mandatory = 2; +static const long asn_VAL_107_id_Cause = 1; +static const long asn_VAL_107_ignore = 1; +static const long asn_VAL_107_mandatory = 2; +static const long asn_VAL_108_id_CriticalityDiagnostics = 2; +static const long asn_VAL_108_ignore = 1; +static const long asn_VAL_108_optional = 0; +static const asn_ioc_cell_t asn_IOS_RICQueryFailure_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_105_id_RICrequestID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_105_reject }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_105_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_106_id_RANfunctionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_106_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_106_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_107_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_107_ignore }, + { "&Value", aioc__type, &asn_DEF_Cause }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_107_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_108_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_108_ignore }, + { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_108_optional } +}; +static const asn_ioc_set_t asn_IOS_RICQueryFailure_IEs_1[] = { + { 4, 4, asn_IOS_RICQueryFailure_IEs_1_rows } +}; +static const long asn_VAL_109_id_TransactionID = 49; +static const long asn_VAL_109_reject = 0; +static const long asn_VAL_109_optional = 0; +static const long asn_VAL_110_id_RICrequestID = 29; +static const long asn_VAL_110_reject = 0; +static const long asn_VAL_110_optional = 0; +static const long asn_VAL_111_id_RANfunctionID = 5; +static const long asn_VAL_111_reject = 0; +static const long asn_VAL_111_optional = 0; +static const long asn_VAL_112_id_Cause = 1; +static const long asn_VAL_112_ignore = 1; +static const long asn_VAL_112_optional = 0; +static const long asn_VAL_113_id_CriticalityDiagnostics = 2; +static const long asn_VAL_113_ignore = 1; +static const long asn_VAL_113_optional = 0; +static const asn_ioc_cell_t asn_IOS_ErrorIndication_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_109_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_109_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_109_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_110_id_RICrequestID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_110_reject }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_110_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_111_id_RANfunctionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_111_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_111_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_112_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_112_ignore }, + { "&Value", aioc__type, &asn_DEF_Cause }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_112_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_113_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_113_ignore }, + { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_113_optional } +}; +static const asn_ioc_set_t asn_IOS_ErrorIndication_IEs_1[] = { + { 5, 4, asn_IOS_ErrorIndication_IEs_1_rows } +}; +static const long asn_VAL_114_id_TransactionID = 49; +static const long asn_VAL_114_reject = 0; +static const long asn_VAL_114_mandatory = 2; +static const long asn_VAL_115_id_GlobalE2node_ID = 3; +static const long asn_VAL_115_reject = 0; +static const long asn_VAL_115_mandatory = 2; +static const long asn_VAL_116_id_RANfunctionsAdded = 10; +static const long asn_VAL_116_reject = 0; +static const long asn_VAL_116_mandatory = 2; +static const long asn_VAL_117_id_E2nodeComponentConfigAddition = 50; +static const long asn_VAL_117_reject = 0; +static const long asn_VAL_117_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2setupRequestIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_114_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_114_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_114_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_115_id_GlobalE2node_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_115_reject }, + { "&Value", aioc__type, &asn_DEF_GlobalE2node_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_115_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_116_id_RANfunctionsAdded }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_116_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctions_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_116_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_117_id_E2nodeComponentConfigAddition }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_117_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAddition_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_117_mandatory } +}; +static const asn_ioc_set_t asn_IOS_E2setupRequestIEs_1[] = { + { 4, 4, asn_IOS_E2setupRequestIEs_1_rows } +}; +static const long asn_VAL_118_id_TransactionID = 49; +static const long asn_VAL_118_reject = 0; +static const long asn_VAL_118_mandatory = 2; +static const long asn_VAL_119_id_GlobalRIC_ID = 4; +static const long asn_VAL_119_reject = 0; +static const long asn_VAL_119_mandatory = 2; +static const long asn_VAL_120_id_RANfunctionsAccepted = 9; +static const long asn_VAL_120_reject = 0; +static const long asn_VAL_120_optional = 0; +static const long asn_VAL_121_id_RANfunctionsRejected = 13; +static const long asn_VAL_121_reject = 0; +static const long asn_VAL_121_optional = 0; +static const long asn_VAL_122_id_E2nodeComponentConfigAdditionAck = 52; +static const long asn_VAL_122_reject = 0; +static const long asn_VAL_122_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2setupResponseIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_118_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_118_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_118_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_119_id_GlobalRIC_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_119_reject }, + { "&Value", aioc__type, &asn_DEF_GlobalRIC_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_119_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_120_id_RANfunctionsAccepted }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_120_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_120_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_121_id_RANfunctionsRejected }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_121_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_121_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_122_id_E2nodeComponentConfigAdditionAck }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_122_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAdditionAck_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_122_mandatory } +}; +static const asn_ioc_set_t asn_IOS_E2setupResponseIEs_1[] = { + { 5, 4, asn_IOS_E2setupResponseIEs_1_rows } +}; +static const long asn_VAL_123_id_TransactionID = 49; +static const long asn_VAL_123_reject = 0; +static const long asn_VAL_123_mandatory = 2; +static const long asn_VAL_124_id_Cause = 1; +static const long asn_VAL_124_ignore = 1; +static const long asn_VAL_124_mandatory = 2; +static const long asn_VAL_125_id_TimeToWait = 31; +static const long asn_VAL_125_ignore = 1; +static const long asn_VAL_125_optional = 0; +static const long asn_VAL_126_id_CriticalityDiagnostics = 2; +static const long asn_VAL_126_ignore = 1; +static const long asn_VAL_126_optional = 0; +static const long asn_VAL_127_id_TNLinformation = 48; +static const long asn_VAL_127_ignore = 1; +static const long asn_VAL_127_optional = 0; +static const asn_ioc_cell_t asn_IOS_E2setupFailureIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_123_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_123_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_123_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_124_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_124_ignore }, + { "&Value", aioc__type, &asn_DEF_Cause }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_124_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_125_id_TimeToWait }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_125_ignore }, + { "&Value", aioc__type, &asn_DEF_TimeToWait }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_125_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_126_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_126_ignore }, + { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_126_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_127_id_TNLinformation }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_127_ignore }, + { "&Value", aioc__type, &asn_DEF_TNLinformation }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_127_optional } +}; +static const asn_ioc_set_t asn_IOS_E2setupFailureIEs_1[] = { + { 5, 4, asn_IOS_E2setupFailureIEs_1_rows } +}; +static const long asn_VAL_128_id_TransactionID = 49; +static const long asn_VAL_128_reject = 0; +static const long asn_VAL_128_mandatory = 2; +static const long asn_VAL_129_id_E2connectionUpdateAdd = 44; +static const long asn_VAL_129_reject = 0; +static const long asn_VAL_129_optional = 0; +static const long asn_VAL_130_id_E2connectionUpdateRemove = 46; +static const long asn_VAL_130_reject = 0; +static const long asn_VAL_130_optional = 0; +static const long asn_VAL_131_id_E2connectionUpdateModify = 45; +static const long asn_VAL_131_reject = 0; +static const long asn_VAL_131_optional = 0; +static const asn_ioc_cell_t asn_IOS_E2connectionUpdate_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_128_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_128_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_128_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_129_id_E2connectionUpdateAdd }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_129_reject }, + { "&Value", aioc__type, &asn_DEF_E2connectionUpdate_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_129_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_130_id_E2connectionUpdateRemove }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_130_reject }, + { "&Value", aioc__type, &asn_DEF_E2connectionUpdateRemove_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_130_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_131_id_E2connectionUpdateModify }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_131_reject }, + { "&Value", aioc__type, &asn_DEF_E2connectionUpdate_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_131_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_134_id_TransactionID = 49; +static const long asn_VAL_134_reject = 0; +static const long asn_VAL_134_mandatory = 2; +static const long asn_VAL_135_id_E2connectionSetup = 39; +static const long asn_VAL_135_reject = 0; +static const long asn_VAL_135_optional = 0; +static const long asn_VAL_136_id_E2connectionSetupFailed = 40; +static const long asn_VAL_136_reject = 0; +static const long asn_VAL_136_optional = 0; +static const asn_ioc_cell_t asn_IOS_E2connectionUpdateAck_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_134_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_134_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_134_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_135_id_E2connectionSetup }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_135_reject }, + { "&Value", aioc__type, &asn_DEF_E2connectionUpdate_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_135_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_136_id_E2connectionSetupFailed }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_136_reject }, + { "&Value", aioc__type, &asn_DEF_E2connectionSetupFailed_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_136_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_138_id_TransactionID = 49; +static const long asn_VAL_138_reject = 0; +static const long asn_VAL_138_mandatory = 2; +static const long asn_VAL_139_id_Cause = 1; +static const long asn_VAL_139_reject = 0; +static const long asn_VAL_139_optional = 0; +static const long asn_VAL_140_id_TimeToWait = 31; +static const long asn_VAL_140_ignore = 1; +static const long asn_VAL_140_optional = 0; +static const long asn_VAL_141_id_CriticalityDiagnostics = 2; +static const long asn_VAL_141_ignore = 1; +static const long asn_VAL_141_optional = 0; +static const asn_ioc_cell_t asn_IOS_E2connectionUpdateFailure_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_138_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_138_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_138_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_139_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_139_reject }, + { "&Value", aioc__type, &asn_DEF_Cause }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_139_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_140_id_TimeToWait }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_140_ignore }, + { "&Value", aioc__type, &asn_DEF_TimeToWait }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_140_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_141_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_141_ignore }, + { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_141_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_142_id_TransactionID = 49; +static const long asn_VAL_142_reject = 0; +static const long asn_VAL_142_mandatory = 2; +static const long asn_VAL_143_id_GlobalE2node_ID = 3; +static const long asn_VAL_143_reject = 0; +static const long asn_VAL_143_optional = 0; +static const long asn_VAL_144_id_E2nodeComponentConfigAddition = 50; +static const long asn_VAL_144_reject = 0; +static const long asn_VAL_144_optional = 0; +static const long asn_VAL_145_id_E2nodeComponentConfigUpdate = 33; +static const long asn_VAL_145_reject = 0; +static const long asn_VAL_145_optional = 0; +static const long asn_VAL_146_id_E2nodeComponentConfigRemoval = 54; +static const long asn_VAL_146_reject = 0; +static const long asn_VAL_146_optional = 0; +static const long asn_VAL_147_id_E2nodeTNLassociationRemoval = 58; +static const long asn_VAL_147_reject = 0; +static const long asn_VAL_147_optional = 0; +static const asn_ioc_cell_t asn_IOS_E2nodeConfigurationUpdate_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_142_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_142_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_142_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_143_id_GlobalE2node_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_143_reject }, + { "&Value", aioc__type, &asn_DEF_GlobalE2node_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_143_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_144_id_E2nodeComponentConfigAddition }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_144_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAddition_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_144_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_145_id_E2nodeComponentConfigUpdate }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_145_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigUpdate_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_145_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_146_id_E2nodeComponentConfigRemoval }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_146_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigRemoval_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_146_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_147_id_E2nodeTNLassociationRemoval }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_147_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeTNLassociationRemoval_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_147_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_152_id_TransactionID = 49; +static const long asn_VAL_152_reject = 0; +static const long asn_VAL_152_mandatory = 2; +static const long asn_VAL_153_id_E2nodeComponentConfigAdditionAck = 52; +static const long asn_VAL_153_reject = 0; +static const long asn_VAL_153_optional = 0; +static const long asn_VAL_154_id_E2nodeComponentConfigUpdateAck = 35; +static const long asn_VAL_154_reject = 0; +static const long asn_VAL_154_optional = 0; +static const long asn_VAL_155_id_E2nodeComponentConfigRemovalAck = 56; +static const long asn_VAL_155_reject = 0; +static const long asn_VAL_155_optional = 0; +static const asn_ioc_cell_t asn_IOS_E2nodeConfigurationUpdateAcknowledge_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_152_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_152_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_152_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_153_id_E2nodeComponentConfigAdditionAck }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_153_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAdditionAck_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_153_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_154_id_E2nodeComponentConfigUpdateAck }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_154_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigUpdateAck_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_154_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_155_id_E2nodeComponentConfigRemovalAck }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_155_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigRemovalAck_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_155_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_159_id_TransactionID = 49; +static const long asn_VAL_159_reject = 0; +static const long asn_VAL_159_mandatory = 2; +static const long asn_VAL_160_id_Cause = 1; +static const long asn_VAL_160_ignore = 1; +static const long asn_VAL_160_mandatory = 2; +static const long asn_VAL_161_id_TimeToWait = 31; +static const long asn_VAL_161_ignore = 1; +static const long asn_VAL_161_optional = 0; +static const long asn_VAL_162_id_CriticalityDiagnostics = 2; +static const long asn_VAL_162_ignore = 1; +static const long asn_VAL_162_optional = 0; +static const asn_ioc_cell_t asn_IOS_E2nodeConfigurationUpdateFailure_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_159_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_159_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_159_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_160_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_160_ignore }, + { "&Value", aioc__type, &asn_DEF_Cause }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_160_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_161_id_TimeToWait }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_161_ignore }, + { "&Value", aioc__type, &asn_DEF_TimeToWait }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_161_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_162_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_162_ignore }, + { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_162_optional } +}; +static const asn_ioc_set_t asn_IOS_E2nodeConfigurationUpdateFailure_IEs_1[] = { + { 4, 4, asn_IOS_E2nodeConfigurationUpdateFailure_IEs_1_rows } +}; +static const long asn_VAL_163_id_TransactionID = 49; +static const long asn_VAL_163_reject = 0; +static const long asn_VAL_163_mandatory = 2; +static const long asn_VAL_164_id_Cause = 1; +static const long asn_VAL_164_ignore = 1; +static const long asn_VAL_164_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ResetRequestIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_163_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_163_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_163_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_164_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_164_ignore }, + { "&Value", aioc__type, &asn_DEF_Cause }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_164_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ResetRequestIEs_1[] = { + { 2, 4, asn_IOS_ResetRequestIEs_1_rows } +}; +static const long asn_VAL_165_id_TransactionID = 49; +static const long asn_VAL_165_reject = 0; +static const long asn_VAL_165_mandatory = 2; +static const long asn_VAL_166_id_CriticalityDiagnostics = 2; +static const long asn_VAL_166_ignore = 1; +static const long asn_VAL_166_optional = 0; +static const asn_ioc_cell_t asn_IOS_ResetResponseIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_165_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_165_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_165_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_166_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_166_ignore }, + { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_166_optional } +}; +static const asn_ioc_set_t asn_IOS_ResetResponseIEs_1[] = { + { 2, 4, asn_IOS_ResetResponseIEs_1_rows } +}; +static const long asn_VAL_167_id_TransactionID = 49; +static const long asn_VAL_167_reject = 0; +static const long asn_VAL_167_mandatory = 2; +static const long asn_VAL_168_id_RANfunctionsAdded = 10; +static const long asn_VAL_168_reject = 0; +static const long asn_VAL_168_optional = 0; +static const long asn_VAL_169_id_RANfunctionsModified = 12; +static const long asn_VAL_169_reject = 0; +static const long asn_VAL_169_optional = 0; +static const long asn_VAL_170_id_RANfunctionsDeleted = 11; +static const long asn_VAL_170_reject = 0; +static const long asn_VAL_170_optional = 0; +static const asn_ioc_cell_t asn_IOS_RICserviceUpdate_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_167_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_167_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_167_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_168_id_RANfunctionsAdded }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_168_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctions_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_168_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_169_id_RANfunctionsModified }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_169_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctions_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_169_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_170_id_RANfunctionsDeleted }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_170_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_170_optional } +}; +static const asn_ioc_set_t asn_IOS_RICserviceUpdate_IEs_1[] = { + { 4, 4, asn_IOS_RICserviceUpdate_IEs_1_rows } +}; +static const long asn_VAL_173_id_TransactionID = 49; +static const long asn_VAL_173_reject = 0; +static const long asn_VAL_173_mandatory = 2; +static const long asn_VAL_174_id_RANfunctionsAccepted = 9; +static const long asn_VAL_174_reject = 0; +static const long asn_VAL_174_optional = 0; +static const long asn_VAL_175_id_RANfunctionsRejected = 13; +static const long asn_VAL_175_reject = 0; +static const long asn_VAL_175_optional = 0; +static const asn_ioc_cell_t asn_IOS_RICserviceUpdateAcknowledge_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_173_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_173_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_173_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_174_id_RANfunctionsAccepted }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_174_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_174_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_175_id_RANfunctionsRejected }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_175_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_175_optional } +}; +static const asn_ioc_set_t asn_IOS_RICserviceUpdateAcknowledge_IEs_1[] = { + { 3, 4, asn_IOS_RICserviceUpdateAcknowledge_IEs_1_rows } +}; +static const long asn_VAL_177_id_TransactionID = 49; +static const long asn_VAL_177_reject = 0; +static const long asn_VAL_177_mandatory = 2; +static const long asn_VAL_178_id_Cause = 1; +static const long asn_VAL_178_reject = 0; +static const long asn_VAL_178_mandatory = 2; +static const long asn_VAL_179_id_TimeToWait = 31; +static const long asn_VAL_179_ignore = 1; +static const long asn_VAL_179_optional = 0; +static const long asn_VAL_180_id_CriticalityDiagnostics = 2; +static const long asn_VAL_180_ignore = 1; +static const long asn_VAL_180_optional = 0; +static const asn_ioc_cell_t asn_IOS_RICserviceUpdateFailure_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_177_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_177_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_177_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_178_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_178_reject }, + { "&Value", aioc__type, &asn_DEF_Cause }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_178_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_179_id_TimeToWait }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_179_ignore }, + { "&Value", aioc__type, &asn_DEF_TimeToWait }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_179_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_180_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_180_ignore }, + { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_180_optional } +}; +static const asn_ioc_set_t asn_IOS_RICserviceUpdateFailure_IEs_1[] = { + { 4, 4, asn_IOS_RICserviceUpdateFailure_IEs_1_rows } +}; +static const long asn_VAL_181_id_TransactionID = 49; +static const long asn_VAL_181_reject = 0; +static const long asn_VAL_181_mandatory = 2; +static const long asn_VAL_182_id_RANfunctionsAccepted = 9; +static const long asn_VAL_182_reject = 0; +static const long asn_VAL_182_optional = 0; +static const asn_ioc_cell_t asn_IOS_RICserviceQuery_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_181_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_181_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_181_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_182_id_RANfunctionsAccepted }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_182_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_182_optional } +}; +static const asn_ioc_set_t asn_IOS_RICserviceQuery_IEs_1[] = { + { 2, 4, asn_IOS_RICserviceQuery_IEs_1_rows } +}; +static const long asn_VAL_183_id_TransactionID = 49; +static const long asn_VAL_183_reject = 0; +static const long asn_VAL_183_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2RemovalRequestIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_183_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_183_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_183_mandatory } +}; +static const asn_ioc_set_t asn_IOS_E2RemovalRequestIEs_1[] = { + { 1, 4, asn_IOS_E2RemovalRequestIEs_1_rows } +}; +static const long asn_VAL_184_id_TransactionID = 49; +static const long asn_VAL_184_reject = 0; +static const long asn_VAL_184_mandatory = 2; +static const long asn_VAL_185_id_CriticalityDiagnostics = 2; +static const long asn_VAL_185_ignore = 1; +static const long asn_VAL_185_optional = 0; +static const asn_ioc_cell_t asn_IOS_E2RemovalResponseIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_184_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_184_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_184_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_185_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_185_ignore }, + { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_185_optional } +}; +static const asn_ioc_set_t asn_IOS_E2RemovalResponseIEs_1[] = { + { 2, 4, asn_IOS_E2RemovalResponseIEs_1_rows } +}; +static const long asn_VAL_186_id_TransactionID = 49; +static const long asn_VAL_186_reject = 0; +static const long asn_VAL_186_mandatory = 2; +static const long asn_VAL_187_id_Cause = 1; +static const long asn_VAL_187_ignore = 1; +static const long asn_VAL_187_mandatory = 2; +static const long asn_VAL_188_id_CriticalityDiagnostics = 2; +static const long asn_VAL_188_ignore = 1; +static const long asn_VAL_188_optional = 0; +static const asn_ioc_cell_t asn_IOS_E2RemovalFailureIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_186_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_186_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_186_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_187_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_187_ignore }, + { "&Value", aioc__type, &asn_DEF_Cause }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_187_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_188_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_188_ignore }, + { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_188_optional } +}; +static const asn_ioc_set_t asn_IOS_E2RemovalFailureIEs_1[] = { + { 3, 4, asn_IOS_E2RemovalFailureIEs_1_rows } +}; +static int +memb_id_constraint_1(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 >= 0L && value <= 65535L)) { + /* 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_RICaction_ToBeSetup_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_RICaction_ToBeSetup_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 RICaction_ToBeSetup_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]; + 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_1(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_RICaction_ToBeSetup_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_RICaction_ToBeSetup_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 RICaction_ToBeSetup_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]; + 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_1(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_5(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 >= 0L && value <= 65535L)) { + /* 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_RICaction_Admitted_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_RICaction_Admitted_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 RICaction_Admitted_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]; + 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_5(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_RICaction_Admitted_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_RICaction_Admitted_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 RICaction_Admitted_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]; + 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_5(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_9(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 >= 0L && value <= 65535L)) { + /* 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_RICaction_NotAdmitted_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_RICaction_NotAdmitted_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 RICaction_NotAdmitted_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]; + 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_9(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_RICaction_NotAdmitted_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_RICaction_NotAdmitted_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 RICaction_NotAdmitted_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]; + 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_9(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_13(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 >= 0L && value <= 65535L)) { + /* 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_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_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 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]; + 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_13(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_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_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 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]; + 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_13(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_17(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 >= 0L && value <= 65535L)) { + /* 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_RICaction_ToBeRemovedForModification_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_RICaction_ToBeRemovedForModification_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 RICaction_ToBeRemovedForModification_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]; + 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_17(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_RICaction_ToBeRemovedForModification_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_RICaction_ToBeRemovedForModification_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 RICaction_ToBeRemovedForModification_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]; + 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_17(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_21(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 >= 0L && value <= 65535L)) { + /* 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_RICaction_ToBeModifiedForModification_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_RICaction_ToBeModifiedForModification_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 RICaction_ToBeModifiedForModification_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]; + 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_21(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_RICaction_ToBeModifiedForModification_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_RICaction_ToBeModifiedForModification_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 RICaction_ToBeModifiedForModification_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]; + 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_21(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_25(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 >= 0L && value <= 65535L)) { + /* 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_RICaction_ToBeAddedForModification_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_RICaction_ToBeAddedForModification_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 RICaction_ToBeAddedForModification_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]; + 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_25(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_RICaction_ToBeAddedForModification_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_RICaction_ToBeAddedForModification_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 RICaction_ToBeAddedForModification_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]; + 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_25(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_29(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 >= 0L && value <= 65535L)) { + /* 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_RICaction_RemovedForModification_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_RICaction_RemovedForModification_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 RICaction_RemovedForModification_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]; + 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_29(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_RICaction_RemovedForModification_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_RICaction_RemovedForModification_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 RICaction_RemovedForModification_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]; + 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_29(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_33(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 >= 0L && value <= 65535L)) { + /* 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_RICaction_FailedToBeRemovedForModification_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_RICaction_FailedToBeRemovedForModification_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 RICaction_FailedToBeRemovedForModification_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]; + 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_33(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_RICaction_FailedToBeRemovedForModification_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_RICaction_FailedToBeRemovedForModification_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 RICaction_FailedToBeRemovedForModification_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]; + 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_33(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_37(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 >= 0L && value <= 65535L)) { + /* 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_RICaction_ModifiedForModification_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_RICaction_ModifiedForModification_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 RICaction_ModifiedForModification_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]; + 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_37(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_RICaction_ModifiedForModification_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_RICaction_ModifiedForModification_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 RICaction_ModifiedForModification_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]; + 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_37(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_41(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 >= 0L && value <= 65535L)) { + /* 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_RICaction_FailedToBeModifiedForModification_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_RICaction_FailedToBeModifiedForModification_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 RICaction_FailedToBeModifiedForModification_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]; + 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_41(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_RICaction_FailedToBeModifiedForModification_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_RICaction_FailedToBeModifiedForModification_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 RICaction_FailedToBeModifiedForModification_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]; + 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_41(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_45(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 >= 0L && value <= 65535L)) { + /* 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_RICaction_AddedForModification_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_RICaction_AddedForModification_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 RICaction_AddedForModification_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]; + 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_45(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_RICaction_AddedForModification_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_RICaction_AddedForModification_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 RICaction_AddedForModification_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]; + 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_45(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_49(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 >= 0L && value <= 65535L)) { + /* 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_RICaction_FailedToBeAddedForModification_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_RICaction_FailedToBeAddedForModification_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 RICaction_FailedToBeAddedForModification_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]; + 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_49(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_RICaction_FailedToBeAddedForModification_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_RICaction_FailedToBeAddedForModification_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 RICaction_FailedToBeAddedForModification_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]; + 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_49(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_53(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 >= 0L && value <= 65535L)) { + /* 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_RICaction_RequiredToBeModified_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_RICaction_RequiredToBeModified_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 RICaction_RequiredToBeModified_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]; + 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_53(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_RICaction_RequiredToBeModified_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_RICaction_RequiredToBeModified_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 RICaction_RequiredToBeModified_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]; + 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_53(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_57(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 >= 0L && value <= 65535L)) { + /* 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_RICaction_RequiredToBeRemoved_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_RICaction_RequiredToBeRemoved_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 RICaction_RequiredToBeRemoved_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]; + 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_57(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_RICaction_RequiredToBeRemoved_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_RICaction_RequiredToBeRemoved_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 RICaction_RequiredToBeRemoved_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]; + 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_57(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_61(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 >= 0L && value <= 65535L)) { + /* 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_RICaction_ConfirmedForModification_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_RICaction_ConfirmedForModification_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 RICaction_ConfirmedForModification_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]; + 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_61(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_RICaction_ConfirmedForModification_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_RICaction_ConfirmedForModification_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 RICaction_ConfirmedForModification_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]; + 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_61(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_65(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 >= 0L && value <= 65535L)) { + /* 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_RICaction_RefusedToBeModified_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_RICaction_RefusedToBeModified_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 RICaction_RefusedToBeModified_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]; + 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_65(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_RICaction_RefusedToBeModified_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_RICaction_RefusedToBeModified_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 RICaction_RefusedToBeModified_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]; + 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_65(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_69(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 >= 0L && value <= 65535L)) { + /* 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_RICaction_ConfirmedForRemoval_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_RICaction_ConfirmedForRemoval_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 RICaction_ConfirmedForRemoval_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]; + 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_69(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_RICaction_ConfirmedForRemoval_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_RICaction_ConfirmedForRemoval_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 RICaction_ConfirmedForRemoval_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]; + 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_69(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_73(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 >= 0L && value <= 65535L)) { + /* 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_RICaction_RefusedToBeRemoved_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_RICaction_RefusedToBeRemoved_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 RICaction_RefusedToBeRemoved_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]; + 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_73(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_RICaction_RefusedToBeRemoved_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_RICaction_RefusedToBeRemoved_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 RICaction_RefusedToBeRemoved_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]; + 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_73(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_77(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 >= 0L && value <= 65535L)) { + /* 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_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_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 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]; + 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_77(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_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_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 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]; + 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_77(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_81(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 >= 0L && value <= 65535L)) { + /* 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_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_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 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]; + 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_81(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_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_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 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]; + 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_81(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_85(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 >= 0L && value <= 65535L)) { + /* 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_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_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 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]; + 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_85(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_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_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 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]; + 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_85(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_89(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 >= 0L && value <= 65535L)) { + /* 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_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_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 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]; + 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_89(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_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_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 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]; + 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_89(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_93(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 >= 0L && value <= 65535L)) { + /* 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_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_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 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]; + 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_93(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_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_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 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]; + 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_93(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_97(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 >= 0L && value <= 65535L)) { + /* 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_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_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 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]; + 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_97(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_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_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 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]; + 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_97(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_101(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 >= 0L && value <= 65535L)) { + /* 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_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_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 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]; + 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_101(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_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_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 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]; + 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_101(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_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 >= 0L && value <= 65535L)) { + /* 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_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_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 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]; + 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_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_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 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]; + 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 >= 0L && value <= 65535L)) { + /* 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_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_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 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]; + 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_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_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 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]; + 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 >= 0L && value <= 65535L)) { + /* 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_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_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 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]; + 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_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_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 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]; + 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 >= 0L && value <= 65535L)) { + /* 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_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_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 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]; + 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_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_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 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]; + 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 >= 0L && value <= 65535L)) { + /* 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_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_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 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]; + 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_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_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 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]; + 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 >= 0L && value <= 65535L)) { + /* 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_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_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 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]; + 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_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_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 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]; + 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 >= 0L && value <= 65535L)) { + /* 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_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_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 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]; + 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_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_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 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]; + 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 >= 0L && value <= 65535L)) { + /* 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_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_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 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]; + 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_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_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 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]; + 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 >= 0L && value <= 65535L)) { + /* 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_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_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 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]; + 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_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_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 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]; + 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 >= 0L && value <= 65535L)) { + /* 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_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_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 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]; + 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_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_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 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]; + 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 >= 0L && value <= 65535L)) { + /* 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_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_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 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]; + 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_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_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 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]; + 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 >= 0L && value <= 65535L)) { + /* 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_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_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 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]; + 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_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_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 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]; + 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 >= 0L && value <= 65535L)) { + /* 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_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_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 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]; + 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_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_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 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]; + 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 >= 0L && value <= 65535L)) { + /* 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_RICsubscriptionModificationRequest_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_RICsubscriptionModificationRequest_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 RICsubscriptionModificationRequest_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_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_RICsubscriptionModificationRequest_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_RICsubscriptionModificationRequest_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 RICsubscriptionModificationRequest_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_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 >= 0L && value <= 65535L)) { + /* 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_RICsubscriptionModificationResponse_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_RICsubscriptionModificationResponse_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 RICsubscriptionModificationResponse_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_RICsubscriptionModificationResponse_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_RICsubscriptionModificationResponse_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 RICsubscriptionModificationResponse_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 >= 0L && value <= 65535L)) { + /* 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_RICsubscriptionModificationFailure_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_RICsubscriptionModificationFailure_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 RICsubscriptionModificationFailure_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_RICsubscriptionModificationFailure_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_RICsubscriptionModificationFailure_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 RICsubscriptionModificationFailure_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 >= 0L && value <= 65535L)) { + /* 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_RICsubscriptionModificationRequired_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_RICsubscriptionModificationRequired_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 RICsubscriptionModificationRequired_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_RICsubscriptionModificationRequired_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_RICsubscriptionModificationRequired_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 RICsubscriptionModificationRequired_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 >= 0L && value <= 65535L)) { + /* 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_RICsubscriptionModificationConfirm_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_RICsubscriptionModificationConfirm_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 RICsubscriptionModificationConfirm_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_RICsubscriptionModificationConfirm_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_RICsubscriptionModificationConfirm_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 RICsubscriptionModificationConfirm_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 int +memb_id_constraint_177(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 >= 0L && value <= 65535L)) { + /* 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_RICsubscriptionModificationRefuse_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_RICsubscriptionModificationRefuse_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 RICsubscriptionModificationRefuse_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_177(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_RICsubscriptionModificationRefuse_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_RICsubscriptionModificationRefuse_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 RICsubscriptionModificationRefuse_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_177(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_181(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 >= 0L && value <= 65535L)) { + /* 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_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_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 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]; + 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_181(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_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_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 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]; + 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_181(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_185(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 >= 0L && value <= 65535L)) { + /* 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_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_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 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]; + 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_185(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_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_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 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]; + 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_185(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_189(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 >= 0L && value <= 65535L)) { + /* 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_189(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_189(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_193(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 >= 0L && value <= 65535L)) { + /* 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_193(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_193(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_197(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 >= 0L && value <= 65535L)) { + /* 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_RICQueryRequest_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_RICQueryRequest_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 RICQueryRequest_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_197(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_RICQueryRequest_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_RICQueryRequest_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 RICQueryRequest_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_197(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_201(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 >= 0L && value <= 65535L)) { + /* 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_RICQueryResponse_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_RICQueryResponse_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 RICQueryResponse_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_201(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_RICQueryResponse_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_RICQueryResponse_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 RICQueryResponse_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_201(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_205(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 >= 0L && value <= 65535L)) { + /* 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_RICQueryFailure_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_RICQueryFailure_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 RICQueryFailure_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_205(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_RICQueryFailure_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_RICQueryFailure_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 RICQueryFailure_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_205(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_209(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 >= 0L && value <= 65535L)) { + /* 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_ErrorIndication_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_ErrorIndication_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 ErrorIndication_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_209(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_ErrorIndication_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_ErrorIndication_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 ErrorIndication_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_209(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_213(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 >= 0L && value <= 65535L)) { + /* 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_213(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_213(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_217(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 >= 0L && value <= 65535L)) { + /* 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_217(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_217(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_221(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 >= 0L && value <= 65535L)) { + /* 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_221(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_221(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_225(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 >= 0L && value <= 65535L)) { + /* 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_225(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_225(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_229(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 >= 0L && value <= 65535L)) { + /* 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_229(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_229(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_233(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 >= 0L && value <= 65535L)) { + /* 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_233(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_233(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_237(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 >= 0L && value <= 65535L)) { + /* 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_237(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_237(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_241(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 >= 0L && value <= 65535L)) { + /* 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_241(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_241(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_245(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 >= 0L && value <= 65535L)) { + /* 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_245(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_245(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_249(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 >= 0L && value <= 65535L)) { + /* 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_249(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_249(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_253(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 >= 0L && value <= 65535L)) { + /* 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_253(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_253(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_257(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 >= 0L && value <= 65535L)) { + /* 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_257(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_257(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_261(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 >= 0L && value <= 65535L)) { + /* 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_261(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_261(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_265(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 >= 0L && value <= 65535L)) { + /* 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_265(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_265(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_269(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 >= 0L && value <= 65535L)) { + /* 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_269(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_269(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_273(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 >= 0L && value <= 65535L)) { + /* 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_E2RemovalRequestIEs_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_E2RemovalRequestIEs_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 E2RemovalRequestIEs, 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_273(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_E2RemovalRequestIEs_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_E2RemovalRequestIEs_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 E2RemovalRequestIEs, 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_273(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_277(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 >= 0L && value <= 65535L)) { + /* 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_E2RemovalResponseIEs_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_E2RemovalResponseIEs_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 E2RemovalResponseIEs, 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_277(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_E2RemovalResponseIEs_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_E2RemovalResponseIEs_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 E2RemovalResponseIEs, 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_277(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_281(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 >= 0L && value <= 65535L)) { + /* 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_E2RemovalFailureIEs_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_E2RemovalFailureIEs_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 E2RemovalFailureIEs, 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_281(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_E2RemovalFailureIEs_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_E2RemovalFailureIEs_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 E2RemovalFailureIEs, 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_281(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); +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_id_constr_178 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_criticality_constr_179 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_value_constr_180 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_id_constr_182 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_criticality_constr_183 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_value_constr_184 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_id_constr_186 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_criticality_constr_187 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_value_constr_188 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_id_constr_190 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_criticality_constr_191 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_value_constr_192 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_id_constr_194 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_criticality_constr_195 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_value_constr_196 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_id_constr_198 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_criticality_constr_199 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_value_constr_200 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_id_constr_202 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_criticality_constr_203 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_value_constr_204 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_id_constr_206 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_criticality_constr_207 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_value_constr_208 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_id_constr_210 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_criticality_constr_211 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_value_constr_212 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_id_constr_214 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_criticality_constr_215 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_value_constr_216 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_id_constr_218 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_criticality_constr_219 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_value_constr_220 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_id_constr_222 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_criticality_constr_223 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_value_constr_224 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_id_constr_226 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_criticality_constr_227 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_value_constr_228 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_id_constr_230 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_criticality_constr_231 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_value_constr_232 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_id_constr_234 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_criticality_constr_235 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_value_constr_236 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_id_constr_238 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_criticality_constr_239 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_value_constr_240 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_id_constr_242 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_criticality_constr_243 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_value_constr_244 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_id_constr_246 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_criticality_constr_247 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_value_constr_248 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_id_constr_250 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_criticality_constr_251 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_value_constr_252 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_id_constr_254 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_criticality_constr_255 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_value_constr_256 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_id_constr_258 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_criticality_constr_259 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_value_constr_260 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_id_constr_262 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_criticality_constr_263 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_value_constr_264 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_id_constr_266 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_criticality_constr_267 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_value_constr_268 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_id_constr_270 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_criticality_constr_271 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_value_constr_272 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_id_constr_274 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_criticality_constr_275 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_value_constr_276 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_id_constr_278 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_criticality_constr_279 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_value_constr_280 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_id_constr_282 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_criticality_constr_283 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_value_constr_284 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_1 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICaction_ToBeSetup_ItemIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_1 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_4, + select_RICaction_ToBeSetup_ItemIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_4, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +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, + 2, /* 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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_6, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_5 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICaction_Admitted_ItemIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_7, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_5 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_8, + select_RICaction_Admitted_ItemIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_8, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +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, + 2, /* 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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_10, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_9 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICaction_NotAdmitted_ItemIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_11, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_9 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_12, + select_RICaction_NotAdmitted_ItemIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_12, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +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, + 2, /* 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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_14, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_13 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscription_withCause_ItemIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICsubscription_withCause_ItemIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_15, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_13 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscription_withCause_ItemIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_16, + select_RICsubscription_withCause_ItemIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_16, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +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, + 2, /* 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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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 RICaction_ToBeRemovedForModification_ItemIEs__value, choice.RICaction_ToBeRemovedForModification_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICaction_ToBeRemovedForModification_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICaction-ToBeRemovedForModification-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_20[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-ToBeRemovedForModification-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_20 = { + sizeof(struct RICaction_ToBeRemovedForModification_ItemIEs__value), + offsetof(struct RICaction_ToBeRemovedForModification_ItemIEs__value, _asn_ctx), + offsetof(struct RICaction_ToBeRemovedForModification_ItemIEs__value, present), + sizeof(((struct RICaction_ToBeRemovedForModification_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) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_20, + 1, /* Elements count */ + &asn_SPC_value_specs_20 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICaction_ToBeRemovedForModification_ItemIEs_17[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeRemovedForModification_ItemIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_18, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_17 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeRemovedForModification_ItemIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICaction_ToBeRemovedForModification_ItemIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_19, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_17 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeRemovedForModification_ItemIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_20, + select_RICaction_ToBeRemovedForModification_ItemIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_20, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_17 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_ToBeRemovedForModification_ItemIEs_tags_17[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_ToBeRemovedForModification_ItemIEs_tag2el_17[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeRemovedForModification_ItemIEs_specs_17 = { + sizeof(struct RICaction_ToBeRemovedForModification_ItemIEs), + offsetof(struct RICaction_ToBeRemovedForModification_ItemIEs, _asn_ctx), + asn_MAP_RICaction_ToBeRemovedForModification_ItemIEs_tag2el_17, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeRemovedForModification_ItemIEs = { + "RICaction-ToBeRemovedForModification-ItemIEs", + "RICaction-ToBeRemovedForModification-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_ToBeRemovedForModification_ItemIEs_tags_17, + sizeof(asn_DEF_RICaction_ToBeRemovedForModification_ItemIEs_tags_17) + /sizeof(asn_DEF_RICaction_ToBeRemovedForModification_ItemIEs_tags_17[0]), /* 1 */ + asn_DEF_RICaction_ToBeRemovedForModification_ItemIEs_tags_17, /* Same as above */ + sizeof(asn_DEF_RICaction_ToBeRemovedForModification_ItemIEs_tags_17) + /sizeof(asn_DEF_RICaction_ToBeRemovedForModification_ItemIEs_tags_17[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_ToBeRemovedForModification_ItemIEs_17, + 3, /* Elements count */ + &asn_SPC_RICaction_ToBeRemovedForModification_ItemIEs_specs_17 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_24[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeModifiedForModification_ItemIEs__value, choice.RICaction_ToBeModifiedForModification_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICaction_ToBeModifiedForModification_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICaction-ToBeModifiedForModification-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_24[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-ToBeModifiedForModification-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_24 = { + sizeof(struct RICaction_ToBeModifiedForModification_ItemIEs__value), + offsetof(struct RICaction_ToBeModifiedForModification_ItemIEs__value, _asn_ctx), + offsetof(struct RICaction_ToBeModifiedForModification_ItemIEs__value, present), + sizeof(((struct RICaction_ToBeModifiedForModification_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) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_24, + 1, /* Elements count */ + &asn_SPC_value_specs_24 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICaction_ToBeModifiedForModification_ItemIEs_21[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeModifiedForModification_ItemIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_22, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_21 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeModifiedForModification_ItemIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICaction_ToBeModifiedForModification_ItemIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_23, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_21 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeModifiedForModification_ItemIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_24, + select_RICaction_ToBeModifiedForModification_ItemIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_24, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_21 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_ToBeModifiedForModification_ItemIEs_tags_21[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_ToBeModifiedForModification_ItemIEs_tag2el_21[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeModifiedForModification_ItemIEs_specs_21 = { + sizeof(struct RICaction_ToBeModifiedForModification_ItemIEs), + offsetof(struct RICaction_ToBeModifiedForModification_ItemIEs, _asn_ctx), + asn_MAP_RICaction_ToBeModifiedForModification_ItemIEs_tag2el_21, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeModifiedForModification_ItemIEs = { + "RICaction-ToBeModifiedForModification-ItemIEs", + "RICaction-ToBeModifiedForModification-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_ToBeModifiedForModification_ItemIEs_tags_21, + sizeof(asn_DEF_RICaction_ToBeModifiedForModification_ItemIEs_tags_21) + /sizeof(asn_DEF_RICaction_ToBeModifiedForModification_ItemIEs_tags_21[0]), /* 1 */ + asn_DEF_RICaction_ToBeModifiedForModification_ItemIEs_tags_21, /* Same as above */ + sizeof(asn_DEF_RICaction_ToBeModifiedForModification_ItemIEs_tags_21) + /sizeof(asn_DEF_RICaction_ToBeModifiedForModification_ItemIEs_tags_21[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_ToBeModifiedForModification_ItemIEs_21, + 3, /* Elements count */ + &asn_SPC_RICaction_ToBeModifiedForModification_ItemIEs_specs_21 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_28[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeAddedForModification_ItemIEs__value, choice.RICaction_ToBeAddedForModification_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICaction_ToBeAddedForModification_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICaction-ToBeAddedForModification-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_28[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-ToBeAddedForModification-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_28 = { + sizeof(struct RICaction_ToBeAddedForModification_ItemIEs__value), + offsetof(struct RICaction_ToBeAddedForModification_ItemIEs__value, _asn_ctx), + offsetof(struct RICaction_ToBeAddedForModification_ItemIEs__value, present), + sizeof(((struct RICaction_ToBeAddedForModification_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) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_28, + 1, /* Elements count */ + &asn_SPC_value_specs_28 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICaction_ToBeAddedForModification_ItemIEs_25[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeAddedForModification_ItemIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_26, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_25 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeAddedForModification_ItemIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICaction_ToBeAddedForModification_ItemIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_27, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_25 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeAddedForModification_ItemIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_28, + select_RICaction_ToBeAddedForModification_ItemIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_28, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_25 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_ToBeAddedForModification_ItemIEs_tags_25[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_ToBeAddedForModification_ItemIEs_tag2el_25[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeAddedForModification_ItemIEs_specs_25 = { + sizeof(struct RICaction_ToBeAddedForModification_ItemIEs), + offsetof(struct RICaction_ToBeAddedForModification_ItemIEs, _asn_ctx), + asn_MAP_RICaction_ToBeAddedForModification_ItemIEs_tag2el_25, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeAddedForModification_ItemIEs = { + "RICaction-ToBeAddedForModification-ItemIEs", + "RICaction-ToBeAddedForModification-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_ToBeAddedForModification_ItemIEs_tags_25, + sizeof(asn_DEF_RICaction_ToBeAddedForModification_ItemIEs_tags_25) + /sizeof(asn_DEF_RICaction_ToBeAddedForModification_ItemIEs_tags_25[0]), /* 1 */ + asn_DEF_RICaction_ToBeAddedForModification_ItemIEs_tags_25, /* Same as above */ + sizeof(asn_DEF_RICaction_ToBeAddedForModification_ItemIEs_tags_25) + /sizeof(asn_DEF_RICaction_ToBeAddedForModification_ItemIEs_tags_25[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_ToBeAddedForModification_ItemIEs_25, + 3, /* Elements count */ + &asn_SPC_RICaction_ToBeAddedForModification_ItemIEs_specs_25 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_32[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_RemovedForModification_ItemIEs__value, choice.RICaction_RemovedForModification_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICaction_RemovedForModification_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICaction-RemovedForModification-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_32[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-RemovedForModification-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_32 = { + sizeof(struct RICaction_RemovedForModification_ItemIEs__value), + offsetof(struct RICaction_RemovedForModification_ItemIEs__value, _asn_ctx), + offsetof(struct RICaction_RemovedForModification_ItemIEs__value, present), + sizeof(((struct RICaction_RemovedForModification_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) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_32, + 1, /* Elements count */ + &asn_SPC_value_specs_32 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICaction_RemovedForModification_ItemIEs_29[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_RemovedForModification_ItemIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_30, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_29 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_RemovedForModification_ItemIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICaction_RemovedForModification_ItemIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_31, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_29 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_RemovedForModification_ItemIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_32, + select_RICaction_RemovedForModification_ItemIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_32, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_29 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_RemovedForModification_ItemIEs_tags_29[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_RemovedForModification_ItemIEs_tag2el_29[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_RemovedForModification_ItemIEs_specs_29 = { + sizeof(struct RICaction_RemovedForModification_ItemIEs), + offsetof(struct RICaction_RemovedForModification_ItemIEs, _asn_ctx), + asn_MAP_RICaction_RemovedForModification_ItemIEs_tag2el_29, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICaction_RemovedForModification_ItemIEs = { + "RICaction-RemovedForModification-ItemIEs", + "RICaction-RemovedForModification-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_RemovedForModification_ItemIEs_tags_29, + sizeof(asn_DEF_RICaction_RemovedForModification_ItemIEs_tags_29) + /sizeof(asn_DEF_RICaction_RemovedForModification_ItemIEs_tags_29[0]), /* 1 */ + asn_DEF_RICaction_RemovedForModification_ItemIEs_tags_29, /* Same as above */ + sizeof(asn_DEF_RICaction_RemovedForModification_ItemIEs_tags_29) + /sizeof(asn_DEF_RICaction_RemovedForModification_ItemIEs_tags_29[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_RemovedForModification_ItemIEs_29, + 3, /* Elements count */ + &asn_SPC_RICaction_RemovedForModification_ItemIEs_specs_29 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_36[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_FailedToBeRemovedForModification_ItemIEs__value, choice.RICaction_FailedToBeRemovedForModification_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICaction_FailedToBeRemovedForModification_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICaction-FailedToBeRemovedForModification-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_36[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-FailedToBeRemovedForModification-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_36 = { + sizeof(struct RICaction_FailedToBeRemovedForModification_ItemIEs__value), + offsetof(struct RICaction_FailedToBeRemovedForModification_ItemIEs__value, _asn_ctx), + offsetof(struct RICaction_FailedToBeRemovedForModification_ItemIEs__value, present), + sizeof(((struct RICaction_FailedToBeRemovedForModification_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) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_36, + 1, /* Elements count */ + &asn_SPC_value_specs_36 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICaction_FailedToBeRemovedForModification_ItemIEs_33[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_FailedToBeRemovedForModification_ItemIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_34, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_33 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_FailedToBeRemovedForModification_ItemIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICaction_FailedToBeRemovedForModification_ItemIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_35, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_33 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_FailedToBeRemovedForModification_ItemIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_36, + select_RICaction_FailedToBeRemovedForModification_ItemIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_36, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_33 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_FailedToBeRemovedForModification_ItemIEs_tags_33[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_FailedToBeRemovedForModification_ItemIEs_tag2el_33[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_FailedToBeRemovedForModification_ItemIEs_specs_33 = { + sizeof(struct RICaction_FailedToBeRemovedForModification_ItemIEs), + offsetof(struct RICaction_FailedToBeRemovedForModification_ItemIEs, _asn_ctx), + asn_MAP_RICaction_FailedToBeRemovedForModification_ItemIEs_tag2el_33, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICaction_FailedToBeRemovedForModification_ItemIEs = { + "RICaction-FailedToBeRemovedForModification-ItemIEs", + "RICaction-FailedToBeRemovedForModification-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_FailedToBeRemovedForModification_ItemIEs_tags_33, + sizeof(asn_DEF_RICaction_FailedToBeRemovedForModification_ItemIEs_tags_33) + /sizeof(asn_DEF_RICaction_FailedToBeRemovedForModification_ItemIEs_tags_33[0]), /* 1 */ + asn_DEF_RICaction_FailedToBeRemovedForModification_ItemIEs_tags_33, /* Same as above */ + sizeof(asn_DEF_RICaction_FailedToBeRemovedForModification_ItemIEs_tags_33) + /sizeof(asn_DEF_RICaction_FailedToBeRemovedForModification_ItemIEs_tags_33[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_FailedToBeRemovedForModification_ItemIEs_33, + 3, /* Elements count */ + &asn_SPC_RICaction_FailedToBeRemovedForModification_ItemIEs_specs_33 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_40[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ModifiedForModification_ItemIEs__value, choice.RICaction_ModifiedForModification_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICaction_ModifiedForModification_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICaction-ModifiedForModification-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_40[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-ModifiedForModification-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_40 = { + sizeof(struct RICaction_ModifiedForModification_ItemIEs__value), + offsetof(struct RICaction_ModifiedForModification_ItemIEs__value, _asn_ctx), + offsetof(struct RICaction_ModifiedForModification_ItemIEs__value, present), + sizeof(((struct RICaction_ModifiedForModification_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) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_40, + 1, /* Elements count */ + &asn_SPC_value_specs_40 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICaction_ModifiedForModification_ItemIEs_37[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ModifiedForModification_ItemIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_38, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_37 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ModifiedForModification_ItemIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICaction_ModifiedForModification_ItemIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_39, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_37 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_ModifiedForModification_ItemIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_40, + select_RICaction_ModifiedForModification_ItemIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_40, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_37 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_ModifiedForModification_ItemIEs_tags_37[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_ModifiedForModification_ItemIEs_tag2el_37[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_ModifiedForModification_ItemIEs_specs_37 = { + sizeof(struct RICaction_ModifiedForModification_ItemIEs), + offsetof(struct RICaction_ModifiedForModification_ItemIEs, _asn_ctx), + asn_MAP_RICaction_ModifiedForModification_ItemIEs_tag2el_37, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICaction_ModifiedForModification_ItemIEs = { + "RICaction-ModifiedForModification-ItemIEs", + "RICaction-ModifiedForModification-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_ModifiedForModification_ItemIEs_tags_37, + sizeof(asn_DEF_RICaction_ModifiedForModification_ItemIEs_tags_37) + /sizeof(asn_DEF_RICaction_ModifiedForModification_ItemIEs_tags_37[0]), /* 1 */ + asn_DEF_RICaction_ModifiedForModification_ItemIEs_tags_37, /* Same as above */ + sizeof(asn_DEF_RICaction_ModifiedForModification_ItemIEs_tags_37) + /sizeof(asn_DEF_RICaction_ModifiedForModification_ItemIEs_tags_37[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_ModifiedForModification_ItemIEs_37, + 3, /* Elements count */ + &asn_SPC_RICaction_ModifiedForModification_ItemIEs_specs_37 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_44[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_FailedToBeModifiedForModification_ItemIEs__value, choice.RICaction_FailedToBeModifiedForModification_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICaction_FailedToBeModifiedForModification_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICaction-FailedToBeModifiedForModification-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_44[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-FailedToBeModifiedForModification-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_44 = { + sizeof(struct RICaction_FailedToBeModifiedForModification_ItemIEs__value), + offsetof(struct RICaction_FailedToBeModifiedForModification_ItemIEs__value, _asn_ctx), + offsetof(struct RICaction_FailedToBeModifiedForModification_ItemIEs__value, present), + sizeof(((struct RICaction_FailedToBeModifiedForModification_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) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_44, + 1, /* Elements count */ + &asn_SPC_value_specs_44 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICaction_FailedToBeModifiedForModification_ItemIEs_41[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_FailedToBeModifiedForModification_ItemIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_42, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_41 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_FailedToBeModifiedForModification_ItemIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICaction_FailedToBeModifiedForModification_ItemIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_43, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_41 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_FailedToBeModifiedForModification_ItemIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_44, + select_RICaction_FailedToBeModifiedForModification_ItemIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_44, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_41 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_FailedToBeModifiedForModification_ItemIEs_tags_41[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_FailedToBeModifiedForModification_ItemIEs_tag2el_41[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_FailedToBeModifiedForModification_ItemIEs_specs_41 = { + sizeof(struct RICaction_FailedToBeModifiedForModification_ItemIEs), + offsetof(struct RICaction_FailedToBeModifiedForModification_ItemIEs, _asn_ctx), + asn_MAP_RICaction_FailedToBeModifiedForModification_ItemIEs_tag2el_41, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICaction_FailedToBeModifiedForModification_ItemIEs = { + "RICaction-FailedToBeModifiedForModification-ItemIEs", + "RICaction-FailedToBeModifiedForModification-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_FailedToBeModifiedForModification_ItemIEs_tags_41, + sizeof(asn_DEF_RICaction_FailedToBeModifiedForModification_ItemIEs_tags_41) + /sizeof(asn_DEF_RICaction_FailedToBeModifiedForModification_ItemIEs_tags_41[0]), /* 1 */ + asn_DEF_RICaction_FailedToBeModifiedForModification_ItemIEs_tags_41, /* Same as above */ + sizeof(asn_DEF_RICaction_FailedToBeModifiedForModification_ItemIEs_tags_41) + /sizeof(asn_DEF_RICaction_FailedToBeModifiedForModification_ItemIEs_tags_41[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_FailedToBeModifiedForModification_ItemIEs_41, + 3, /* Elements count */ + &asn_SPC_RICaction_FailedToBeModifiedForModification_ItemIEs_specs_41 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_48[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_AddedForModification_ItemIEs__value, choice.RICaction_AddedForModification_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICaction_AddedForModification_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICaction-AddedForModification-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_48[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-AddedForModification-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_48 = { + sizeof(struct RICaction_AddedForModification_ItemIEs__value), + offsetof(struct RICaction_AddedForModification_ItemIEs__value, _asn_ctx), + offsetof(struct RICaction_AddedForModification_ItemIEs__value, present), + sizeof(((struct RICaction_AddedForModification_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) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_48, + 1, /* Elements count */ + &asn_SPC_value_specs_48 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICaction_AddedForModification_ItemIEs_45[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_AddedForModification_ItemIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_46, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_45 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_AddedForModification_ItemIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICaction_AddedForModification_ItemIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_47, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_45 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_AddedForModification_ItemIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_48, + select_RICaction_AddedForModification_ItemIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_48, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_45 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_AddedForModification_ItemIEs_tags_45[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_AddedForModification_ItemIEs_tag2el_45[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_AddedForModification_ItemIEs_specs_45 = { + sizeof(struct RICaction_AddedForModification_ItemIEs), + offsetof(struct RICaction_AddedForModification_ItemIEs, _asn_ctx), + asn_MAP_RICaction_AddedForModification_ItemIEs_tag2el_45, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICaction_AddedForModification_ItemIEs = { + "RICaction-AddedForModification-ItemIEs", + "RICaction-AddedForModification-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_AddedForModification_ItemIEs_tags_45, + sizeof(asn_DEF_RICaction_AddedForModification_ItemIEs_tags_45) + /sizeof(asn_DEF_RICaction_AddedForModification_ItemIEs_tags_45[0]), /* 1 */ + asn_DEF_RICaction_AddedForModification_ItemIEs_tags_45, /* Same as above */ + sizeof(asn_DEF_RICaction_AddedForModification_ItemIEs_tags_45) + /sizeof(asn_DEF_RICaction_AddedForModification_ItemIEs_tags_45[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_AddedForModification_ItemIEs_45, + 3, /* Elements count */ + &asn_SPC_RICaction_AddedForModification_ItemIEs_specs_45 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_52[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_FailedToBeAddedForModification_ItemIEs__value, choice.RICaction_FailedToBeAddedForModification_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICaction_FailedToBeAddedForModification_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICaction-FailedToBeAddedForModification-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_52[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-FailedToBeAddedForModification-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_52 = { + sizeof(struct RICaction_FailedToBeAddedForModification_ItemIEs__value), + offsetof(struct RICaction_FailedToBeAddedForModification_ItemIEs__value, _asn_ctx), + offsetof(struct RICaction_FailedToBeAddedForModification_ItemIEs__value, present), + sizeof(((struct RICaction_FailedToBeAddedForModification_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_52, + 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_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) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_52, + 1, /* Elements count */ + &asn_SPC_value_specs_52 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICaction_FailedToBeAddedForModification_ItemIEs_49[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_FailedToBeAddedForModification_ItemIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_50, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_49 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_FailedToBeAddedForModification_ItemIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICaction_FailedToBeAddedForModification_ItemIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_51, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_49 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_FailedToBeAddedForModification_ItemIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_52, + select_RICaction_FailedToBeAddedForModification_ItemIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_52, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_49 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_FailedToBeAddedForModification_ItemIEs_tags_49[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_FailedToBeAddedForModification_ItemIEs_tag2el_49[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_FailedToBeAddedForModification_ItemIEs_specs_49 = { + sizeof(struct RICaction_FailedToBeAddedForModification_ItemIEs), + offsetof(struct RICaction_FailedToBeAddedForModification_ItemIEs, _asn_ctx), + asn_MAP_RICaction_FailedToBeAddedForModification_ItemIEs_tag2el_49, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICaction_FailedToBeAddedForModification_ItemIEs = { + "RICaction-FailedToBeAddedForModification-ItemIEs", + "RICaction-FailedToBeAddedForModification-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_FailedToBeAddedForModification_ItemIEs_tags_49, + sizeof(asn_DEF_RICaction_FailedToBeAddedForModification_ItemIEs_tags_49) + /sizeof(asn_DEF_RICaction_FailedToBeAddedForModification_ItemIEs_tags_49[0]), /* 1 */ + asn_DEF_RICaction_FailedToBeAddedForModification_ItemIEs_tags_49, /* Same as above */ + sizeof(asn_DEF_RICaction_FailedToBeAddedForModification_ItemIEs_tags_49) + /sizeof(asn_DEF_RICaction_FailedToBeAddedForModification_ItemIEs_tags_49[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_FailedToBeAddedForModification_ItemIEs_49, + 3, /* Elements count */ + &asn_SPC_RICaction_FailedToBeAddedForModification_ItemIEs_specs_49 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_56[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_RequiredToBeModified_ItemIEs__value, choice.RICaction_RequiredToBeModified_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICaction_RequiredToBeModified_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICaction-RequiredToBeModified-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_56[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-RequiredToBeModified-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_56 = { + sizeof(struct RICaction_RequiredToBeModified_ItemIEs__value), + offsetof(struct RICaction_RequiredToBeModified_ItemIEs__value, _asn_ctx), + offsetof(struct RICaction_RequiredToBeModified_ItemIEs__value, present), + sizeof(((struct RICaction_RequiredToBeModified_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_56, + 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_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) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_56, + 1, /* Elements count */ + &asn_SPC_value_specs_56 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICaction_RequiredToBeModified_ItemIEs_53[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_RequiredToBeModified_ItemIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_54, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_53 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_RequiredToBeModified_ItemIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICaction_RequiredToBeModified_ItemIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_55, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_53 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_RequiredToBeModified_ItemIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_56, + select_RICaction_RequiredToBeModified_ItemIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_56, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_53 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_RequiredToBeModified_ItemIEs_tags_53[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_RequiredToBeModified_ItemIEs_tag2el_53[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_RequiredToBeModified_ItemIEs_specs_53 = { + sizeof(struct RICaction_RequiredToBeModified_ItemIEs), + offsetof(struct RICaction_RequiredToBeModified_ItemIEs, _asn_ctx), + asn_MAP_RICaction_RequiredToBeModified_ItemIEs_tag2el_53, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICaction_RequiredToBeModified_ItemIEs = { + "RICaction-RequiredToBeModified-ItemIEs", + "RICaction-RequiredToBeModified-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_RequiredToBeModified_ItemIEs_tags_53, + sizeof(asn_DEF_RICaction_RequiredToBeModified_ItemIEs_tags_53) + /sizeof(asn_DEF_RICaction_RequiredToBeModified_ItemIEs_tags_53[0]), /* 1 */ + asn_DEF_RICaction_RequiredToBeModified_ItemIEs_tags_53, /* Same as above */ + sizeof(asn_DEF_RICaction_RequiredToBeModified_ItemIEs_tags_53) + /sizeof(asn_DEF_RICaction_RequiredToBeModified_ItemIEs_tags_53[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_RequiredToBeModified_ItemIEs_53, + 3, /* Elements count */ + &asn_SPC_RICaction_RequiredToBeModified_ItemIEs_specs_53 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_60[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_RequiredToBeRemoved_ItemIEs__value, choice.RICaction_RequiredToBeRemoved_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICaction_RequiredToBeRemoved_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICaction-RequiredToBeRemoved-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_60[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-RequiredToBeRemoved-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_60 = { + sizeof(struct RICaction_RequiredToBeRemoved_ItemIEs__value), + offsetof(struct RICaction_RequiredToBeRemoved_ItemIEs__value, _asn_ctx), + offsetof(struct RICaction_RequiredToBeRemoved_ItemIEs__value, present), + sizeof(((struct RICaction_RequiredToBeRemoved_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_60, + 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_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) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_60, + 1, /* Elements count */ + &asn_SPC_value_specs_60 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICaction_RequiredToBeRemoved_ItemIEs_57[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_RequiredToBeRemoved_ItemIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_58, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_57 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_RequiredToBeRemoved_ItemIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICaction_RequiredToBeRemoved_ItemIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_59, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_57 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_RequiredToBeRemoved_ItemIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_60, + select_RICaction_RequiredToBeRemoved_ItemIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_60, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_57 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_RequiredToBeRemoved_ItemIEs_tags_57[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_RequiredToBeRemoved_ItemIEs_tag2el_57[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_RequiredToBeRemoved_ItemIEs_specs_57 = { + sizeof(struct RICaction_RequiredToBeRemoved_ItemIEs), + offsetof(struct RICaction_RequiredToBeRemoved_ItemIEs, _asn_ctx), + asn_MAP_RICaction_RequiredToBeRemoved_ItemIEs_tag2el_57, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICaction_RequiredToBeRemoved_ItemIEs = { + "RICaction-RequiredToBeRemoved-ItemIEs", + "RICaction-RequiredToBeRemoved-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_RequiredToBeRemoved_ItemIEs_tags_57, + sizeof(asn_DEF_RICaction_RequiredToBeRemoved_ItemIEs_tags_57) + /sizeof(asn_DEF_RICaction_RequiredToBeRemoved_ItemIEs_tags_57[0]), /* 1 */ + asn_DEF_RICaction_RequiredToBeRemoved_ItemIEs_tags_57, /* Same as above */ + sizeof(asn_DEF_RICaction_RequiredToBeRemoved_ItemIEs_tags_57) + /sizeof(asn_DEF_RICaction_RequiredToBeRemoved_ItemIEs_tags_57[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_RequiredToBeRemoved_ItemIEs_57, + 3, /* Elements count */ + &asn_SPC_RICaction_RequiredToBeRemoved_ItemIEs_specs_57 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_64[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ConfirmedForModification_ItemIEs__value, choice.RICaction_ConfirmedForModification_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICaction_ConfirmedForModification_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICaction-ConfirmedForModification-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_64[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-ConfirmedForModification-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_64 = { + sizeof(struct RICaction_ConfirmedForModification_ItemIEs__value), + offsetof(struct RICaction_ConfirmedForModification_ItemIEs__value, _asn_ctx), + offsetof(struct RICaction_ConfirmedForModification_ItemIEs__value, present), + sizeof(((struct RICaction_ConfirmedForModification_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_64, + 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_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) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_64, + 1, /* Elements count */ + &asn_SPC_value_specs_64 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICaction_ConfirmedForModification_ItemIEs_61[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ConfirmedForModification_ItemIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_62, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_61 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ConfirmedForModification_ItemIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICaction_ConfirmedForModification_ItemIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_63, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_61 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_ConfirmedForModification_ItemIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_64, + select_RICaction_ConfirmedForModification_ItemIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_64, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_61 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_ConfirmedForModification_ItemIEs_tags_61[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_ConfirmedForModification_ItemIEs_tag2el_61[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_ConfirmedForModification_ItemIEs_specs_61 = { + sizeof(struct RICaction_ConfirmedForModification_ItemIEs), + offsetof(struct RICaction_ConfirmedForModification_ItemIEs, _asn_ctx), + asn_MAP_RICaction_ConfirmedForModification_ItemIEs_tag2el_61, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICaction_ConfirmedForModification_ItemIEs = { + "RICaction-ConfirmedForModification-ItemIEs", + "RICaction-ConfirmedForModification-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_ConfirmedForModification_ItemIEs_tags_61, + sizeof(asn_DEF_RICaction_ConfirmedForModification_ItemIEs_tags_61) + /sizeof(asn_DEF_RICaction_ConfirmedForModification_ItemIEs_tags_61[0]), /* 1 */ + asn_DEF_RICaction_ConfirmedForModification_ItemIEs_tags_61, /* Same as above */ + sizeof(asn_DEF_RICaction_ConfirmedForModification_ItemIEs_tags_61) + /sizeof(asn_DEF_RICaction_ConfirmedForModification_ItemIEs_tags_61[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_ConfirmedForModification_ItemIEs_61, + 3, /* Elements count */ + &asn_SPC_RICaction_ConfirmedForModification_ItemIEs_specs_61 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_68[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_RefusedToBeModified_ItemIEs__value, choice.RICaction_RefusedToBeModified_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICaction_RefusedToBeModified_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICaction-RefusedToBeModified-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_68[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-RefusedToBeModified-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_68 = { + sizeof(struct RICaction_RefusedToBeModified_ItemIEs__value), + offsetof(struct RICaction_RefusedToBeModified_ItemIEs__value, _asn_ctx), + offsetof(struct RICaction_RefusedToBeModified_ItemIEs__value, present), + sizeof(((struct RICaction_RefusedToBeModified_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_68, + 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_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) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_68, + 1, /* Elements count */ + &asn_SPC_value_specs_68 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICaction_RefusedToBeModified_ItemIEs_65[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_RefusedToBeModified_ItemIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_66, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_65 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_RefusedToBeModified_ItemIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICaction_RefusedToBeModified_ItemIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_67, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_65 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_RefusedToBeModified_ItemIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_68, + select_RICaction_RefusedToBeModified_ItemIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_68, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_65 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_RefusedToBeModified_ItemIEs_tags_65[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_RefusedToBeModified_ItemIEs_tag2el_65[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_RefusedToBeModified_ItemIEs_specs_65 = { + sizeof(struct RICaction_RefusedToBeModified_ItemIEs), + offsetof(struct RICaction_RefusedToBeModified_ItemIEs, _asn_ctx), + asn_MAP_RICaction_RefusedToBeModified_ItemIEs_tag2el_65, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICaction_RefusedToBeModified_ItemIEs = { + "RICaction-RefusedToBeModified-ItemIEs", + "RICaction-RefusedToBeModified-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_RefusedToBeModified_ItemIEs_tags_65, + sizeof(asn_DEF_RICaction_RefusedToBeModified_ItemIEs_tags_65) + /sizeof(asn_DEF_RICaction_RefusedToBeModified_ItemIEs_tags_65[0]), /* 1 */ + asn_DEF_RICaction_RefusedToBeModified_ItemIEs_tags_65, /* Same as above */ + sizeof(asn_DEF_RICaction_RefusedToBeModified_ItemIEs_tags_65) + /sizeof(asn_DEF_RICaction_RefusedToBeModified_ItemIEs_tags_65[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_RefusedToBeModified_ItemIEs_65, + 3, /* Elements count */ + &asn_SPC_RICaction_RefusedToBeModified_ItemIEs_specs_65 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_72[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ConfirmedForRemoval_ItemIEs__value, choice.RICaction_ConfirmedForRemoval_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICaction_ConfirmedForRemoval_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICaction-ConfirmedForRemoval-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_72[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-ConfirmedForRemoval-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_72 = { + sizeof(struct RICaction_ConfirmedForRemoval_ItemIEs__value), + offsetof(struct RICaction_ConfirmedForRemoval_ItemIEs__value, _asn_ctx), + offsetof(struct RICaction_ConfirmedForRemoval_ItemIEs__value, present), + sizeof(((struct RICaction_ConfirmedForRemoval_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_72, + 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_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) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_72, + 1, /* Elements count */ + &asn_SPC_value_specs_72 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICaction_ConfirmedForRemoval_ItemIEs_69[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ConfirmedForRemoval_ItemIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_70, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_69 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ConfirmedForRemoval_ItemIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICaction_ConfirmedForRemoval_ItemIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_71, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_69 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_ConfirmedForRemoval_ItemIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_72, + select_RICaction_ConfirmedForRemoval_ItemIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_72, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_69 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_ConfirmedForRemoval_ItemIEs_tags_69[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_ConfirmedForRemoval_ItemIEs_tag2el_69[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_ConfirmedForRemoval_ItemIEs_specs_69 = { + sizeof(struct RICaction_ConfirmedForRemoval_ItemIEs), + offsetof(struct RICaction_ConfirmedForRemoval_ItemIEs, _asn_ctx), + asn_MAP_RICaction_ConfirmedForRemoval_ItemIEs_tag2el_69, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICaction_ConfirmedForRemoval_ItemIEs = { + "RICaction-ConfirmedForRemoval-ItemIEs", + "RICaction-ConfirmedForRemoval-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_ConfirmedForRemoval_ItemIEs_tags_69, + sizeof(asn_DEF_RICaction_ConfirmedForRemoval_ItemIEs_tags_69) + /sizeof(asn_DEF_RICaction_ConfirmedForRemoval_ItemIEs_tags_69[0]), /* 1 */ + asn_DEF_RICaction_ConfirmedForRemoval_ItemIEs_tags_69, /* Same as above */ + sizeof(asn_DEF_RICaction_ConfirmedForRemoval_ItemIEs_tags_69) + /sizeof(asn_DEF_RICaction_ConfirmedForRemoval_ItemIEs_tags_69[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_ConfirmedForRemoval_ItemIEs_69, + 3, /* Elements count */ + &asn_SPC_RICaction_ConfirmedForRemoval_ItemIEs_specs_69 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_76[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_RefusedToBeRemoved_ItemIEs__value, choice.RICaction_RefusedToBeRemoved_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICaction_RefusedToBeRemoved_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICaction-RefusedToBeRemoved-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_76[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-RefusedToBeRemoved-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_76 = { + sizeof(struct RICaction_RefusedToBeRemoved_ItemIEs__value), + offsetof(struct RICaction_RefusedToBeRemoved_ItemIEs__value, _asn_ctx), + offsetof(struct RICaction_RefusedToBeRemoved_ItemIEs__value, present), + sizeof(((struct RICaction_RefusedToBeRemoved_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_76, + 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_76 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_76, + 1, /* Elements count */ + &asn_SPC_value_specs_76 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICaction_RefusedToBeRemoved_ItemIEs_73[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_RefusedToBeRemoved_ItemIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_74, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_73 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_RefusedToBeRemoved_ItemIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICaction_RefusedToBeRemoved_ItemIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_75, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_73 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_RefusedToBeRemoved_ItemIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_76, + select_RICaction_RefusedToBeRemoved_ItemIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_76, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_73 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_RefusedToBeRemoved_ItemIEs_tags_73[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_RefusedToBeRemoved_ItemIEs_tag2el_73[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_RefusedToBeRemoved_ItemIEs_specs_73 = { + sizeof(struct RICaction_RefusedToBeRemoved_ItemIEs), + offsetof(struct RICaction_RefusedToBeRemoved_ItemIEs, _asn_ctx), + asn_MAP_RICaction_RefusedToBeRemoved_ItemIEs_tag2el_73, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICaction_RefusedToBeRemoved_ItemIEs = { + "RICaction-RefusedToBeRemoved-ItemIEs", + "RICaction-RefusedToBeRemoved-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_RefusedToBeRemoved_ItemIEs_tags_73, + sizeof(asn_DEF_RICaction_RefusedToBeRemoved_ItemIEs_tags_73) + /sizeof(asn_DEF_RICaction_RefusedToBeRemoved_ItemIEs_tags_73[0]), /* 1 */ + asn_DEF_RICaction_RefusedToBeRemoved_ItemIEs_tags_73, /* Same as above */ + sizeof(asn_DEF_RICaction_RefusedToBeRemoved_ItemIEs_tags_73) + /sizeof(asn_DEF_RICaction_RefusedToBeRemoved_ItemIEs_tags_73[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_RefusedToBeRemoved_ItemIEs_73, + 3, /* Elements count */ + &asn_SPC_RICaction_RefusedToBeRemoved_ItemIEs_specs_73 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_80[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_ItemIEs__value, choice.E2connectionUpdate_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2connectionUpdate_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "E2connectionUpdate-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_80[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2connectionUpdate-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_80 = { + 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_80, + 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_80 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_80, + 1, /* Elements count */ + &asn_SPC_value_specs_80 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2connectionUpdate_ItemIEs_77[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_ItemIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_78, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_77 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_ItemIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_E2connectionUpdate_ItemIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_79, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_77 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_ItemIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_80, + select_E2connectionUpdate_ItemIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_80, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_77 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2connectionUpdate_ItemIEs_tags_77[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdate_ItemIEs_tag2el_77[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_ItemIEs_specs_77 = { + sizeof(struct E2connectionUpdate_ItemIEs), + offsetof(struct E2connectionUpdate_ItemIEs, _asn_ctx), + asn_MAP_E2connectionUpdate_ItemIEs_tag2el_77, + 2, /* 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_77, + sizeof(asn_DEF_E2connectionUpdate_ItemIEs_tags_77) + /sizeof(asn_DEF_E2connectionUpdate_ItemIEs_tags_77[0]), /* 1 */ + asn_DEF_E2connectionUpdate_ItemIEs_tags_77, /* Same as above */ + sizeof(asn_DEF_E2connectionUpdate_ItemIEs_tags_77) + /sizeof(asn_DEF_E2connectionUpdate_ItemIEs_tags_77[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2connectionUpdate_ItemIEs_77, + 3, /* Elements count */ + &asn_SPC_E2connectionUpdate_ItemIEs_specs_77 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_84[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateRemove_ItemIEs__value, choice.E2connectionUpdateRemove_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2connectionUpdateRemove_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "E2connectionUpdateRemove-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_84[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2connectionUpdateRemove-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_84 = { + 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_84, + 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_84 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_84, + 1, /* Elements count */ + &asn_SPC_value_specs_84 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2connectionUpdateRemove_ItemIEs_81[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateRemove_ItemIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_82, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_81 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateRemove_ItemIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_E2connectionUpdateRemove_ItemIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_83, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_81 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateRemove_ItemIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_84, + select_E2connectionUpdateRemove_ItemIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_84, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_81 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_81[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdateRemove_ItemIEs_tag2el_81[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateRemove_ItemIEs_specs_81 = { + sizeof(struct E2connectionUpdateRemove_ItemIEs), + offsetof(struct E2connectionUpdateRemove_ItemIEs, _asn_ctx), + asn_MAP_E2connectionUpdateRemove_ItemIEs_tag2el_81, + 2, /* 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_81, + sizeof(asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_81) + /sizeof(asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_81[0]), /* 1 */ + asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_81, /* Same as above */ + sizeof(asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_81) + /sizeof(asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_81[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2connectionUpdateRemove_ItemIEs_81, + 3, /* Elements count */ + &asn_SPC_E2connectionUpdateRemove_ItemIEs_specs_81 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_88[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionSetupFailed_ItemIEs__value, choice.E2connectionSetupFailed_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2connectionSetupFailed_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "E2connectionSetupFailed-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_88[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2connectionSetupFailed-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_88 = { + 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_88, + 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_88 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_88, + 1, /* Elements count */ + &asn_SPC_value_specs_88 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2connectionSetupFailed_ItemIEs_85[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionSetupFailed_ItemIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_86, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_85 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2connectionSetupFailed_ItemIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_E2connectionSetupFailed_ItemIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_87, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_85 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2connectionSetupFailed_ItemIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_88, + select_E2connectionSetupFailed_ItemIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_88, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_85 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2connectionSetupFailed_ItemIEs_tags_85[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2connectionSetupFailed_ItemIEs_tag2el_85[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2connectionSetupFailed_ItemIEs_specs_85 = { + sizeof(struct E2connectionSetupFailed_ItemIEs), + offsetof(struct E2connectionSetupFailed_ItemIEs, _asn_ctx), + asn_MAP_E2connectionSetupFailed_ItemIEs_tag2el_85, + 2, /* 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_85, + sizeof(asn_DEF_E2connectionSetupFailed_ItemIEs_tags_85) + /sizeof(asn_DEF_E2connectionSetupFailed_ItemIEs_tags_85[0]), /* 1 */ + asn_DEF_E2connectionSetupFailed_ItemIEs_tags_85, /* Same as above */ + sizeof(asn_DEF_E2connectionSetupFailed_ItemIEs_tags_85) + /sizeof(asn_DEF_E2connectionSetupFailed_ItemIEs_tags_85[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2connectionSetupFailed_ItemIEs_85, + 3, /* Elements count */ + &asn_SPC_E2connectionSetupFailed_ItemIEs_specs_85 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_92[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAddition_ItemIEs__value, choice.E2nodeComponentConfigAddition_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeComponentConfigAddition_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "E2nodeComponentConfigAddition-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_92[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigAddition-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_92 = { + 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_92, + 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_92 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_92, + 1, /* Elements count */ + &asn_SPC_value_specs_92 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAddition_ItemIEs_89[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAddition_ItemIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_90, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_89 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAddition_ItemIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_E2nodeComponentConfigAddition_ItemIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_91, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_89 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAddition_ItemIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_92, + select_E2nodeComponentConfigAddition_ItemIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_92, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_89 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_89[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigAddition_ItemIEs_tag2el_89[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigAddition_ItemIEs_specs_89 = { + sizeof(struct E2nodeComponentConfigAddition_ItemIEs), + offsetof(struct E2nodeComponentConfigAddition_ItemIEs, _asn_ctx), + asn_MAP_E2nodeComponentConfigAddition_ItemIEs_tag2el_89, + 2, /* 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_89, + sizeof(asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_89) + /sizeof(asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_89[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_89, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_89) + /sizeof(asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_89[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeComponentConfigAddition_ItemIEs_89, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigAddition_ItemIEs_specs_89 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_96[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_ItemIEs__value, choice.E2nodeComponentConfigUpdate_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeComponentConfigUpdate_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "E2nodeComponentConfigUpdate-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_96[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigUpdate-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_96 = { + 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_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_96 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_96, + 1, /* Elements count */ + &asn_SPC_value_specs_96 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_ItemIEs_93[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_94, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_93 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_E2nodeComponentConfigUpdate_ItemIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_95, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_93 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_96, + select_E2nodeComponentConfigUpdate_ItemIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_96, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_93 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_93[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdate_ItemIEs_tag2el_93[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdate_ItemIEs_specs_93 = { + sizeof(struct E2nodeComponentConfigUpdate_ItemIEs), + offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, _asn_ctx), + asn_MAP_E2nodeComponentConfigUpdate_ItemIEs_tag2el_93, + 2, /* 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_93, + sizeof(asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_93) + /sizeof(asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_93[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_93, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_93) + /sizeof(asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_93[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeComponentConfigUpdate_ItemIEs_93, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigUpdate_ItemIEs_specs_93 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_100[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemoval_ItemIEs__value, choice.E2nodeComponentConfigRemoval_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeComponentConfigRemoval_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "E2nodeComponentConfigRemoval-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_100[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigRemoval-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_100 = { + 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_100, + 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_100 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_100, + 1, /* Elements count */ + &asn_SPC_value_specs_100 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemoval_ItemIEs_97[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemoval_ItemIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_98, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_97 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemoval_ItemIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_E2nodeComponentConfigRemoval_ItemIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_99, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_97 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemoval_ItemIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_100, + select_E2nodeComponentConfigRemoval_ItemIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_100, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_97 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_97[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigRemoval_ItemIEs_tag2el_97[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigRemoval_ItemIEs_specs_97 = { + sizeof(struct E2nodeComponentConfigRemoval_ItemIEs), + offsetof(struct E2nodeComponentConfigRemoval_ItemIEs, _asn_ctx), + asn_MAP_E2nodeComponentConfigRemoval_ItemIEs_tag2el_97, + 2, /* 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_97, + sizeof(asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_97) + /sizeof(asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_97[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_97, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_97) + /sizeof(asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_97[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeComponentConfigRemoval_ItemIEs_97, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigRemoval_ItemIEs_specs_97 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_104[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeTNLassociationRemoval_ItemIEs__value, choice.E2nodeTNLassociationRemoval_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeTNLassociationRemoval_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "E2nodeTNLassociationRemoval-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_104[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeTNLassociationRemoval-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_104 = { + 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_104, + 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_104 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_104, + 1, /* Elements count */ + &asn_SPC_value_specs_104 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2nodeTNLassociationRemoval_ItemIEs_101[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeTNLassociationRemoval_ItemIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_102, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_101 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeTNLassociationRemoval_ItemIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_E2nodeTNLassociationRemoval_ItemIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_103, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_101 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeTNLassociationRemoval_ItemIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_104, + select_E2nodeTNLassociationRemoval_ItemIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_104, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_101 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_101[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeTNLassociationRemoval_ItemIEs_tag2el_101[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeTNLassociationRemoval_ItemIEs_specs_101 = { + sizeof(struct E2nodeTNLassociationRemoval_ItemIEs), + offsetof(struct E2nodeTNLassociationRemoval_ItemIEs, _asn_ctx), + asn_MAP_E2nodeTNLassociationRemoval_ItemIEs_tag2el_101, + 2, /* 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_101, + sizeof(asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_101) + /sizeof(asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_101[0]), /* 1 */ + asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_101, /* Same as above */ + sizeof(asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_101) + /sizeof(asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_101[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeTNLassociationRemoval_ItemIEs_101, + 3, /* Elements count */ + &asn_SPC_E2nodeTNLassociationRemoval_ItemIEs_specs_101 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_108[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs__value, choice.E2nodeComponentConfigAdditionAck_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeComponentConfigAdditionAck_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "E2nodeComponentConfigAdditionAck-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_108[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigAdditionAck-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_108 = { + 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_108, + 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_108 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_108, + 1, /* Elements count */ + &asn_SPC_value_specs_108 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAdditionAck_ItemIEs_105[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_106, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_105 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_E2nodeComponentConfigAdditionAck_ItemIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_107, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_105 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_108, + select_E2nodeComponentConfigAdditionAck_ItemIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_108, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_105 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_105[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigAdditionAck_ItemIEs_tag2el_105[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigAdditionAck_ItemIEs_specs_105 = { + sizeof(struct E2nodeComponentConfigAdditionAck_ItemIEs), + offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs, _asn_ctx), + asn_MAP_E2nodeComponentConfigAdditionAck_ItemIEs_tag2el_105, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs = { + "E2nodeComponentConfigAdditionAck-ItemIEs", + "E2nodeComponentConfigAdditionAck-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_105, + sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_105) + /sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_105[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_105, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_105) + /sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_105[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeComponentConfigAdditionAck_ItemIEs_105, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigAdditionAck_ItemIEs_specs_105 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_112[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs__value, choice.E2nodeComponentConfigUpdateAck_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeComponentConfigUpdateAck_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "E2nodeComponentConfigUpdateAck-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_112[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigUpdateAck-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_112 = { + 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_112, + 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_112 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_112, + 1, /* Elements count */ + &asn_SPC_value_specs_112 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_ItemIEs_109[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_110, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_109 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_E2nodeComponentConfigUpdateAck_ItemIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_111, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_109 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_112, + select_E2nodeComponentConfigUpdateAck_ItemIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_112, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_109 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_109[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdateAck_ItemIEs_tag2el_109[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_ItemIEs_specs_109 = { + sizeof(struct E2nodeComponentConfigUpdateAck_ItemIEs), + offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, _asn_ctx), + asn_MAP_E2nodeComponentConfigUpdateAck_ItemIEs_tag2el_109, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs = { + "E2nodeComponentConfigUpdateAck-ItemIEs", + "E2nodeComponentConfigUpdateAck-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_109, + sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_109) + /sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_109[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_109, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_109) + /sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_109[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeComponentConfigUpdateAck_ItemIEs_109, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigUpdateAck_ItemIEs_specs_109 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_116[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs__value, choice.E2nodeComponentConfigRemovalAck_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeComponentConfigRemovalAck_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "E2nodeComponentConfigRemovalAck-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_116[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigRemovalAck-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_116 = { + 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_116, + 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_116 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_116, + 1, /* Elements count */ + &asn_SPC_value_specs_116 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemovalAck_ItemIEs_113[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_114, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_113 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_E2nodeComponentConfigRemovalAck_ItemIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_115, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_113 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_116, + select_E2nodeComponentConfigRemovalAck_ItemIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_116, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_113 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_113[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigRemovalAck_ItemIEs_tag2el_113[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigRemovalAck_ItemIEs_specs_113 = { + sizeof(struct E2nodeComponentConfigRemovalAck_ItemIEs), + offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs, _asn_ctx), + asn_MAP_E2nodeComponentConfigRemovalAck_ItemIEs_tag2el_113, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs = { + "E2nodeComponentConfigRemovalAck-ItemIEs", + "E2nodeComponentConfigRemovalAck-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_113, + sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_113) + /sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_113[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_113, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_113) + /sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_113[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeComponentConfigRemovalAck_ItemIEs_113, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigRemovalAck_ItemIEs_specs_113 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_120[] = { + { ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs__value, choice.RANfunction_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RANfunction_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RANfunction-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_120[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunction-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_120 = { + 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_120, + 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_120 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_120, + 1, /* Elements count */ + &asn_SPC_value_specs_120 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RANfunction_ItemIEs_117[] = { + { ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_118, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_117 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RANfunction_ItemIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_119, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_117 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_120, + select_RANfunction_ItemIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_120, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_117 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RANfunction_ItemIEs_tags_117[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RANfunction_ItemIEs_tag2el_117[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RANfunction_ItemIEs_specs_117 = { + sizeof(struct RANfunction_ItemIEs), + offsetof(struct RANfunction_ItemIEs, _asn_ctx), + asn_MAP_RANfunction_ItemIEs_tag2el_117, + 2, /* 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_OP_SEQUENCE, + asn_DEF_RANfunction_ItemIEs_tags_117, + sizeof(asn_DEF_RANfunction_ItemIEs_tags_117) + /sizeof(asn_DEF_RANfunction_ItemIEs_tags_117[0]), /* 1 */ + asn_DEF_RANfunction_ItemIEs_tags_117, /* Same as above */ + sizeof(asn_DEF_RANfunction_ItemIEs_tags_117) + /sizeof(asn_DEF_RANfunction_ItemIEs_tags_117[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RANfunction_ItemIEs_117, + 3, /* Elements count */ + &asn_SPC_RANfunction_ItemIEs_specs_117 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_124[] = { + { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs__value, choice.RANfunctionID_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RANfunctionID_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RANfunctionID-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_124[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionID-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_124 = { + 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_124, + 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_124 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_124, + 1, /* Elements count */ + &asn_SPC_value_specs_124 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RANfunctionID_ItemIEs_121[] = { + { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_122, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_121 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RANfunctionID_ItemIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_123, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_121 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_124, + select_RANfunctionID_ItemIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_124, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_121 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RANfunctionID_ItemIEs_tags_121[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RANfunctionID_ItemIEs_tag2el_121[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_ItemIEs_specs_121 = { + sizeof(struct RANfunctionID_ItemIEs), + offsetof(struct RANfunctionID_ItemIEs, _asn_ctx), + asn_MAP_RANfunctionID_ItemIEs_tag2el_121, + 2, /* 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_OP_SEQUENCE, + asn_DEF_RANfunctionID_ItemIEs_tags_121, + sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_121) + /sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_121[0]), /* 1 */ + asn_DEF_RANfunctionID_ItemIEs_tags_121, /* Same as above */ + sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_121) + /sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_121[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RANfunctionID_ItemIEs_121, + 3, /* Elements count */ + &asn_SPC_RANfunctionID_ItemIEs_specs_121 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_128[] = { + { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs__value, choice.RANfunctionIDcause_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RANfunctionIDcause_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RANfunctionIDcause-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_128[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionIDcause-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_128 = { + 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_128, + 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_128 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_128, + 1, /* Elements count */ + &asn_SPC_value_specs_128 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RANfunctionIDcause_ItemIEs_125[] = { + { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_126, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_125 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RANfunctionIDcause_ItemIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_127, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_125 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_128, + select_RANfunctionIDcause_ItemIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_128, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_125 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RANfunctionIDcause_ItemIEs_tags_125[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RANfunctionIDcause_ItemIEs_tag2el_125[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_ItemIEs_specs_125 = { + sizeof(struct RANfunctionIDcause_ItemIEs), + offsetof(struct RANfunctionIDcause_ItemIEs, _asn_ctx), + asn_MAP_RANfunctionIDcause_ItemIEs_tag2el_125, + 2, /* 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_OP_SEQUENCE, + asn_DEF_RANfunctionIDcause_ItemIEs_tags_125, + sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_125) + /sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_125[0]), /* 1 */ + asn_DEF_RANfunctionIDcause_ItemIEs_tags_125, /* Same as above */ + sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_125) + /sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_125[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RANfunctionIDcause_ItemIEs_125, + 3, /* Elements count */ + &asn_SPC_RANfunctionIDcause_ItemIEs_specs_125 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_132[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs__value, choice.RICrequestID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICrequestID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICsubscriptionDetails" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs__value, choice.RICsubscriptionTime), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RICsubscriptionTime, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICsubscriptionTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs__value, choice.RICsubscriptionTime_1), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RICsubscriptionTime, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICsubscriptionTime" + }, +}; +static const unsigned asn_MAP_value_to_canonical_132[] = { 1, 3, 4, 0, 2 }; +static const unsigned asn_MAP_value_from_canonical_132[] = { 3, 0, 4, 1, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_132[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, 0, 1 }, /* RICsubscriptionTime */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, -1, 0 }, /* RICsubscriptionTime */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RICrequestID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* RICsubscriptionDetails */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_132 = { + 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_132, + 5, /* Count of tags in the map */ + asn_MAP_value_to_canonical_132, + asn_MAP_value_from_canonical_132, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_132 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_132, + 5, /* Elements count */ + &asn_SPC_value_specs_132 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_IEs_129[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_130, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_129 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICsubscriptionRequest_IEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_131, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_129 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_132, + select_RICsubscriptionRequest_IEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_132, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_129 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscriptionRequest_IEs_tags_129[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionRequest_IEs_tag2el_129[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_IEs_specs_129 = { + sizeof(struct RICsubscriptionRequest_IEs), + offsetof(struct RICsubscriptionRequest_IEs, _asn_ctx), + asn_MAP_RICsubscriptionRequest_IEs_tag2el_129, + 2, /* 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_OP_SEQUENCE, + asn_DEF_RICsubscriptionRequest_IEs_tags_129, + sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_129) + /sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_129[0]), /* 1 */ + asn_DEF_RICsubscriptionRequest_IEs_tags_129, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_129) + /sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_129[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICsubscriptionRequest_IEs_129, + 3, /* Elements count */ + &asn_SPC_RICsubscriptionRequest_IEs_specs_129 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_136[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs__value, choice.RICrequestID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICrequestID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICrequestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs__value, choice.RANfunctionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RANfunctionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICaction-NotAdmitted-List" + }, +}; +static const unsigned asn_MAP_value_to_canonical_136[] = { 1, 0, 2, 3 }; +static const unsigned asn_MAP_value_from_canonical_136[] = { 1, 0, 2, 3 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_136[] = { + { (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_136 = { + 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_136, + 4, /* Count of tags in the map */ + asn_MAP_value_to_canonical_136, + asn_MAP_value_from_canonical_136, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_136 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_136, + 4, /* Elements count */ + &asn_SPC_value_specs_136 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_IEs_133[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_134, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_133 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICsubscriptionResponse_IEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_135, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_133 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_136, + select_RICsubscriptionResponse_IEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_136, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_133 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscriptionResponse_IEs_tags_133[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionResponse_IEs_tag2el_133[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_IEs_specs_133 = { + sizeof(struct RICsubscriptionResponse_IEs), + offsetof(struct RICsubscriptionResponse_IEs, _asn_ctx), + asn_MAP_RICsubscriptionResponse_IEs_tag2el_133, + 2, /* 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_OP_SEQUENCE, + asn_DEF_RICsubscriptionResponse_IEs_tags_133, + sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_133) + /sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_133[0]), /* 1 */ + asn_DEF_RICsubscriptionResponse_IEs_tags_133, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_133) + /sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_133[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICsubscriptionResponse_IEs_133, + 3, /* Elements count */ + &asn_SPC_RICsubscriptionResponse_IEs_specs_133 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_140[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.RICrequestID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICrequestID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICrequestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.RANfunctionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RANfunctionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RANfunctionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_Cause, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_value_to_canonical_140[] = { 1, 0, 3, 2 }; +static const unsigned asn_MAP_value_from_canonical_140[] = { 1, 0, 3, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_140[] = { + { (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 }, /* CriticalityDiagnostics */ + { (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_140 = { + 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_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_140 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_140, + 4, /* Elements count */ + &asn_SPC_value_specs_140 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_IEs_137[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_138, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_137 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICsubscriptionFailure_IEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_139, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_137 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_140, + select_RICsubscriptionFailure_IEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_140, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_137 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscriptionFailure_IEs_tags_137[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionFailure_IEs_tag2el_137[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_IEs_specs_137 = { + sizeof(struct RICsubscriptionFailure_IEs), + offsetof(struct RICsubscriptionFailure_IEs, _asn_ctx), + asn_MAP_RICsubscriptionFailure_IEs_tag2el_137, + 2, /* 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_OP_SEQUENCE, + asn_DEF_RICsubscriptionFailure_IEs_tags_137, + sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_137) + /sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_137[0]), /* 1 */ + asn_DEF_RICsubscriptionFailure_IEs_tags_137, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_137) + /sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_137[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICsubscriptionFailure_IEs_137, + 3, /* Elements count */ + &asn_SPC_RICsubscriptionFailure_IEs_specs_137 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_144[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs__value, choice.RICrequestID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICrequestID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICrequestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs__value, choice.RANfunctionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RANfunctionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RANfunctionID" + }, +}; +static const unsigned asn_MAP_value_to_canonical_144[] = { 1, 0 }; +static const unsigned asn_MAP_value_from_canonical_144[] = { 1, 0 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_144[] = { + { (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_144 = { + 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_144, + 2, /* 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_144 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_144, + 2, /* Elements count */ + &asn_SPC_value_specs_144 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_IEs_141[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_142, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_141 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICsubscriptionDeleteRequest_IEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_143, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_141 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_144, + select_RICsubscriptionDeleteRequest_IEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_144, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_141 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_141[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteRequest_IEs_tag2el_141[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_141 = { + sizeof(struct RICsubscriptionDeleteRequest_IEs), + offsetof(struct RICsubscriptionDeleteRequest_IEs, _asn_ctx), + asn_MAP_RICsubscriptionDeleteRequest_IEs_tag2el_141, + 2, /* 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_OP_SEQUENCE, + asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_141, + sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_141) + /sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_141[0]), /* 1 */ + asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_141, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_141) + /sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_141[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICsubscriptionDeleteRequest_IEs_141, + 3, /* Elements count */ + &asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_141 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_148[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs__value, choice.RICrequestID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICrequestID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICrequestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs__value, choice.RANfunctionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RANfunctionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RANfunctionID" + }, +}; +static const unsigned asn_MAP_value_to_canonical_148[] = { 1, 0 }; +static const unsigned asn_MAP_value_from_canonical_148[] = { 1, 0 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_148[] = { + { (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_148 = { + 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_148, + 2, /* Count of tags in the map */ + asn_MAP_value_to_canonical_148, + asn_MAP_value_from_canonical_148, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_148 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_148, + 2, /* Elements count */ + &asn_SPC_value_specs_148 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_IEs_145[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_146, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_145 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICsubscriptionDeleteResponse_IEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_147, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_145 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_148, + select_RICsubscriptionDeleteResponse_IEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_148, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_145 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_145[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteResponse_IEs_tag2el_145[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_145 = { + sizeof(struct RICsubscriptionDeleteResponse_IEs), + offsetof(struct RICsubscriptionDeleteResponse_IEs, _asn_ctx), + asn_MAP_RICsubscriptionDeleteResponse_IEs_tag2el_145, + 2, /* 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_OP_SEQUENCE, + asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_145, + sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_145) + /sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_145[0]), /* 1 */ + asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_145, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_145) + /sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_145[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICsubscriptionDeleteResponse_IEs_145, + 3, /* Elements count */ + &asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_145 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_152[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.RICrequestID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICrequestID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RANfunctionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_Cause, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_value_to_canonical_152[] = { 1, 0, 3, 2 }; +static const unsigned asn_MAP_value_from_canonical_152[] = { 1, 0, 3, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_152[] = { + { (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 }, /* CriticalityDiagnostics */ + { (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_152 = { + 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_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_152 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_152, + 4, /* Elements count */ + &asn_SPC_value_specs_152 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_IEs_149[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_150, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_149 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICsubscriptionDeleteFailure_IEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_151, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_149 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_152, + select_RICsubscriptionDeleteFailure_IEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_152, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_149 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_149[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteFailure_IEs_tag2el_149[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_149 = { + sizeof(struct RICsubscriptionDeleteFailure_IEs), + offsetof(struct RICsubscriptionDeleteFailure_IEs, _asn_ctx), + asn_MAP_RICsubscriptionDeleteFailure_IEs_tag2el_149, + 2, /* 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_OP_SEQUENCE, + asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_149, + sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_149) + /sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_149[0]), /* 1 */ + asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_149, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_149) + /sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_149[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICsubscriptionDeleteFailure_IEs_149, + 3, /* Elements count */ + &asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_149 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_156[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequired_IEs__value, choice.RICsubscription_List_withCause), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscription_List_withCause, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICsubscription-List-withCause" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_156[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICsubscription-List-withCause */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_156 = { + 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_156, + 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_156 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_156, + 1, /* Elements count */ + &asn_SPC_value_specs_156 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequired_IEs_153[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequired_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_154, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_153 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequired_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICsubscriptionDeleteRequired_IEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_155, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_153 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequired_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_156, + select_RICsubscriptionDeleteRequired_IEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_156, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_153 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_153[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteRequired_IEs_tag2el_153[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequired_IEs_specs_153 = { + sizeof(struct RICsubscriptionDeleteRequired_IEs), + offsetof(struct RICsubscriptionDeleteRequired_IEs, _asn_ctx), + asn_MAP_RICsubscriptionDeleteRequired_IEs_tag2el_153, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequired_IEs = { + "RICsubscriptionDeleteRequired-IEs", + "RICsubscriptionDeleteRequired-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_153, + sizeof(asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_153) + /sizeof(asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_153[0]), /* 1 */ + asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_153, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_153) + /sizeof(asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_153[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICsubscriptionDeleteRequired_IEs_153, + 3, /* Elements count */ + &asn_SPC_RICsubscriptionDeleteRequired_IEs_specs_153 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_160[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationRequest_IEs__value, choice.RICrequestID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICrequestID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICrequestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationRequest_IEs__value, choice.RANfunctionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RANfunctionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RANfunctionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationRequest_IEs__value, choice.RICeventTriggerDefinition), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RICeventTriggerDefinition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICeventTriggerDefinition" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationRequest_IEs__value, choice.RICactions_ToBeRemovedForModification_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICactions_ToBeRemovedForModification_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICactions-ToBeRemovedForModification-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationRequest_IEs__value, choice.RICactions_ToBeModifiedForModification_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICactions_ToBeModifiedForModification_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICactions-ToBeModifiedForModification-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationRequest_IEs__value, choice.RICactions_ToBeAddedForModification_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICactions_ToBeAddedForModification_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICactions-ToBeAddedForModification-List" + }, +}; +static const unsigned asn_MAP_value_to_canonical_160[] = { 1, 2, 0, 3, 4, 5 }; +static const unsigned asn_MAP_value_from_canonical_160[] = { 2, 0, 1, 3, 4, 5 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_160[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 0 }, /* RICeventTriggerDefinition */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 3 }, /* RICrequestID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 2 }, /* RICactions-ToBeRemovedForModification-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -2, 1 }, /* RICactions-ToBeModifiedForModification-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -3, 0 } /* RICactions-ToBeAddedForModification-List */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_160 = { + sizeof(struct RICsubscriptionModificationRequest_IEs__value), + offsetof(struct RICsubscriptionModificationRequest_IEs__value, _asn_ctx), + offsetof(struct RICsubscriptionModificationRequest_IEs__value, present), + sizeof(((struct RICsubscriptionModificationRequest_IEs__value *)0)->present), + asn_MAP_value_tag2el_160, + 6, /* Count of tags in the map */ + asn_MAP_value_to_canonical_160, + asn_MAP_value_from_canonical_160, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_160 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_160, + 6, /* Elements count */ + &asn_SPC_value_specs_160 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICsubscriptionModificationRequest_IEs_157[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationRequest_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_158, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_157 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationRequest_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICsubscriptionModificationRequest_IEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_159, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_157 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationRequest_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_160, + select_RICsubscriptionModificationRequest_IEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_160, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_157 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscriptionModificationRequest_IEs_tags_157[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionModificationRequest_IEs_tag2el_157[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionModificationRequest_IEs_specs_157 = { + sizeof(struct RICsubscriptionModificationRequest_IEs), + offsetof(struct RICsubscriptionModificationRequest_IEs, _asn_ctx), + asn_MAP_RICsubscriptionModificationRequest_IEs_tag2el_157, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICsubscriptionModificationRequest_IEs = { + "RICsubscriptionModificationRequest-IEs", + "RICsubscriptionModificationRequest-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RICsubscriptionModificationRequest_IEs_tags_157, + sizeof(asn_DEF_RICsubscriptionModificationRequest_IEs_tags_157) + /sizeof(asn_DEF_RICsubscriptionModificationRequest_IEs_tags_157[0]), /* 1 */ + asn_DEF_RICsubscriptionModificationRequest_IEs_tags_157, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionModificationRequest_IEs_tags_157) + /sizeof(asn_DEF_RICsubscriptionModificationRequest_IEs_tags_157[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICsubscriptionModificationRequest_IEs_157, + 3, /* Elements count */ + &asn_SPC_RICsubscriptionModificationRequest_IEs_specs_157 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_164[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationResponse_IEs__value, choice.RICrequestID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICrequestID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICrequestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationResponse_IEs__value, choice.RANfunctionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RANfunctionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RANfunctionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationResponse_IEs__value, choice.RICactions_RemovedForModification_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICactions_RemovedForModification_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICactions-RemovedForModification-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationResponse_IEs__value, choice.RICactions_FailedToBeRemovedForModification_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICactions_FailedToBeRemovedForModification_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICactions-FailedToBeRemovedForModification-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationResponse_IEs__value, choice.RICactions_ModifiedForModification_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICactions_ModifiedForModification_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICactions-ModifiedForModification-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationResponse_IEs__value, choice.RICactions_FailedToBeModifiedForModification_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICactions_FailedToBeModifiedForModification_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICactions-FailedToBeModifiedForModification-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationResponse_IEs__value, choice.RICactions_AddedForModification_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICactions_AddedForModification_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICactions-AddedForModification-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationResponse_IEs__value, choice.RICactions_FailedToBeAddedForModification_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICactions_FailedToBeAddedForModification_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICactions-FailedToBeAddedForModification-List" + }, +}; +static const unsigned asn_MAP_value_to_canonical_164[] = { 1, 0, 2, 3, 4, 5, 6, 7 }; +static const unsigned asn_MAP_value_from_canonical_164[] = { 1, 0, 2, 3, 4, 5, 6, 7 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_164[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 6 }, /* RICrequestID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 5 }, /* RICactions-RemovedForModification-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 4 }, /* RICactions-FailedToBeRemovedForModification-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -3, 3 }, /* RICactions-ModifiedForModification-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -4, 2 }, /* RICactions-FailedToBeModifiedForModification-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -5, 1 }, /* RICactions-AddedForModification-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -6, 0 } /* RICactions-FailedToBeAddedForModification-List */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_164 = { + sizeof(struct RICsubscriptionModificationResponse_IEs__value), + offsetof(struct RICsubscriptionModificationResponse_IEs__value, _asn_ctx), + offsetof(struct RICsubscriptionModificationResponse_IEs__value, present), + sizeof(((struct RICsubscriptionModificationResponse_IEs__value *)0)->present), + asn_MAP_value_tag2el_164, + 8, /* Count of tags in the map */ + asn_MAP_value_to_canonical_164, + asn_MAP_value_from_canonical_164, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_164 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_164, + 8, /* Elements count */ + &asn_SPC_value_specs_164 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICsubscriptionModificationResponse_IEs_161[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationResponse_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_162, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_161 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationResponse_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICsubscriptionModificationResponse_IEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_163, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_161 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationResponse_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_164, + select_RICsubscriptionModificationResponse_IEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_164, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_161 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscriptionModificationResponse_IEs_tags_161[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionModificationResponse_IEs_tag2el_161[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionModificationResponse_IEs_specs_161 = { + sizeof(struct RICsubscriptionModificationResponse_IEs), + offsetof(struct RICsubscriptionModificationResponse_IEs, _asn_ctx), + asn_MAP_RICsubscriptionModificationResponse_IEs_tag2el_161, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICsubscriptionModificationResponse_IEs = { + "RICsubscriptionModificationResponse-IEs", + "RICsubscriptionModificationResponse-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RICsubscriptionModificationResponse_IEs_tags_161, + sizeof(asn_DEF_RICsubscriptionModificationResponse_IEs_tags_161) + /sizeof(asn_DEF_RICsubscriptionModificationResponse_IEs_tags_161[0]), /* 1 */ + asn_DEF_RICsubscriptionModificationResponse_IEs_tags_161, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionModificationResponse_IEs_tags_161) + /sizeof(asn_DEF_RICsubscriptionModificationResponse_IEs_tags_161[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICsubscriptionModificationResponse_IEs_161, + 3, /* Elements count */ + &asn_SPC_RICsubscriptionModificationResponse_IEs_specs_161 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_168[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationFailure_IEs__value, choice.RICrequestID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICrequestID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICrequestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationFailure_IEs__value, choice.RANfunctionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RANfunctionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RANfunctionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationFailure_IEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_Cause, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationFailure_IEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_value_to_canonical_168[] = { 1, 0, 3, 2 }; +static const unsigned asn_MAP_value_from_canonical_168[] = { 1, 0, 3, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_168[] = { + { (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 }, /* CriticalityDiagnostics */ + { (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_168 = { + sizeof(struct RICsubscriptionModificationFailure_IEs__value), + offsetof(struct RICsubscriptionModificationFailure_IEs__value, _asn_ctx), + offsetof(struct RICsubscriptionModificationFailure_IEs__value, present), + sizeof(((struct RICsubscriptionModificationFailure_IEs__value *)0)->present), + asn_MAP_value_tag2el_168, + 9, /* Count of tags in the map */ + asn_MAP_value_to_canonical_168, + asn_MAP_value_from_canonical_168, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_168 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_168, + 4, /* Elements count */ + &asn_SPC_value_specs_168 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICsubscriptionModificationFailure_IEs_165[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationFailure_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_166, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_165 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationFailure_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICsubscriptionModificationFailure_IEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_167, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_165 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationFailure_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_168, + select_RICsubscriptionModificationFailure_IEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_168, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_165 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscriptionModificationFailure_IEs_tags_165[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionModificationFailure_IEs_tag2el_165[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionModificationFailure_IEs_specs_165 = { + sizeof(struct RICsubscriptionModificationFailure_IEs), + offsetof(struct RICsubscriptionModificationFailure_IEs, _asn_ctx), + asn_MAP_RICsubscriptionModificationFailure_IEs_tag2el_165, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICsubscriptionModificationFailure_IEs = { + "RICsubscriptionModificationFailure-IEs", + "RICsubscriptionModificationFailure-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RICsubscriptionModificationFailure_IEs_tags_165, + sizeof(asn_DEF_RICsubscriptionModificationFailure_IEs_tags_165) + /sizeof(asn_DEF_RICsubscriptionModificationFailure_IEs_tags_165[0]), /* 1 */ + asn_DEF_RICsubscriptionModificationFailure_IEs_tags_165, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionModificationFailure_IEs_tags_165) + /sizeof(asn_DEF_RICsubscriptionModificationFailure_IEs_tags_165[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICsubscriptionModificationFailure_IEs_165, + 3, /* Elements count */ + &asn_SPC_RICsubscriptionModificationFailure_IEs_specs_165 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_172[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationRequired_IEs__value, choice.RICrequestID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICrequestID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICrequestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationRequired_IEs__value, choice.RANfunctionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RANfunctionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RANfunctionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationRequired_IEs__value, choice.RICactions_RequiredToBeModified_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICactions_RequiredToBeModified_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICactions-RequiredToBeModified-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationRequired_IEs__value, choice.RICactions_RequiredToBeRemoved_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICactions_RequiredToBeRemoved_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICactions-RequiredToBeRemoved-List" + }, +}; +static const unsigned asn_MAP_value_to_canonical_172[] = { 1, 0, 2, 3 }; +static const unsigned asn_MAP_value_from_canonical_172[] = { 1, 0, 2, 3 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_172[] = { + { (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 }, /* RICactions-RequiredToBeModified-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 } /* RICactions-RequiredToBeRemoved-List */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_172 = { + sizeof(struct RICsubscriptionModificationRequired_IEs__value), + offsetof(struct RICsubscriptionModificationRequired_IEs__value, _asn_ctx), + offsetof(struct RICsubscriptionModificationRequired_IEs__value, present), + sizeof(((struct RICsubscriptionModificationRequired_IEs__value *)0)->present), + asn_MAP_value_tag2el_172, + 4, /* 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_172 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_172, + 4, /* Elements count */ + &asn_SPC_value_specs_172 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICsubscriptionModificationRequired_IEs_169[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationRequired_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_170, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_169 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationRequired_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICsubscriptionModificationRequired_IEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_171, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_169 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationRequired_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_172, + select_RICsubscriptionModificationRequired_IEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_172, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_169 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscriptionModificationRequired_IEs_tags_169[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionModificationRequired_IEs_tag2el_169[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionModificationRequired_IEs_specs_169 = { + sizeof(struct RICsubscriptionModificationRequired_IEs), + offsetof(struct RICsubscriptionModificationRequired_IEs, _asn_ctx), + asn_MAP_RICsubscriptionModificationRequired_IEs_tag2el_169, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICsubscriptionModificationRequired_IEs = { + "RICsubscriptionModificationRequired-IEs", + "RICsubscriptionModificationRequired-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RICsubscriptionModificationRequired_IEs_tags_169, + sizeof(asn_DEF_RICsubscriptionModificationRequired_IEs_tags_169) + /sizeof(asn_DEF_RICsubscriptionModificationRequired_IEs_tags_169[0]), /* 1 */ + asn_DEF_RICsubscriptionModificationRequired_IEs_tags_169, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionModificationRequired_IEs_tags_169) + /sizeof(asn_DEF_RICsubscriptionModificationRequired_IEs_tags_169[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICsubscriptionModificationRequired_IEs_169, + 3, /* Elements count */ + &asn_SPC_RICsubscriptionModificationRequired_IEs_specs_169 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_176[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationConfirm_IEs__value, choice.RICrequestID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICrequestID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICrequestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationConfirm_IEs__value, choice.RANfunctionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RANfunctionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RANfunctionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationConfirm_IEs__value, choice.RICactions_ConfirmedForModification_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICactions_ConfirmedForModification_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICactions-ConfirmedForModification-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationConfirm_IEs__value, choice.RICactions_RefusedToBeModified_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICactions_RefusedToBeModified_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICactions-RefusedToBeModified-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationConfirm_IEs__value, choice.RICactions_ConfirmedForRemoval_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICactions_ConfirmedForRemoval_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICactions-ConfirmedForRemoval-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationConfirm_IEs__value, choice.RICactions_RefusedToBeRemoved_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICactions_RefusedToBeRemoved_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICactions-RefusedToBeRemoved-List" + }, +}; +static const unsigned asn_MAP_value_to_canonical_176[] = { 1, 0, 2, 3, 4, 5 }; +static const unsigned asn_MAP_value_from_canonical_176[] = { 1, 0, 2, 3, 4, 5 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_176[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 4 }, /* RICrequestID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 3 }, /* RICactions-ConfirmedForModification-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 2 }, /* RICactions-RefusedToBeModified-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -3, 1 }, /* RICactions-ConfirmedForRemoval-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -4, 0 } /* RICactions-RefusedToBeRemoved-List */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_176 = { + sizeof(struct RICsubscriptionModificationConfirm_IEs__value), + offsetof(struct RICsubscriptionModificationConfirm_IEs__value, _asn_ctx), + offsetof(struct RICsubscriptionModificationConfirm_IEs__value, present), + sizeof(((struct RICsubscriptionModificationConfirm_IEs__value *)0)->present), + asn_MAP_value_tag2el_176, + 6, /* Count of tags in the map */ + asn_MAP_value_to_canonical_176, + asn_MAP_value_from_canonical_176, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_176 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_176, + 6, /* Elements count */ + &asn_SPC_value_specs_176 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICsubscriptionModificationConfirm_IEs_173[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationConfirm_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_174, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_173 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationConfirm_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICsubscriptionModificationConfirm_IEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_175, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_173 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationConfirm_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_176, + select_RICsubscriptionModificationConfirm_IEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_176, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_173 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscriptionModificationConfirm_IEs_tags_173[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionModificationConfirm_IEs_tag2el_173[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionModificationConfirm_IEs_specs_173 = { + sizeof(struct RICsubscriptionModificationConfirm_IEs), + offsetof(struct RICsubscriptionModificationConfirm_IEs, _asn_ctx), + asn_MAP_RICsubscriptionModificationConfirm_IEs_tag2el_173, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICsubscriptionModificationConfirm_IEs = { + "RICsubscriptionModificationConfirm-IEs", + "RICsubscriptionModificationConfirm-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RICsubscriptionModificationConfirm_IEs_tags_173, + sizeof(asn_DEF_RICsubscriptionModificationConfirm_IEs_tags_173) + /sizeof(asn_DEF_RICsubscriptionModificationConfirm_IEs_tags_173[0]), /* 1 */ + asn_DEF_RICsubscriptionModificationConfirm_IEs_tags_173, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionModificationConfirm_IEs_tags_173) + /sizeof(asn_DEF_RICsubscriptionModificationConfirm_IEs_tags_173[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICsubscriptionModificationConfirm_IEs_173, + 3, /* Elements count */ + &asn_SPC_RICsubscriptionModificationConfirm_IEs_specs_173 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_180[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationRefuse_IEs__value, choice.RICrequestID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICrequestID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICrequestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationRefuse_IEs__value, choice.RANfunctionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RANfunctionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RANfunctionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationRefuse_IEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_Cause, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationRefuse_IEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_value_to_canonical_180[] = { 1, 0, 3, 2 }; +static const unsigned asn_MAP_value_from_canonical_180[] = { 1, 0, 3, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_180[] = { + { (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 }, /* CriticalityDiagnostics */ + { (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_180 = { + sizeof(struct RICsubscriptionModificationRefuse_IEs__value), + offsetof(struct RICsubscriptionModificationRefuse_IEs__value, _asn_ctx), + offsetof(struct RICsubscriptionModificationRefuse_IEs__value, present), + sizeof(((struct RICsubscriptionModificationRefuse_IEs__value *)0)->present), + asn_MAP_value_tag2el_180, + 9, /* Count of tags in the map */ + asn_MAP_value_to_canonical_180, + asn_MAP_value_from_canonical_180, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_180 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_180, + 4, /* Elements count */ + &asn_SPC_value_specs_180 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICsubscriptionModificationRefuse_IEs_177[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationRefuse_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_178, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_177 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationRefuse_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICsubscriptionModificationRefuse_IEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_179, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_177 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationRefuse_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_180, + select_RICsubscriptionModificationRefuse_IEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_180, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_177 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscriptionModificationRefuse_IEs_tags_177[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionModificationRefuse_IEs_tag2el_177[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionModificationRefuse_IEs_specs_177 = { + sizeof(struct RICsubscriptionModificationRefuse_IEs), + offsetof(struct RICsubscriptionModificationRefuse_IEs, _asn_ctx), + asn_MAP_RICsubscriptionModificationRefuse_IEs_tag2el_177, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICsubscriptionModificationRefuse_IEs = { + "RICsubscriptionModificationRefuse-IEs", + "RICsubscriptionModificationRefuse-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RICsubscriptionModificationRefuse_IEs_tags_177, + sizeof(asn_DEF_RICsubscriptionModificationRefuse_IEs_tags_177) + /sizeof(asn_DEF_RICsubscriptionModificationRefuse_IEs_tags_177[0]), /* 1 */ + asn_DEF_RICsubscriptionModificationRefuse_IEs_tags_177, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionModificationRefuse_IEs_tags_177) + /sizeof(asn_DEF_RICsubscriptionModificationRefuse_IEs_tags_177[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICsubscriptionModificationRefuse_IEs_177, + 3, /* Elements count */ + &asn_SPC_RICsubscriptionModificationRefuse_IEs_specs_177 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_184[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICrequestID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICrequestID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICindicationSN), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RICindicationSN, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICcallProcessID" + }, +}; +static const unsigned asn_MAP_value_to_canonical_184[] = { 1, 2, 3, 5, 6, 7, 4, 0 }; +static const unsigned asn_MAP_value_from_canonical_184[] = { 7, 0, 1, 2, 6, 3, 4, 5 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_184[] = { + { (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_184 = { + 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_184, + 8, /* Count of tags in the map */ + asn_MAP_value_to_canonical_184, + asn_MAP_value_from_canonical_184, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_184 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_184, + 8, /* Elements count */ + &asn_SPC_value_specs_184 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICindication_IEs_181[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_182, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_181 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICindication_IEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_183, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_181 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_184, + select_RICindication_IEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_184, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_181 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICindication_IEs_tags_181[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICindication_IEs_tag2el_181[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICindication_IEs_specs_181 = { + sizeof(struct RICindication_IEs), + offsetof(struct RICindication_IEs, _asn_ctx), + asn_MAP_RICindication_IEs_tag2el_181, + 2, /* 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_OP_SEQUENCE, + asn_DEF_RICindication_IEs_tags_181, + sizeof(asn_DEF_RICindication_IEs_tags_181) + /sizeof(asn_DEF_RICindication_IEs_tags_181[0]), /* 1 */ + asn_DEF_RICindication_IEs_tags_181, /* Same as above */ + sizeof(asn_DEF_RICindication_IEs_tags_181) + /sizeof(asn_DEF_RICindication_IEs_tags_181[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICindication_IEs_181, + 3, /* Elements count */ + &asn_SPC_RICindication_IEs_specs_181 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_188[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICrequestID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICrequestID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICrequestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RANfunctionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RANfunctionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RANfunctionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICcallProcessID), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RICcallProcessID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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_RICcontrolMessage, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICcontrolMessage" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICcontrolAckRequest), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_RICcontrolAckRequest, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICcontrolAckRequest" + }, +}; +static const unsigned asn_MAP_value_to_canonical_188[] = { 1, 2, 3, 4, 5, 0 }; +static const unsigned asn_MAP_value_from_canonical_188[] = { 5, 0, 1, 2, 3, 4 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_188[] = { + { (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 asn_CHOICE_specifics_t asn_SPC_value_specs_188 = { + 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_188, + 6, /* Count of tags in the map */ + asn_MAP_value_to_canonical_188, + asn_MAP_value_from_canonical_188, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_188 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_188, + 6, /* Elements count */ + &asn_SPC_value_specs_188 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICcontrolRequest_IEs_185[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_186, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_185 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICcontrolRequest_IEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_187, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_185 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_188, + select_RICcontrolRequest_IEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_188, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_185 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICcontrolRequest_IEs_tags_185[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICcontrolRequest_IEs_tag2el_185[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_IEs_specs_185 = { + sizeof(struct RICcontrolRequest_IEs), + offsetof(struct RICcontrolRequest_IEs, _asn_ctx), + asn_MAP_RICcontrolRequest_IEs_tag2el_185, + 2, /* 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_OP_SEQUENCE, + asn_DEF_RICcontrolRequest_IEs_tags_185, + sizeof(asn_DEF_RICcontrolRequest_IEs_tags_185) + /sizeof(asn_DEF_RICcontrolRequest_IEs_tags_185[0]), /* 1 */ + asn_DEF_RICcontrolRequest_IEs_tags_185, /* Same as above */ + sizeof(asn_DEF_RICcontrolRequest_IEs_tags_185) + /sizeof(asn_DEF_RICcontrolRequest_IEs_tags_185[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICcontrolRequest_IEs_185, + 3, /* Elements count */ + &asn_SPC_RICcontrolRequest_IEs_specs_185 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_192[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICrequestID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICrequestID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICrequestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RANfunctionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RANfunctionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICcallProcessID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICcontrolOutcome), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RICcontrolOutcome, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICcontrolOutcome" + }, +}; +static const unsigned asn_MAP_value_to_canonical_192[] = { 1, 2, 3, 0 }; +static const unsigned asn_MAP_value_from_canonical_192[] = { 3, 0, 1, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_192[] = { + { (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)), 3, -1, 0 }, /* RICcontrolOutcome */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_192 = { + 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_192, + 4, /* Count of tags in the map */ + asn_MAP_value_to_canonical_192, + asn_MAP_value_from_canonical_192, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_192 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_192, + 4, /* Elements count */ + &asn_SPC_value_specs_192 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_IEs_189[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_190, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_189 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICcontrolAcknowledge_IEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_191, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_189 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_192, + select_RICcontrolAcknowledge_IEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_192, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_189 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICcontrolAcknowledge_IEs_tags_189[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICcontrolAcknowledge_IEs_tag2el_189[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_IEs_specs_189 = { + sizeof(struct RICcontrolAcknowledge_IEs), + offsetof(struct RICcontrolAcknowledge_IEs, _asn_ctx), + asn_MAP_RICcontrolAcknowledge_IEs_tag2el_189, + 2, /* 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_OP_SEQUENCE, + asn_DEF_RICcontrolAcknowledge_IEs_tags_189, + sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_189) + /sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_189[0]), /* 1 */ + asn_DEF_RICcontrolAcknowledge_IEs_tags_189, /* Same as above */ + sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_189) + /sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_189[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICcontrolAcknowledge_IEs_189, + 3, /* Elements count */ + &asn_SPC_RICcontrolAcknowledge_IEs_specs_189 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_196[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RICrequestID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICrequestID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICrequestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RANfunctionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RANfunctionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICcallProcessID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_Cause, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RICcontrolOutcome), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RICcontrolOutcome, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICcontrolOutcome" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_value_to_canonical_196[] = { 1, 2, 4, 0, 5, 3 }; +static const unsigned asn_MAP_value_from_canonical_196[] = { 3, 0, 1, 5, 2, 4 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_196[] = { + { (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, 1 }, /* RICrequestID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -1, 0 }, /* CriticalityDiagnostics */ + { (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_196 = { + 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_196, + 11, /* Count of tags in the map */ + asn_MAP_value_to_canonical_196, + asn_MAP_value_from_canonical_196, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_196 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_196, + 6, /* Elements count */ + &asn_SPC_value_specs_196 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICcontrolFailure_IEs_193[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_194, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_193 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICcontrolFailure_IEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_195, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_193 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_196, + select_RICcontrolFailure_IEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_196, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_193 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICcontrolFailure_IEs_tags_193[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICcontrolFailure_IEs_tag2el_193[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_IEs_specs_193 = { + sizeof(struct RICcontrolFailure_IEs), + offsetof(struct RICcontrolFailure_IEs, _asn_ctx), + asn_MAP_RICcontrolFailure_IEs_tag2el_193, + 2, /* 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_OP_SEQUENCE, + asn_DEF_RICcontrolFailure_IEs_tags_193, + sizeof(asn_DEF_RICcontrolFailure_IEs_tags_193) + /sizeof(asn_DEF_RICcontrolFailure_IEs_tags_193[0]), /* 1 */ + asn_DEF_RICcontrolFailure_IEs_tags_193, /* Same as above */ + sizeof(asn_DEF_RICcontrolFailure_IEs_tags_193) + /sizeof(asn_DEF_RICcontrolFailure_IEs_tags_193[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICcontrolFailure_IEs_193, + 3, /* Elements count */ + &asn_SPC_RICcontrolFailure_IEs_specs_193 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_200[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICQueryRequest_IEs__value, choice.RICrequestID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICrequestID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICrequestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICQueryRequest_IEs__value, choice.RANfunctionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RANfunctionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RANfunctionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICQueryRequest_IEs__value, choice.RICqueryHeader), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RICqueryHeader, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICqueryHeader" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICQueryRequest_IEs__value, choice.RICqueryDefinition), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RICqueryDefinition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICqueryDefinition" + }, +}; +static const unsigned asn_MAP_value_to_canonical_200[] = { 1, 2, 3, 0 }; +static const unsigned asn_MAP_value_from_canonical_200[] = { 3, 0, 1, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_200[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 1 }, /* RICqueryHeader */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, -1, 0 }, /* RICqueryDefinition */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_200 = { + sizeof(struct RICQueryRequest_IEs__value), + offsetof(struct RICQueryRequest_IEs__value, _asn_ctx), + offsetof(struct RICQueryRequest_IEs__value, present), + sizeof(((struct RICQueryRequest_IEs__value *)0)->present), + asn_MAP_value_tag2el_200, + 4, /* Count of tags in the map */ + asn_MAP_value_to_canonical_200, + asn_MAP_value_from_canonical_200, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_200 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_200, + 4, /* Elements count */ + &asn_SPC_value_specs_200 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICQueryRequest_IEs_197[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICQueryRequest_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_198, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_197 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICQueryRequest_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICQueryRequest_IEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_199, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_197 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICQueryRequest_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_200, + select_RICQueryRequest_IEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_200, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_197 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICQueryRequest_IEs_tags_197[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICQueryRequest_IEs_tag2el_197[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICQueryRequest_IEs_specs_197 = { + sizeof(struct RICQueryRequest_IEs), + offsetof(struct RICQueryRequest_IEs, _asn_ctx), + asn_MAP_RICQueryRequest_IEs_tag2el_197, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICQueryRequest_IEs = { + "RICQueryRequest-IEs", + "RICQueryRequest-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RICQueryRequest_IEs_tags_197, + sizeof(asn_DEF_RICQueryRequest_IEs_tags_197) + /sizeof(asn_DEF_RICQueryRequest_IEs_tags_197[0]), /* 1 */ + asn_DEF_RICQueryRequest_IEs_tags_197, /* Same as above */ + sizeof(asn_DEF_RICQueryRequest_IEs_tags_197) + /sizeof(asn_DEF_RICQueryRequest_IEs_tags_197[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICQueryRequest_IEs_197, + 3, /* Elements count */ + &asn_SPC_RICQueryRequest_IEs_specs_197 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_204[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICQueryResponse_IEs__value, choice.RICrequestID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICrequestID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICrequestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICQueryResponse_IEs__value, choice.RANfunctionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RANfunctionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RANfunctionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICQueryResponse_IEs__value, choice.RICqueryOutcome), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RICqueryOutcome, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICqueryOutcome" + }, +}; +static const unsigned asn_MAP_value_to_canonical_204[] = { 1, 2, 0 }; +static const unsigned asn_MAP_value_from_canonical_204[] = { 2, 0, 1 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_204[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 0 }, /* RICqueryOutcome */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_204 = { + sizeof(struct RICQueryResponse_IEs__value), + offsetof(struct RICQueryResponse_IEs__value, _asn_ctx), + offsetof(struct RICQueryResponse_IEs__value, present), + sizeof(((struct RICQueryResponse_IEs__value *)0)->present), + asn_MAP_value_tag2el_204, + 3, /* Count of tags in the map */ + asn_MAP_value_to_canonical_204, + asn_MAP_value_from_canonical_204, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_204 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_204, + 3, /* Elements count */ + &asn_SPC_value_specs_204 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICQueryResponse_IEs_201[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICQueryResponse_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_202, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_201 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICQueryResponse_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICQueryResponse_IEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_203, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_201 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICQueryResponse_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_204, + select_RICQueryResponse_IEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_204, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_201 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICQueryResponse_IEs_tags_201[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICQueryResponse_IEs_tag2el_201[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICQueryResponse_IEs_specs_201 = { + sizeof(struct RICQueryResponse_IEs), + offsetof(struct RICQueryResponse_IEs, _asn_ctx), + asn_MAP_RICQueryResponse_IEs_tag2el_201, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICQueryResponse_IEs = { + "RICQueryResponse-IEs", + "RICQueryResponse-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RICQueryResponse_IEs_tags_201, + sizeof(asn_DEF_RICQueryResponse_IEs_tags_201) + /sizeof(asn_DEF_RICQueryResponse_IEs_tags_201[0]), /* 1 */ + asn_DEF_RICQueryResponse_IEs_tags_201, /* Same as above */ + sizeof(asn_DEF_RICQueryResponse_IEs_tags_201) + /sizeof(asn_DEF_RICQueryResponse_IEs_tags_201[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICQueryResponse_IEs_201, + 3, /* Elements count */ + &asn_SPC_RICQueryResponse_IEs_specs_201 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_208[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICQueryFailure_IEs__value, choice.RICrequestID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICrequestID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICrequestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICQueryFailure_IEs__value, choice.RANfunctionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RANfunctionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RANfunctionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICQueryFailure_IEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_Cause, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICQueryFailure_IEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_value_to_canonical_208[] = { 1, 0, 3, 2 }; +static const unsigned asn_MAP_value_from_canonical_208[] = { 1, 0, 3, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_208[] = { + { (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 }, /* CriticalityDiagnostics */ + { (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_208 = { + sizeof(struct RICQueryFailure_IEs__value), + offsetof(struct RICQueryFailure_IEs__value, _asn_ctx), + offsetof(struct RICQueryFailure_IEs__value, present), + sizeof(((struct RICQueryFailure_IEs__value *)0)->present), + asn_MAP_value_tag2el_208, + 9, /* Count of tags in the map */ + asn_MAP_value_to_canonical_208, + asn_MAP_value_from_canonical_208, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_208 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_208, + 4, /* Elements count */ + &asn_SPC_value_specs_208 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICQueryFailure_IEs_205[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICQueryFailure_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_206, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_205 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICQueryFailure_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICQueryFailure_IEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_207, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_205 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICQueryFailure_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_208, + select_RICQueryFailure_IEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_208, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_205 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICQueryFailure_IEs_tags_205[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICQueryFailure_IEs_tag2el_205[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICQueryFailure_IEs_specs_205 = { + sizeof(struct RICQueryFailure_IEs), + offsetof(struct RICQueryFailure_IEs, _asn_ctx), + asn_MAP_RICQueryFailure_IEs_tag2el_205, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICQueryFailure_IEs = { + "RICQueryFailure-IEs", + "RICQueryFailure-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RICQueryFailure_IEs_tags_205, + sizeof(asn_DEF_RICQueryFailure_IEs_tags_205) + /sizeof(asn_DEF_RICQueryFailure_IEs_tags_205[0]), /* 1 */ + asn_DEF_RICQueryFailure_IEs_tags_205, /* Same as above */ + sizeof(asn_DEF_RICQueryFailure_IEs_tags_205) + /sizeof(asn_DEF_RICQueryFailure_IEs_tags_205[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICQueryFailure_IEs_205, + 3, /* Elements count */ + &asn_SPC_RICQueryFailure_IEs_specs_205 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_212[] = { + { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.RICrequestID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICrequestID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICrequestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.RANfunctionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RANfunctionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RANfunctionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_Cause, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_value_to_canonical_212[] = { 0, 2, 1, 4, 3 }; +static const unsigned asn_MAP_value_from_canonical_212[] = { 0, 2, 1, 4, 3 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_212[] = { + { (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 }, /* CriticalityDiagnostics */ + { (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_212 = { + sizeof(struct ErrorIndication_IEs__value), + offsetof(struct ErrorIndication_IEs__value, _asn_ctx), + offsetof(struct ErrorIndication_IEs__value, present), + sizeof(((struct ErrorIndication_IEs__value *)0)->present), + asn_MAP_value_tag2el_212, + 10, /* Count of tags in the map */ + asn_MAP_value_to_canonical_212, + asn_MAP_value_from_canonical_212, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_212 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_212, + 5, /* Elements count */ + &asn_SPC_value_specs_212 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ErrorIndication_IEs_209[] = { + { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_210, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_209 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_ErrorIndication_IEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_211, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_209 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_212, + select_ErrorIndication_IEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_212, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_209 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ErrorIndication_IEs_tags_209[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ErrorIndication_IEs_tag2el_209[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_IEs_specs_209 = { + sizeof(struct ErrorIndication_IEs), + offsetof(struct ErrorIndication_IEs, _asn_ctx), + asn_MAP_ErrorIndication_IEs_tag2el_209, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ErrorIndication_IEs = { + "ErrorIndication-IEs", + "ErrorIndication-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ErrorIndication_IEs_tags_209, + sizeof(asn_DEF_ErrorIndication_IEs_tags_209) + /sizeof(asn_DEF_ErrorIndication_IEs_tags_209[0]), /* 1 */ + asn_DEF_ErrorIndication_IEs_tags_209, /* Same as above */ + sizeof(asn_DEF_ErrorIndication_IEs_tags_209) + /sizeof(asn_DEF_ErrorIndication_IEs_tags_209[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_ErrorIndication_IEs_209, + 3, /* Elements count */ + &asn_SPC_ErrorIndication_IEs_specs_209 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_216[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__value, choice.GlobalE2node_ID), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_GlobalE2node_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "GlobalE2node-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__value, choice.RANfunctions_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RANfunctions_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RANfunctions-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__value, choice.E2nodeComponentConfigAddition_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeComponentConfigAddition_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "E2nodeComponentConfigAddition-List" + }, +}; +static const unsigned asn_MAP_value_to_canonical_216[] = { 0, 2, 3, 1 }; +static const unsigned asn_MAP_value_from_canonical_216[] = { 0, 3, 1, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_216[] = { + { (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_216 = { + 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_216, + 7, /* Count of tags in the map */ + asn_MAP_value_to_canonical_216, + asn_MAP_value_from_canonical_216, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_216 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_216, + 4, /* Elements count */ + &asn_SPC_value_specs_216 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2setupRequestIEs_213[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_214, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_213 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_E2setupRequestIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_215, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_213 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_216, + select_E2setupRequestIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_216, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_213 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2setupRequestIEs_tags_213[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2setupRequestIEs_tag2el_213[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2setupRequestIEs_specs_213 = { + sizeof(struct E2setupRequestIEs), + offsetof(struct E2setupRequestIEs, _asn_ctx), + asn_MAP_E2setupRequestIEs_tag2el_213, + 2, /* 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_OP_SEQUENCE, + asn_DEF_E2setupRequestIEs_tags_213, + sizeof(asn_DEF_E2setupRequestIEs_tags_213) + /sizeof(asn_DEF_E2setupRequestIEs_tags_213[0]), /* 1 */ + asn_DEF_E2setupRequestIEs_tags_213, /* Same as above */ + sizeof(asn_DEF_E2setupRequestIEs_tags_213) + /sizeof(asn_DEF_E2setupRequestIEs_tags_213[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2setupRequestIEs_213, + 3, /* Elements count */ + &asn_SPC_E2setupRequestIEs_specs_213 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_220[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.GlobalRIC_ID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GlobalRIC_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "GlobalRIC-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.RANfunctionsID_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RANfunctionsID_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RANfunctionsID-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.RANfunctionsIDcause_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RANfunctionsIDcause_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RANfunctionsIDcause-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.E2nodeComponentConfigAdditionAck_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeComponentConfigAdditionAck_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "E2nodeComponentConfigAdditionAck-List" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_220[] = { + { (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_220 = { + 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_220, + 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_220 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_220, + 5, /* Elements count */ + &asn_SPC_value_specs_220 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2setupResponseIEs_217[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_218, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_217 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_E2setupResponseIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_219, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_217 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_220, + select_E2setupResponseIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_220, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_217 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2setupResponseIEs_tags_217[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2setupResponseIEs_tag2el_217[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2setupResponseIEs_specs_217 = { + sizeof(struct E2setupResponseIEs), + offsetof(struct E2setupResponseIEs, _asn_ctx), + asn_MAP_E2setupResponseIEs_tag2el_217, + 2, /* 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_OP_SEQUENCE, + asn_DEF_E2setupResponseIEs_tags_217, + sizeof(asn_DEF_E2setupResponseIEs_tags_217) + /sizeof(asn_DEF_E2setupResponseIEs_tags_217[0]), /* 1 */ + asn_DEF_E2setupResponseIEs_tags_217, /* Same as above */ + sizeof(asn_DEF_E2setupResponseIEs_tags_217) + /sizeof(asn_DEF_E2setupResponseIEs_tags_217[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2setupResponseIEs_217, + 3, /* Elements count */ + &asn_SPC_E2setupResponseIEs_specs_217 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_224[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_Cause, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.TimeToWait), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_TimeToWait, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TimeToWait" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.TNLinformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_TNLinformation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TNLinformation" + }, +}; +static const unsigned asn_MAP_value_to_canonical_224[] = { 0, 2, 3, 4, 1 }; +static const unsigned asn_MAP_value_from_canonical_224[] = { 0, 4, 1, 2, 3 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_224[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* TimeToWait */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 1 }, /* CriticalityDiagnostics */ + { (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_224 = { + 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_224, + 10, /* Count of tags in the map */ + asn_MAP_value_to_canonical_224, + asn_MAP_value_from_canonical_224, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_224 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_224, + 5, /* Elements count */ + &asn_SPC_value_specs_224 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2setupFailureIEs_221[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_222, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_221 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_E2setupFailureIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_223, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_221 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_224, + select_E2setupFailureIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_224, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_221 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2setupFailureIEs_tags_221[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2setupFailureIEs_tag2el_221[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2setupFailureIEs_specs_221 = { + sizeof(struct E2setupFailureIEs), + offsetof(struct E2setupFailureIEs, _asn_ctx), + asn_MAP_E2setupFailureIEs_tag2el_221, + 2, /* 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_OP_SEQUENCE, + asn_DEF_E2setupFailureIEs_tags_221, + sizeof(asn_DEF_E2setupFailureIEs_tags_221) + /sizeof(asn_DEF_E2setupFailureIEs_tags_221[0]), /* 1 */ + asn_DEF_E2setupFailureIEs_tags_221, /* Same as above */ + sizeof(asn_DEF_E2setupFailureIEs_tags_221) + /sizeof(asn_DEF_E2setupFailureIEs_tags_221[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2setupFailureIEs_221, + 3, /* Elements count */ + &asn_SPC_E2setupFailureIEs_specs_221 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_228[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_IEs__value, choice.E2connectionUpdate_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2connectionUpdate_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "E2connectionUpdate-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_IEs__value, choice.E2connectionUpdateRemove_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2connectionUpdateRemove_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "E2connectionUpdateRemove-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_IEs__value, choice.E2connectionUpdate_List_1), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2connectionUpdate_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "E2connectionUpdate-List" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_228[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 2 }, /* E2connectionUpdate-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* E2connectionUpdateRemove-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 } /* E2connectionUpdate-List */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_228 = { + 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_228, + 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_228 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_228, + 4, /* Elements count */ + &asn_SPC_value_specs_228 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2connectionUpdate_IEs_225[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_226, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_225 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_E2connectionUpdate_IEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_227, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_225 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_228, + select_E2connectionUpdate_IEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_228, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_225 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2connectionUpdate_IEs_tags_225[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdate_IEs_tag2el_225[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_IEs_specs_225 = { + sizeof(struct E2connectionUpdate_IEs), + offsetof(struct E2connectionUpdate_IEs, _asn_ctx), + asn_MAP_E2connectionUpdate_IEs_tag2el_225, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2connectionUpdate_IEs = { + "E2connectionUpdate-IEs", + "E2connectionUpdate-IEs", + &asn_OP_SEQUENCE, + asn_DEF_E2connectionUpdate_IEs_tags_225, + sizeof(asn_DEF_E2connectionUpdate_IEs_tags_225) + /sizeof(asn_DEF_E2connectionUpdate_IEs_tags_225[0]), /* 1 */ + asn_DEF_E2connectionUpdate_IEs_tags_225, /* Same as above */ + sizeof(asn_DEF_E2connectionUpdate_IEs_tags_225) + /sizeof(asn_DEF_E2connectionUpdate_IEs_tags_225[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2connectionUpdate_IEs_225, + 3, /* Elements count */ + &asn_SPC_E2connectionUpdate_IEs_specs_225 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_232[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateAck_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateAck_IEs__value, choice.E2connectionUpdate_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2connectionUpdate_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "E2connectionUpdate-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateAck_IEs__value, choice.E2connectionSetupFailed_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2connectionSetupFailed_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "E2connectionSetupFailed-List" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_232[] = { + { (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_232 = { + 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_232, + 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_232 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_232, + 3, /* Elements count */ + &asn_SPC_value_specs_232 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2connectionUpdateAck_IEs_229[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateAck_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_230, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_229 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateAck_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_E2connectionUpdateAck_IEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_231, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_229 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateAck_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_232, + select_E2connectionUpdateAck_IEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_232, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_229 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2connectionUpdateAck_IEs_tags_229[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdateAck_IEs_tag2el_229[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateAck_IEs_specs_229 = { + sizeof(struct E2connectionUpdateAck_IEs), + offsetof(struct E2connectionUpdateAck_IEs, _asn_ctx), + asn_MAP_E2connectionUpdateAck_IEs_tag2el_229, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateAck_IEs = { + "E2connectionUpdateAck-IEs", + "E2connectionUpdateAck-IEs", + &asn_OP_SEQUENCE, + asn_DEF_E2connectionUpdateAck_IEs_tags_229, + sizeof(asn_DEF_E2connectionUpdateAck_IEs_tags_229) + /sizeof(asn_DEF_E2connectionUpdateAck_IEs_tags_229[0]), /* 1 */ + asn_DEF_E2connectionUpdateAck_IEs_tags_229, /* Same as above */ + sizeof(asn_DEF_E2connectionUpdateAck_IEs_tags_229) + /sizeof(asn_DEF_E2connectionUpdateAck_IEs_tags_229[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2connectionUpdateAck_IEs_229, + 3, /* Elements count */ + &asn_SPC_E2connectionUpdateAck_IEs_specs_229 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_236[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure_IEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_Cause, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure_IEs__value, choice.TimeToWait), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_TimeToWait, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TimeToWait" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure_IEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_value_to_canonical_236[] = { 0, 2, 3, 1 }; +static const unsigned asn_MAP_value_from_canonical_236[] = { 0, 3, 1, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_236[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* TimeToWait */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */ + { (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_236 = { + 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_236, + 9, /* Count of tags in the map */ + asn_MAP_value_to_canonical_236, + asn_MAP_value_from_canonical_236, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_236 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_236, + 4, /* Elements count */ + &asn_SPC_value_specs_236 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2connectionUpdateFailure_IEs_233[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_234, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_233 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_E2connectionUpdateFailure_IEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_235, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_233 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_236, + select_E2connectionUpdateFailure_IEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_236, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_233 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2connectionUpdateFailure_IEs_tags_233[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdateFailure_IEs_tag2el_233[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateFailure_IEs_specs_233 = { + sizeof(struct E2connectionUpdateFailure_IEs), + offsetof(struct E2connectionUpdateFailure_IEs, _asn_ctx), + asn_MAP_E2connectionUpdateFailure_IEs_tag2el_233, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateFailure_IEs = { + "E2connectionUpdateFailure-IEs", + "E2connectionUpdateFailure-IEs", + &asn_OP_SEQUENCE, + asn_DEF_E2connectionUpdateFailure_IEs_tags_233, + sizeof(asn_DEF_E2connectionUpdateFailure_IEs_tags_233) + /sizeof(asn_DEF_E2connectionUpdateFailure_IEs_tags_233[0]), /* 1 */ + asn_DEF_E2connectionUpdateFailure_IEs_tags_233, /* Same as above */ + sizeof(asn_DEF_E2connectionUpdateFailure_IEs_tags_233) + /sizeof(asn_DEF_E2connectionUpdateFailure_IEs_tags_233[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2connectionUpdateFailure_IEs_233, + 3, /* Elements count */ + &asn_SPC_E2connectionUpdateFailure_IEs_specs_233 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_240[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "GlobalE2node-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs__value, choice.E2nodeComponentConfigAddition_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeComponentConfigAddition_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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_E2nodeTNLassociationRemoval_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "E2nodeTNLassociationRemoval-List" + }, +}; +static const unsigned asn_MAP_value_to_canonical_240[] = { 0, 2, 3, 4, 5, 1 }; +static const unsigned asn_MAP_value_from_canonical_240[] = { 0, 5, 1, 2, 3, 4 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_240[] = { + { (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_240 = { + 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_240, + 9, /* Count of tags in the map */ + asn_MAP_value_to_canonical_240, + asn_MAP_value_from_canonical_240, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_240 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_240, + 6, /* Elements count */ + &asn_SPC_value_specs_240 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdate_IEs_237[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_238, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_237 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_E2nodeConfigurationUpdate_IEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_239, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_237 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_240, + select_E2nodeConfigurationUpdate_IEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_240, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_237 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeConfigurationUpdate_IEs_tags_237[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeConfigurationUpdate_IEs_tag2el_237[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdate_IEs_specs_237 = { + sizeof(struct E2nodeConfigurationUpdate_IEs), + offsetof(struct E2nodeConfigurationUpdate_IEs, _asn_ctx), + asn_MAP_E2nodeConfigurationUpdate_IEs_tag2el_237, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdate_IEs = { + "E2nodeConfigurationUpdate-IEs", + "E2nodeConfigurationUpdate-IEs", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeConfigurationUpdate_IEs_tags_237, + sizeof(asn_DEF_E2nodeConfigurationUpdate_IEs_tags_237) + /sizeof(asn_DEF_E2nodeConfigurationUpdate_IEs_tags_237[0]), /* 1 */ + asn_DEF_E2nodeConfigurationUpdate_IEs_tags_237, /* Same as above */ + sizeof(asn_DEF_E2nodeConfigurationUpdate_IEs_tags_237) + /sizeof(asn_DEF_E2nodeConfigurationUpdate_IEs_tags_237[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeConfigurationUpdate_IEs_237, + 3, /* Elements count */ + &asn_SPC_E2nodeConfigurationUpdate_IEs_specs_237 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_244[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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_E2nodeComponentConfigAdditionAck_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "E2nodeComponentConfigAdditionAck-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value, choice.E2nodeComponentConfigUpdateAck_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeComponentConfigUpdateAck_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "E2nodeComponentConfigUpdateAck-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value, choice.E2nodeComponentConfigRemovalAck_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeComponentConfigRemovalAck_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "E2nodeComponentConfigRemovalAck-List" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_244[] = { + { (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_244 = { + 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_244, + 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_244 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_244, + 4, /* Elements count */ + &asn_SPC_value_specs_244 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateAcknowledge_IEs_241[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_242, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_241 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_E2nodeConfigurationUpdateAcknowledge_IEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_243, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_241 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_244, + select_E2nodeConfigurationUpdateAcknowledge_IEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_244, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_241 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_241[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeConfigurationUpdateAcknowledge_IEs_tag2el_241[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateAcknowledge_IEs_specs_241 = { + sizeof(struct E2nodeConfigurationUpdateAcknowledge_IEs), + offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs, _asn_ctx), + asn_MAP_E2nodeConfigurationUpdateAcknowledge_IEs_tag2el_241, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs = { + "E2nodeConfigurationUpdateAcknowledge-IEs", + "E2nodeConfigurationUpdateAcknowledge-IEs", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_241, + sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_241) + /sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_241[0]), /* 1 */ + asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_241, /* Same as above */ + sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_241) + /sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_241[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeConfigurationUpdateAcknowledge_IEs_241, + 3, /* Elements count */ + &asn_SPC_E2nodeConfigurationUpdateAcknowledge_IEs_specs_241 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_248[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_Cause, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs__value, choice.TimeToWait), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_TimeToWait, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TimeToWait" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_value_to_canonical_248[] = { 0, 2, 3, 1 }; +static const unsigned asn_MAP_value_from_canonical_248[] = { 0, 3, 1, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_248[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* TimeToWait */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */ + { (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_248 = { + 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_248, + 9, /* Count of tags in the map */ + asn_MAP_value_to_canonical_248, + asn_MAP_value_from_canonical_248, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_248 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_248, + 4, /* Elements count */ + &asn_SPC_value_specs_248 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateFailure_IEs_245[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_246, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_245 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_E2nodeConfigurationUpdateFailure_IEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_247, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_245 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_248, + select_E2nodeConfigurationUpdateFailure_IEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_248, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_245 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_245[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeConfigurationUpdateFailure_IEs_tag2el_245[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateFailure_IEs_specs_245 = { + sizeof(struct E2nodeConfigurationUpdateFailure_IEs), + offsetof(struct E2nodeConfigurationUpdateFailure_IEs, _asn_ctx), + asn_MAP_E2nodeConfigurationUpdateFailure_IEs_tag2el_245, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdateFailure_IEs = { + "E2nodeConfigurationUpdateFailure-IEs", + "E2nodeConfigurationUpdateFailure-IEs", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_245, + sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_245) + /sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_245[0]), /* 1 */ + asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_245, /* Same as above */ + sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_245) + /sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_245[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeConfigurationUpdateFailure_IEs_245, + 3, /* Elements count */ + &asn_SPC_E2nodeConfigurationUpdateFailure_IEs_specs_245 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_252[] = { + { ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_Cause, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "Cause" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_252[] = { + { (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_252 = { + 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_252, + 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_252 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_252, + 2, /* Elements count */ + &asn_SPC_value_specs_252 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ResetRequestIEs_249[] = { + { ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_250, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_249 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_ResetRequestIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_251, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_249 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_252, + select_ResetRequestIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_252, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_249 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ResetRequestIEs_tags_249[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ResetRequestIEs_tag2el_249[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ResetRequestIEs_specs_249 = { + sizeof(struct ResetRequestIEs), + offsetof(struct ResetRequestIEs, _asn_ctx), + asn_MAP_ResetRequestIEs_tag2el_249, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ResetRequestIEs = { + "ResetRequestIEs", + "ResetRequestIEs", + &asn_OP_SEQUENCE, + asn_DEF_ResetRequestIEs_tags_249, + sizeof(asn_DEF_ResetRequestIEs_tags_249) + /sizeof(asn_DEF_ResetRequestIEs_tags_249[0]), /* 1 */ + asn_DEF_ResetRequestIEs_tags_249, /* Same as above */ + sizeof(asn_DEF_ResetRequestIEs_tags_249) + /sizeof(asn_DEF_ResetRequestIEs_tags_249[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_ResetRequestIEs_249, + 3, /* Elements count */ + &asn_SPC_ResetRequestIEs_specs_249 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_256[] = { + { ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_256[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 } /* CriticalityDiagnostics */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_256 = { + 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_256, + 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_256 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_256, + 2, /* Elements count */ + &asn_SPC_value_specs_256 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ResetResponseIEs_253[] = { + { ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_254, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_253 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_ResetResponseIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_255, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_253 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_256, + select_ResetResponseIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_256, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_253 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ResetResponseIEs_tags_253[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ResetResponseIEs_tag2el_253[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ResetResponseIEs_specs_253 = { + sizeof(struct ResetResponseIEs), + offsetof(struct ResetResponseIEs, _asn_ctx), + asn_MAP_ResetResponseIEs_tag2el_253, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ResetResponseIEs = { + "ResetResponseIEs", + "ResetResponseIEs", + &asn_OP_SEQUENCE, + asn_DEF_ResetResponseIEs_tags_253, + sizeof(asn_DEF_ResetResponseIEs_tags_253) + /sizeof(asn_DEF_ResetResponseIEs_tags_253[0]), /* 1 */ + asn_DEF_ResetResponseIEs_tags_253, /* Same as above */ + sizeof(asn_DEF_ResetResponseIEs_tags_253) + /sizeof(asn_DEF_ResetResponseIEs_tags_253[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_ResetResponseIEs_253, + 3, /* Elements count */ + &asn_SPC_ResetResponseIEs_specs_253 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_260[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + &asn_DEF_RANfunctions_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RANfunctions-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs__value, choice.RANfunctions_List_1), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RANfunctions_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RANfunctions-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs__value, choice.RANfunctionsID_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RANfunctionsID_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RANfunctionsID-List" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_260[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 2 }, /* RANfunctions-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* RANfunctions-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 } /* RANfunctionsID-List */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_260 = { + 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_260, + 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_260 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_260, + 4, /* Elements count */ + &asn_SPC_value_specs_260 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICserviceUpdate_IEs_257[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_258, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_257 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICserviceUpdate_IEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_259, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_257 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_260, + select_RICserviceUpdate_IEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_260, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_257 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICserviceUpdate_IEs_tags_257[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdate_IEs_tag2el_257[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_IEs_specs_257 = { + sizeof(struct RICserviceUpdate_IEs), + offsetof(struct RICserviceUpdate_IEs, _asn_ctx), + asn_MAP_RICserviceUpdate_IEs_tag2el_257, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate_IEs = { + "RICserviceUpdate-IEs", + "RICserviceUpdate-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RICserviceUpdate_IEs_tags_257, + sizeof(asn_DEF_RICserviceUpdate_IEs_tags_257) + /sizeof(asn_DEF_RICserviceUpdate_IEs_tags_257[0]), /* 1 */ + asn_DEF_RICserviceUpdate_IEs_tags_257, /* Same as above */ + sizeof(asn_DEF_RICserviceUpdate_IEs_tags_257) + /sizeof(asn_DEF_RICserviceUpdate_IEs_tags_257[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICserviceUpdate_IEs_257, + 3, /* Elements count */ + &asn_SPC_RICserviceUpdate_IEs_specs_257 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_264[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + &asn_DEF_RANfunctionsID_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RANfunctionsID-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs__value, choice.RANfunctionsIDcause_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RANfunctionsIDcause_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RANfunctionsIDcause-List" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_264[] = { + { (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_264 = { + 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_264, + 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_264 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_264, + 3, /* Elements count */ + &asn_SPC_value_specs_264 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_IEs_261[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_262, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_261 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICserviceUpdateAcknowledge_IEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_263, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_261 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_264, + select_RICserviceUpdateAcknowledge_IEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_264, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_261 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_261[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateAcknowledge_IEs_tag2el_261[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_261 = { + sizeof(struct RICserviceUpdateAcknowledge_IEs), + offsetof(struct RICserviceUpdateAcknowledge_IEs, _asn_ctx), + asn_MAP_RICserviceUpdateAcknowledge_IEs_tag2el_261, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge_IEs = { + "RICserviceUpdateAcknowledge-IEs", + "RICserviceUpdateAcknowledge-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_261, + sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_261) + /sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_261[0]), /* 1 */ + asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_261, /* Same as above */ + sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_261) + /sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_261[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICserviceUpdateAcknowledge_IEs_261, + 3, /* Elements count */ + &asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_261 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_268[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_Cause, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.TimeToWait), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_TimeToWait, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TimeToWait" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_value_to_canonical_268[] = { 0, 2, 3, 1 }; +static const unsigned asn_MAP_value_from_canonical_268[] = { 0, 3, 1, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_268[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* TimeToWait */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */ + { (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_268 = { + 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_268, + 9, /* Count of tags in the map */ + asn_MAP_value_to_canonical_268, + asn_MAP_value_from_canonical_268, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_268 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_268, + 4, /* Elements count */ + &asn_SPC_value_specs_268 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_IEs_265[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_266, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_265 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICserviceUpdateFailure_IEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_267, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_265 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_268, + select_RICserviceUpdateFailure_IEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_268, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_265 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICserviceUpdateFailure_IEs_tags_265[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateFailure_IEs_tag2el_265[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_IEs_specs_265 = { + sizeof(struct RICserviceUpdateFailure_IEs), + offsetof(struct RICserviceUpdateFailure_IEs, _asn_ctx), + asn_MAP_RICserviceUpdateFailure_IEs_tag2el_265, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure_IEs = { + "RICserviceUpdateFailure-IEs", + "RICserviceUpdateFailure-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RICserviceUpdateFailure_IEs_tags_265, + sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_265) + /sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_265[0]), /* 1 */ + asn_DEF_RICserviceUpdateFailure_IEs_tags_265, /* Same as above */ + sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_265) + /sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_265[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICserviceUpdateFailure_IEs_265, + 3, /* Elements count */ + &asn_SPC_RICserviceUpdateFailure_IEs_specs_265 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_272[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + &asn_DEF_RANfunctionsID_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RANfunctionsID-List" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_272[] = { + { (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_272 = { + 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_272, + 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_272 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_272, + 2, /* Elements count */ + &asn_SPC_value_specs_272 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_269[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_270, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_269 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_RICserviceQuery_IEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_271, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_269 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_272, + select_RICserviceQuery_IEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_272, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_269 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICserviceQuery_IEs_tags_269[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICserviceQuery_IEs_tag2el_269[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_IEs_specs_269 = { + sizeof(struct RICserviceQuery_IEs), + offsetof(struct RICserviceQuery_IEs, _asn_ctx), + asn_MAP_RICserviceQuery_IEs_tag2el_269, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICserviceQuery_IEs = { + "RICserviceQuery-IEs", + "RICserviceQuery-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RICserviceQuery_IEs_tags_269, + sizeof(asn_DEF_RICserviceQuery_IEs_tags_269) + /sizeof(asn_DEF_RICserviceQuery_IEs_tags_269[0]), /* 1 */ + asn_DEF_RICserviceQuery_IEs_tags_269, /* Same as above */ + sizeof(asn_DEF_RICserviceQuery_IEs_tags_269) + /sizeof(asn_DEF_RICserviceQuery_IEs_tags_269[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICserviceQuery_IEs_269, + 3, /* Elements count */ + &asn_SPC_RICserviceQuery_IEs_specs_269 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_276[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2RemovalRequestIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TransactionID" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_276[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* TransactionID */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_276 = { + sizeof(struct E2RemovalRequestIEs__value), + offsetof(struct E2RemovalRequestIEs__value, _asn_ctx), + offsetof(struct E2RemovalRequestIEs__value, present), + sizeof(((struct E2RemovalRequestIEs__value *)0)->present), + asn_MAP_value_tag2el_276, + 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_276 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_276, + 1, /* Elements count */ + &asn_SPC_value_specs_276 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2RemovalRequestIEs_273[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2RemovalRequestIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_274, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_273 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2RemovalRequestIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_E2RemovalRequestIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_275, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_273 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2RemovalRequestIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_276, + select_E2RemovalRequestIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_276, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_273 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2RemovalRequestIEs_tags_273[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2RemovalRequestIEs_tag2el_273[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2RemovalRequestIEs_specs_273 = { + sizeof(struct E2RemovalRequestIEs), + offsetof(struct E2RemovalRequestIEs, _asn_ctx), + asn_MAP_E2RemovalRequestIEs_tag2el_273, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2RemovalRequestIEs = { + "E2RemovalRequestIEs", + "E2RemovalRequestIEs", + &asn_OP_SEQUENCE, + asn_DEF_E2RemovalRequestIEs_tags_273, + sizeof(asn_DEF_E2RemovalRequestIEs_tags_273) + /sizeof(asn_DEF_E2RemovalRequestIEs_tags_273[0]), /* 1 */ + asn_DEF_E2RemovalRequestIEs_tags_273, /* Same as above */ + sizeof(asn_DEF_E2RemovalRequestIEs_tags_273) + /sizeof(asn_DEF_E2RemovalRequestIEs_tags_273[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2RemovalRequestIEs_273, + 3, /* Elements count */ + &asn_SPC_E2RemovalRequestIEs_specs_273 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_280[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2RemovalResponseIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2RemovalResponseIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_280[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 } /* CriticalityDiagnostics */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_280 = { + sizeof(struct E2RemovalResponseIEs__value), + offsetof(struct E2RemovalResponseIEs__value, _asn_ctx), + offsetof(struct E2RemovalResponseIEs__value, present), + sizeof(((struct E2RemovalResponseIEs__value *)0)->present), + asn_MAP_value_tag2el_280, + 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_280 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_280, + 2, /* Elements count */ + &asn_SPC_value_specs_280 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2RemovalResponseIEs_277[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2RemovalResponseIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_278, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_277 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2RemovalResponseIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_E2RemovalResponseIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_279, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_277 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2RemovalResponseIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_280, + select_E2RemovalResponseIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_280, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_277 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2RemovalResponseIEs_tags_277[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2RemovalResponseIEs_tag2el_277[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2RemovalResponseIEs_specs_277 = { + sizeof(struct E2RemovalResponseIEs), + offsetof(struct E2RemovalResponseIEs, _asn_ctx), + asn_MAP_E2RemovalResponseIEs_tag2el_277, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2RemovalResponseIEs = { + "E2RemovalResponseIEs", + "E2RemovalResponseIEs", + &asn_OP_SEQUENCE, + asn_DEF_E2RemovalResponseIEs_tags_277, + sizeof(asn_DEF_E2RemovalResponseIEs_tags_277) + /sizeof(asn_DEF_E2RemovalResponseIEs_tags_277[0]), /* 1 */ + asn_DEF_E2RemovalResponseIEs_tags_277, /* Same as above */ + sizeof(asn_DEF_E2RemovalResponseIEs_tags_277) + /sizeof(asn_DEF_E2RemovalResponseIEs_tags_277[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2RemovalResponseIEs_277, + 3, /* Elements count */ + &asn_SPC_E2RemovalResponseIEs_specs_277 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_284[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2RemovalFailureIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2RemovalFailureIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_Cause, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2RemovalFailureIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_value_to_canonical_284[] = { 0, 2, 1 }; +static const unsigned asn_MAP_value_from_canonical_284[] = { 0, 2, 1 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_284[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* CriticalityDiagnostics */ + { (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_284 = { + sizeof(struct E2RemovalFailureIEs__value), + offsetof(struct E2RemovalFailureIEs__value, _asn_ctx), + offsetof(struct E2RemovalFailureIEs__value, present), + sizeof(((struct E2RemovalFailureIEs__value *)0)->present), + asn_MAP_value_tag2el_284, + 8, /* Count of tags in the map */ + asn_MAP_value_to_canonical_284, + asn_MAP_value_from_canonical_284, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_284 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_284, + 3, /* Elements count */ + &asn_SPC_value_specs_284 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2RemovalFailureIEs_281[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2RemovalFailureIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ProtocolIE_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_id_constr_282, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_id_constraint_281 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2RemovalFailureIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Criticality, + select_E2RemovalFailureIEs_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_283, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_281 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2RemovalFailureIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_value_284, + select_E2RemovalFailureIEs_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_284, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_281 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2RemovalFailureIEs_tags_281[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2RemovalFailureIEs_tag2el_281[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2RemovalFailureIEs_specs_281 = { + sizeof(struct E2RemovalFailureIEs), + offsetof(struct E2RemovalFailureIEs, _asn_ctx), + asn_MAP_E2RemovalFailureIEs_tag2el_281, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2RemovalFailureIEs = { + "E2RemovalFailureIEs", + "E2RemovalFailureIEs", + &asn_OP_SEQUENCE, + asn_DEF_E2RemovalFailureIEs_tags_281, + sizeof(asn_DEF_E2RemovalFailureIEs_tags_281) + /sizeof(asn_DEF_E2RemovalFailureIEs_tags_281[0]), /* 1 */ + asn_DEF_E2RemovalFailureIEs_tags_281, /* Same as above */ + sizeof(asn_DEF_E2RemovalFailureIEs_tags_281) + /sizeof(asn_DEF_E2RemovalFailureIEs_tags_281[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2RemovalFailureIEs_281, + 3, /* Elements count */ + &asn_SPC_E2RemovalFailureIEs_specs_281 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/ProtocolIE-Field.h b/e2sim/asn1c/ProtocolIE-Field.h new file mode 100644 index 0000000..919eac0 --- /dev/null +++ b/e2sim/asn1c/ProtocolIE-Field.h @@ -0,0 +1,1994 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-Containers" + * found in "e2ap-container-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _ProtocolIE_Field_H_ +#define _ProtocolIE_Field_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-ID.h" +#include "Criticality.h" +#include "ANY.h" +#include "asn_ioc.h" +#include "RICaction-ToBeSetup-Item.h" +#include "Presence.h" +#include "OPEN_TYPE.h" +#include "constr_CHOICE.h" +#include "constr_SEQUENCE.h" +#include "RICaction-Admitted-Item.h" +#include "RICaction-NotAdmitted-Item.h" +#include "RICsubscription-withCause-Item.h" +#include "RICaction-ToBeRemovedForModification-Item.h" +#include "RICaction-ToBeModifiedForModification-Item.h" +#include "RICaction-ToBeAddedForModification-Item.h" +#include "RICaction-RemovedForModification-Item.h" +#include "RICaction-FailedToBeRemovedForModification-Item.h" +#include "RICaction-ModifiedForModification-Item.h" +#include "RICaction-FailedToBeModifiedForModification-Item.h" +#include "RICaction-AddedForModification-Item.h" +#include "RICaction-FailedToBeAddedForModification-Item.h" +#include "RICaction-RequiredToBeModified-Item.h" +#include "RICaction-RequiredToBeRemoved-Item.h" +#include "RICaction-ConfirmedForModification-Item.h" +#include "RICaction-RefusedToBeModified-Item.h" +#include "RICaction-ConfirmedForRemoval-Item.h" +#include "RICaction-RefusedToBeRemoved-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" +#include "RICrequestID.h" +#include "RANfunctionID.h" +#include "RICsubscriptionDetails.h" +#include "RICsubscriptionTime.h" +#include "RICaction-Admitted-List.h" +#include "RICaction-NotAdmitted-List.h" +#include "Cause.h" +#include "CriticalityDiagnostics.h" +#include "RICsubscription-List-withCause.h" +#include "RICeventTriggerDefinition.h" +#include "RICactions-ToBeRemovedForModification-List.h" +#include "RICactions-ToBeModifiedForModification-List.h" +#include "RICactions-ToBeAddedForModification-List.h" +#include "RICactions-RemovedForModification-List.h" +#include "RICactions-FailedToBeRemovedForModification-List.h" +#include "RICactions-ModifiedForModification-List.h" +#include "RICactions-FailedToBeModifiedForModification-List.h" +#include "RICactions-AddedForModification-List.h" +#include "RICactions-FailedToBeAddedForModification-List.h" +#include "RICactions-RequiredToBeModified-List.h" +#include "RICactions-RequiredToBeRemoved-List.h" +#include "RICactions-ConfirmedForModification-List.h" +#include "RICactions-RefusedToBeModified-List.h" +#include "RICactions-ConfirmedForRemoval-List.h" +#include "RICactions-RefusedToBeRemoved-List.h" +#include "RICactionID.h" +#include "RICindicationSN.h" +#include "RICindicationType.h" +#include "RICindicationHeader.h" +#include "RICindicationMessage.h" +#include "RICcallProcessID.h" +#include "RICcontrolHeader.h" +#include "RICcontrolMessage.h" +#include "RICcontrolAckRequest.h" +#include "RICcontrolOutcome.h" +#include "RICqueryHeader.h" +#include "RICqueryDefinition.h" +#include "RICqueryOutcome.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 "TimeToWait.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" { +#endif + +/* Dependencies */ +typedef enum RICaction_ToBeSetup_ItemIEs__value_PR { + RICaction_ToBeSetup_ItemIEs__value_PR_NOTHING, /* No components present */ + RICaction_ToBeSetup_ItemIEs__value_PR_RICaction_ToBeSetup_Item +} RICaction_ToBeSetup_ItemIEs__value_PR; +typedef enum RICaction_Admitted_ItemIEs__value_PR { + RICaction_Admitted_ItemIEs__value_PR_NOTHING, /* No components present */ + RICaction_Admitted_ItemIEs__value_PR_RICaction_Admitted_Item +} RICaction_Admitted_ItemIEs__value_PR; +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 RICaction_ToBeRemovedForModification_ItemIEs__value_PR { + RICaction_ToBeRemovedForModification_ItemIEs__value_PR_NOTHING, /* No components present */ + RICaction_ToBeRemovedForModification_ItemIEs__value_PR_RICaction_ToBeRemovedForModification_Item +} RICaction_ToBeRemovedForModification_ItemIEs__value_PR; +typedef enum RICaction_ToBeModifiedForModification_ItemIEs__value_PR { + RICaction_ToBeModifiedForModification_ItemIEs__value_PR_NOTHING, /* No components present */ + RICaction_ToBeModifiedForModification_ItemIEs__value_PR_RICaction_ToBeModifiedForModification_Item +} RICaction_ToBeModifiedForModification_ItemIEs__value_PR; +typedef enum RICaction_ToBeAddedForModification_ItemIEs__value_PR { + RICaction_ToBeAddedForModification_ItemIEs__value_PR_NOTHING, /* No components present */ + RICaction_ToBeAddedForModification_ItemIEs__value_PR_RICaction_ToBeAddedForModification_Item +} RICaction_ToBeAddedForModification_ItemIEs__value_PR; +typedef enum RICaction_RemovedForModification_ItemIEs__value_PR { + RICaction_RemovedForModification_ItemIEs__value_PR_NOTHING, /* No components present */ + RICaction_RemovedForModification_ItemIEs__value_PR_RICaction_RemovedForModification_Item +} RICaction_RemovedForModification_ItemIEs__value_PR; +typedef enum RICaction_FailedToBeRemovedForModification_ItemIEs__value_PR { + RICaction_FailedToBeRemovedForModification_ItemIEs__value_PR_NOTHING, /* No components present */ + RICaction_FailedToBeRemovedForModification_ItemIEs__value_PR_RICaction_FailedToBeRemovedForModification_Item +} RICaction_FailedToBeRemovedForModification_ItemIEs__value_PR; +typedef enum RICaction_ModifiedForModification_ItemIEs__value_PR { + RICaction_ModifiedForModification_ItemIEs__value_PR_NOTHING, /* No components present */ + RICaction_ModifiedForModification_ItemIEs__value_PR_RICaction_ModifiedForModification_Item +} RICaction_ModifiedForModification_ItemIEs__value_PR; +typedef enum RICaction_FailedToBeModifiedForModification_ItemIEs__value_PR { + RICaction_FailedToBeModifiedForModification_ItemIEs__value_PR_NOTHING, /* No components present */ + RICaction_FailedToBeModifiedForModification_ItemIEs__value_PR_RICaction_FailedToBeModifiedForModification_Item +} RICaction_FailedToBeModifiedForModification_ItemIEs__value_PR; +typedef enum RICaction_AddedForModification_ItemIEs__value_PR { + RICaction_AddedForModification_ItemIEs__value_PR_NOTHING, /* No components present */ + RICaction_AddedForModification_ItemIEs__value_PR_RICaction_AddedForModification_Item +} RICaction_AddedForModification_ItemIEs__value_PR; +typedef enum RICaction_FailedToBeAddedForModification_ItemIEs__value_PR { + RICaction_FailedToBeAddedForModification_ItemIEs__value_PR_NOTHING, /* No components present */ + RICaction_FailedToBeAddedForModification_ItemIEs__value_PR_RICaction_FailedToBeAddedForModification_Item +} RICaction_FailedToBeAddedForModification_ItemIEs__value_PR; +typedef enum RICaction_RequiredToBeModified_ItemIEs__value_PR { + RICaction_RequiredToBeModified_ItemIEs__value_PR_NOTHING, /* No components present */ + RICaction_RequiredToBeModified_ItemIEs__value_PR_RICaction_RequiredToBeModified_Item +} RICaction_RequiredToBeModified_ItemIEs__value_PR; +typedef enum RICaction_RequiredToBeRemoved_ItemIEs__value_PR { + RICaction_RequiredToBeRemoved_ItemIEs__value_PR_NOTHING, /* No components present */ + RICaction_RequiredToBeRemoved_ItemIEs__value_PR_RICaction_RequiredToBeRemoved_Item +} RICaction_RequiredToBeRemoved_ItemIEs__value_PR; +typedef enum RICaction_ConfirmedForModification_ItemIEs__value_PR { + RICaction_ConfirmedForModification_ItemIEs__value_PR_NOTHING, /* No components present */ + RICaction_ConfirmedForModification_ItemIEs__value_PR_RICaction_ConfirmedForModification_Item +} RICaction_ConfirmedForModification_ItemIEs__value_PR; +typedef enum RICaction_RefusedToBeModified_ItemIEs__value_PR { + RICaction_RefusedToBeModified_ItemIEs__value_PR_NOTHING, /* No components present */ + RICaction_RefusedToBeModified_ItemIEs__value_PR_RICaction_RefusedToBeModified_Item +} RICaction_RefusedToBeModified_ItemIEs__value_PR; +typedef enum RICaction_ConfirmedForRemoval_ItemIEs__value_PR { + RICaction_ConfirmedForRemoval_ItemIEs__value_PR_NOTHING, /* No components present */ + RICaction_ConfirmedForRemoval_ItemIEs__value_PR_RICaction_ConfirmedForRemoval_Item +} RICaction_ConfirmedForRemoval_ItemIEs__value_PR; +typedef enum RICaction_RefusedToBeRemoved_ItemIEs__value_PR { + RICaction_RefusedToBeRemoved_ItemIEs__value_PR_NOTHING, /* No components present */ + RICaction_RefusedToBeRemoved_ItemIEs__value_PR_RICaction_RefusedToBeRemoved_Item +} RICaction_RefusedToBeRemoved_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 +} RANfunction_ItemIEs__value_PR; +typedef enum RANfunctionID_ItemIEs__value_PR { + RANfunctionID_ItemIEs__value_PR_NOTHING, /* No components present */ + RANfunctionID_ItemIEs__value_PR_RANfunctionID_Item +} RANfunctionID_ItemIEs__value_PR; +typedef enum RANfunctionIDcause_ItemIEs__value_PR { + RANfunctionIDcause_ItemIEs__value_PR_NOTHING, /* No components present */ + RANfunctionIDcause_ItemIEs__value_PR_RANfunctionIDcause_Item +} RANfunctionIDcause_ItemIEs__value_PR; +typedef enum RICsubscriptionRequest_IEs__value_PR { + RICsubscriptionRequest_IEs__value_PR_NOTHING, /* No components present */ + RICsubscriptionRequest_IEs__value_PR_RICrequestID, + RICsubscriptionRequest_IEs__value_PR_RANfunctionID, + RICsubscriptionRequest_IEs__value_PR_RICsubscriptionDetails, + RICsubscriptionRequest_IEs__value_PR_RICsubscriptionTime, + RICsubscriptionRequest_IEs__value_PR_RICsubscriptionTime_1 +} RICsubscriptionRequest_IEs__value_PR; +typedef enum RICsubscriptionResponse_IEs__value_PR { + RICsubscriptionResponse_IEs__value_PR_NOTHING, /* No components present */ + RICsubscriptionResponse_IEs__value_PR_RICrequestID, + RICsubscriptionResponse_IEs__value_PR_RANfunctionID, + RICsubscriptionResponse_IEs__value_PR_RICaction_Admitted_List, + RICsubscriptionResponse_IEs__value_PR_RICaction_NotAdmitted_List +} RICsubscriptionResponse_IEs__value_PR; +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_Cause, + RICsubscriptionFailure_IEs__value_PR_CriticalityDiagnostics +} RICsubscriptionFailure_IEs__value_PR; +typedef enum RICsubscriptionDeleteRequest_IEs__value_PR { + RICsubscriptionDeleteRequest_IEs__value_PR_NOTHING, /* No components present */ + RICsubscriptionDeleteRequest_IEs__value_PR_RICrequestID, + RICsubscriptionDeleteRequest_IEs__value_PR_RANfunctionID +} RICsubscriptionDeleteRequest_IEs__value_PR; +typedef enum RICsubscriptionDeleteResponse_IEs__value_PR { + RICsubscriptionDeleteResponse_IEs__value_PR_NOTHING, /* No components present */ + RICsubscriptionDeleteResponse_IEs__value_PR_RICrequestID, + RICsubscriptionDeleteResponse_IEs__value_PR_RANfunctionID +} RICsubscriptionDeleteResponse_IEs__value_PR; +typedef enum RICsubscriptionDeleteFailure_IEs__value_PR { + RICsubscriptionDeleteFailure_IEs__value_PR_NOTHING, /* No components present */ + RICsubscriptionDeleteFailure_IEs__value_PR_RICrequestID, + RICsubscriptionDeleteFailure_IEs__value_PR_RANfunctionID, + RICsubscriptionDeleteFailure_IEs__value_PR_Cause, + RICsubscriptionDeleteFailure_IEs__value_PR_CriticalityDiagnostics +} 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 RICsubscriptionModificationRequest_IEs__value_PR { + RICsubscriptionModificationRequest_IEs__value_PR_NOTHING, /* No components present */ + RICsubscriptionModificationRequest_IEs__value_PR_RICrequestID, + RICsubscriptionModificationRequest_IEs__value_PR_RANfunctionID, + RICsubscriptionModificationRequest_IEs__value_PR_RICeventTriggerDefinition, + RICsubscriptionModificationRequest_IEs__value_PR_RICactions_ToBeRemovedForModification_List, + RICsubscriptionModificationRequest_IEs__value_PR_RICactions_ToBeModifiedForModification_List, + RICsubscriptionModificationRequest_IEs__value_PR_RICactions_ToBeAddedForModification_List +} RICsubscriptionModificationRequest_IEs__value_PR; +typedef enum RICsubscriptionModificationResponse_IEs__value_PR { + RICsubscriptionModificationResponse_IEs__value_PR_NOTHING, /* No components present */ + RICsubscriptionModificationResponse_IEs__value_PR_RICrequestID, + RICsubscriptionModificationResponse_IEs__value_PR_RANfunctionID, + RICsubscriptionModificationResponse_IEs__value_PR_RICactions_RemovedForModification_List, + RICsubscriptionModificationResponse_IEs__value_PR_RICactions_FailedToBeRemovedForModification_List, + RICsubscriptionModificationResponse_IEs__value_PR_RICactions_ModifiedForModification_List, + RICsubscriptionModificationResponse_IEs__value_PR_RICactions_FailedToBeModifiedForModification_List, + RICsubscriptionModificationResponse_IEs__value_PR_RICactions_AddedForModification_List, + RICsubscriptionModificationResponse_IEs__value_PR_RICactions_FailedToBeAddedForModification_List +} RICsubscriptionModificationResponse_IEs__value_PR; +typedef enum RICsubscriptionModificationFailure_IEs__value_PR { + RICsubscriptionModificationFailure_IEs__value_PR_NOTHING, /* No components present */ + RICsubscriptionModificationFailure_IEs__value_PR_RICrequestID, + RICsubscriptionModificationFailure_IEs__value_PR_RANfunctionID, + RICsubscriptionModificationFailure_IEs__value_PR_Cause, + RICsubscriptionModificationFailure_IEs__value_PR_CriticalityDiagnostics +} RICsubscriptionModificationFailure_IEs__value_PR; +typedef enum RICsubscriptionModificationRequired_IEs__value_PR { + RICsubscriptionModificationRequired_IEs__value_PR_NOTHING, /* No components present */ + RICsubscriptionModificationRequired_IEs__value_PR_RICrequestID, + RICsubscriptionModificationRequired_IEs__value_PR_RANfunctionID, + RICsubscriptionModificationRequired_IEs__value_PR_RICactions_RequiredToBeModified_List, + RICsubscriptionModificationRequired_IEs__value_PR_RICactions_RequiredToBeRemoved_List +} RICsubscriptionModificationRequired_IEs__value_PR; +typedef enum RICsubscriptionModificationConfirm_IEs__value_PR { + RICsubscriptionModificationConfirm_IEs__value_PR_NOTHING, /* No components present */ + RICsubscriptionModificationConfirm_IEs__value_PR_RICrequestID, + RICsubscriptionModificationConfirm_IEs__value_PR_RANfunctionID, + RICsubscriptionModificationConfirm_IEs__value_PR_RICactions_ConfirmedForModification_List, + RICsubscriptionModificationConfirm_IEs__value_PR_RICactions_RefusedToBeModified_List, + RICsubscriptionModificationConfirm_IEs__value_PR_RICactions_ConfirmedForRemoval_List, + RICsubscriptionModificationConfirm_IEs__value_PR_RICactions_RefusedToBeRemoved_List +} RICsubscriptionModificationConfirm_IEs__value_PR; +typedef enum RICsubscriptionModificationRefuse_IEs__value_PR { + RICsubscriptionModificationRefuse_IEs__value_PR_NOTHING, /* No components present */ + RICsubscriptionModificationRefuse_IEs__value_PR_RICrequestID, + RICsubscriptionModificationRefuse_IEs__value_PR_RANfunctionID, + RICsubscriptionModificationRefuse_IEs__value_PR_Cause, + RICsubscriptionModificationRefuse_IEs__value_PR_CriticalityDiagnostics +} RICsubscriptionModificationRefuse_IEs__value_PR; +typedef enum RICindication_IEs__value_PR { + RICindication_IEs__value_PR_NOTHING, /* No components present */ + RICindication_IEs__value_PR_RICrequestID, + RICindication_IEs__value_PR_RANfunctionID, + RICindication_IEs__value_PR_RICactionID, + RICindication_IEs__value_PR_RICindicationSN, + RICindication_IEs__value_PR_RICindicationType, + RICindication_IEs__value_PR_RICindicationHeader, + RICindication_IEs__value_PR_RICindicationMessage, + RICindication_IEs__value_PR_RICcallProcessID +} RICindication_IEs__value_PR; +typedef enum RICcontrolRequest_IEs__value_PR { + RICcontrolRequest_IEs__value_PR_NOTHING, /* No components present */ + RICcontrolRequest_IEs__value_PR_RICrequestID, + RICcontrolRequest_IEs__value_PR_RANfunctionID, + RICcontrolRequest_IEs__value_PR_RICcallProcessID, + RICcontrolRequest_IEs__value_PR_RICcontrolHeader, + RICcontrolRequest_IEs__value_PR_RICcontrolMessage, + RICcontrolRequest_IEs__value_PR_RICcontrolAckRequest +} RICcontrolRequest_IEs__value_PR; +typedef enum RICcontrolAcknowledge_IEs__value_PR { + RICcontrolAcknowledge_IEs__value_PR_NOTHING, /* No components present */ + RICcontrolAcknowledge_IEs__value_PR_RICrequestID, + RICcontrolAcknowledge_IEs__value_PR_RANfunctionID, + RICcontrolAcknowledge_IEs__value_PR_RICcallProcessID, + RICcontrolAcknowledge_IEs__value_PR_RICcontrolOutcome +} RICcontrolAcknowledge_IEs__value_PR; +typedef enum RICcontrolFailure_IEs__value_PR { + RICcontrolFailure_IEs__value_PR_NOTHING, /* No components present */ + RICcontrolFailure_IEs__value_PR_RICrequestID, + RICcontrolFailure_IEs__value_PR_RANfunctionID, + RICcontrolFailure_IEs__value_PR_RICcallProcessID, + RICcontrolFailure_IEs__value_PR_Cause, + RICcontrolFailure_IEs__value_PR_RICcontrolOutcome, + RICcontrolFailure_IEs__value_PR_CriticalityDiagnostics +} RICcontrolFailure_IEs__value_PR; +typedef enum RICQueryRequest_IEs__value_PR { + RICQueryRequest_IEs__value_PR_NOTHING, /* No components present */ + RICQueryRequest_IEs__value_PR_RICrequestID, + RICQueryRequest_IEs__value_PR_RANfunctionID, + RICQueryRequest_IEs__value_PR_RICqueryHeader, + RICQueryRequest_IEs__value_PR_RICqueryDefinition +} RICQueryRequest_IEs__value_PR; +typedef enum RICQueryResponse_IEs__value_PR { + RICQueryResponse_IEs__value_PR_NOTHING, /* No components present */ + RICQueryResponse_IEs__value_PR_RICrequestID, + RICQueryResponse_IEs__value_PR_RANfunctionID, + RICQueryResponse_IEs__value_PR_RICqueryOutcome +} RICQueryResponse_IEs__value_PR; +typedef enum RICQueryFailure_IEs__value_PR { + RICQueryFailure_IEs__value_PR_NOTHING, /* No components present */ + RICQueryFailure_IEs__value_PR_RICrequestID, + RICQueryFailure_IEs__value_PR_RANfunctionID, + RICQueryFailure_IEs__value_PR_Cause, + RICQueryFailure_IEs__value_PR_CriticalityDiagnostics +} RICQueryFailure_IEs__value_PR; +typedef enum ErrorIndication_IEs__value_PR { + ErrorIndication_IEs__value_PR_NOTHING, /* No components present */ + ErrorIndication_IEs__value_PR_TransactionID, + ErrorIndication_IEs__value_PR_RICrequestID, + ErrorIndication_IEs__value_PR_RANfunctionID, + ErrorIndication_IEs__value_PR_Cause, + ErrorIndication_IEs__value_PR_CriticalityDiagnostics +} ErrorIndication_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_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_E2nodeComponentConfigAdditionAck_List +} E2setupResponseIEs__value_PR; +typedef enum E2setupFailureIEs__value_PR { + E2setupFailureIEs__value_PR_NOTHING, /* No components present */ + E2setupFailureIEs__value_PR_TransactionID, + E2setupFailureIEs__value_PR_Cause, + E2setupFailureIEs__value_PR_TimeToWait, + E2setupFailureIEs__value_PR_CriticalityDiagnostics, + 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_E2connectionUpdate_List_1 +} 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_Cause, + E2connectionUpdateFailure_IEs__value_PR_TimeToWait, + E2connectionUpdateFailure_IEs__value_PR_CriticalityDiagnostics +} 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_Cause, + E2nodeConfigurationUpdateFailure_IEs__value_PR_TimeToWait, + E2nodeConfigurationUpdateFailure_IEs__value_PR_CriticalityDiagnostics +} E2nodeConfigurationUpdateFailure_IEs__value_PR; +typedef enum ResetRequestIEs__value_PR { + ResetRequestIEs__value_PR_NOTHING, /* No components present */ + ResetRequestIEs__value_PR_TransactionID, + ResetRequestIEs__value_PR_Cause +} ResetRequestIEs__value_PR; +typedef enum ResetResponseIEs__value_PR { + ResetResponseIEs__value_PR_NOTHING, /* No components present */ + ResetResponseIEs__value_PR_TransactionID, + ResetResponseIEs__value_PR_CriticalityDiagnostics +} 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_RANfunctions_List_1, + 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_TransactionID, + RICserviceUpdateFailure_IEs__value_PR_Cause, + RICserviceUpdateFailure_IEs__value_PR_TimeToWait, + RICserviceUpdateFailure_IEs__value_PR_CriticalityDiagnostics +} 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; +typedef enum E2RemovalRequestIEs__value_PR { + E2RemovalRequestIEs__value_PR_NOTHING, /* No components present */ + E2RemovalRequestIEs__value_PR_TransactionID +} E2RemovalRequestIEs__value_PR; +typedef enum E2RemovalResponseIEs__value_PR { + E2RemovalResponseIEs__value_PR_NOTHING, /* No components present */ + E2RemovalResponseIEs__value_PR_TransactionID, + E2RemovalResponseIEs__value_PR_CriticalityDiagnostics +} E2RemovalResponseIEs__value_PR; +typedef enum E2RemovalFailureIEs__value_PR { + E2RemovalFailureIEs__value_PR_NOTHING, /* No components present */ + E2RemovalFailureIEs__value_PR_TransactionID, + E2RemovalFailureIEs__value_PR_Cause, + E2RemovalFailureIEs__value_PR_CriticalityDiagnostics +} E2RemovalFailureIEs__value_PR; + +/* ProtocolIE-Field */ +typedef struct RICaction_ToBeSetup_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICaction_ToBeSetup_ItemIEs__value { + RICaction_ToBeSetup_ItemIEs__value_PR present; + union RICaction_ToBeSetup_ItemIEs__value_u { + RICaction_ToBeSetup_Item_t RICaction_ToBeSetup_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; +} RICaction_ToBeSetup_ItemIEs_t; +typedef struct RICaction_Admitted_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICaction_Admitted_ItemIEs__value { + RICaction_Admitted_ItemIEs__value_PR present; + union RICaction_Admitted_ItemIEs__value_u { + RICaction_Admitted_Item_t RICaction_Admitted_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; +} RICaction_Admitted_ItemIEs_t; +typedef struct RICaction_NotAdmitted_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICaction_NotAdmitted_ItemIEs__value { + RICaction_NotAdmitted_ItemIEs__value_PR present; + union RICaction_NotAdmitted_ItemIEs__value_u { + RICaction_NotAdmitted_Item_t RICaction_NotAdmitted_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; +} RICaction_NotAdmitted_ItemIEs_t; +typedef struct RICsubscription_withCause_ItemIEs { + ProtocolIE_ID_t id; + Criticality_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 RICaction_ToBeRemovedForModification_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICaction_ToBeRemovedForModification_ItemIEs__value { + RICaction_ToBeRemovedForModification_ItemIEs__value_PR present; + union RICaction_ToBeRemovedForModification_ItemIEs__value_u { + RICaction_ToBeRemovedForModification_Item_t RICaction_ToBeRemovedForModification_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; +} RICaction_ToBeRemovedForModification_ItemIEs_t; +typedef struct RICaction_ToBeModifiedForModification_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICaction_ToBeModifiedForModification_ItemIEs__value { + RICaction_ToBeModifiedForModification_ItemIEs__value_PR present; + union RICaction_ToBeModifiedForModification_ItemIEs__value_u { + RICaction_ToBeModifiedForModification_Item_t RICaction_ToBeModifiedForModification_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; +} RICaction_ToBeModifiedForModification_ItemIEs_t; +typedef struct RICaction_ToBeAddedForModification_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICaction_ToBeAddedForModification_ItemIEs__value { + RICaction_ToBeAddedForModification_ItemIEs__value_PR present; + union RICaction_ToBeAddedForModification_ItemIEs__value_u { + RICaction_ToBeAddedForModification_Item_t RICaction_ToBeAddedForModification_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; +} RICaction_ToBeAddedForModification_ItemIEs_t; +typedef struct RICaction_RemovedForModification_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICaction_RemovedForModification_ItemIEs__value { + RICaction_RemovedForModification_ItemIEs__value_PR present; + union RICaction_RemovedForModification_ItemIEs__value_u { + RICaction_RemovedForModification_Item_t RICaction_RemovedForModification_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; +} RICaction_RemovedForModification_ItemIEs_t; +typedef struct RICaction_FailedToBeRemovedForModification_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICaction_FailedToBeRemovedForModification_ItemIEs__value { + RICaction_FailedToBeRemovedForModification_ItemIEs__value_PR present; + union RICaction_FailedToBeRemovedForModification_ItemIEs__value_u { + RICaction_FailedToBeRemovedForModification_Item_t RICaction_FailedToBeRemovedForModification_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; +} RICaction_FailedToBeRemovedForModification_ItemIEs_t; +typedef struct RICaction_ModifiedForModification_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICaction_ModifiedForModification_ItemIEs__value { + RICaction_ModifiedForModification_ItemIEs__value_PR present; + union RICaction_ModifiedForModification_ItemIEs__value_u { + RICaction_ModifiedForModification_Item_t RICaction_ModifiedForModification_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; +} RICaction_ModifiedForModification_ItemIEs_t; +typedef struct RICaction_FailedToBeModifiedForModification_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICaction_FailedToBeModifiedForModification_ItemIEs__value { + RICaction_FailedToBeModifiedForModification_ItemIEs__value_PR present; + union RICaction_FailedToBeModifiedForModification_ItemIEs__value_u { + RICaction_FailedToBeModifiedForModification_Item_t RICaction_FailedToBeModifiedForModification_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; +} RICaction_FailedToBeModifiedForModification_ItemIEs_t; +typedef struct RICaction_AddedForModification_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICaction_AddedForModification_ItemIEs__value { + RICaction_AddedForModification_ItemIEs__value_PR present; + union RICaction_AddedForModification_ItemIEs__value_u { + RICaction_AddedForModification_Item_t RICaction_AddedForModification_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; +} RICaction_AddedForModification_ItemIEs_t; +typedef struct RICaction_FailedToBeAddedForModification_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICaction_FailedToBeAddedForModification_ItemIEs__value { + RICaction_FailedToBeAddedForModification_ItemIEs__value_PR present; + union RICaction_FailedToBeAddedForModification_ItemIEs__value_u { + RICaction_FailedToBeAddedForModification_Item_t RICaction_FailedToBeAddedForModification_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; +} RICaction_FailedToBeAddedForModification_ItemIEs_t; +typedef struct RICaction_RequiredToBeModified_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICaction_RequiredToBeModified_ItemIEs__value { + RICaction_RequiredToBeModified_ItemIEs__value_PR present; + union RICaction_RequiredToBeModified_ItemIEs__value_u { + RICaction_RequiredToBeModified_Item_t RICaction_RequiredToBeModified_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; +} RICaction_RequiredToBeModified_ItemIEs_t; +typedef struct RICaction_RequiredToBeRemoved_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICaction_RequiredToBeRemoved_ItemIEs__value { + RICaction_RequiredToBeRemoved_ItemIEs__value_PR present; + union RICaction_RequiredToBeRemoved_ItemIEs__value_u { + RICaction_RequiredToBeRemoved_Item_t RICaction_RequiredToBeRemoved_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; +} RICaction_RequiredToBeRemoved_ItemIEs_t; +typedef struct RICaction_ConfirmedForModification_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICaction_ConfirmedForModification_ItemIEs__value { + RICaction_ConfirmedForModification_ItemIEs__value_PR present; + union RICaction_ConfirmedForModification_ItemIEs__value_u { + RICaction_ConfirmedForModification_Item_t RICaction_ConfirmedForModification_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; +} RICaction_ConfirmedForModification_ItemIEs_t; +typedef struct RICaction_RefusedToBeModified_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICaction_RefusedToBeModified_ItemIEs__value { + RICaction_RefusedToBeModified_ItemIEs__value_PR present; + union RICaction_RefusedToBeModified_ItemIEs__value_u { + RICaction_RefusedToBeModified_Item_t RICaction_RefusedToBeModified_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; +} RICaction_RefusedToBeModified_ItemIEs_t; +typedef struct RICaction_ConfirmedForRemoval_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICaction_ConfirmedForRemoval_ItemIEs__value { + RICaction_ConfirmedForRemoval_ItemIEs__value_PR present; + union RICaction_ConfirmedForRemoval_ItemIEs__value_u { + RICaction_ConfirmedForRemoval_Item_t RICaction_ConfirmedForRemoval_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; +} RICaction_ConfirmedForRemoval_ItemIEs_t; +typedef struct RICaction_RefusedToBeRemoved_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICaction_RefusedToBeRemoved_ItemIEs__value { + RICaction_RefusedToBeRemoved_ItemIEs__value_PR present; + union RICaction_RefusedToBeRemoved_ItemIEs__value_u { + RICaction_RefusedToBeRemoved_Item_t RICaction_RefusedToBeRemoved_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; +} RICaction_RefusedToBeRemoved_ItemIEs_t; +typedef struct E2connectionUpdate_ItemIEs { + ProtocolIE_ID_t id; + Criticality_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_ID_t id; + Criticality_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_ID_t id; + Criticality_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_ID_t id; + Criticality_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_ID_t id; + Criticality_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_ID_t id; + Criticality_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_ID_t id; + Criticality_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_ID_t id; + Criticality_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_ID_t id; + Criticality_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_ID_t id; + Criticality_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_ID_t id; + Criticality_t criticality; + struct RANfunction_ItemIEs__value { + RANfunction_ItemIEs__value_PR present; + union RANfunction_ItemIEs__value_u { + RANfunction_Item_t RANfunction_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; +} RANfunction_ItemIEs_t; +typedef struct RANfunctionID_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RANfunctionID_ItemIEs__value { + RANfunctionID_ItemIEs__value_PR present; + union RANfunctionID_ItemIEs__value_u { + RANfunctionID_Item_t RANfunctionID_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; +} RANfunctionID_ItemIEs_t; +typedef struct RANfunctionIDcause_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RANfunctionIDcause_ItemIEs__value { + RANfunctionIDcause_ItemIEs__value_PR present; + union RANfunctionIDcause_ItemIEs__value_u { + RANfunctionIDcause_Item_t RANfunctionIDcause_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; +} RANfunctionIDcause_ItemIEs_t; +typedef struct RICsubscriptionRequest_IEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICsubscriptionRequest_IEs__value { + RICsubscriptionRequest_IEs__value_PR present; + union RICsubscriptionRequest_IEs__value_u { + RICrequestID_t RICrequestID; + RANfunctionID_t RANfunctionID; + RICsubscriptionDetails_t RICsubscriptionDetails; + RICsubscriptionTime_t RICsubscriptionTime; + RICsubscriptionTime_t RICsubscriptionTime_1; + } 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; +} RICsubscriptionRequest_IEs_t; +typedef struct RICsubscriptionResponse_IEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICsubscriptionResponse_IEs__value { + RICsubscriptionResponse_IEs__value_PR present; + union RICsubscriptionResponse_IEs__value_u { + RICrequestID_t RICrequestID; + RANfunctionID_t RANfunctionID; + RICaction_Admitted_List_t RICaction_Admitted_List; + RICaction_NotAdmitted_List_t RICaction_NotAdmitted_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; +} RICsubscriptionResponse_IEs_t; +typedef struct RICsubscriptionFailure_IEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICsubscriptionFailure_IEs__value { + RICsubscriptionFailure_IEs__value_PR present; + union RICsubscriptionFailure_IEs__value_u { + RICrequestID_t RICrequestID; + RANfunctionID_t RANfunctionID; + Cause_t Cause; + CriticalityDiagnostics_t CriticalityDiagnostics; + } 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; +} RICsubscriptionFailure_IEs_t; +typedef struct RICsubscriptionDeleteRequest_IEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICsubscriptionDeleteRequest_IEs__value { + RICsubscriptionDeleteRequest_IEs__value_PR present; + union RICsubscriptionDeleteRequest_IEs__value_u { + RICrequestID_t RICrequestID; + RANfunctionID_t RANfunctionID; + } 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; +} RICsubscriptionDeleteRequest_IEs_t; +typedef struct RICsubscriptionDeleteResponse_IEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICsubscriptionDeleteResponse_IEs__value { + RICsubscriptionDeleteResponse_IEs__value_PR present; + union RICsubscriptionDeleteResponse_IEs__value_u { + RICrequestID_t RICrequestID; + RANfunctionID_t RANfunctionID; + } 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; +} RICsubscriptionDeleteResponse_IEs_t; +typedef struct RICsubscriptionDeleteFailure_IEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICsubscriptionDeleteFailure_IEs__value { + RICsubscriptionDeleteFailure_IEs__value_PR present; + union RICsubscriptionDeleteFailure_IEs__value_u { + RICrequestID_t RICrequestID; + RANfunctionID_t RANfunctionID; + Cause_t Cause; + CriticalityDiagnostics_t CriticalityDiagnostics; + } 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; +} RICsubscriptionDeleteFailure_IEs_t; +typedef struct RICsubscriptionDeleteRequired_IEs { + ProtocolIE_ID_t id; + Criticality_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 RICsubscriptionModificationRequest_IEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICsubscriptionModificationRequest_IEs__value { + RICsubscriptionModificationRequest_IEs__value_PR present; + union RICsubscriptionModificationRequest_IEs__value_u { + RICrequestID_t RICrequestID; + RANfunctionID_t RANfunctionID; + RICeventTriggerDefinition_t RICeventTriggerDefinition; + RICactions_ToBeRemovedForModification_List_t RICactions_ToBeRemovedForModification_List; + RICactions_ToBeModifiedForModification_List_t RICactions_ToBeModifiedForModification_List; + RICactions_ToBeAddedForModification_List_t RICactions_ToBeAddedForModification_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; +} RICsubscriptionModificationRequest_IEs_t; +typedef struct RICsubscriptionModificationResponse_IEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICsubscriptionModificationResponse_IEs__value { + RICsubscriptionModificationResponse_IEs__value_PR present; + union RICsubscriptionModificationResponse_IEs__value_u { + RICrequestID_t RICrequestID; + RANfunctionID_t RANfunctionID; + RICactions_RemovedForModification_List_t RICactions_RemovedForModification_List; + RICactions_FailedToBeRemovedForModification_List_t RICactions_FailedToBeRemovedForModification_List; + RICactions_ModifiedForModification_List_t RICactions_ModifiedForModification_List; + RICactions_FailedToBeModifiedForModification_List_t RICactions_FailedToBeModifiedForModification_List; + RICactions_AddedForModification_List_t RICactions_AddedForModification_List; + RICactions_FailedToBeAddedForModification_List_t RICactions_FailedToBeAddedForModification_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; +} RICsubscriptionModificationResponse_IEs_t; +typedef struct RICsubscriptionModificationFailure_IEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICsubscriptionModificationFailure_IEs__value { + RICsubscriptionModificationFailure_IEs__value_PR present; + union RICsubscriptionModificationFailure_IEs__value_u { + RICrequestID_t RICrequestID; + RANfunctionID_t RANfunctionID; + Cause_t Cause; + CriticalityDiagnostics_t CriticalityDiagnostics; + } 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; +} RICsubscriptionModificationFailure_IEs_t; +typedef struct RICsubscriptionModificationRequired_IEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICsubscriptionModificationRequired_IEs__value { + RICsubscriptionModificationRequired_IEs__value_PR present; + union RICsubscriptionModificationRequired_IEs__value_u { + RICrequestID_t RICrequestID; + RANfunctionID_t RANfunctionID; + RICactions_RequiredToBeModified_List_t RICactions_RequiredToBeModified_List; + RICactions_RequiredToBeRemoved_List_t RICactions_RequiredToBeRemoved_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; +} RICsubscriptionModificationRequired_IEs_t; +typedef struct RICsubscriptionModificationConfirm_IEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICsubscriptionModificationConfirm_IEs__value { + RICsubscriptionModificationConfirm_IEs__value_PR present; + union RICsubscriptionModificationConfirm_IEs__value_u { + RICrequestID_t RICrequestID; + RANfunctionID_t RANfunctionID; + RICactions_ConfirmedForModification_List_t RICactions_ConfirmedForModification_List; + RICactions_RefusedToBeModified_List_t RICactions_RefusedToBeModified_List; + RICactions_ConfirmedForRemoval_List_t RICactions_ConfirmedForRemoval_List; + RICactions_RefusedToBeRemoved_List_t RICactions_RefusedToBeRemoved_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; +} RICsubscriptionModificationConfirm_IEs_t; +typedef struct RICsubscriptionModificationRefuse_IEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICsubscriptionModificationRefuse_IEs__value { + RICsubscriptionModificationRefuse_IEs__value_PR present; + union RICsubscriptionModificationRefuse_IEs__value_u { + RICrequestID_t RICrequestID; + RANfunctionID_t RANfunctionID; + Cause_t Cause; + CriticalityDiagnostics_t CriticalityDiagnostics; + } 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; +} RICsubscriptionModificationRefuse_IEs_t; +typedef struct RICindication_IEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICindication_IEs__value { + RICindication_IEs__value_PR present; + union RICindication_IEs__value_u { + RICrequestID_t RICrequestID; + RANfunctionID_t RANfunctionID; + RICactionID_t RICactionID; + RICindicationSN_t RICindicationSN; + RICindicationType_t RICindicationType; + RICindicationHeader_t RICindicationHeader; + RICindicationMessage_t RICindicationMessage; + RICcallProcessID_t RICcallProcessID; + } 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; +} RICindication_IEs_t; +typedef struct RICcontrolRequest_IEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICcontrolRequest_IEs__value { + RICcontrolRequest_IEs__value_PR present; + union RICcontrolRequest_IEs__value_u { + RICrequestID_t RICrequestID; + RANfunctionID_t RANfunctionID; + RICcallProcessID_t RICcallProcessID; + RICcontrolHeader_t RICcontrolHeader; + RICcontrolMessage_t RICcontrolMessage; + RICcontrolAckRequest_t RICcontrolAckRequest; + } 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; +} RICcontrolRequest_IEs_t; +typedef struct RICcontrolAcknowledge_IEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICcontrolAcknowledge_IEs__value { + RICcontrolAcknowledge_IEs__value_PR present; + union RICcontrolAcknowledge_IEs__value_u { + RICrequestID_t RICrequestID; + RANfunctionID_t RANfunctionID; + RICcallProcessID_t RICcallProcessID; + RICcontrolOutcome_t RICcontrolOutcome; + } 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; +} RICcontrolAcknowledge_IEs_t; +typedef struct RICcontrolFailure_IEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICcontrolFailure_IEs__value { + RICcontrolFailure_IEs__value_PR present; + union RICcontrolFailure_IEs__value_u { + RICrequestID_t RICrequestID; + RANfunctionID_t RANfunctionID; + RICcallProcessID_t RICcallProcessID; + Cause_t Cause; + RICcontrolOutcome_t RICcontrolOutcome; + CriticalityDiagnostics_t CriticalityDiagnostics; + } 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; +} RICcontrolFailure_IEs_t; +typedef struct RICQueryRequest_IEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICQueryRequest_IEs__value { + RICQueryRequest_IEs__value_PR present; + union RICQueryRequest_IEs__value_u { + RICrequestID_t RICrequestID; + RANfunctionID_t RANfunctionID; + RICqueryHeader_t RICqueryHeader; + RICqueryDefinition_t RICqueryDefinition; + } 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; +} RICQueryRequest_IEs_t; +typedef struct RICQueryResponse_IEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICQueryResponse_IEs__value { + RICQueryResponse_IEs__value_PR present; + union RICQueryResponse_IEs__value_u { + RICrequestID_t RICrequestID; + RANfunctionID_t RANfunctionID; + RICqueryOutcome_t RICqueryOutcome; + } 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; +} RICQueryResponse_IEs_t; +typedef struct RICQueryFailure_IEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICQueryFailure_IEs__value { + RICQueryFailure_IEs__value_PR present; + union RICQueryFailure_IEs__value_u { + RICrequestID_t RICrequestID; + RANfunctionID_t RANfunctionID; + Cause_t Cause; + CriticalityDiagnostics_t CriticalityDiagnostics; + } 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; +} RICQueryFailure_IEs_t; +typedef struct ErrorIndication_IEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct ErrorIndication_IEs__value { + ErrorIndication_IEs__value_PR present; + union ErrorIndication_IEs__value_u { + TransactionID_t TransactionID; + RICrequestID_t RICrequestID; + RANfunctionID_t RANfunctionID; + Cause_t Cause; + CriticalityDiagnostics_t CriticalityDiagnostics; + } 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; +} ErrorIndication_IEs_t; +typedef struct E2setupRequestIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + 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 */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2setupRequestIEs_t; +typedef struct E2setupResponseIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + 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 */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2setupResponseIEs_t; +typedef struct E2setupFailureIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct E2setupFailureIEs__value { + E2setupFailureIEs__value_PR present; + union E2setupFailureIEs__value_u { + TransactionID_t TransactionID; + Cause_t Cause; + TimeToWait_t TimeToWait; + CriticalityDiagnostics_t CriticalityDiagnostics; + TNLinformation_t TNLinformation; + } 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; +} E2setupFailureIEs_t; +typedef struct E2connectionUpdate_IEs { + ProtocolIE_ID_t id; + Criticality_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; + E2connectionUpdate_List_t E2connectionUpdate_List_1; + } 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_ID_t id; + Criticality_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_ID_t id; + Criticality_t criticality; + struct E2connectionUpdateFailure_IEs__value { + E2connectionUpdateFailure_IEs__value_PR present; + union E2connectionUpdateFailure_IEs__value_u { + TransactionID_t TransactionID; + Cause_t Cause; + TimeToWait_t TimeToWait; + CriticalityDiagnostics_t CriticalityDiagnostics; + } 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_ID_t id; + Criticality_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_ID_t id; + Criticality_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_ID_t id; + Criticality_t criticality; + struct E2nodeConfigurationUpdateFailure_IEs__value { + E2nodeConfigurationUpdateFailure_IEs__value_PR present; + union E2nodeConfigurationUpdateFailure_IEs__value_u { + TransactionID_t TransactionID; + Cause_t Cause; + TimeToWait_t TimeToWait; + CriticalityDiagnostics_t CriticalityDiagnostics; + } 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_ID_t id; + Criticality_t criticality; + struct ResetRequestIEs__value { + ResetRequestIEs__value_PR present; + union ResetRequestIEs__value_u { + TransactionID_t TransactionID; + Cause_t Cause; + } 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; +} ResetRequestIEs_t; +typedef struct ResetResponseIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct ResetResponseIEs__value { + ResetResponseIEs__value_PR present; + union ResetResponseIEs__value_u { + TransactionID_t TransactionID; + CriticalityDiagnostics_t CriticalityDiagnostics; + } 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; +} ResetResponseIEs_t; +typedef struct RICserviceUpdate_IEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICserviceUpdate_IEs__value { + RICserviceUpdate_IEs__value_PR present; + union RICserviceUpdate_IEs__value_u { + TransactionID_t TransactionID; + RANfunctions_List_t RANfunctions_List; + RANfunctions_List_t RANfunctions_List_1; + RANfunctionsID_List_t RANfunctionsID_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; +} RICserviceUpdate_IEs_t; +typedef struct RICserviceUpdateAcknowledge_IEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + 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; + + /* 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; +} RICserviceUpdateAcknowledge_IEs_t; +typedef struct RICserviceUpdateFailure_IEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICserviceUpdateFailure_IEs__value { + RICserviceUpdateFailure_IEs__value_PR present; + union RICserviceUpdateFailure_IEs__value_u { + TransactionID_t TransactionID; + Cause_t Cause; + TimeToWait_t TimeToWait; + CriticalityDiagnostics_t CriticalityDiagnostics; + } 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; +} RICserviceUpdateFailure_IEs_t; +typedef struct RICserviceQuery_IEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICserviceQuery_IEs__value { + RICserviceQuery_IEs__value_PR present; + union RICserviceQuery_IEs__value_u { + TransactionID_t TransactionID; + RANfunctionsID_List_t RANfunctionsID_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; +} RICserviceQuery_IEs_t; +typedef struct E2RemovalRequestIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct E2RemovalRequestIEs__value { + E2RemovalRequestIEs__value_PR present; + union E2RemovalRequestIEs__value_u { + TransactionID_t TransactionID; + } 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; +} E2RemovalRequestIEs_t; +typedef struct E2RemovalResponseIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct E2RemovalResponseIEs__value { + E2RemovalResponseIEs__value_PR present; + union E2RemovalResponseIEs__value_u { + TransactionID_t TransactionID; + CriticalityDiagnostics_t CriticalityDiagnostics; + } 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; +} E2RemovalResponseIEs_t; +typedef struct E2RemovalFailureIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct E2RemovalFailureIEs__value { + E2RemovalFailureIEs__value_PR present; + union E2RemovalFailureIEs__value_u { + TransactionID_t TransactionID; + Cause_t Cause; + CriticalityDiagnostics_t CriticalityDiagnostics; + } 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; +} E2RemovalFailureIEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1; +extern asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_ItemIEs_1[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_ItemIEs_specs_5; +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_RICaction_ToBeRemovedForModification_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeRemovedForModification_ItemIEs_specs_17; +extern asn_TYPE_member_t asn_MBR_RICaction_ToBeRemovedForModification_ItemIEs_17[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeModifiedForModification_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeModifiedForModification_ItemIEs_specs_21; +extern asn_TYPE_member_t asn_MBR_RICaction_ToBeModifiedForModification_ItemIEs_21[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeAddedForModification_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeAddedForModification_ItemIEs_specs_25; +extern asn_TYPE_member_t asn_MBR_RICaction_ToBeAddedForModification_ItemIEs_25[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICaction_RemovedForModification_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_RemovedForModification_ItemIEs_specs_29; +extern asn_TYPE_member_t asn_MBR_RICaction_RemovedForModification_ItemIEs_29[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICaction_FailedToBeRemovedForModification_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_FailedToBeRemovedForModification_ItemIEs_specs_33; +extern asn_TYPE_member_t asn_MBR_RICaction_FailedToBeRemovedForModification_ItemIEs_33[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICaction_ModifiedForModification_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_ModifiedForModification_ItemIEs_specs_37; +extern asn_TYPE_member_t asn_MBR_RICaction_ModifiedForModification_ItemIEs_37[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICaction_FailedToBeModifiedForModification_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_FailedToBeModifiedForModification_ItemIEs_specs_41; +extern asn_TYPE_member_t asn_MBR_RICaction_FailedToBeModifiedForModification_ItemIEs_41[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICaction_AddedForModification_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_AddedForModification_ItemIEs_specs_45; +extern asn_TYPE_member_t asn_MBR_RICaction_AddedForModification_ItemIEs_45[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICaction_FailedToBeAddedForModification_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_FailedToBeAddedForModification_ItemIEs_specs_49; +extern asn_TYPE_member_t asn_MBR_RICaction_FailedToBeAddedForModification_ItemIEs_49[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICaction_RequiredToBeModified_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_RequiredToBeModified_ItemIEs_specs_53; +extern asn_TYPE_member_t asn_MBR_RICaction_RequiredToBeModified_ItemIEs_53[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICaction_RequiredToBeRemoved_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_RequiredToBeRemoved_ItemIEs_specs_57; +extern asn_TYPE_member_t asn_MBR_RICaction_RequiredToBeRemoved_ItemIEs_57[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICaction_ConfirmedForModification_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_ConfirmedForModification_ItemIEs_specs_61; +extern asn_TYPE_member_t asn_MBR_RICaction_ConfirmedForModification_ItemIEs_61[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICaction_RefusedToBeModified_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_RefusedToBeModified_ItemIEs_specs_65; +extern asn_TYPE_member_t asn_MBR_RICaction_RefusedToBeModified_ItemIEs_65[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICaction_ConfirmedForRemoval_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_ConfirmedForRemoval_ItemIEs_specs_69; +extern asn_TYPE_member_t asn_MBR_RICaction_ConfirmedForRemoval_ItemIEs_69[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICaction_RefusedToBeRemoved_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_RefusedToBeRemoved_ItemIEs_specs_73; +extern asn_TYPE_member_t asn_MBR_RICaction_RefusedToBeRemoved_ItemIEs_73[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdate_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_ItemIEs_specs_77; +extern asn_TYPE_member_t asn_MBR_E2connectionUpdate_ItemIEs_77[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateRemove_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateRemove_ItemIEs_specs_81; +extern asn_TYPE_member_t asn_MBR_E2connectionUpdateRemove_ItemIEs_81[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2connectionSetupFailed_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionSetupFailed_ItemIEs_specs_85; +extern asn_TYPE_member_t asn_MBR_E2connectionSetupFailed_ItemIEs_85[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAddition_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigAddition_ItemIEs_specs_89; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAddition_ItemIEs_89[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdate_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdate_ItemIEs_specs_93; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_ItemIEs_93[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemoval_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigRemoval_ItemIEs_specs_97; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemoval_ItemIEs_97[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2nodeTNLassociationRemoval_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeTNLassociationRemoval_ItemIEs_specs_101; +extern asn_TYPE_member_t asn_MBR_E2nodeTNLassociationRemoval_ItemIEs_101[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigAdditionAck_ItemIEs_specs_105; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAdditionAck_ItemIEs_105[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_ItemIEs_specs_109; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_ItemIEs_109[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigRemovalAck_ItemIEs_specs_113; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemovalAck_ItemIEs_113[3]; +extern asn_TYPE_descriptor_t asn_DEF_RANfunction_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RANfunction_ItemIEs_specs_117; +extern asn_TYPE_member_t asn_MBR_RANfunction_ItemIEs_117[3]; +extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_ItemIEs_specs_121; +extern asn_TYPE_member_t asn_MBR_RANfunctionID_ItemIEs_121[3]; +extern asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_ItemIEs_specs_125; +extern asn_TYPE_member_t asn_MBR_RANfunctionIDcause_ItemIEs_125[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_IEs_specs_129; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_IEs_129[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_IEs_specs_133; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_IEs_133[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_IEs_specs_137; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_IEs_137[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_141; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_IEs_141[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_145; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_IEs_145[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_149; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_IEs_149[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequired_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequired_IEs_specs_153; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequired_IEs_153[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionModificationRequest_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionModificationRequest_IEs_specs_157; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionModificationRequest_IEs_157[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionModificationResponse_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionModificationResponse_IEs_specs_161; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionModificationResponse_IEs_161[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionModificationFailure_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionModificationFailure_IEs_specs_165; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionModificationFailure_IEs_165[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionModificationRequired_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionModificationRequired_IEs_specs_169; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionModificationRequired_IEs_169[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionModificationConfirm_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionModificationConfirm_IEs_specs_173; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionModificationConfirm_IEs_173[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionModificationRefuse_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionModificationRefuse_IEs_specs_177; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionModificationRefuse_IEs_177[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICindication_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICindication_IEs_specs_181; +extern asn_TYPE_member_t asn_MBR_RICindication_IEs_181[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_IEs_specs_185; +extern asn_TYPE_member_t asn_MBR_RICcontrolRequest_IEs_185[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_IEs_specs_189; +extern asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_IEs_189[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_IEs_specs_193; +extern asn_TYPE_member_t asn_MBR_RICcontrolFailure_IEs_193[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICQueryRequest_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICQueryRequest_IEs_specs_197; +extern asn_TYPE_member_t asn_MBR_RICQueryRequest_IEs_197[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICQueryResponse_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICQueryResponse_IEs_specs_201; +extern asn_TYPE_member_t asn_MBR_RICQueryResponse_IEs_201[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICQueryFailure_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICQueryFailure_IEs_specs_205; +extern asn_TYPE_member_t asn_MBR_RICQueryFailure_IEs_205[3]; +extern asn_TYPE_descriptor_t asn_DEF_ErrorIndication_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_IEs_specs_209; +extern asn_TYPE_member_t asn_MBR_ErrorIndication_IEs_209[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2setupRequestIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2setupRequestIEs_specs_213; +extern asn_TYPE_member_t asn_MBR_E2setupRequestIEs_213[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2setupResponseIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2setupResponseIEs_specs_217; +extern asn_TYPE_member_t asn_MBR_E2setupResponseIEs_217[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2setupFailureIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2setupFailureIEs_specs_221; +extern asn_TYPE_member_t asn_MBR_E2setupFailureIEs_221[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdate_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_IEs_specs_225; +extern asn_TYPE_member_t asn_MBR_E2connectionUpdate_IEs_225[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateAck_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateAck_IEs_specs_229; +extern asn_TYPE_member_t asn_MBR_E2connectionUpdateAck_IEs_229[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateFailure_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateFailure_IEs_specs_233; +extern asn_TYPE_member_t asn_MBR_E2connectionUpdateFailure_IEs_233[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdate_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdate_IEs_specs_237; +extern asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdate_IEs_237[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateAcknowledge_IEs_specs_241; +extern asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateAcknowledge_IEs_241[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdateFailure_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateFailure_IEs_specs_245; +extern asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateFailure_IEs_245[3]; +extern asn_TYPE_descriptor_t asn_DEF_ResetRequestIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ResetRequestIEs_specs_249; +extern asn_TYPE_member_t asn_MBR_ResetRequestIEs_249[3]; +extern asn_TYPE_descriptor_t asn_DEF_ResetResponseIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ResetResponseIEs_specs_253; +extern asn_TYPE_member_t asn_MBR_ResetResponseIEs_253[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_IEs_specs_257; +extern asn_TYPE_member_t asn_MBR_RICserviceUpdate_IEs_257[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_261; +extern asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_IEs_261[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_IEs_specs_265; +extern asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_IEs_265[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICserviceQuery_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_IEs_specs_269; +extern asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_269[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2RemovalRequestIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2RemovalRequestIEs_specs_273; +extern asn_TYPE_member_t asn_MBR_E2RemovalRequestIEs_273[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2RemovalResponseIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2RemovalResponseIEs_specs_277; +extern asn_TYPE_member_t asn_MBR_E2RemovalResponseIEs_277[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2RemovalFailureIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2RemovalFailureIEs_specs_281; +extern asn_TYPE_member_t asn_MBR_E2RemovalFailureIEs_281[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtocolIE_Field_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/ProtocolIE-FieldPair.c b/e2sim/asn1c/ProtocolIE-FieldPair.c new file mode 100644 index 0000000..5243cc0 --- /dev/null +++ b/e2sim/asn1c/ProtocolIE-FieldPair.c @@ -0,0 +1,9 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-Containers" + * found in "e2ap-container-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "ProtocolIE-FieldPair.h" + diff --git a/e2sim/asn1c/ProtocolIE-FieldPair.h b/e2sim/asn1c/ProtocolIE-FieldPair.h new file mode 100644 index 0000000..4427b64 --- /dev/null +++ b/e2sim/asn1c/ProtocolIE-FieldPair.h @@ -0,0 +1,23 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-Containers" + * found in "e2ap-container-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _ProtocolIE_FieldPair_H_ +#define _ProtocolIE_FieldPair_H_ + + +#include "asn_application.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtocolIE_FieldPair_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/ProtocolIE-ID.c b/e2sim/asn1c/ProtocolIE-ID.c new file mode 100644 index 0000000..5ad53a0 --- /dev/null +++ b/e2sim/asn1c/ProtocolIE-ID.c @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-CommonDataTypes" + * found in "e2ap-common-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "ProtocolIE-ID.h" + +int +ProtocolIE_ID_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 >= 0L && value <= 65535L)) { + /* 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. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProtocolIE_ID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_ProtocolIE_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ID = { + "ProtocolIE-ID", + "ProtocolIE-ID", + &asn_OP_NativeInteger, + asn_DEF_ProtocolIE_ID_tags_1, + sizeof(asn_DEF_ProtocolIE_ID_tags_1) + /sizeof(asn_DEF_ProtocolIE_ID_tags_1[0]), /* 1 */ + asn_DEF_ProtocolIE_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_ID_tags_1) + /sizeof(asn_DEF_ProtocolIE_ID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProtocolIE_ID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + ProtocolIE_ID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/ProtocolIE-ID.h b/e2sim/asn1c/ProtocolIE-ID.h new file mode 100644 index 0000000..e11b2d7 --- /dev/null +++ b/e2sim/asn1c/ProtocolIE-ID.h @@ -0,0 +1,140 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-CommonDataTypes" + * found in "e2ap-common-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _ProtocolIE_ID_H_ +#define _ProtocolIE_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ProtocolIE-ID */ +typedef long ProtocolIE_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ProtocolIE_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ID; +asn_struct_free_f ProtocolIE_ID_free; +asn_struct_print_f ProtocolIE_ID_print; +asn_constr_check_f ProtocolIE_ID_constraint; +ber_type_decoder_f ProtocolIE_ID_decode_ber; +der_type_encoder_f ProtocolIE_ID_encode_der; +xer_type_decoder_f ProtocolIE_ID_decode_xer; +xer_type_encoder_f ProtocolIE_ID_encode_xer; +jer_type_encoder_f ProtocolIE_ID_encode_jer; +per_type_decoder_f ProtocolIE_ID_decode_uper; +per_type_encoder_f ProtocolIE_ID_encode_uper; +per_type_decoder_f ProtocolIE_ID_decode_aper; +per_type_encoder_f ProtocolIE_ID_encode_aper; +#define ProtocolIE_ID_id_Cause ((ProtocolIE_ID_t)1) +#define ProtocolIE_ID_id_CriticalityDiagnostics ((ProtocolIE_ID_t)2) +#define ProtocolIE_ID_id_GlobalE2node_ID ((ProtocolIE_ID_t)3) +#define ProtocolIE_ID_id_GlobalRIC_ID ((ProtocolIE_ID_t)4) +#define ProtocolIE_ID_id_RANfunctionID ((ProtocolIE_ID_t)5) +#define ProtocolIE_ID_id_RANfunctionID_Item ((ProtocolIE_ID_t)6) +#define ProtocolIE_ID_id_RANfunctionIEcause_Item ((ProtocolIE_ID_t)7) +#define ProtocolIE_ID_id_RANfunction_Item ((ProtocolIE_ID_t)8) +#define ProtocolIE_ID_id_RANfunctionsAccepted ((ProtocolIE_ID_t)9) +#define ProtocolIE_ID_id_RANfunctionsAdded ((ProtocolIE_ID_t)10) +#define ProtocolIE_ID_id_RANfunctionsDeleted ((ProtocolIE_ID_t)11) +#define ProtocolIE_ID_id_RANfunctionsModified ((ProtocolIE_ID_t)12) +#define ProtocolIE_ID_id_RANfunctionsRejected ((ProtocolIE_ID_t)13) +#define ProtocolIE_ID_id_RICaction_Admitted_Item ((ProtocolIE_ID_t)14) +#define ProtocolIE_ID_id_RICactionID ((ProtocolIE_ID_t)15) +#define ProtocolIE_ID_id_RICaction_NotAdmitted_Item ((ProtocolIE_ID_t)16) +#define ProtocolIE_ID_id_RICactions_Admitted ((ProtocolIE_ID_t)17) +#define ProtocolIE_ID_id_RICactions_NotAdmitted ((ProtocolIE_ID_t)18) +#define ProtocolIE_ID_id_RICaction_ToBeSetup_Item ((ProtocolIE_ID_t)19) +#define ProtocolIE_ID_id_RICcallProcessID ((ProtocolIE_ID_t)20) +#define ProtocolIE_ID_id_RICcontrolAckRequest ((ProtocolIE_ID_t)21) +#define ProtocolIE_ID_id_RICcontrolHeader ((ProtocolIE_ID_t)22) +#define ProtocolIE_ID_id_RICcontrolMessage ((ProtocolIE_ID_t)23) +#define ProtocolIE_ID_id_RICcontrolStatus ((ProtocolIE_ID_t)24) +#define ProtocolIE_ID_id_RICindicationHeader ((ProtocolIE_ID_t)25) +#define ProtocolIE_ID_id_RICindicationMessage ((ProtocolIE_ID_t)26) +#define ProtocolIE_ID_id_RICindicationSN ((ProtocolIE_ID_t)27) +#define ProtocolIE_ID_id_RICindicationType ((ProtocolIE_ID_t)28) +#define ProtocolIE_ID_id_RICrequestID ((ProtocolIE_ID_t)29) +#define ProtocolIE_ID_id_RICsubscriptionDetails ((ProtocolIE_ID_t)30) +#define ProtocolIE_ID_id_TimeToWait ((ProtocolIE_ID_t)31) +#define ProtocolIE_ID_id_RICcontrolOutcome ((ProtocolIE_ID_t)32) +#define ProtocolIE_ID_id_E2nodeComponentConfigUpdate ((ProtocolIE_ID_t)33) +#define ProtocolIE_ID_id_E2nodeComponentConfigUpdate_Item ((ProtocolIE_ID_t)34) +#define ProtocolIE_ID_id_E2nodeComponentConfigUpdateAck ((ProtocolIE_ID_t)35) +#define ProtocolIE_ID_id_E2nodeComponentConfigUpdateAck_Item ((ProtocolIE_ID_t)36) +#define ProtocolIE_ID_id_E2connectionSetup ((ProtocolIE_ID_t)39) +#define ProtocolIE_ID_id_E2connectionSetupFailed ((ProtocolIE_ID_t)40) +#define ProtocolIE_ID_id_E2connectionSetupFailed_Item ((ProtocolIE_ID_t)41) +#define ProtocolIE_ID_id_E2connectionFailed_Item ((ProtocolIE_ID_t)42) +#define ProtocolIE_ID_id_E2connectionUpdate_Item ((ProtocolIE_ID_t)43) +#define ProtocolIE_ID_id_E2connectionUpdateAdd ((ProtocolIE_ID_t)44) +#define ProtocolIE_ID_id_E2connectionUpdateModify ((ProtocolIE_ID_t)45) +#define ProtocolIE_ID_id_E2connectionUpdateRemove ((ProtocolIE_ID_t)46) +#define ProtocolIE_ID_id_E2connectionUpdateRemove_Item ((ProtocolIE_ID_t)47) +#define ProtocolIE_ID_id_TNLinformation ((ProtocolIE_ID_t)48) +#define ProtocolIE_ID_id_TransactionID ((ProtocolIE_ID_t)49) +#define ProtocolIE_ID_id_E2nodeComponentConfigAddition ((ProtocolIE_ID_t)50) +#define ProtocolIE_ID_id_E2nodeComponentConfigAddition_Item ((ProtocolIE_ID_t)51) +#define ProtocolIE_ID_id_E2nodeComponentConfigAdditionAck ((ProtocolIE_ID_t)52) +#define ProtocolIE_ID_id_E2nodeComponentConfigAdditionAck_Item ((ProtocolIE_ID_t)53) +#define ProtocolIE_ID_id_E2nodeComponentConfigRemoval ((ProtocolIE_ID_t)54) +#define ProtocolIE_ID_id_E2nodeComponentConfigRemoval_Item ((ProtocolIE_ID_t)55) +#define ProtocolIE_ID_id_E2nodeComponentConfigRemovalAck ((ProtocolIE_ID_t)56) +#define ProtocolIE_ID_id_E2nodeComponentConfigRemovalAck_Item ((ProtocolIE_ID_t)57) +#define ProtocolIE_ID_id_E2nodeTNLassociationRemoval ((ProtocolIE_ID_t)58) +#define ProtocolIE_ID_id_E2nodeTNLassociationRemoval_Item ((ProtocolIE_ID_t)59) +#define ProtocolIE_ID_id_RICsubscriptionToBeRemoved ((ProtocolIE_ID_t)60) +#define ProtocolIE_ID_id_RICsubscription_withCause_Item ((ProtocolIE_ID_t)61) +#define ProtocolIE_ID_id_RICsubscriptionStartTime ((ProtocolIE_ID_t)62) +#define ProtocolIE_ID_id_RICsubscriptionEndTime ((ProtocolIE_ID_t)63) +#define ProtocolIE_ID_id_RICeventTriggerDefinitionToBeModified ((ProtocolIE_ID_t)64) +#define ProtocolIE_ID_id_RICactionsToBeRemovedForModification_List ((ProtocolIE_ID_t)65) +#define ProtocolIE_ID_id_RICaction_ToBeRemovedForModification_Item ((ProtocolIE_ID_t)66) +#define ProtocolIE_ID_id_RICactionsToBeModifiedForModification_List ((ProtocolIE_ID_t)67) +#define ProtocolIE_ID_id_RICaction_ToBeModifiedForModification_Item ((ProtocolIE_ID_t)68) +#define ProtocolIE_ID_id_RICactionsToBeAddedForModification_List ((ProtocolIE_ID_t)69) +#define ProtocolIE_ID_id_RICaction_ToBeAddedForModification_Item ((ProtocolIE_ID_t)70) +#define ProtocolIE_ID_id_RICactionsRemovedForModification_List ((ProtocolIE_ID_t)71) +#define ProtocolIE_ID_id_RICaction_RemovedForModification_Item ((ProtocolIE_ID_t)72) +#define ProtocolIE_ID_id_RICactionsFailedToBeRemovedForModification_List ((ProtocolIE_ID_t)73) +#define ProtocolIE_ID_id_RICaction_FailedToBeRemovedForModification_Item ((ProtocolIE_ID_t)74) +#define ProtocolIE_ID_id_RICactionsModifiedForModification_List ((ProtocolIE_ID_t)75) +#define ProtocolIE_ID_id_RICaction_ModifiedForModification_Item ((ProtocolIE_ID_t)76) +#define ProtocolIE_ID_id_RICactionsFailedToBeModifiedForModification_List ((ProtocolIE_ID_t)77) +#define ProtocolIE_ID_id_RICaction_FailedToBeModifiedForModification_Item ((ProtocolIE_ID_t)78) +#define ProtocolIE_ID_id_RICactionsAddedForModification_List ((ProtocolIE_ID_t)79) +#define ProtocolIE_ID_id_RICaction_AddedForModification_Item ((ProtocolIE_ID_t)80) +#define ProtocolIE_ID_id_RICactionsFailedToBeAddedForModification_List ((ProtocolIE_ID_t)81) +#define ProtocolIE_ID_id_RICaction_FailedToBeAddedForModification_Item ((ProtocolIE_ID_t)82) +#define ProtocolIE_ID_id_RICactionsRequiredToBeModified_List ((ProtocolIE_ID_t)83) +#define ProtocolIE_ID_id_RICaction_RequiredToBeModified_Item ((ProtocolIE_ID_t)84) +#define ProtocolIE_ID_id_RICactionsRequiredToBeRemoved_List ((ProtocolIE_ID_t)85) +#define ProtocolIE_ID_id_RICaction_RequiredToBeRemoved_Item ((ProtocolIE_ID_t)86) +#define ProtocolIE_ID_id_RICactionsConfirmedForModification_List ((ProtocolIE_ID_t)87) +#define ProtocolIE_ID_id_RICaction_ConfirmedForModification_Item ((ProtocolIE_ID_t)88) +#define ProtocolIE_ID_id_RICactionsRefusedToBeModified_List ((ProtocolIE_ID_t)89) +#define ProtocolIE_ID_id_RICaction_RefusedToBeModified_Item ((ProtocolIE_ID_t)90) +#define ProtocolIE_ID_id_RICactionsConfirmedForRemoval_List ((ProtocolIE_ID_t)91) +#define ProtocolIE_ID_id_RICaction_ConfirmedForRemoval_Item ((ProtocolIE_ID_t)92) +#define ProtocolIE_ID_id_RICactionsRefusedToBeRemoved_List ((ProtocolIE_ID_t)93) +#define ProtocolIE_ID_id_RICaction_RefusedToBeRemoved_Item ((ProtocolIE_ID_t)94) +#define ProtocolIE_ID_id_RICqueryHeader ((ProtocolIE_ID_t)95) +#define ProtocolIE_ID_id_RICqueryDefinition ((ProtocolIE_ID_t)96) +#define ProtocolIE_ID_id_RICqueryOutcome ((ProtocolIE_ID_t)97) + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtocolIE_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/ProtocolIE-SingleContainer.c b/e2sim/asn1c/ProtocolIE-SingleContainer.c new file mode 100644 index 0000000..c38c36d --- /dev/null +++ b/e2sim/asn1c/ProtocolIE-SingleContainer.c @@ -0,0 +1,1001 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-Containers" + * found in "e2ap-container-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "ProtocolIE-SingleContainer.h" + +/* + * This type is implemented using RICaction_ToBeSetup_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using RICaction_Admitted_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * 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 RICaction_ToBeRemovedForModification_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using RICaction_ToBeModifiedForModification_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using RICaction_ToBeAddedForModification_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using RICaction_RemovedForModification_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using RICaction_FailedToBeRemovedForModification_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using RICaction_ModifiedForModification_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using RICaction_FailedToBeModifiedForModification_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using RICaction_AddedForModification_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using RICaction_FailedToBeAddedForModification_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using RICaction_RequiredToBeModified_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using RICaction_RequiredToBeRemoved_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using RICaction_ConfirmedForModification_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using RICaction_RefusedToBeModified_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using RICaction_ConfirmedForRemoval_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using RICaction_RefusedToBeRemoved_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. + */ +/* + * This type is implemented using RANfunctionID_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using RANfunctionIDcause_ItemIEs, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_88P0_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P0 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_88P0_tags_1, + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P0_tags_1) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P0_tags_1[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_88P0_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P0_tags_1) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P0_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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_SingleContainer_88P1_tags_2[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P1 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_88P1_tags_2, + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P1_tags_2) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P1_tags_2[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_88P1_tags_2, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P1_tags_2) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P1_tags_2[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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_SingleContainer_88P2_tags_3[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P2 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_88P2_tags_3, + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P2_tags_3) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P2_tags_3[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_88P2_tags_3, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P2_tags_3) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P2_tags_3[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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_SingleContainer_88P3_tags_4[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P3 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_88P3_tags_4, + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P3_tags_4) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P3_tags_4[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_88P3_tags_4, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P3_tags_4) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P3_tags_4[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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_SingleContainer_88P4_tags_5[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P4 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_88P4_tags_5, + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P4_tags_5) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P4_tags_5[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_88P4_tags_5, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P4_tags_5) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P4_tags_5[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_ToBeRemovedForModification_ItemIEs_17, + 3, /* Elements count */ + &asn_SPC_RICaction_ToBeRemovedForModification_ItemIEs_specs_17 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_88P5_tags_6[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P5 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_88P5_tags_6, + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P5_tags_6) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P5_tags_6[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_88P5_tags_6, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P5_tags_6) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P5_tags_6[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_ToBeModifiedForModification_ItemIEs_21, + 3, /* Elements count */ + &asn_SPC_RICaction_ToBeModifiedForModification_ItemIEs_specs_21 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_88P6_tags_7[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P6 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_88P6_tags_7, + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P6_tags_7) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P6_tags_7[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_88P6_tags_7, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P6_tags_7) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P6_tags_7[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_ToBeAddedForModification_ItemIEs_25, + 3, /* Elements count */ + &asn_SPC_RICaction_ToBeAddedForModification_ItemIEs_specs_25 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_88P7_tags_8[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P7 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_88P7_tags_8, + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P7_tags_8) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P7_tags_8[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_88P7_tags_8, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P7_tags_8) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P7_tags_8[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_RemovedForModification_ItemIEs_29, + 3, /* Elements count */ + &asn_SPC_RICaction_RemovedForModification_ItemIEs_specs_29 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_88P8_tags_9[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P8 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_88P8_tags_9, + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P8_tags_9) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P8_tags_9[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_88P8_tags_9, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P8_tags_9) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P8_tags_9[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_FailedToBeRemovedForModification_ItemIEs_33, + 3, /* Elements count */ + &asn_SPC_RICaction_FailedToBeRemovedForModification_ItemIEs_specs_33 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_88P9_tags_10[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P9 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_88P9_tags_10, + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P9_tags_10) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P9_tags_10[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_88P9_tags_10, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P9_tags_10) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P9_tags_10[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_ModifiedForModification_ItemIEs_37, + 3, /* Elements count */ + &asn_SPC_RICaction_ModifiedForModification_ItemIEs_specs_37 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_88P10_tags_11[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P10 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_88P10_tags_11, + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P10_tags_11) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P10_tags_11[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_88P10_tags_11, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P10_tags_11) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P10_tags_11[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_FailedToBeModifiedForModification_ItemIEs_41, + 3, /* Elements count */ + &asn_SPC_RICaction_FailedToBeModifiedForModification_ItemIEs_specs_41 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_88P11_tags_12[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P11 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_88P11_tags_12, + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P11_tags_12) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P11_tags_12[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_88P11_tags_12, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P11_tags_12) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P11_tags_12[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_AddedForModification_ItemIEs_45, + 3, /* Elements count */ + &asn_SPC_RICaction_AddedForModification_ItemIEs_specs_45 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_88P12_tags_13[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P12 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_88P12_tags_13, + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P12_tags_13) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P12_tags_13[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_88P12_tags_13, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P12_tags_13) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P12_tags_13[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_FailedToBeAddedForModification_ItemIEs_49, + 3, /* Elements count */ + &asn_SPC_RICaction_FailedToBeAddedForModification_ItemIEs_specs_49 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_88P13_tags_14[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P13 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_88P13_tags_14, + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P13_tags_14) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P13_tags_14[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_88P13_tags_14, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P13_tags_14) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P13_tags_14[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_RequiredToBeModified_ItemIEs_53, + 3, /* Elements count */ + &asn_SPC_RICaction_RequiredToBeModified_ItemIEs_specs_53 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_88P14_tags_15[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P14 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_88P14_tags_15, + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P14_tags_15) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P14_tags_15[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_88P14_tags_15, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P14_tags_15) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P14_tags_15[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_RequiredToBeRemoved_ItemIEs_57, + 3, /* Elements count */ + &asn_SPC_RICaction_RequiredToBeRemoved_ItemIEs_specs_57 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_88P15_tags_16[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P15 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_88P15_tags_16, + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P15_tags_16) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P15_tags_16[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_88P15_tags_16, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P15_tags_16) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P15_tags_16[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_ConfirmedForModification_ItemIEs_61, + 3, /* Elements count */ + &asn_SPC_RICaction_ConfirmedForModification_ItemIEs_specs_61 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_88P16_tags_17[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P16 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_88P16_tags_17, + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P16_tags_17) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P16_tags_17[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_88P16_tags_17, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P16_tags_17) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P16_tags_17[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_RefusedToBeModified_ItemIEs_65, + 3, /* Elements count */ + &asn_SPC_RICaction_RefusedToBeModified_ItemIEs_specs_65 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_88P17_tags_18[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P17 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_88P17_tags_18, + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P17_tags_18) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P17_tags_18[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_88P17_tags_18, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P17_tags_18) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P17_tags_18[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_ConfirmedForRemoval_ItemIEs_69, + 3, /* Elements count */ + &asn_SPC_RICaction_ConfirmedForRemoval_ItemIEs_specs_69 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_88P18_tags_19[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P18 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_88P18_tags_19, + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P18_tags_19) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P18_tags_19[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_88P18_tags_19, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P18_tags_19) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P18_tags_19[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_RefusedToBeRemoved_ItemIEs_73, + 3, /* Elements count */ + &asn_SPC_RICaction_RefusedToBeRemoved_ItemIEs_specs_73 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_88P19_tags_20[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P19 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_88P19_tags_20, + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P19_tags_20) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P19_tags_20[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_88P19_tags_20, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P19_tags_20) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P19_tags_20[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2connectionUpdate_ItemIEs_77, + 3, /* Elements count */ + &asn_SPC_E2connectionUpdate_ItemIEs_specs_77 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_88P20_tags_21[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P20 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_88P20_tags_21, + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P20_tags_21) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P20_tags_21[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_88P20_tags_21, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P20_tags_21) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P20_tags_21[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2connectionUpdateRemove_ItemIEs_81, + 3, /* Elements count */ + &asn_SPC_E2connectionUpdateRemove_ItemIEs_specs_81 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_88P21_tags_22[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P21 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_88P21_tags_22, + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P21_tags_22) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P21_tags_22[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_88P21_tags_22, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P21_tags_22) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P21_tags_22[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2connectionSetupFailed_ItemIEs_85, + 3, /* Elements count */ + &asn_SPC_E2connectionSetupFailed_ItemIEs_specs_85 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_88P22_tags_23[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P22 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_88P22_tags_23, + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P22_tags_23) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P22_tags_23[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_88P22_tags_23, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P22_tags_23) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P22_tags_23[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeComponentConfigAddition_ItemIEs_89, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigAddition_ItemIEs_specs_89 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_88P23_tags_24[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P23 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_88P23_tags_24, + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P23_tags_24) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P23_tags_24[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_88P23_tags_24, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P23_tags_24) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P23_tags_24[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeComponentConfigUpdate_ItemIEs_93, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigUpdate_ItemIEs_specs_93 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_88P24_tags_25[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P24 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_88P24_tags_25, + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P24_tags_25) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P24_tags_25[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_88P24_tags_25, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P24_tags_25) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P24_tags_25[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeComponentConfigRemoval_ItemIEs_97, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigRemoval_ItemIEs_specs_97 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_88P25_tags_26[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P25 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_88P25_tags_26, + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P25_tags_26) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P25_tags_26[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_88P25_tags_26, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P25_tags_26) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P25_tags_26[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeTNLassociationRemoval_ItemIEs_101, + 3, /* Elements count */ + &asn_SPC_E2nodeTNLassociationRemoval_ItemIEs_specs_101 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_88P26_tags_27[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P26 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_88P26_tags_27, + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P26_tags_27) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P26_tags_27[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_88P26_tags_27, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P26_tags_27) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P26_tags_27[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeComponentConfigAdditionAck_ItemIEs_105, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigAdditionAck_ItemIEs_specs_105 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_88P27_tags_28[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P27 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_88P27_tags_28, + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P27_tags_28) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P27_tags_28[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_88P27_tags_28, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P27_tags_28) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P27_tags_28[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeComponentConfigUpdateAck_ItemIEs_109, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigUpdateAck_ItemIEs_specs_109 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_88P28_tags_29[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P28 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_88P28_tags_29, + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P28_tags_29) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P28_tags_29[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_88P28_tags_29, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P28_tags_29) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P28_tags_29[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_E2nodeComponentConfigRemovalAck_ItemIEs_113, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigRemovalAck_ItemIEs_specs_113 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_88P29_tags_30[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P29 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_88P29_tags_30, + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P29_tags_30) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P29_tags_30[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_88P29_tags_30, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P29_tags_30) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P29_tags_30[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RANfunction_ItemIEs_117, + 3, /* Elements count */ + &asn_SPC_RANfunction_ItemIEs_specs_117 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_88P30_tags_31[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P30 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_88P30_tags_31, + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P30_tags_31) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P30_tags_31[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_88P30_tags_31, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P30_tags_31) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P30_tags_31[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RANfunctionID_ItemIEs_121, + 3, /* Elements count */ + &asn_SPC_RANfunctionID_ItemIEs_specs_121 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_88P31_tags_32[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P31 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_88P31_tags_32, + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P31_tags_32) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P31_tags_32[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_88P31_tags_32, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_88P31_tags_32) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_88P31_tags_32[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RANfunctionIDcause_ItemIEs_125, + 3, /* Elements count */ + &asn_SPC_RANfunctionIDcause_ItemIEs_specs_125 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/ProtocolIE-SingleContainer.h b/e2sim/asn1c/ProtocolIE-SingleContainer.h new file mode 100644 index 0000000..3840d5a --- /dev/null +++ b/e2sim/asn1c/ProtocolIE-SingleContainer.h @@ -0,0 +1,478 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-Containers" + * found in "e2ap-container-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _ProtocolIE_SingleContainer_H_ +#define _ProtocolIE_SingleContainer_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Field.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ProtocolIE-SingleContainer */ +typedef RICaction_ToBeSetup_ItemIEs_t ProtocolIE_SingleContainer_88P0_t; +typedef RICaction_Admitted_ItemIEs_t ProtocolIE_SingleContainer_88P1_t; +typedef RICaction_NotAdmitted_ItemIEs_t ProtocolIE_SingleContainer_88P2_t; +typedef RICsubscription_withCause_ItemIEs_t ProtocolIE_SingleContainer_88P3_t; +typedef RICaction_ToBeRemovedForModification_ItemIEs_t ProtocolIE_SingleContainer_88P4_t; +typedef RICaction_ToBeModifiedForModification_ItemIEs_t ProtocolIE_SingleContainer_88P5_t; +typedef RICaction_ToBeAddedForModification_ItemIEs_t ProtocolIE_SingleContainer_88P6_t; +typedef RICaction_RemovedForModification_ItemIEs_t ProtocolIE_SingleContainer_88P7_t; +typedef RICaction_FailedToBeRemovedForModification_ItemIEs_t ProtocolIE_SingleContainer_88P8_t; +typedef RICaction_ModifiedForModification_ItemIEs_t ProtocolIE_SingleContainer_88P9_t; +typedef RICaction_FailedToBeModifiedForModification_ItemIEs_t ProtocolIE_SingleContainer_88P10_t; +typedef RICaction_AddedForModification_ItemIEs_t ProtocolIE_SingleContainer_88P11_t; +typedef RICaction_FailedToBeAddedForModification_ItemIEs_t ProtocolIE_SingleContainer_88P12_t; +typedef RICaction_RequiredToBeModified_ItemIEs_t ProtocolIE_SingleContainer_88P13_t; +typedef RICaction_RequiredToBeRemoved_ItemIEs_t ProtocolIE_SingleContainer_88P14_t; +typedef RICaction_ConfirmedForModification_ItemIEs_t ProtocolIE_SingleContainer_88P15_t; +typedef RICaction_RefusedToBeModified_ItemIEs_t ProtocolIE_SingleContainer_88P16_t; +typedef RICaction_ConfirmedForRemoval_ItemIEs_t ProtocolIE_SingleContainer_88P17_t; +typedef RICaction_RefusedToBeRemoved_ItemIEs_t ProtocolIE_SingleContainer_88P18_t; +typedef E2connectionUpdate_ItemIEs_t ProtocolIE_SingleContainer_88P19_t; +typedef E2connectionUpdateRemove_ItemIEs_t ProtocolIE_SingleContainer_88P20_t; +typedef E2connectionSetupFailed_ItemIEs_t ProtocolIE_SingleContainer_88P21_t; +typedef E2nodeComponentConfigAddition_ItemIEs_t ProtocolIE_SingleContainer_88P22_t; +typedef E2nodeComponentConfigUpdate_ItemIEs_t ProtocolIE_SingleContainer_88P23_t; +typedef E2nodeComponentConfigRemoval_ItemIEs_t ProtocolIE_SingleContainer_88P24_t; +typedef E2nodeTNLassociationRemoval_ItemIEs_t ProtocolIE_SingleContainer_88P25_t; +typedef E2nodeComponentConfigAdditionAck_ItemIEs_t ProtocolIE_SingleContainer_88P26_t; +typedef E2nodeComponentConfigUpdateAck_ItemIEs_t ProtocolIE_SingleContainer_88P27_t; +typedef E2nodeComponentConfigRemovalAck_ItemIEs_t ProtocolIE_SingleContainer_88P28_t; +typedef RANfunction_ItemIEs_t ProtocolIE_SingleContainer_88P29_t; +typedef RANfunctionID_ItemIEs_t ProtocolIE_SingleContainer_88P30_t; +typedef RANfunctionIDcause_ItemIEs_t ProtocolIE_SingleContainer_88P31_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P0; +asn_struct_free_f ProtocolIE_SingleContainer_88P0_free; +asn_struct_print_f ProtocolIE_SingleContainer_88P0_print; +asn_constr_check_f ProtocolIE_SingleContainer_88P0_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_88P0_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_88P0_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_88P0_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_88P0_encode_xer; +jer_type_encoder_f ProtocolIE_SingleContainer_88P0_encode_jer; +per_type_decoder_f ProtocolIE_SingleContainer_88P0_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_88P0_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_88P0_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_88P0_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P1; +asn_struct_free_f ProtocolIE_SingleContainer_88P1_free; +asn_struct_print_f ProtocolIE_SingleContainer_88P1_print; +asn_constr_check_f ProtocolIE_SingleContainer_88P1_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_88P1_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_88P1_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_88P1_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_88P1_encode_xer; +jer_type_encoder_f ProtocolIE_SingleContainer_88P1_encode_jer; +per_type_decoder_f ProtocolIE_SingleContainer_88P1_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_88P1_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_88P1_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_88P1_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P2; +asn_struct_free_f ProtocolIE_SingleContainer_88P2_free; +asn_struct_print_f ProtocolIE_SingleContainer_88P2_print; +asn_constr_check_f ProtocolIE_SingleContainer_88P2_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_88P2_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_88P2_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_88P2_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_88P2_encode_xer; +jer_type_encoder_f ProtocolIE_SingleContainer_88P2_encode_jer; +per_type_decoder_f ProtocolIE_SingleContainer_88P2_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_88P2_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_88P2_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_88P2_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P3; +asn_struct_free_f ProtocolIE_SingleContainer_88P3_free; +asn_struct_print_f ProtocolIE_SingleContainer_88P3_print; +asn_constr_check_f ProtocolIE_SingleContainer_88P3_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_88P3_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_88P3_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_88P3_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_88P3_encode_xer; +jer_type_encoder_f ProtocolIE_SingleContainer_88P3_encode_jer; +per_type_decoder_f ProtocolIE_SingleContainer_88P3_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_88P3_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_88P3_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_88P3_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P4; +asn_struct_free_f ProtocolIE_SingleContainer_88P4_free; +asn_struct_print_f ProtocolIE_SingleContainer_88P4_print; +asn_constr_check_f ProtocolIE_SingleContainer_88P4_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_88P4_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_88P4_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_88P4_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_88P4_encode_xer; +jer_type_encoder_f ProtocolIE_SingleContainer_88P4_encode_jer; +per_type_decoder_f ProtocolIE_SingleContainer_88P4_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_88P4_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_88P4_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_88P4_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P5; +asn_struct_free_f ProtocolIE_SingleContainer_88P5_free; +asn_struct_print_f ProtocolIE_SingleContainer_88P5_print; +asn_constr_check_f ProtocolIE_SingleContainer_88P5_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_88P5_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_88P5_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_88P5_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_88P5_encode_xer; +jer_type_encoder_f ProtocolIE_SingleContainer_88P5_encode_jer; +per_type_decoder_f ProtocolIE_SingleContainer_88P5_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_88P5_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_88P5_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_88P5_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P6; +asn_struct_free_f ProtocolIE_SingleContainer_88P6_free; +asn_struct_print_f ProtocolIE_SingleContainer_88P6_print; +asn_constr_check_f ProtocolIE_SingleContainer_88P6_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_88P6_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_88P6_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_88P6_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_88P6_encode_xer; +jer_type_encoder_f ProtocolIE_SingleContainer_88P6_encode_jer; +per_type_decoder_f ProtocolIE_SingleContainer_88P6_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_88P6_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_88P6_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_88P6_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P7; +asn_struct_free_f ProtocolIE_SingleContainer_88P7_free; +asn_struct_print_f ProtocolIE_SingleContainer_88P7_print; +asn_constr_check_f ProtocolIE_SingleContainer_88P7_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_88P7_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_88P7_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_88P7_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_88P7_encode_xer; +jer_type_encoder_f ProtocolIE_SingleContainer_88P7_encode_jer; +per_type_decoder_f ProtocolIE_SingleContainer_88P7_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_88P7_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_88P7_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_88P7_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P8; +asn_struct_free_f ProtocolIE_SingleContainer_88P8_free; +asn_struct_print_f ProtocolIE_SingleContainer_88P8_print; +asn_constr_check_f ProtocolIE_SingleContainer_88P8_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_88P8_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_88P8_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_88P8_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_88P8_encode_xer; +jer_type_encoder_f ProtocolIE_SingleContainer_88P8_encode_jer; +per_type_decoder_f ProtocolIE_SingleContainer_88P8_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_88P8_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_88P8_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_88P8_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P9; +asn_struct_free_f ProtocolIE_SingleContainer_88P9_free; +asn_struct_print_f ProtocolIE_SingleContainer_88P9_print; +asn_constr_check_f ProtocolIE_SingleContainer_88P9_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_88P9_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_88P9_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_88P9_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_88P9_encode_xer; +jer_type_encoder_f ProtocolIE_SingleContainer_88P9_encode_jer; +per_type_decoder_f ProtocolIE_SingleContainer_88P9_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_88P9_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_88P9_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_88P9_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P10; +asn_struct_free_f ProtocolIE_SingleContainer_88P10_free; +asn_struct_print_f ProtocolIE_SingleContainer_88P10_print; +asn_constr_check_f ProtocolIE_SingleContainer_88P10_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_88P10_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_88P10_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_88P10_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_88P10_encode_xer; +jer_type_encoder_f ProtocolIE_SingleContainer_88P10_encode_jer; +per_type_decoder_f ProtocolIE_SingleContainer_88P10_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_88P10_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_88P10_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_88P10_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P11; +asn_struct_free_f ProtocolIE_SingleContainer_88P11_free; +asn_struct_print_f ProtocolIE_SingleContainer_88P11_print; +asn_constr_check_f ProtocolIE_SingleContainer_88P11_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_88P11_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_88P11_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_88P11_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_88P11_encode_xer; +jer_type_encoder_f ProtocolIE_SingleContainer_88P11_encode_jer; +per_type_decoder_f ProtocolIE_SingleContainer_88P11_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_88P11_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_88P11_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_88P11_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P12; +asn_struct_free_f ProtocolIE_SingleContainer_88P12_free; +asn_struct_print_f ProtocolIE_SingleContainer_88P12_print; +asn_constr_check_f ProtocolIE_SingleContainer_88P12_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_88P12_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_88P12_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_88P12_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_88P12_encode_xer; +jer_type_encoder_f ProtocolIE_SingleContainer_88P12_encode_jer; +per_type_decoder_f ProtocolIE_SingleContainer_88P12_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_88P12_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_88P12_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_88P12_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P13; +asn_struct_free_f ProtocolIE_SingleContainer_88P13_free; +asn_struct_print_f ProtocolIE_SingleContainer_88P13_print; +asn_constr_check_f ProtocolIE_SingleContainer_88P13_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_88P13_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_88P13_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_88P13_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_88P13_encode_xer; +jer_type_encoder_f ProtocolIE_SingleContainer_88P13_encode_jer; +per_type_decoder_f ProtocolIE_SingleContainer_88P13_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_88P13_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_88P13_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_88P13_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P14; +asn_struct_free_f ProtocolIE_SingleContainer_88P14_free; +asn_struct_print_f ProtocolIE_SingleContainer_88P14_print; +asn_constr_check_f ProtocolIE_SingleContainer_88P14_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_88P14_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_88P14_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_88P14_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_88P14_encode_xer; +jer_type_encoder_f ProtocolIE_SingleContainer_88P14_encode_jer; +per_type_decoder_f ProtocolIE_SingleContainer_88P14_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_88P14_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_88P14_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_88P14_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P15; +asn_struct_free_f ProtocolIE_SingleContainer_88P15_free; +asn_struct_print_f ProtocolIE_SingleContainer_88P15_print; +asn_constr_check_f ProtocolIE_SingleContainer_88P15_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_88P15_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_88P15_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_88P15_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_88P15_encode_xer; +jer_type_encoder_f ProtocolIE_SingleContainer_88P15_encode_jer; +per_type_decoder_f ProtocolIE_SingleContainer_88P15_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_88P15_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_88P15_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_88P15_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P16; +asn_struct_free_f ProtocolIE_SingleContainer_88P16_free; +asn_struct_print_f ProtocolIE_SingleContainer_88P16_print; +asn_constr_check_f ProtocolIE_SingleContainer_88P16_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_88P16_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_88P16_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_88P16_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_88P16_encode_xer; +jer_type_encoder_f ProtocolIE_SingleContainer_88P16_encode_jer; +per_type_decoder_f ProtocolIE_SingleContainer_88P16_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_88P16_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_88P16_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_88P16_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P17; +asn_struct_free_f ProtocolIE_SingleContainer_88P17_free; +asn_struct_print_f ProtocolIE_SingleContainer_88P17_print; +asn_constr_check_f ProtocolIE_SingleContainer_88P17_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_88P17_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_88P17_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_88P17_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_88P17_encode_xer; +jer_type_encoder_f ProtocolIE_SingleContainer_88P17_encode_jer; +per_type_decoder_f ProtocolIE_SingleContainer_88P17_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_88P17_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_88P17_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_88P17_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P18; +asn_struct_free_f ProtocolIE_SingleContainer_88P18_free; +asn_struct_print_f ProtocolIE_SingleContainer_88P18_print; +asn_constr_check_f ProtocolIE_SingleContainer_88P18_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_88P18_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_88P18_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_88P18_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_88P18_encode_xer; +jer_type_encoder_f ProtocolIE_SingleContainer_88P18_encode_jer; +per_type_decoder_f ProtocolIE_SingleContainer_88P18_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_88P18_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_88P18_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_88P18_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P19; +asn_struct_free_f ProtocolIE_SingleContainer_88P19_free; +asn_struct_print_f ProtocolIE_SingleContainer_88P19_print; +asn_constr_check_f ProtocolIE_SingleContainer_88P19_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_88P19_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_88P19_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_88P19_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_88P19_encode_xer; +jer_type_encoder_f ProtocolIE_SingleContainer_88P19_encode_jer; +per_type_decoder_f ProtocolIE_SingleContainer_88P19_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_88P19_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_88P19_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_88P19_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P20; +asn_struct_free_f ProtocolIE_SingleContainer_88P20_free; +asn_struct_print_f ProtocolIE_SingleContainer_88P20_print; +asn_constr_check_f ProtocolIE_SingleContainer_88P20_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_88P20_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_88P20_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_88P20_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_88P20_encode_xer; +jer_type_encoder_f ProtocolIE_SingleContainer_88P20_encode_jer; +per_type_decoder_f ProtocolIE_SingleContainer_88P20_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_88P20_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_88P20_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_88P20_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P21; +asn_struct_free_f ProtocolIE_SingleContainer_88P21_free; +asn_struct_print_f ProtocolIE_SingleContainer_88P21_print; +asn_constr_check_f ProtocolIE_SingleContainer_88P21_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_88P21_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_88P21_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_88P21_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_88P21_encode_xer; +jer_type_encoder_f ProtocolIE_SingleContainer_88P21_encode_jer; +per_type_decoder_f ProtocolIE_SingleContainer_88P21_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_88P21_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_88P21_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_88P21_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P22; +asn_struct_free_f ProtocolIE_SingleContainer_88P22_free; +asn_struct_print_f ProtocolIE_SingleContainer_88P22_print; +asn_constr_check_f ProtocolIE_SingleContainer_88P22_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_88P22_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_88P22_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_88P22_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_88P22_encode_xer; +jer_type_encoder_f ProtocolIE_SingleContainer_88P22_encode_jer; +per_type_decoder_f ProtocolIE_SingleContainer_88P22_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_88P22_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_88P22_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_88P22_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P23; +asn_struct_free_f ProtocolIE_SingleContainer_88P23_free; +asn_struct_print_f ProtocolIE_SingleContainer_88P23_print; +asn_constr_check_f ProtocolIE_SingleContainer_88P23_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_88P23_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_88P23_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_88P23_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_88P23_encode_xer; +jer_type_encoder_f ProtocolIE_SingleContainer_88P23_encode_jer; +per_type_decoder_f ProtocolIE_SingleContainer_88P23_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_88P23_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_88P23_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_88P23_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P24; +asn_struct_free_f ProtocolIE_SingleContainer_88P24_free; +asn_struct_print_f ProtocolIE_SingleContainer_88P24_print; +asn_constr_check_f ProtocolIE_SingleContainer_88P24_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_88P24_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_88P24_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_88P24_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_88P24_encode_xer; +jer_type_encoder_f ProtocolIE_SingleContainer_88P24_encode_jer; +per_type_decoder_f ProtocolIE_SingleContainer_88P24_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_88P24_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_88P24_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_88P24_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P25; +asn_struct_free_f ProtocolIE_SingleContainer_88P25_free; +asn_struct_print_f ProtocolIE_SingleContainer_88P25_print; +asn_constr_check_f ProtocolIE_SingleContainer_88P25_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_88P25_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_88P25_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_88P25_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_88P25_encode_xer; +jer_type_encoder_f ProtocolIE_SingleContainer_88P25_encode_jer; +per_type_decoder_f ProtocolIE_SingleContainer_88P25_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_88P25_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_88P25_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_88P25_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P26; +asn_struct_free_f ProtocolIE_SingleContainer_88P26_free; +asn_struct_print_f ProtocolIE_SingleContainer_88P26_print; +asn_constr_check_f ProtocolIE_SingleContainer_88P26_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_88P26_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_88P26_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_88P26_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_88P26_encode_xer; +jer_type_encoder_f ProtocolIE_SingleContainer_88P26_encode_jer; +per_type_decoder_f ProtocolIE_SingleContainer_88P26_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_88P26_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_88P26_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_88P26_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P27; +asn_struct_free_f ProtocolIE_SingleContainer_88P27_free; +asn_struct_print_f ProtocolIE_SingleContainer_88P27_print; +asn_constr_check_f ProtocolIE_SingleContainer_88P27_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_88P27_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_88P27_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_88P27_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_88P27_encode_xer; +jer_type_encoder_f ProtocolIE_SingleContainer_88P27_encode_jer; +per_type_decoder_f ProtocolIE_SingleContainer_88P27_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_88P27_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_88P27_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_88P27_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P28; +asn_struct_free_f ProtocolIE_SingleContainer_88P28_free; +asn_struct_print_f ProtocolIE_SingleContainer_88P28_print; +asn_constr_check_f ProtocolIE_SingleContainer_88P28_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_88P28_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_88P28_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_88P28_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_88P28_encode_xer; +jer_type_encoder_f ProtocolIE_SingleContainer_88P28_encode_jer; +per_type_decoder_f ProtocolIE_SingleContainer_88P28_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_88P28_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_88P28_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_88P28_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P29; +asn_struct_free_f ProtocolIE_SingleContainer_88P29_free; +asn_struct_print_f ProtocolIE_SingleContainer_88P29_print; +asn_constr_check_f ProtocolIE_SingleContainer_88P29_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_88P29_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_88P29_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_88P29_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_88P29_encode_xer; +jer_type_encoder_f ProtocolIE_SingleContainer_88P29_encode_jer; +per_type_decoder_f ProtocolIE_SingleContainer_88P29_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_88P29_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_88P29_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_88P29_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P30; +asn_struct_free_f ProtocolIE_SingleContainer_88P30_free; +asn_struct_print_f ProtocolIE_SingleContainer_88P30_print; +asn_constr_check_f ProtocolIE_SingleContainer_88P30_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_88P30_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_88P30_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_88P30_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_88P30_encode_xer; +jer_type_encoder_f ProtocolIE_SingleContainer_88P30_encode_jer; +per_type_decoder_f ProtocolIE_SingleContainer_88P30_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_88P30_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_88P30_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_88P30_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_88P31; +asn_struct_free_f ProtocolIE_SingleContainer_88P31_free; +asn_struct_print_f ProtocolIE_SingleContainer_88P31_print; +asn_constr_check_f ProtocolIE_SingleContainer_88P31_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_88P31_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_88P31_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_88P31_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_88P31_encode_xer; +jer_type_encoder_f ProtocolIE_SingleContainer_88P31_encode_jer; +per_type_decoder_f ProtocolIE_SingleContainer_88P31_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_88P31_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_88P31_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_88P31_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtocolIE_SingleContainer_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/QCI.c b/e2sim/asn1c/QCI.c new file mode 100644 index 0000000..cd94330 --- /dev/null +++ b/e2sim/asn1c/QCI.c @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "QCI.h" + +int +QCI_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 >= 0L && value <= 255L)) { + /* 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. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_QCI_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_QCI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_QCI = { + "QCI", + "QCI", + &asn_OP_NativeInteger, + asn_DEF_QCI_tags_1, + sizeof(asn_DEF_QCI_tags_1) + /sizeof(asn_DEF_QCI_tags_1[0]), /* 1 */ + asn_DEF_QCI_tags_1, /* Same as above */ + sizeof(asn_DEF_QCI_tags_1) + /sizeof(asn_DEF_QCI_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_QCI_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + QCI_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/QCI.h b/e2sim/asn1c/QCI.h new file mode 100644 index 0000000..af0c8af --- /dev/null +++ b/e2sim/asn1c/QCI.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _QCI_H_ +#define _QCI_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* QCI */ +typedef long QCI_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_QCI_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_QCI; +asn_struct_free_f QCI_free; +asn_struct_print_f QCI_print; +asn_constr_check_f QCI_constraint; +ber_type_decoder_f QCI_decode_ber; +der_type_encoder_f QCI_encode_der; +xer_type_decoder_f QCI_decode_xer; +xer_type_encoder_f QCI_encode_xer; +jer_type_encoder_f QCI_encode_jer; +per_type_decoder_f QCI_decode_uper; +per_type_encoder_f QCI_encode_uper; +per_type_decoder_f QCI_decode_aper; +per_type_encoder_f QCI_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _QCI_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/QoSID.c b/e2sim/asn1c/QoSID.c new file mode 100644 index 0000000..4e7c94e --- /dev/null +++ b/e2sim/asn1c/QoSID.c @@ -0,0 +1,88 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "QoSID.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_QoSID_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_QoSID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct QoSID, choice.fiveGC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FiveQI, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "fiveGC" + }, + { ATF_NOFLAGS, 0, offsetof(struct QoSID, choice.ePC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_QCI, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ePC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_QoSID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fiveGC */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ePC */ +}; +static asn_CHOICE_specifics_t asn_SPC_QoSID_specs_1 = { + sizeof(struct QoSID), + offsetof(struct QoSID, _asn_ctx), + offsetof(struct QoSID, present), + sizeof(((struct QoSID *)0)->present), + asn_MAP_QoSID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_QoSID = { + "QoSID", + "QoSID", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_QoSID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_QoSID_1, + 2, /* Elements count */ + &asn_SPC_QoSID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/QoSID.h b/e2sim/asn1c/QoSID.h new file mode 100644 index 0000000..baec99f --- /dev/null +++ b/e2sim/asn1c/QoSID.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _QoSID_H_ +#define _QoSID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "FiveQI.h" +#include "QCI.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum QoSID_PR { + QoSID_PR_NOTHING, /* No components present */ + QoSID_PR_fiveGC, + QoSID_PR_ePC + /* Extensions may appear below */ + +} QoSID_PR; + +/* QoSID */ +typedef struct QoSID { + QoSID_PR present; + union QoSID_u { + FiveQI_t fiveGC; + QCI_t ePC; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} QoSID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_QoSID; + +#ifdef __cplusplus +} +#endif + +#endif /* _QoSID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/QosFlowIdentifier.c b/e2sim/asn1c/QosFlowIdentifier.c new file mode 100644 index 0000000..0071aa4 --- /dev/null +++ b/e2sim/asn1c/QosFlowIdentifier.c @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "QosFlowIdentifier.h" + +int +QosFlowIdentifier_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 >= 0L && value <= 63L)) { + /* 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. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_QosFlowIdentifier_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 6, 6, 0, 63 } /* (0..63,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_QosFlowIdentifier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_QosFlowIdentifier = { + "QosFlowIdentifier", + "QosFlowIdentifier", + &asn_OP_NativeInteger, + asn_DEF_QosFlowIdentifier_tags_1, + sizeof(asn_DEF_QosFlowIdentifier_tags_1) + /sizeof(asn_DEF_QosFlowIdentifier_tags_1[0]), /* 1 */ + asn_DEF_QosFlowIdentifier_tags_1, /* Same as above */ + sizeof(asn_DEF_QosFlowIdentifier_tags_1) + /sizeof(asn_DEF_QosFlowIdentifier_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_QosFlowIdentifier_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + QosFlowIdentifier_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/QosFlowIdentifier.h b/e2sim/asn1c/QosFlowIdentifier.h new file mode 100644 index 0000000..baeb6d9 --- /dev/null +++ b/e2sim/asn1c/QosFlowIdentifier.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _QosFlowIdentifier_H_ +#define _QosFlowIdentifier_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* QosFlowIdentifier */ +typedef long QosFlowIdentifier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_QosFlowIdentifier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_QosFlowIdentifier; +asn_struct_free_f QosFlowIdentifier_free; +asn_struct_print_f QosFlowIdentifier_print; +asn_constr_check_f QosFlowIdentifier_constraint; +ber_type_decoder_f QosFlowIdentifier_decode_ber; +der_type_encoder_f QosFlowIdentifier_encode_der; +xer_type_decoder_f QosFlowIdentifier_decode_xer; +xer_type_encoder_f QosFlowIdentifier_encode_xer; +jer_type_encoder_f QosFlowIdentifier_encode_jer; +per_type_decoder_f QosFlowIdentifier_decode_uper; +per_type_encoder_f QosFlowIdentifier_encode_uper; +per_type_decoder_f QosFlowIdentifier_decode_aper; +per_type_encoder_f QosFlowIdentifier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _QosFlowIdentifier_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RANUEID.c b/e2sim/asn1c/RANUEID.c new file mode 100644 index 0000000..bcc28d3 --- /dev/null +++ b/e2sim/asn1c/RANUEID.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RANUEID.h" + +int +RANUEID_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; + + 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 == 8UL)) { + /* 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 OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RANUEID_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_RANUEID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RANUEID = { + "RANUEID", + "RANUEID", + &asn_OP_OCTET_STRING, + asn_DEF_RANUEID_tags_1, + sizeof(asn_DEF_RANUEID_tags_1) + /sizeof(asn_DEF_RANUEID_tags_1[0]), /* 1 */ + asn_DEF_RANUEID_tags_1, /* Same as above */ + sizeof(asn_DEF_RANUEID_tags_1) + /sizeof(asn_DEF_RANUEID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RANUEID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + RANUEID_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RANUEID.h b/e2sim/asn1c/RANUEID.h new file mode 100644 index 0000000..7596587 --- /dev/null +++ b/e2sim/asn1c/RANUEID.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RANUEID_H_ +#define _RANUEID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RANUEID */ +typedef OCTET_STRING_t RANUEID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RANUEID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RANUEID; +asn_struct_free_f RANUEID_free; +asn_struct_print_f RANUEID_print; +asn_constr_check_f RANUEID_constraint; +ber_type_decoder_f RANUEID_decode_ber; +der_type_encoder_f RANUEID_encode_der; +xer_type_decoder_f RANUEID_decode_xer; +xer_type_encoder_f RANUEID_encode_xer; +jer_type_encoder_f RANUEID_encode_jer; +per_type_decoder_f RANUEID_decode_uper; +per_type_encoder_f RANUEID_encode_uper; +per_type_decoder_f RANUEID_decode_aper; +per_type_encoder_f RANUEID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RANUEID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RANfunction-Item.c b/e2sim/asn1c/RANfunction-Item.c new file mode 100644 index 0000000..d8966ca --- /dev/null +++ b/e2sim/asn1c/RANfunction-Item.c @@ -0,0 +1,120 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RANfunction-Item.h" + +asn_TYPE_member_t asn_MBR_RANfunction_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Item, ranFunctionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RANfunctionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ranFunctionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Item, ranFunctionDefinition), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RANfunctionDefinition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ranFunctionDefinition" + }, + { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Item, ranFunctionRevision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RANfunctionRevision, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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)) +}; +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 | (3 << 2)), 3, 0, 0 } /* ranFunctionOID */ +}; +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, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RANfunction_Item = { + "RANfunction-Item", + "RANfunction-Item", + &asn_OP_SEQUENCE, + asn_DEF_RANfunction_Item_tags_1, + sizeof(asn_DEF_RANfunction_Item_tags_1) + /sizeof(asn_DEF_RANfunction_Item_tags_1[0]), /* 1 */ + asn_DEF_RANfunction_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_RANfunction_Item_tags_1) + /sizeof(asn_DEF_RANfunction_Item_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RANfunction_Item_1, + 4, /* Elements count */ + &asn_SPC_RANfunction_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RANfunction-Item.h b/e2sim/asn1c/RANfunction-Item.h new file mode 100644 index 0000000..f08c40b --- /dev/null +++ b/e2sim/asn1c/RANfunction-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RANfunction_Item_H_ +#define _RANfunction_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RANfunctionID.h" +#include "RANfunctionDefinition.h" +#include "RANfunctionRevision.h" +#include "RANfunctionOID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RANfunction-Item */ +typedef struct RANfunction_Item { + RANfunctionID_t ranFunctionID; + RANfunctionDefinition_t ranFunctionDefinition; + RANfunctionRevision_t ranFunctionRevision; + RANfunctionOID_t ranFunctionOID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RANfunction_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RANfunction_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_RANfunction_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_RANfunction_Item_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RANfunction_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RANfunction-Name.c b/e2sim/asn1c/RANfunction-Name.c new file mode 100644 index 0000000..f0e7a9a --- /dev/null +++ b/e2sim/asn1c/RANfunction-Name.c @@ -0,0 +1,353 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RANfunction-Name.h" + +static const int permitted_alphabet_table_2[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_2[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_2(const void *sptr) { + const int *table = permitted_alphabet_table_2; + /* 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; +} + +static const int permitted_alphabet_table_3[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_3[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_3(const void *sptr) { + const int *table = permitted_alphabet_table_3; + /* 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; +} + +static const int permitted_alphabet_table_4[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_4[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_4(const void *sptr) { + const int *table = permitted_alphabet_table_4; + /* 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; +} + +static int +memb_ranFunction_ShortName_constraint_1(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 >= 1UL && size <= 150UL) + && !check_permitted_alphabet_2(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_ranFunction_ShortName_2_v2c(unsigned int value) { + if(value >= sizeof(permitted_alphabet_table_2)/sizeof(permitted_alphabet_table_2[0])) + return -1; + return permitted_alphabet_table_2[value] - 1; +} +static int asn_PER_MAP_ranFunction_ShortName_2_c2v(unsigned int code) { + if(code >= sizeof(permitted_alphabet_code2value_2)/sizeof(permitted_alphabet_code2value_2[0])) + return -1; + return permitted_alphabet_code2value_2[code]; +} +static int +memb_ranFunction_E2SM_OID_constraint_1(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 >= 1UL && size <= 1000UL) + && !check_permitted_alphabet_3(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_ranFunction_E2SM_OID_3_v2c(unsigned int value) { + if(value >= sizeof(permitted_alphabet_table_3)/sizeof(permitted_alphabet_table_3[0])) + return -1; + return permitted_alphabet_table_3[value] - 1; +} +static int asn_PER_MAP_ranFunction_E2SM_OID_3_c2v(unsigned int code) { + if(code >= sizeof(permitted_alphabet_code2value_3)/sizeof(permitted_alphabet_code2value_3[0])) + return -1; + return permitted_alphabet_code2value_3[code]; +} +static int +memb_ranFunction_Description_constraint_1(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 >= 1UL && size <= 150UL) + && !check_permitted_alphabet_4(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_ranFunction_Description_4_v2c(unsigned int value) { + if(value >= sizeof(permitted_alphabet_table_4)/sizeof(permitted_alphabet_table_4[0])) + return -1; + return permitted_alphabet_table_4[value] - 1; +} +static int asn_PER_MAP_ranFunction_Description_4_c2v(unsigned int code) { + if(code >= sizeof(permitted_alphabet_code2value_4)/sizeof(permitted_alphabet_code2value_4[0])) + return -1; + return permitted_alphabet_code2value_4[code]; +} +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ranFunction_ShortName_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, + asn_PER_MAP_ranFunction_ShortName_2_v2c, /* Value to PER code map */ + asn_PER_MAP_ranFunction_ShortName_2_c2v /* PER code to value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ranFunction_E2SM_OID_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, + { APC_CONSTRAINED | APC_EXTENSIBLE, 10, 10, 1, 1000 } /* (SIZE(1..1000,...)) */, + asn_PER_MAP_ranFunction_E2SM_OID_3_v2c, /* Value to PER code map */ + asn_PER_MAP_ranFunction_E2SM_OID_3_c2v /* PER code to value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ranFunction_Description_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, + asn_PER_MAP_ranFunction_Description_4_v2c, /* Value to PER code map */ + asn_PER_MAP_ranFunction_Description_4_c2v /* PER code to value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_RANfunction_Name_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Name, ranFunction_ShortName), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrintableString, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_ranFunction_ShortName_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_ranFunction_ShortName_constraint_1 + }, + 0, 0, /* No default value */ + "ranFunction-ShortName" + }, + { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Name, ranFunction_E2SM_OID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrintableString, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_ranFunction_E2SM_OID_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_ranFunction_E2SM_OID_constraint_1 + }, + 0, 0, /* No default value */ + "ranFunction-E2SM-OID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Name, ranFunction_Description), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrintableString, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_ranFunction_Description_constr_4, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_ranFunction_Description_constraint_1 + }, + 0, 0, /* No default value */ + "ranFunction-Description" + }, + { ATF_POINTER, 1, offsetof(struct RANfunction_Name, ranFunction_Instance), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ranFunction-Instance" + }, +}; +static const int asn_MAP_RANfunction_Name_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_RANfunction_Name_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RANfunction_Name_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunction-ShortName */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ranFunction-E2SM-OID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ranFunction-Description */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ranFunction-Instance */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RANfunction_Name_specs_1 = { + sizeof(struct RANfunction_Name), + offsetof(struct RANfunction_Name, _asn_ctx), + asn_MAP_RANfunction_Name_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_RANfunction_Name_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RANfunction_Name = { + "RANfunction-Name", + "RANfunction-Name", + &asn_OP_SEQUENCE, + asn_DEF_RANfunction_Name_tags_1, + sizeof(asn_DEF_RANfunction_Name_tags_1) + /sizeof(asn_DEF_RANfunction_Name_tags_1[0]), /* 1 */ + asn_DEF_RANfunction_Name_tags_1, /* Same as above */ + sizeof(asn_DEF_RANfunction_Name_tags_1) + /sizeof(asn_DEF_RANfunction_Name_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RANfunction_Name_1, + 4, /* Elements count */ + &asn_SPC_RANfunction_Name_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RANfunction-Name.h b/e2sim/asn1c/RANfunction-Name.h new file mode 100644 index 0000000..eddc95b --- /dev/null +++ b/e2sim/asn1c/RANfunction-Name.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RANfunction_Name_H_ +#define _RANfunction_Name_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "PrintableString.h" +#include "NativeInteger.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RANfunction-Name */ +typedef struct RANfunction_Name { + PrintableString_t ranFunction_ShortName; + PrintableString_t ranFunction_E2SM_OID; + PrintableString_t ranFunction_Description; + long *ranFunction_Instance; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RANfunction_Name_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RANfunction_Name; +extern asn_SEQUENCE_specifics_t asn_SPC_RANfunction_Name_specs_1; +extern asn_TYPE_member_t asn_MBR_RANfunction_Name_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RANfunction_Name_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RANfunctionDefinition.c b/e2sim/asn1c/RANfunctionDefinition.c new file mode 100644 index 0000000..ce0e16a --- /dev/null +++ b/e2sim/asn1c/RANfunctionDefinition.c @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RANfunctionDefinition.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_RANfunctionDefinition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RANfunctionDefinition = { + "RANfunctionDefinition", + "RANfunctionDefinition", + &asn_OP_OCTET_STRING, + asn_DEF_RANfunctionDefinition_tags_1, + sizeof(asn_DEF_RANfunctionDefinition_tags_1) + /sizeof(asn_DEF_RANfunctionDefinition_tags_1[0]), /* 1 */ + asn_DEF_RANfunctionDefinition_tags_1, /* Same as above */ + sizeof(asn_DEF_RANfunctionDefinition_tags_1) + /sizeof(asn_DEF_RANfunctionDefinition_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OCTET_STRING_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RANfunctionDefinition.h b/e2sim/asn1c/RANfunctionDefinition.h new file mode 100644 index 0000000..ac6ed38 --- /dev/null +++ b/e2sim/asn1c/RANfunctionDefinition.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RANfunctionDefinition_H_ +#define _RANfunctionDefinition_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RANfunctionDefinition */ +typedef OCTET_STRING_t RANfunctionDefinition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RANfunctionDefinition; +asn_struct_free_f RANfunctionDefinition_free; +asn_struct_print_f RANfunctionDefinition_print; +asn_constr_check_f RANfunctionDefinition_constraint; +ber_type_decoder_f RANfunctionDefinition_decode_ber; +der_type_encoder_f RANfunctionDefinition_encode_der; +xer_type_decoder_f RANfunctionDefinition_decode_xer; +xer_type_encoder_f RANfunctionDefinition_encode_xer; +jer_type_encoder_f RANfunctionDefinition_encode_jer; +per_type_decoder_f RANfunctionDefinition_decode_uper; +per_type_encoder_f RANfunctionDefinition_encode_uper; +per_type_decoder_f RANfunctionDefinition_decode_aper; +per_type_encoder_f RANfunctionDefinition_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RANfunctionDefinition_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RANfunctionID-Item.c b/e2sim/asn1c/RANfunctionID-Item.c new file mode 100644 index 0000000..86e1843 --- /dev/null +++ b/e2sim/asn1c/RANfunctionID-Item.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RANfunctionID-Item.h" + +asn_TYPE_member_t asn_MBR_RANfunctionID_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_Item, ranFunctionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RANfunctionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ranFunctionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_Item, ranFunctionRevision), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RANfunctionRevision, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ranFunctionRevision" + }, +}; +static const ber_tlv_tag_t asn_DEF_RANfunctionID_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RANfunctionID_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunctionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ranFunctionRevision */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_Item_specs_1 = { + sizeof(struct RANfunctionID_Item), + offsetof(struct RANfunctionID_Item, _asn_ctx), + asn_MAP_RANfunctionID_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_RANfunctionID_Item = { + "RANfunctionID-Item", + "RANfunctionID-Item", + &asn_OP_SEQUENCE, + asn_DEF_RANfunctionID_Item_tags_1, + sizeof(asn_DEF_RANfunctionID_Item_tags_1) + /sizeof(asn_DEF_RANfunctionID_Item_tags_1[0]), /* 1 */ + asn_DEF_RANfunctionID_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_RANfunctionID_Item_tags_1) + /sizeof(asn_DEF_RANfunctionID_Item_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RANfunctionID_Item_1, + 2, /* Elements count */ + &asn_SPC_RANfunctionID_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RANfunctionID-Item.h b/e2sim/asn1c/RANfunctionID-Item.h new file mode 100644 index 0000000..1932dd8 --- /dev/null +++ b/e2sim/asn1c/RANfunctionID-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 "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RANfunctionID_Item_H_ +#define _RANfunctionID_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RANfunctionID.h" +#include "RANfunctionRevision.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RANfunctionID-Item */ +typedef struct RANfunctionID_Item { + RANfunctionID_t ranFunctionID; + RANfunctionRevision_t ranFunctionRevision; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RANfunctionID_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_RANfunctionID_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RANfunctionID_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RANfunctionID.c b/e2sim/asn1c/RANfunctionID.c new file mode 100644 index 0000000..e862d77 --- /dev/null +++ b/e2sim/asn1c/RANfunctionID.c @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RANfunctionID.h" + +int +RANfunctionID_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 >= 0L && value <= 4095L)) { + /* 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. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RANfunctionID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_RANfunctionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RANfunctionID = { + "RANfunctionID", + "RANfunctionID", + &asn_OP_NativeInteger, + asn_DEF_RANfunctionID_tags_1, + sizeof(asn_DEF_RANfunctionID_tags_1) + /sizeof(asn_DEF_RANfunctionID_tags_1[0]), /* 1 */ + asn_DEF_RANfunctionID_tags_1, /* Same as above */ + sizeof(asn_DEF_RANfunctionID_tags_1) + /sizeof(asn_DEF_RANfunctionID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RANfunctionID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + RANfunctionID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/RANfunctionID.h b/e2sim/asn1c/RANfunctionID.h new file mode 100644 index 0000000..8949d24 --- /dev/null +++ b/e2sim/asn1c/RANfunctionID.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RANfunctionID_H_ +#define _RANfunctionID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RANfunctionID */ +typedef long RANfunctionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RANfunctionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID; +asn_struct_free_f RANfunctionID_free; +asn_struct_print_f RANfunctionID_print; +asn_constr_check_f RANfunctionID_constraint; +ber_type_decoder_f RANfunctionID_decode_ber; +der_type_encoder_f RANfunctionID_encode_der; +xer_type_decoder_f RANfunctionID_decode_xer; +xer_type_encoder_f RANfunctionID_encode_xer; +jer_type_encoder_f RANfunctionID_encode_jer; +per_type_decoder_f RANfunctionID_decode_uper; +per_type_encoder_f RANfunctionID_encode_uper; +per_type_decoder_f RANfunctionID_decode_aper; +per_type_encoder_f RANfunctionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RANfunctionID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RANfunctionIDcause-Item.c b/e2sim/asn1c/RANfunctionIDcause-Item.c new file mode 100644 index 0000000..55a8ff3 --- /dev/null +++ b/e2sim/asn1c/RANfunctionIDcause-Item.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RANfunctionIDcause-Item.h" + +asn_TYPE_member_t asn_MBR_RANfunctionIDcause_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_Item, ranFunctionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RANfunctionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ranFunctionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_Item, cause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Cause, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "cause" + }, +}; +static const ber_tlv_tag_t asn_DEF_RANfunctionIDcause_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RANfunctionIDcause_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunctionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cause */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_Item_specs_1 = { + sizeof(struct RANfunctionIDcause_Item), + offsetof(struct RANfunctionIDcause_Item, _asn_ctx), + asn_MAP_RANfunctionIDcause_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_RANfunctionIDcause_Item = { + "RANfunctionIDcause-Item", + "RANfunctionIDcause-Item", + &asn_OP_SEQUENCE, + asn_DEF_RANfunctionIDcause_Item_tags_1, + sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1) + /sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1[0]), /* 1 */ + asn_DEF_RANfunctionIDcause_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1) + /sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RANfunctionIDcause_Item_1, + 2, /* Elements count */ + &asn_SPC_RANfunctionIDcause_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RANfunctionIDcause-Item.h b/e2sim/asn1c/RANfunctionIDcause-Item.h new file mode 100644 index 0000000..aabb1d4 --- /dev/null +++ b/e2sim/asn1c/RANfunctionIDcause-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 "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RANfunctionIDcause_Item_H_ +#define _RANfunctionIDcause_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RANfunctionID.h" +#include "Cause.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RANfunctionIDcause-Item */ +typedef struct RANfunctionIDcause_Item { + RANfunctionID_t ranFunctionID; + Cause_t cause; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RANfunctionIDcause_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_RANfunctionIDcause_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RANfunctionIDcause_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RANfunctionOID.c b/e2sim/asn1c/RANfunctionOID.c new file mode 100644 index 0000000..4e4f0f7 --- /dev/null +++ b/e2sim/asn1c/RANfunctionOID.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#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 >= 1UL && size <= 1000UL) + && !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. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RANfunctionOID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + RANfunctionOID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/RANfunctionOID.h b/e2sim/asn1c/RANfunctionOID.h new file mode 100644 index 0000000..720438c --- /dev/null +++ b/e2sim/asn1c/RANfunctionOID.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RANfunctionOID_H_ +#define _RANfunctionOID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "PrintableString.h" + +#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; +jer_type_encoder_f RANfunctionOID_encode_jer; +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 "asn_internal.h" diff --git a/e2sim/asn1c/RANfunctionRevision.c b/e2sim/asn1c/RANfunctionRevision.c new file mode 100644 index 0000000..ff79e4d --- /dev/null +++ b/e2sim/asn1c/RANfunctionRevision.c @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RANfunctionRevision.h" + +int +RANfunctionRevision_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 >= 0L && value <= 4095L)) { + /* 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. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RANfunctionRevision_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_RANfunctionRevision_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RANfunctionRevision = { + "RANfunctionRevision", + "RANfunctionRevision", + &asn_OP_NativeInteger, + asn_DEF_RANfunctionRevision_tags_1, + sizeof(asn_DEF_RANfunctionRevision_tags_1) + /sizeof(asn_DEF_RANfunctionRevision_tags_1[0]), /* 1 */ + asn_DEF_RANfunctionRevision_tags_1, /* Same as above */ + sizeof(asn_DEF_RANfunctionRevision_tags_1) + /sizeof(asn_DEF_RANfunctionRevision_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RANfunctionRevision_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + RANfunctionRevision_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/RANfunctionRevision.h b/e2sim/asn1c/RANfunctionRevision.h new file mode 100644 index 0000000..b630314 --- /dev/null +++ b/e2sim/asn1c/RANfunctionRevision.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RANfunctionRevision_H_ +#define _RANfunctionRevision_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RANfunctionRevision */ +typedef long RANfunctionRevision_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RANfunctionRevision_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RANfunctionRevision; +asn_struct_free_f RANfunctionRevision_free; +asn_struct_print_f RANfunctionRevision_print; +asn_constr_check_f RANfunctionRevision_constraint; +ber_type_decoder_f RANfunctionRevision_decode_ber; +der_type_encoder_f RANfunctionRevision_encode_der; +xer_type_decoder_f RANfunctionRevision_decode_xer; +xer_type_encoder_f RANfunctionRevision_encode_xer; +jer_type_encoder_f RANfunctionRevision_encode_jer; +per_type_decoder_f RANfunctionRevision_decode_uper; +per_type_encoder_f RANfunctionRevision_encode_uper; +per_type_decoder_f RANfunctionRevision_decode_aper; +per_type_encoder_f RANfunctionRevision_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RANfunctionRevision_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RANfunctions-List.c b/e2sim/asn1c/RANfunctions-List.c new file mode 100644 index 0000000..b09b682 --- /dev/null +++ b/e2sim/asn1c/RANfunctions-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RANfunctions-List.h" + +#include "ProtocolIE-SingleContainer.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RANfunctions_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_RANfunctions_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_88P29, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RANfunctions_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RANfunctions_List_specs_1 = { + sizeof(struct RANfunctions_List), + offsetof(struct RANfunctions_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RANfunctions_List = { + "RANfunctions-List", + "RANfunctions-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_RANfunctions_List_tags_1, + sizeof(asn_DEF_RANfunctions_List_tags_1) + /sizeof(asn_DEF_RANfunctions_List_tags_1[0]), /* 1 */ + asn_DEF_RANfunctions_List_tags_1, /* Same as above */ + sizeof(asn_DEF_RANfunctions_List_tags_1) + /sizeof(asn_DEF_RANfunctions_List_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RANfunctions_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_RANfunctions_List_1, + 1, /* Single element */ + &asn_SPC_RANfunctions_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RANfunctions-List.h b/e2sim/asn1c/RANfunctions-List.h new file mode 100644 index 0000000..66f13ed --- /dev/null +++ b/e2sim/asn1c/RANfunctions-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RANfunctions_List_H_ +#define _RANfunctions_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* RANfunctions-List */ +typedef struct RANfunctions_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RANfunctions_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RANfunctions_List; +extern asn_SET_OF_specifics_t asn_SPC_RANfunctions_List_specs_1; +extern asn_TYPE_member_t asn_MBR_RANfunctions_List_1[1]; +extern asn_per_constraints_t asn_PER_type_RANfunctions_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RANfunctions_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RANfunctionsID-List.c b/e2sim/asn1c/RANfunctionsID-List.c new file mode 100644 index 0000000..cb1015e --- /dev/null +++ b/e2sim/asn1c/RANfunctionsID-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RANfunctionsID-List.h" + +#include "ProtocolIE-SingleContainer.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RANfunctionsID_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_RANfunctionsID_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_88P30, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RANfunctionsID_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RANfunctionsID_List_specs_1 = { + sizeof(struct RANfunctionsID_List), + offsetof(struct RANfunctionsID_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RANfunctionsID_List = { + "RANfunctionsID-List", + "RANfunctionsID-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_RANfunctionsID_List_tags_1, + sizeof(asn_DEF_RANfunctionsID_List_tags_1) + /sizeof(asn_DEF_RANfunctionsID_List_tags_1[0]), /* 1 */ + asn_DEF_RANfunctionsID_List_tags_1, /* Same as above */ + sizeof(asn_DEF_RANfunctionsID_List_tags_1) + /sizeof(asn_DEF_RANfunctionsID_List_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RANfunctionsID_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_RANfunctionsID_List_1, + 1, /* Single element */ + &asn_SPC_RANfunctionsID_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RANfunctionsID-List.h b/e2sim/asn1c/RANfunctionsID-List.h new file mode 100644 index 0000000..d70941a --- /dev/null +++ b/e2sim/asn1c/RANfunctionsID-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RANfunctionsID_List_H_ +#define _RANfunctionsID_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* RANfunctionsID-List */ +typedef struct RANfunctionsID_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RANfunctionsID_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RANfunctionsID_List; +extern asn_SET_OF_specifics_t asn_SPC_RANfunctionsID_List_specs_1; +extern asn_TYPE_member_t asn_MBR_RANfunctionsID_List_1[1]; +extern asn_per_constraints_t asn_PER_type_RANfunctionsID_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RANfunctionsID_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RANfunctionsIDcause-List.c b/e2sim/asn1c/RANfunctionsIDcause-List.c new file mode 100644 index 0000000..42e6285 --- /dev/null +++ b/e2sim/asn1c/RANfunctionsIDcause-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RANfunctionsIDcause-List.h" + +#include "ProtocolIE-SingleContainer.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RANfunctionsIDcause_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_RANfunctionsIDcause_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_88P31, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RANfunctionsIDcause_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RANfunctionsIDcause_List_specs_1 = { + sizeof(struct RANfunctionsIDcause_List), + offsetof(struct RANfunctionsIDcause_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RANfunctionsIDcause_List = { + "RANfunctionsIDcause-List", + "RANfunctionsIDcause-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_RANfunctionsIDcause_List_tags_1, + sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1) + /sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1[0]), /* 1 */ + asn_DEF_RANfunctionsIDcause_List_tags_1, /* Same as above */ + sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1) + /sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RANfunctionsIDcause_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_RANfunctionsIDcause_List_1, + 1, /* Single element */ + &asn_SPC_RANfunctionsIDcause_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RANfunctionsIDcause-List.h b/e2sim/asn1c/RANfunctionsIDcause-List.h new file mode 100644 index 0000000..f588f98 --- /dev/null +++ b/e2sim/asn1c/RANfunctionsIDcause-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RANfunctionsIDcause_List_H_ +#define _RANfunctionsIDcause_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* RANfunctionsIDcause-List */ +typedef struct RANfunctionsIDcause_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RANfunctionsIDcause_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RANfunctionsIDcause_List; +extern asn_SET_OF_specifics_t asn_SPC_RANfunctionsIDcause_List_specs_1; +extern asn_TYPE_member_t asn_MBR_RANfunctionsIDcause_List_1[1]; +extern asn_per_constraints_t asn_PER_type_RANfunctionsIDcause_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RANfunctionsIDcause_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/REAL.c b/e2sim/asn1c/REAL.c new file mode 100644 index 0000000..a551fe5 --- /dev/null +++ b/e2sim/asn1c/REAL.c @@ -0,0 +1,734 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include /* for strtod(3) */ +#include +#include + +#undef INT_MAX +#define INT_MAX ((int)(((unsigned int)-1) >> 1)) + +struct specialRealValue_s specialRealValue[] = { +#define SRV_SET(foo, val) { (char *)foo, sizeof(foo) - 1, val } + SRV_SET("", 0), + SRV_SET("", -1), + SRV_SET("", 1), +#undef SRV_SET +}; + +#if defined(__clang__) +/* + * isnan() is defined using generic selections and won't compile in + * strict C89 mode because of too fancy system's standard library. + * However, prior to C11 the math had a perfectly working isnan() + * in the math library. + * Disable generic selection warning so we can test C89 mode with newer libc. + */ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc11-extensions" +static int asn_isnan(double d) { + return isnan(d); +} +static int asn_isfinite(double d) { +#ifdef isfinite + return isfinite(d); /* ISO C99 */ +#else + return finite(d); /* Deprecated on Mac OS X 10.9 */ +#endif +} +#pragma clang diagnostic pop +#else /* !clang */ +#define asn_isnan(v) isnan(v) +#ifdef isfinite +#define asn_isfinite(d) isfinite(d) /* ISO C99 */ +#else +#define asn_isfinite(d) finite(d) /* Deprecated on Mac OS X 10.9 */ +#endif +#endif /* clang */ + +/* + * REAL basic type description. + */ +static const ber_tlv_tag_t asn_DEF_REAL_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (9 << 2)) +}; +asn_TYPE_operation_t asn_OP_REAL = { + ASN__PRIMITIVE_TYPE_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + REAL_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + REAL_compare, +#if !defined(ASN_DISABLE_BER_SUPPORT) + ber_decode_primitive, + der_encode_primitive, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + REAL_decode_xer, + REAL_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + REAL_encode_jer, +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + REAL_decode_oer, + REAL_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + REAL_decode_uper, + REAL_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + REAL_decode_aper, + REAL_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + REAL_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_REAL = { + "REAL", + "REAL", + &asn_OP_REAL, + asn_DEF_REAL_tags, + sizeof(asn_DEF_REAL_tags) / sizeof(asn_DEF_REAL_tags[0]), + asn_DEF_REAL_tags, /* Same as above */ + sizeof(asn_DEF_REAL_tags) / sizeof(asn_DEF_REAL_tags[0]), + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + asn_generic_no_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +ssize_t +REAL__dump(double d, int canonical, asn_app_consume_bytes_f *cb, void *app_key) { + char local_buf[64]; + char *buf = local_buf; + ssize_t buflen = sizeof(local_buf); + ssize_t ret; + + /* + * Check whether it is a special value. + */ + /* fpclassify(3) is not portable yet */ + if(asn_isnan(d)) { + buf = specialRealValue[SRV__NOT_A_NUMBER].string; + buflen = specialRealValue[SRV__NOT_A_NUMBER].length; + return (cb(buf, buflen, app_key) < 0) ? -1 : buflen; + } else if(!asn_isfinite(d)) { + if(copysign(1.0, d) < 0.0) { + buf = specialRealValue[SRV__MINUS_INFINITY].string; + buflen = specialRealValue[SRV__MINUS_INFINITY].length; + } else { + buf = specialRealValue[SRV__PLUS_INFINITY].string; + buflen = specialRealValue[SRV__PLUS_INFINITY].length; + } + return (cb(buf, buflen, app_key) < 0) ? -1 : buflen; + } else if(ilogb(d) <= -INT_MAX) { + if(copysign(1.0, d) < 0.0) { + buf = "-0"; + buflen = 2; + } else { + buf = "0"; + buflen = 1; + } + return (cb(buf, buflen, app_key) < 0) ? -1 : buflen; + } + + /* + * Use the libc's double printing, hopefully they got it right. + */ + do { + ret = snprintf(buf, + buflen, + canonical ? "%.17E" /* Precise */ : "%.15f" /* Pleasant*/, + d); + if(ret < 0) { + /* There are some old broken APIs. */ + buflen <<= 1; + if(buflen > 4096) { + /* Should be plenty. */ + if(buf != local_buf) FREEMEM(buf); + return -1; + } + } else if(ret >= buflen) { + buflen = ret + 1; + } else { + buflen = ret; + break; + } + if(buf != local_buf) FREEMEM(buf); + buf = (char *)MALLOC(buflen); + if(!buf) return -1; + } while(1); + + if(canonical) { + /* + * Transform the "[-]d.dddE+-dd" output into "[-]d.dddE[-]d" + * Check that snprintf() constructed the output correctly. + */ + char *dot; + char *end = buf + buflen; + char *last_zero; + char *first_zero_in_run; + char *s; + + enum { + LZSTATE_NOTHING, + LZSTATE_ZEROES + } lz_state = LZSTATE_NOTHING; + + dot = (buf[0] == 0x2d /* '-' */) ? (buf + 2) : (buf + 1); + if(*dot >= 0x30) { + if(buf != local_buf) FREEMEM(buf); + errno = EINVAL; + return -1; /* Not a dot, really */ + } + *dot = 0x2e; /* Replace possible comma */ + + for(first_zero_in_run = last_zero = s = dot + 2; s < end; s++) { + switch(*s) { + case 0x45: /* 'E' */ + if(lz_state == LZSTATE_ZEROES) last_zero = first_zero_in_run; + break; + case 0x30: /* '0' */ + if(lz_state == LZSTATE_NOTHING) first_zero_in_run = s; + lz_state = LZSTATE_ZEROES; + continue; + default: + lz_state = LZSTATE_NOTHING; + continue; + } + break; + } + + if(s == end) { + if(buf != local_buf) FREEMEM(buf); + errno = EINVAL; + return -1; /* No promised E */ + } + + assert(*s == 0x45); + { + int sign; + char *E = s; + char *expptr = ++E; + + s = expptr; + + if(*expptr == 0x2b /* '+' */) { + /* Skip the "+" */ + buflen -= 1; + sign = 0; + } else { + sign = 1; + s++; + } + expptr++; + if(expptr > end) { + if(buf != local_buf) FREEMEM(buf); + errno = EINVAL; + return -1; + } + if(*expptr == 0x30) { + buflen--; + expptr++; + } + if(lz_state == LZSTATE_ZEROES) { + *last_zero = 0x45; /* E */ + buflen -= s - (last_zero + 1); + s = last_zero + 1; + if(sign) { + *s++ = 0x2d /* '-' */; + buflen++; + } + } + for(; expptr <= end; s++, expptr++) + *s = *expptr; + } + } else { + /* + * Remove trailing zeros. + */ + char *end = buf + buflen; + char *last_zero = end; + int stoplooking = 0; + char *z; + for(z = end - 1; z > buf; z--) { + switch(*z) { + case 0x30: + if(!stoplooking) + last_zero = z; + continue; + case 0x31: case 0x32: case 0x33: case 0x34: + case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: + stoplooking = 1; + continue; + default: /* Catch dot and other separators */ + /* + * Replace possible comma (which may even + * be not a comma at all: locale-defined). + */ + *z = 0x2e; + if(last_zero == z + 1) { /* leave x.0 */ + last_zero++; + } + buflen = last_zero - buf; + *last_zero = '\0'; + break; + } + break; + } + } + + ret = cb(buf, buflen, app_key); + if(buf != local_buf) FREEMEM(buf); + return (ret < 0) ? -1 : buflen; +} + +int +REAL_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + const REAL_t *a = aptr; + const REAL_t *b = bptr; + + (void)td; + + if(a && b) { + double adbl, bdbl; + int ra, rb; + ra = asn_REAL2double(a, &adbl); + rb = asn_REAL2double(b, &bdbl); + if(ra == 0 && rb == 0) { + if(asn_isnan(adbl)) { + if(asn_isnan(bdbl)) { + return 0; + } else { + return -1; + } + } else if(asn_isnan(bdbl)) { + return 1; + } + /* Value comparison. */ + if(adbl < bdbl) { + return -1; + } else if(adbl > bdbl) { + return 1; + } else { + return 0; + } + } else if(ra) { + return -1; + } else { + return 1; + } + } else if(!a) { + return -1; + } else { + return 1; + } +} + +int +asn_REAL2double(const REAL_t *st, double *dbl_value) { + unsigned int octv; + + if(!st || !st->buf) { + errno = EINVAL; + return -1; + } + + if(st->size == 0) { + *dbl_value = 0; + return 0; + } + + octv = st->buf[0]; /* unsigned byte */ + + switch(octv & 0xC0) { + case 0x40: /* X.690: 8.5.6 a) => 8.5.9 */ + /* "SpecialRealValue" */ + + /* Be liberal in what you accept... + * http://en.wikipedia.org/wiki/Robustness_principle + if(st->size != 1) ... + */ + + switch(st->buf[0]) { + case 0x40: /* 01000000: PLUS-INFINITY */ + *dbl_value = INFINITY; + return 0; + case 0x41: /* 01000001: MINUS-INFINITY */ + *dbl_value = - INFINITY; + return 0; + case 0x42: /* 01000010: NOT-A-NUMBER */ + *dbl_value = NAN; + return 0; + case 0x43: /* 01000011: minus zero */ + *dbl_value = -0.0; + return 0; + } + + errno = EINVAL; + return -1; + case 0x00: { /* X.690: 8.5.7 */ + /* + * Decimal. NR{1,2,3} format from ISO 6093. + * NR1: [ ]*[+-]?[0-9]+ + * NR2: [ ]*[+-]?([0-9]+\.[0-9]*|[0-9]*\.[0-9]+) + * NR3: [ ]*[+-]?([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)[Ee][+-]?[0-9]+ + */ + double d; + char *source = 0; + char *endptr; + int used_malloc = 0; + + if(octv == 0 || (octv & 0x3C)) { + /* Remaining values of bits 6 to 1 are Reserved. */ + errno = EINVAL; + return -1; + } + + /* 1. By contract, an input buffer should be '\0'-terminated. + * OCTET STRING decoder ensures that, as is asn_double2REAL(). + * 2. ISO 6093 specifies COMMA as a possible decimal separator. + * However, strtod() can't always deal with COMMA. + * So her we fix both by reallocating, copying and fixing. + */ + if(st->buf[st->size] != '\0' || memchr(st->buf, ',', st->size)) { + const uint8_t *p, *end; + char *b; + + b = source = (char *)MALLOC(st->size + 1); + if(!source) return -1; + used_malloc = 1; + + /* Copy without the first byte and with 0-termination */ + for(p = st->buf + 1, end = st->buf + st->size; + p < end; b++, p++) + *b = (*p == ',') ? '.' : *p; + *b = '\0'; + } else { + source = (char *)&st->buf[1]; + } + + endptr = source; + d = strtod(source, &endptr); + if(*endptr != '\0') { + /* Format is not consistent with ISO 6093 */ + if(used_malloc) FREEMEM(source); + errno = EINVAL; + return -1; + } + if(used_malloc) FREEMEM(source); + if(asn_isfinite(d)) { + *dbl_value = d; + return 0; + } else { + errno = ERANGE; + return -1; + } + } + } + + /* + * Binary representation. + */ + { + double m; + int32_t expval; /* exponent value */ + unsigned int elen; /* exponent value length, in octets */ + int scaleF; + int baseF; + uint8_t *ptr; + uint8_t *end; + int sign; + + switch((octv & 0x30) >> 4) { + case 0x00: baseF = 1; break; /* base 2 */ + case 0x01: baseF = 3; break; /* base 8 */ + case 0x02: baseF = 4; break; /* base 16 */ + default: + /* Reserved field, can't parse now. */ + errno = EINVAL; + return -1; + } + + sign = (octv & 0x40); /* bit 7 */ + scaleF = (octv & 0x0C) >> 2; /* bits 4 to 3 */ + + if(st->size <= 1 + (octv & 0x03)) { + errno = EINVAL; + return -1; + } + + elen = (octv & 0x03); /* bits 2 to 1; 8.5.6.4 */ + if(elen == 0x03) { /* bits 2 to 1 = 11; 8.5.6.4, case d) */ + elen = st->buf[1]; /* unsigned binary number */ + if(elen == 0 || st->size <= (2 + elen)) { + errno = EINVAL; + return -1; + } + /* FIXME: verify constraints of case d) */ + ptr = &st->buf[2]; + } else { + ptr = &st->buf[1]; + } + + /* Fetch the multibyte exponent */ + expval = (int)(*(int8_t *)ptr); + if(elen >= sizeof(expval)-1) { + errno = ERANGE; + return -1; + } + end = ptr + elen + 1; + for(ptr++; ptr < end; ptr++) + expval = (expval * 256) + *ptr; + + m = 0.0; /* Initial mantissa value */ + + /* Okay, the exponent is here. Now, what about mantissa? */ + end = st->buf + st->size; + for(; ptr < end; ptr++) + m = ldexp(m, 8) + *ptr; + + if(0) + ASN_DEBUG("m=%.10f, scF=%d, bF=%d, expval=%d, ldexp()=%f, ldexp()=%f\n", + m, scaleF, baseF, expval, + ldexp(m, expval * baseF + scaleF), + ldexp(m, scaleF) * pow(pow(2, baseF), expval) + ); + + /* + * (S * N * 2^F) * B^E + * Essentially: + m = ldexp(m, scaleF) * pow(pow(2, baseF), expval); + */ + m = ldexp(m, expval * baseF + scaleF); + if(asn_isfinite(m)) { + *dbl_value = sign ? -m : m; + } else { + errno = ERANGE; + return -1; + } + + } /* if(binary_format) */ + + return 0; +} + +/* + * Assume IEEE 754 floating point: standard 64 bit double. + * [1 bit sign] [11 bits exponent] [52 bits mantissa] + */ +int +asn_double2REAL(REAL_t *st, double dbl_value) { + double test = -0.0; + int float_big_endian = *(const char *)&test != 0; + uint8_t buf[16]; /* More than enough for 8-byte dbl_value */ + uint8_t dscr[sizeof(dbl_value)]; /* double value scratch pad */ + /* Assertion guards: won't even compile, if unexpected double size */ + char assertion_buffer1[9 - sizeof(dbl_value)] CC_NOTUSED; + char assertion_buffer2[sizeof(dbl_value) - 7] CC_NOTUSED; + uint8_t *ptr = buf; + uint8_t *mstop; /* Last byte of mantissa */ + unsigned int mval; /* Value of the last byte of mantissa */ + unsigned int bmsign; /* binary mask with sign */ + unsigned int buflen; + unsigned int accum; + int expval; + + if(!st) { + errno = EINVAL; + return -1; + } + + /* + * ilogb(+-0) returns -INT_MAX or INT_MIN (platform-dependent) + * ilogb(+-inf) returns INT_MAX, logb(+-inf) returns +inf + * ilogb(NaN) returns INT_MIN or INT_MAX (platform-dependent) + */ + expval = ilogb(dbl_value); + if(expval <= -INT_MAX /* Also catches +-0 and maybe isnan() */ + || expval == INT_MAX /* catches isfin() and maybe isnan() */ + ) { + if(!st->buf || st->size < 2) { + ptr = (uint8_t *)MALLOC(2); + if(!ptr) return -1; + if(st->buf) FREEMEM(st->buf); + st->buf = ptr; + } + /* fpclassify(3) is not portable yet */ + if(asn_isnan(dbl_value)) { + st->buf[0] = 0x42; /* NaN */ + st->buf[1] = 0; + st->size = 1; + } else if(!asn_isfinite(dbl_value)) { + if(copysign(1.0, dbl_value) < 0.0) { + st->buf[0] = 0x41; /* MINUS-INFINITY */ + } else { + st->buf[0] = 0x40; /* PLUS-INFINITY */ + } + st->buf[1] = 0; + st->size = 1; + } else { + if(copysign(1.0, dbl_value) >= 0.0) { + /* no content octets: positive zero */ + st->buf[0] = 0; /* JIC */ + st->size = 0; + } else { + /* Negative zero. #8.5.3, 8.5.9 */ + st->buf[0] = 0x43; + st->buf[1] = 0; + st->size = 1; + } + } + return 0; + } + + if(float_big_endian) { + uint8_t *s = ((uint8_t *)&dbl_value) + 1; + uint8_t *end = ((uint8_t *)&dbl_value) + sizeof(double); + uint8_t *d; + + bmsign = 0x80 | ((s[-1] >> 1) & 0x40); /* binary mask & - */ + for(mstop = d = dscr; s < end; d++, s++) { + *d = *s; + if(*d) mstop = d; + } + } else { + uint8_t *s = ((uint8_t *)&dbl_value) + sizeof(dbl_value) - 2; + uint8_t *start = ((uint8_t *)&dbl_value); + uint8_t *d; + + bmsign = 0x80 | ((s[1] >> 1) & 0x40); /* binary mask & - */ + for(mstop = d = dscr; s >= start; d++, s--) { + *d = *s; + if(*d) mstop = d; + } + } + + /* Remove parts of the exponent, leave mantissa and explicit 1. */ + dscr[0] = 0x10 | (dscr[0] & 0x0f); + + /* Adjust exponent in a very unobvious way */ + expval -= 8 * ((mstop - dscr) + 1) - 4; + + /* This loop ensures DER conformance by forcing mantissa odd: 11.3.1 */ + mval = *mstop; + if(mval && !(mval & 1)) { + int shift_count = 1; + int ishift; + uint8_t *mptr; + + /* + * Figure out what needs to be done to make mantissa odd. + */ + if(!(mval & 0x0f)) /* Speed-up a little */ + shift_count = 4; + while(((mval >> shift_count) & 1) == 0) + shift_count++; + + ishift = 8 - shift_count; + accum = 0; + + /* Go over the buffer, shifting it shift_count bits right. */ + for(mptr = dscr; mptr <= mstop; mptr++) { + mval = *mptr; + *mptr = accum | (mval >> shift_count); + accum = mval << ishift; + } + + /* Adjust exponent appropriately. */ + expval += shift_count; + } + + if(expval < 0) { + if((expval >> 7) == -1) { + *ptr++ = bmsign | 0x00; + *ptr++ = expval; + } else if((expval >> 15) == -1) { + *ptr++ = bmsign | 0x01; + *ptr++ = expval >> 8; + *ptr++ = expval; + } else { + *ptr++ = bmsign | 0x02; + *ptr++ = expval >> 16; + *ptr++ = expval >> 8; + *ptr++ = expval; + } + } else if(expval <= 0x7f) { + *ptr++ = bmsign | 0x00; + *ptr++ = expval; + } else if(expval <= 0x7fff) { + *ptr++ = bmsign | 0x01; + *ptr++ = expval >> 8; + *ptr++ = expval; + } else { + assert(expval <= 0x7fffff); + *ptr++ = bmsign | 0x02; + *ptr++ = expval >> 16; + *ptr++ = expval >> 8; + *ptr++ = expval; + } + + buflen = (mstop - dscr) + 1; + memcpy(ptr, dscr, buflen); + ptr += buflen; + buflen = ptr - buf; + + ptr = (uint8_t *)MALLOC(buflen + 1); + if(!ptr) return -1; + + memcpy(ptr, buf, buflen); + buf[buflen] = 0; /* JIC */ + + if(st->buf) FREEMEM(st->buf); + st->buf = ptr; + st->size = buflen; + + return 0; +} + +int CC_ATTR_NO_SANITIZE("float-cast-overflow") +asn_double2float(double d, float *outcome) { + float f = d; + + *outcome = f; + + if(asn_isfinite(d) == asn_isfinite(f)) { + return 0; + } else { + return -1; + } +} diff --git a/e2sim/asn1c/REAL.h b/e2sim/asn1c/REAL.h new file mode 100644 index 0000000..2f8bf47 --- /dev/null +++ b/e2sim/asn1c/REAL.h @@ -0,0 +1,122 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_TYPE_REAL_H +#define ASN_TYPE_REAL_H + +#include +#include + +#define _ISOC99_SOURCE /* For ilogb() and quiet NAN */ +#ifndef _BSD_SOURCE +#define _BSD_SOURCE /* To reintroduce finite(3) */ +#endif +#if defined(__alpha) +#include /* For INFINITY */ +#endif +#include + +#if !(defined(NAN) || defined(INFINITY)) +static volatile double real_zero CC_NOTUSED = 0.0; +#endif +#ifndef NAN +#define NAN (0.0/0.0) +#endif +#ifndef INFINITY +#define INFINITY (1.0/0.0) +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum specialRealValue { + SRV__NOT_A_NUMBER, + SRV__MINUS_INFINITY, + SRV__PLUS_INFINITY +} specialRealValue_e; +extern struct specialRealValue_s { + char *string; + size_t length; + long dv; +} specialRealValue[3]; + +typedef ASN__PRIMITIVE_TYPE_t REAL_t; + +extern asn_TYPE_descriptor_t asn_DEF_REAL; +extern asn_TYPE_operation_t asn_OP_REAL; + +#define REAL_free ASN__PRIMITIVE_TYPE_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +asn_struct_print_f REAL_print; +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +asn_struct_compare_f REAL_compare; + +#define REAL_constraint asn_generic_no_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#define REAL_decode_ber ber_decode_primitive +#define REAL_encode_der der_encode_primitive +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +xer_type_decoder_f REAL_decode_xer; +xer_type_encoder_f REAL_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_encoder_f REAL_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +oer_type_decoder_f REAL_decode_oer; +oer_type_encoder_f REAL_encode_oer; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f REAL_decode_uper; +per_type_encoder_f REAL_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +per_type_decoder_f REAL_decode_aper; +per_type_encoder_f REAL_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +asn_random_fill_f REAL_random_fill; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +/*********************************** + * Some handy conversion routines. * + ***********************************/ + +ssize_t REAL__dump(double d, int canonical, asn_app_consume_bytes_f *cb, void *app_key); + +/* + * Convert between native double type and REAL representation (DER). + * RETURN VALUES: + * 0: Value converted successfully + * -1: An error occurred while converting the value: invalid format. + */ +int asn_REAL2double(const REAL_t *real_ptr, double *d); +int asn_double2REAL(REAL_t *real_ptr, double d); + +/* + * Downcast double to float while checking that no overflow occurs. + * This allows stricter control of the input data. + * RETURN VALUES: + * 0: The conversion was successful (perhaps with a loss of precision) + * -1: The conversion created overflow into infinities. + * The (outcome) is ALWAYS set to a value you'd expect from the + * standard silent float to double conversion behavior. + */ +int asn_double2float(double d, float *outcome); + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_TYPE_REAL_H */ diff --git a/e2sim/asn1c/REAL_aper.c b/e2sim/asn1c/REAL_aper.c new file mode 100644 index 0000000..9881275 --- /dev/null +++ b/e2sim/asn1c/REAL_aper.c @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_dec_rval_t +REAL_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd) { + (void)constraints; /* No PER visible constraints */ + return OCTET_STRING_decode_aper(opt_codec_ctx, td, 0, sptr, pd); +} + +asn_enc_rval_t +REAL_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + (void)constraints; /* No PER visible constraints */ + return OCTET_STRING_encode_aper(td, 0, sptr, po); +} diff --git a/e2sim/asn1c/REAL_jer.c b/e2sim/asn1c/REAL_jer.c new file mode 100644 index 0000000..c524e4b --- /dev/null +++ b/e2sim/asn1c/REAL_jer.c @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_enc_rval_t +REAL_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + enum jer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, + void *app_key) { + const REAL_t *st = (const REAL_t *)sptr; + asn_enc_rval_t er = {0,0,0}; + double d; + + (void)ilevel; + + if(!st || !st->buf || asn_REAL2double(st, &d)) + ASN__ENCODE_FAILED; + + er.encoded = REAL__dump(d, flags, cb, app_key); + if(er.encoded < 0) ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/e2sim/asn1c/REAL_print.c b/e2sim/asn1c/REAL_print.c new file mode 100644 index 0000000..01daa97 --- /dev/null +++ b/e2sim/asn1c/REAL_print.c @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +int +REAL_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + const REAL_t *st = (const REAL_t *)sptr; + ssize_t ret; + double d; + + (void)td; /* Unused argument */ + (void)ilevel; /* Unused argument */ + + if(!st || !st->buf) + ret = cb("", 8, app_key); + else if(asn_REAL2double(st, &d)) + ret = cb("", 7, app_key); + else + ret = REAL__dump(d, 0, cb, app_key); + + return (ret < 0) ? -1 : 0; +} diff --git a/e2sim/asn1c/REAL_rfill.c b/e2sim/asn1c/REAL_rfill.c new file mode 100644 index 0000000..733aafd --- /dev/null +++ b/e2sim/asn1c/REAL_rfill.c @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +asn_random_fill_result_t +REAL_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + static const double values[] = { + 0, -0.0, -1, 1, -M_E, M_E, -3.14, 3.14, -M_PI, M_PI, -255, 255, + /* 2^51 */ + -2251799813685248.0, 2251799813685248.0, + /* 2^52 */ + -4503599627370496.0, 4503599627370496.0, + /* 2^100 */ + -1267650600228229401496703205376.0, 1267650600228229401496703205376.0, + -FLT_MIN, FLT_MIN, + -FLT_MAX, FLT_MAX, + -DBL_MIN, DBL_MIN, + -DBL_MAX, DBL_MAX, +#ifdef FLT_TRUE_MIN + -FLT_TRUE_MIN, FLT_TRUE_MIN, +#endif +#ifdef DBL_TRUE_MIN + -DBL_TRUE_MIN, DBL_TRUE_MIN, +#endif + INFINITY, -INFINITY, NAN}; + REAL_t *st; + double d; + + (void)constraints; + + if(max_length == 0) return result_skipped; + + d = values[asn_random_between(0, sizeof(values) / sizeof(values[0]) - 1)]; + + if(*sptr) { + st = *sptr; + } else { + st = (REAL_t*)(*sptr = CALLOC(1, sizeof(REAL_t))); + if(!st) { + return result_failed; + } + } + + if(asn_double2REAL(st, d)) { + if(st == *sptr) { + ASN_STRUCT_RESET(*td, st); + } else { + ASN_STRUCT_FREE(*td, st); + } + return result_failed; + } + + result_ok.length = st->size; + return result_ok; +} diff --git a/e2sim/asn1c/REAL_uper.c b/e2sim/asn1c/REAL_uper.c new file mode 100644 index 0000000..d55da9f --- /dev/null +++ b/e2sim/asn1c/REAL_uper.c @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_dec_rval_t +REAL_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + (void)constraints; /* No PER visible constraints */ + return OCTET_STRING_decode_uper(opt_codec_ctx, td, 0, sptr, pd); +} + +asn_enc_rval_t +REAL_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + (void)constraints; /* No PER visible constraints */ + return OCTET_STRING_encode_uper(td, 0, sptr, po); +} diff --git a/e2sim/asn1c/REAL_xer.c b/e2sim/asn1c/REAL_xer.c new file mode 100644 index 0000000..8342ec2 --- /dev/null +++ b/e2sim/asn1c/REAL_xer.c @@ -0,0 +1,103 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_enc_rval_t +REAL_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, + void *app_key) { + const REAL_t *st = (const REAL_t *)sptr; + asn_enc_rval_t er = {0,0,0}; + double d; + + (void)ilevel; + + if(!st || !st->buf || asn_REAL2double(st, &d)) + ASN__ENCODE_FAILED; + + er.encoded = REAL__dump(d, flags & XER_F_CANONICAL, cb, app_key); + if(er.encoded < 0) ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} + +/* + * Decode the chunk of XML text encoding REAL. + */ +static enum xer_pbd_rval +REAL__xer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr, + const void *chunk_buf, size_t chunk_size) { + REAL_t *st = (REAL_t *)sptr; + double value; + const char *xerdata = (const char *)chunk_buf; + char *endptr = 0; + char *b; + + (void)td; + + if(!chunk_size) return XPBD_BROKEN_ENCODING; + + /* + * Decode an XMLSpecialRealValue: , etc. + */ + if(xerdata[0] == 0x3c /* '<' */) { + size_t i; + for(i = 0; i < sizeof(specialRealValue) / sizeof(specialRealValue[0]); i++) { + struct specialRealValue_s *srv = &specialRealValue[i]; + double dv; + + if(srv->length != chunk_size + || memcmp(srv->string, chunk_buf, chunk_size)) + continue; + + /* + * It could've been done using + * (double)srv->dv / real_zero, + * but it summons fp exception on some platforms. + */ + switch(srv->dv) { + case -1: dv = - INFINITY; break; + case 0: dv = NAN; break; + case 1: dv = INFINITY; break; + default: return XPBD_SYSTEM_FAILURE; + } + + if(asn_double2REAL(st, dv)) + return XPBD_SYSTEM_FAILURE; + + return XPBD_BODY_CONSUMED; + } + ASN_DEBUG("Unknown XMLSpecialRealValue"); + return XPBD_BROKEN_ENCODING; + } + + /* + * Copy chunk into the nul-terminated string, and run strtod. + */ + b = (char *)MALLOC(chunk_size + 1); + if(!b) return XPBD_SYSTEM_FAILURE; + memcpy(b, chunk_buf, chunk_size); + b[chunk_size] = 0; /* nul-terminate */ + + value = strtod(b, &endptr); + FREEMEM(b); + if(endptr == b) return XPBD_BROKEN_ENCODING; + + if(asn_double2REAL(st, value)) + return XPBD_SYSTEM_FAILURE; + + return XPBD_BODY_CONSUMED; +} + +asn_dec_rval_t +REAL_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, size_t size) { + return xer_decode_primitive(opt_codec_ctx, td, + sptr, sizeof(REAL_t), opt_mname, + buf_ptr, size, REAL__xer_body_decode); +} diff --git a/e2sim/asn1c/RIC-EventTriggerStyle-Item.c b/e2sim/asn1c/RIC-EventTriggerStyle-Item.c new file mode 100644 index 0000000..87bcc67 --- /dev/null +++ b/e2sim/asn1c/RIC-EventTriggerStyle-Item.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RIC-EventTriggerStyle-Item.h" + +asn_TYPE_member_t asn_MBR_RIC_EventTriggerStyle_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RIC_EventTriggerStyle_Item, ric_EventTriggerStyle_Type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RIC_Style_Type, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ric-EventTriggerStyle-Type" + }, + { ATF_NOFLAGS, 0, offsetof(struct RIC_EventTriggerStyle_Item, ric_EventTriggerStyle_Name), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RIC_Style_Name, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ric-EventTriggerStyle-Name" + }, + { ATF_NOFLAGS, 0, offsetof(struct RIC_EventTriggerStyle_Item, ric_EventTriggerFormat_Type), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RIC_Format_Type, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ric-EventTriggerFormat-Type" + }, +}; +static const ber_tlv_tag_t asn_DEF_RIC_EventTriggerStyle_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RIC_EventTriggerStyle_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-EventTriggerStyle-Type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ric-EventTriggerStyle-Name */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ric-EventTriggerFormat-Type */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RIC_EventTriggerStyle_Item_specs_1 = { + sizeof(struct RIC_EventTriggerStyle_Item), + offsetof(struct RIC_EventTriggerStyle_Item, _asn_ctx), + asn_MAP_RIC_EventTriggerStyle_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_RIC_EventTriggerStyle_Item = { + "RIC-EventTriggerStyle-Item", + "RIC-EventTriggerStyle-Item", + &asn_OP_SEQUENCE, + asn_DEF_RIC_EventTriggerStyle_Item_tags_1, + sizeof(asn_DEF_RIC_EventTriggerStyle_Item_tags_1) + /sizeof(asn_DEF_RIC_EventTriggerStyle_Item_tags_1[0]), /* 1 */ + asn_DEF_RIC_EventTriggerStyle_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_RIC_EventTriggerStyle_Item_tags_1) + /sizeof(asn_DEF_RIC_EventTriggerStyle_Item_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RIC_EventTriggerStyle_Item_1, + 3, /* Elements count */ + &asn_SPC_RIC_EventTriggerStyle_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RIC-EventTriggerStyle-Item.h b/e2sim/asn1c/RIC-EventTriggerStyle-Item.h new file mode 100644 index 0000000..d0a0a51 --- /dev/null +++ b/e2sim/asn1c/RIC-EventTriggerStyle-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RIC_EventTriggerStyle_Item_H_ +#define _RIC_EventTriggerStyle_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RIC-Style-Type.h" +#include "RIC-Style-Name.h" +#include "RIC-Format-Type.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RIC-EventTriggerStyle-Item */ +typedef struct RIC_EventTriggerStyle_Item { + RIC_Style_Type_t ric_EventTriggerStyle_Type; + RIC_Style_Name_t ric_EventTriggerStyle_Name; + RIC_Format_Type_t ric_EventTriggerFormat_Type; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RIC_EventTriggerStyle_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RIC_EventTriggerStyle_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_RIC_EventTriggerStyle_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_RIC_EventTriggerStyle_Item_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RIC_EventTriggerStyle_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RIC-Format-Type.c b/e2sim/asn1c/RIC-Format-Type.c new file mode 100644 index 0000000..82b3db9 --- /dev/null +++ b/e2sim/asn1c/RIC-Format-Type.c @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RIC-Format-Type.h" + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_RIC_Format_Type_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RIC_Format_Type = { + "RIC-Format-Type", + "RIC-Format-Type", + &asn_OP_NativeInteger, + asn_DEF_RIC_Format_Type_tags_1, + sizeof(asn_DEF_RIC_Format_Type_tags_1) + /sizeof(asn_DEF_RIC_Format_Type_tags_1[0]), /* 1 */ + asn_DEF_RIC_Format_Type_tags_1, /* Same as above */ + sizeof(asn_DEF_RIC_Format_Type_tags_1) + /sizeof(asn_DEF_RIC_Format_Type_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeInteger_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/RIC-Format-Type.h b/e2sim/asn1c/RIC-Format-Type.h new file mode 100644 index 0000000..3784f59 --- /dev/null +++ b/e2sim/asn1c/RIC-Format-Type.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RIC_Format_Type_H_ +#define _RIC_Format_Type_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RIC-Format-Type */ +typedef long RIC_Format_Type_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RIC_Format_Type; +asn_struct_free_f RIC_Format_Type_free; +asn_struct_print_f RIC_Format_Type_print; +asn_constr_check_f RIC_Format_Type_constraint; +ber_type_decoder_f RIC_Format_Type_decode_ber; +der_type_encoder_f RIC_Format_Type_encode_der; +xer_type_decoder_f RIC_Format_Type_decode_xer; +xer_type_encoder_f RIC_Format_Type_encode_xer; +jer_type_encoder_f RIC_Format_Type_encode_jer; +per_type_decoder_f RIC_Format_Type_decode_uper; +per_type_encoder_f RIC_Format_Type_encode_uper; +per_type_decoder_f RIC_Format_Type_decode_aper; +per_type_encoder_f RIC_Format_Type_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RIC_Format_Type_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RIC-ReportStyle-Item.c b/e2sim/asn1c/RIC-ReportStyle-Item.c new file mode 100644 index 0000000..71ca2a1 --- /dev/null +++ b/e2sim/asn1c/RIC-ReportStyle-Item.c @@ -0,0 +1,156 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RIC-ReportStyle-Item.h" + +asn_TYPE_member_t asn_MBR_RIC_ReportStyle_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RIC_ReportStyle_Item, ric_ReportStyle_Type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RIC_Style_Type, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ric-ReportStyle-Type" + }, + { ATF_NOFLAGS, 0, offsetof(struct RIC_ReportStyle_Item, ric_ReportStyle_Name), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RIC_Style_Name, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ric-ReportStyle-Name" + }, + { ATF_NOFLAGS, 0, offsetof(struct RIC_ReportStyle_Item, ric_ActionFormat_Type), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RIC_Format_Type, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ric-ActionFormat-Type" + }, + { ATF_NOFLAGS, 0, offsetof(struct RIC_ReportStyle_Item, measInfo_Action_List), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasurementInfo_Action_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "measInfo-Action-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct RIC_ReportStyle_Item, ric_IndicationHeaderFormat_Type), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RIC_Format_Type, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ric-IndicationHeaderFormat-Type" + }, + { ATF_NOFLAGS, 0, offsetof(struct RIC_ReportStyle_Item, ric_IndicationMessageFormat_Type), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RIC_Format_Type, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ric-IndicationMessageFormat-Type" + }, +}; +static const ber_tlv_tag_t asn_DEF_RIC_ReportStyle_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RIC_ReportStyle_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-ReportStyle-Type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ric-ReportStyle-Name */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ric-ActionFormat-Type */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* measInfo-Action-List */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* ric-IndicationHeaderFormat-Type */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* ric-IndicationMessageFormat-Type */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RIC_ReportStyle_Item_specs_1 = { + sizeof(struct RIC_ReportStyle_Item), + offsetof(struct RIC_ReportStyle_Item, _asn_ctx), + asn_MAP_RIC_ReportStyle_Item_tag2el_1, + 6, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RIC_ReportStyle_Item = { + "RIC-ReportStyle-Item", + "RIC-ReportStyle-Item", + &asn_OP_SEQUENCE, + asn_DEF_RIC_ReportStyle_Item_tags_1, + sizeof(asn_DEF_RIC_ReportStyle_Item_tags_1) + /sizeof(asn_DEF_RIC_ReportStyle_Item_tags_1[0]), /* 1 */ + asn_DEF_RIC_ReportStyle_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_RIC_ReportStyle_Item_tags_1) + /sizeof(asn_DEF_RIC_ReportStyle_Item_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RIC_ReportStyle_Item_1, + 6, /* Elements count */ + &asn_SPC_RIC_ReportStyle_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RIC-ReportStyle-Item.h b/e2sim/asn1c/RIC-ReportStyle-Item.h new file mode 100644 index 0000000..c2ab6c8 --- /dev/null +++ b/e2sim/asn1c/RIC-ReportStyle-Item.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RIC_ReportStyle_Item_H_ +#define _RIC_ReportStyle_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RIC-Style-Type.h" +#include "RIC-Style-Name.h" +#include "RIC-Format-Type.h" +#include "MeasurementInfo-Action-List.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RIC-ReportStyle-Item */ +typedef struct RIC_ReportStyle_Item { + RIC_Style_Type_t ric_ReportStyle_Type; + RIC_Style_Name_t ric_ReportStyle_Name; + RIC_Format_Type_t ric_ActionFormat_Type; + MeasurementInfo_Action_List_t measInfo_Action_List; + RIC_Format_Type_t ric_IndicationHeaderFormat_Type; + RIC_Format_Type_t ric_IndicationMessageFormat_Type; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RIC_ReportStyle_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RIC_ReportStyle_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_RIC_ReportStyle_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_RIC_ReportStyle_Item_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RIC_ReportStyle_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RIC-Style-Name.c b/e2sim/asn1c/RIC-Style-Name.c new file mode 100644 index 0000000..c9fa59d --- /dev/null +++ b/e2sim/asn1c/RIC-Style-Name.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RIC-Style-Name.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 +RIC_Style_Name_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 >= 1UL && size <= 150UL) + && !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_RIC_Style_Name_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_RIC_Style_Name_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. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RIC_Style_Name_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_RIC_Style_Name_1_v2c, /* Value to PER code map */ + asn_PER_MAP_RIC_Style_Name_1_c2v /* PER code to value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_RIC_Style_Name_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RIC_Style_Name = { + "RIC-Style-Name", + "RIC-Style-Name", + &asn_OP_PrintableString, + asn_DEF_RIC_Style_Name_tags_1, + sizeof(asn_DEF_RIC_Style_Name_tags_1) + /sizeof(asn_DEF_RIC_Style_Name_tags_1[0]), /* 1 */ + asn_DEF_RIC_Style_Name_tags_1, /* Same as above */ + sizeof(asn_DEF_RIC_Style_Name_tags_1) + /sizeof(asn_DEF_RIC_Style_Name_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RIC_Style_Name_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + RIC_Style_Name_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/RIC-Style-Name.h b/e2sim/asn1c/RIC-Style-Name.h new file mode 100644 index 0000000..beeace8 --- /dev/null +++ b/e2sim/asn1c/RIC-Style-Name.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RIC_Style_Name_H_ +#define _RIC_Style_Name_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "PrintableString.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RIC-Style-Name */ +typedef PrintableString_t RIC_Style_Name_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RIC_Style_Name_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RIC_Style_Name; +asn_struct_free_f RIC_Style_Name_free; +asn_struct_print_f RIC_Style_Name_print; +asn_constr_check_f RIC_Style_Name_constraint; +ber_type_decoder_f RIC_Style_Name_decode_ber; +der_type_encoder_f RIC_Style_Name_encode_der; +xer_type_decoder_f RIC_Style_Name_decode_xer; +xer_type_encoder_f RIC_Style_Name_encode_xer; +jer_type_encoder_f RIC_Style_Name_encode_jer; +per_type_decoder_f RIC_Style_Name_decode_uper; +per_type_encoder_f RIC_Style_Name_encode_uper; +per_type_decoder_f RIC_Style_Name_decode_aper; +per_type_encoder_f RIC_Style_Name_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RIC_Style_Name_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RIC-Style-Type.c b/e2sim/asn1c/RIC-Style-Type.c new file mode 100644 index 0000000..03996d0 --- /dev/null +++ b/e2sim/asn1c/RIC-Style-Type.c @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RIC-Style-Type.h" + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_RIC_Style_Type_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RIC_Style_Type = { + "RIC-Style-Type", + "RIC-Style-Type", + &asn_OP_NativeInteger, + asn_DEF_RIC_Style_Type_tags_1, + sizeof(asn_DEF_RIC_Style_Type_tags_1) + /sizeof(asn_DEF_RIC_Style_Type_tags_1[0]), /* 1 */ + asn_DEF_RIC_Style_Type_tags_1, /* Same as above */ + sizeof(asn_DEF_RIC_Style_Type_tags_1) + /sizeof(asn_DEF_RIC_Style_Type_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeInteger_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/RIC-Style-Type.h b/e2sim/asn1c/RIC-Style-Type.h new file mode 100644 index 0000000..9b71816 --- /dev/null +++ b/e2sim/asn1c/RIC-Style-Type.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RIC_Style_Type_H_ +#define _RIC_Style_Type_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RIC-Style-Type */ +typedef long RIC_Style_Type_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RIC_Style_Type; +asn_struct_free_f RIC_Style_Type_free; +asn_struct_print_f RIC_Style_Type_print; +asn_constr_check_f RIC_Style_Type_constraint; +ber_type_decoder_f RIC_Style_Type_decode_ber; +der_type_encoder_f RIC_Style_Type_encode_der; +xer_type_decoder_f RIC_Style_Type_decode_xer; +xer_type_encoder_f RIC_Style_Type_encode_xer; +jer_type_encoder_f RIC_Style_Type_encode_jer; +per_type_decoder_f RIC_Style_Type_decode_uper; +per_type_encoder_f RIC_Style_Type_encode_uper; +per_type_decoder_f RIC_Style_Type_decode_aper; +per_type_encoder_f RIC_Style_Type_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RIC_Style_Type_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICQueryFailure.c b/e2sim/asn1c/RICQueryFailure.c new file mode 100644 index 0000000..28e0582 --- /dev/null +++ b/e2sim/asn1c/RICQueryFailure.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICQueryFailure.h" + +asn_TYPE_member_t asn_MBR_RICQueryFailure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICQueryFailure, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_85P19, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICQueryFailure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICQueryFailure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICQueryFailure_specs_1 = { + sizeof(struct RICQueryFailure), + offsetof(struct RICQueryFailure, _asn_ctx), + asn_MAP_RICQueryFailure_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_RICQueryFailure = { + "RICQueryFailure", + "RICQueryFailure", + &asn_OP_SEQUENCE, + asn_DEF_RICQueryFailure_tags_1, + sizeof(asn_DEF_RICQueryFailure_tags_1) + /sizeof(asn_DEF_RICQueryFailure_tags_1[0]), /* 1 */ + asn_DEF_RICQueryFailure_tags_1, /* Same as above */ + sizeof(asn_DEF_RICQueryFailure_tags_1) + /sizeof(asn_DEF_RICQueryFailure_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICQueryFailure_1, + 1, /* Elements count */ + &asn_SPC_RICQueryFailure_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICQueryFailure.h b/e2sim/asn1c/RICQueryFailure.h new file mode 100644 index 0000000..592ca37 --- /dev/null +++ b/e2sim/asn1c/RICQueryFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICQueryFailure_H_ +#define _RICQueryFailure_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICQueryFailure */ +typedef struct RICQueryFailure { + ProtocolIE_Container_85P19_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICQueryFailure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICQueryFailure; +extern asn_SEQUENCE_specifics_t asn_SPC_RICQueryFailure_specs_1; +extern asn_TYPE_member_t asn_MBR_RICQueryFailure_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICQueryFailure_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICQueryRequest.c b/e2sim/asn1c/RICQueryRequest.c new file mode 100644 index 0000000..2a304b7 --- /dev/null +++ b/e2sim/asn1c/RICQueryRequest.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICQueryRequest.h" + +asn_TYPE_member_t asn_MBR_RICQueryRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICQueryRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_85P17, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICQueryRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICQueryRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICQueryRequest_specs_1 = { + sizeof(struct RICQueryRequest), + offsetof(struct RICQueryRequest, _asn_ctx), + asn_MAP_RICQueryRequest_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_RICQueryRequest = { + "RICQueryRequest", + "RICQueryRequest", + &asn_OP_SEQUENCE, + asn_DEF_RICQueryRequest_tags_1, + sizeof(asn_DEF_RICQueryRequest_tags_1) + /sizeof(asn_DEF_RICQueryRequest_tags_1[0]), /* 1 */ + asn_DEF_RICQueryRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_RICQueryRequest_tags_1) + /sizeof(asn_DEF_RICQueryRequest_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICQueryRequest_1, + 1, /* Elements count */ + &asn_SPC_RICQueryRequest_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICQueryRequest.h b/e2sim/asn1c/RICQueryRequest.h new file mode 100644 index 0000000..3f15fd6 --- /dev/null +++ b/e2sim/asn1c/RICQueryRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICQueryRequest_H_ +#define _RICQueryRequest_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICQueryRequest */ +typedef struct RICQueryRequest { + ProtocolIE_Container_85P17_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICQueryRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICQueryRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_RICQueryRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_RICQueryRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICQueryRequest_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICQueryResponse.c b/e2sim/asn1c/RICQueryResponse.c new file mode 100644 index 0000000..c5d9458 --- /dev/null +++ b/e2sim/asn1c/RICQueryResponse.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICQueryResponse.h" + +asn_TYPE_member_t asn_MBR_RICQueryResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICQueryResponse, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_85P18, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICQueryResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICQueryResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICQueryResponse_specs_1 = { + sizeof(struct RICQueryResponse), + offsetof(struct RICQueryResponse, _asn_ctx), + asn_MAP_RICQueryResponse_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_RICQueryResponse = { + "RICQueryResponse", + "RICQueryResponse", + &asn_OP_SEQUENCE, + asn_DEF_RICQueryResponse_tags_1, + sizeof(asn_DEF_RICQueryResponse_tags_1) + /sizeof(asn_DEF_RICQueryResponse_tags_1[0]), /* 1 */ + asn_DEF_RICQueryResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_RICQueryResponse_tags_1) + /sizeof(asn_DEF_RICQueryResponse_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICQueryResponse_1, + 1, /* Elements count */ + &asn_SPC_RICQueryResponse_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICQueryResponse.h b/e2sim/asn1c/RICQueryResponse.h new file mode 100644 index 0000000..8f09912 --- /dev/null +++ b/e2sim/asn1c/RICQueryResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICQueryResponse_H_ +#define _RICQueryResponse_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICQueryResponse */ +typedef struct RICQueryResponse { + ProtocolIE_Container_85P18_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICQueryResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICQueryResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_RICQueryResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_RICQueryResponse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICQueryResponse_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICaction-AddedForModification-Item.c b/e2sim/asn1c/RICaction-AddedForModification-Item.c new file mode 100644 index 0000000..5336810 --- /dev/null +++ b/e2sim/asn1c/RICaction-AddedForModification-Item.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICaction-AddedForModification-Item.h" + +asn_TYPE_member_t asn_MBR_RICaction_AddedForModification_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_AddedForModification_Item, ricActionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricActionID" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_AddedForModification_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_AddedForModification_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ricActionID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_AddedForModification_Item_specs_1 = { + sizeof(struct RICaction_AddedForModification_Item), + offsetof(struct RICaction_AddedForModification_Item, _asn_ctx), + asn_MAP_RICaction_AddedForModification_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_RICaction_AddedForModification_Item = { + "RICaction-AddedForModification-Item", + "RICaction-AddedForModification-Item", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_AddedForModification_Item_tags_1, + sizeof(asn_DEF_RICaction_AddedForModification_Item_tags_1) + /sizeof(asn_DEF_RICaction_AddedForModification_Item_tags_1[0]), /* 1 */ + asn_DEF_RICaction_AddedForModification_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_RICaction_AddedForModification_Item_tags_1) + /sizeof(asn_DEF_RICaction_AddedForModification_Item_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_AddedForModification_Item_1, + 1, /* Elements count */ + &asn_SPC_RICaction_AddedForModification_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICaction-AddedForModification-Item.h b/e2sim/asn1c/RICaction-AddedForModification-Item.h new file mode 100644 index 0000000..ade9c58 --- /dev/null +++ b/e2sim/asn1c/RICaction-AddedForModification-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 "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICaction_AddedForModification_Item_H_ +#define _RICaction_AddedForModification_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RICactionID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICaction-AddedForModification-Item */ +typedef struct RICaction_AddedForModification_Item { + RICactionID_t ricActionID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICaction_AddedForModification_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICaction_AddedForModification_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_AddedForModification_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_RICaction_AddedForModification_Item_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICaction_AddedForModification_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICaction-Admitted-Item.c b/e2sim/asn1c/RICaction-Admitted-Item.c new file mode 100644 index 0000000..99a88a6 --- /dev/null +++ b/e2sim/asn1c/RICaction-Admitted-Item.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICaction-Admitted-Item.h" + +asn_TYPE_member_t asn_MBR_RICaction_Admitted_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_Item, ricActionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricActionID" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_Admitted_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ricActionID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_Item_specs_1 = { + sizeof(struct RICaction_Admitted_Item), + offsetof(struct RICaction_Admitted_Item, _asn_ctx), + asn_MAP_RICaction_Admitted_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_RICaction_Admitted_Item = { + "RICaction-Admitted-Item", + "RICaction-Admitted-Item", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_Admitted_Item_tags_1, + sizeof(asn_DEF_RICaction_Admitted_Item_tags_1) + /sizeof(asn_DEF_RICaction_Admitted_Item_tags_1[0]), /* 1 */ + asn_DEF_RICaction_Admitted_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_RICaction_Admitted_Item_tags_1) + /sizeof(asn_DEF_RICaction_Admitted_Item_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_Admitted_Item_1, + 1, /* Elements count */ + &asn_SPC_RICaction_Admitted_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICaction-Admitted-Item.h b/e2sim/asn1c/RICaction-Admitted-Item.h new file mode 100644 index 0000000..0ecb70a --- /dev/null +++ b/e2sim/asn1c/RICaction-Admitted-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 "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICaction_Admitted_Item_H_ +#define _RICaction_Admitted_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RICactionID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICaction-Admitted-Item */ +typedef struct RICaction_Admitted_Item { + RICactionID_t ricActionID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICaction_Admitted_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_RICaction_Admitted_Item_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICaction_Admitted_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICaction-Admitted-List.c b/e2sim/asn1c/RICaction-Admitted-List.c new file mode 100644 index 0000000..52a72ac --- /dev/null +++ b/e2sim/asn1c/RICaction-Admitted-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICaction-Admitted-List.h" + +#include "ProtocolIE-SingleContainer.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RICaction_Admitted_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_RICaction_Admitted_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_88P1, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RICaction_Admitted_List_specs_1 = { + sizeof(struct RICaction_Admitted_List), + offsetof(struct RICaction_Admitted_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_List = { + "RICaction-Admitted-List", + "RICaction-Admitted-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_RICaction_Admitted_List_tags_1, + sizeof(asn_DEF_RICaction_Admitted_List_tags_1) + /sizeof(asn_DEF_RICaction_Admitted_List_tags_1[0]), /* 1 */ + asn_DEF_RICaction_Admitted_List_tags_1, /* Same as above */ + sizeof(asn_DEF_RICaction_Admitted_List_tags_1) + /sizeof(asn_DEF_RICaction_Admitted_List_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RICaction_Admitted_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_RICaction_Admitted_List_1, + 1, /* Single element */ + &asn_SPC_RICaction_Admitted_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICaction-Admitted-List.h b/e2sim/asn1c/RICaction-Admitted-List.h new file mode 100644 index 0000000..ff3f161 --- /dev/null +++ b/e2sim/asn1c/RICaction-Admitted-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICaction_Admitted_List_H_ +#define _RICaction_Admitted_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* RICaction-Admitted-List */ +typedef struct RICaction_Admitted_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICaction_Admitted_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_List; +extern asn_SET_OF_specifics_t asn_SPC_RICaction_Admitted_List_specs_1; +extern asn_TYPE_member_t asn_MBR_RICaction_Admitted_List_1[1]; +extern asn_per_constraints_t asn_PER_type_RICaction_Admitted_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICaction_Admitted_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICaction-ConfirmedForModification-Item.c b/e2sim/asn1c/RICaction-ConfirmedForModification-Item.c new file mode 100644 index 0000000..e662439 --- /dev/null +++ b/e2sim/asn1c/RICaction-ConfirmedForModification-Item.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICaction-ConfirmedForModification-Item.h" + +asn_TYPE_member_t asn_MBR_RICaction_ConfirmedForModification_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ConfirmedForModification_Item, ricActionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricActionID" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_ConfirmedForModification_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_ConfirmedForModification_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ricActionID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_ConfirmedForModification_Item_specs_1 = { + sizeof(struct RICaction_ConfirmedForModification_Item), + offsetof(struct RICaction_ConfirmedForModification_Item, _asn_ctx), + asn_MAP_RICaction_ConfirmedForModification_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_RICaction_ConfirmedForModification_Item = { + "RICaction-ConfirmedForModification-Item", + "RICaction-ConfirmedForModification-Item", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_ConfirmedForModification_Item_tags_1, + sizeof(asn_DEF_RICaction_ConfirmedForModification_Item_tags_1) + /sizeof(asn_DEF_RICaction_ConfirmedForModification_Item_tags_1[0]), /* 1 */ + asn_DEF_RICaction_ConfirmedForModification_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_RICaction_ConfirmedForModification_Item_tags_1) + /sizeof(asn_DEF_RICaction_ConfirmedForModification_Item_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_ConfirmedForModification_Item_1, + 1, /* Elements count */ + &asn_SPC_RICaction_ConfirmedForModification_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICaction-ConfirmedForModification-Item.h b/e2sim/asn1c/RICaction-ConfirmedForModification-Item.h new file mode 100644 index 0000000..00b2f56 --- /dev/null +++ b/e2sim/asn1c/RICaction-ConfirmedForModification-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 "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICaction_ConfirmedForModification_Item_H_ +#define _RICaction_ConfirmedForModification_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RICactionID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICaction-ConfirmedForModification-Item */ +typedef struct RICaction_ConfirmedForModification_Item { + RICactionID_t ricActionID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICaction_ConfirmedForModification_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICaction_ConfirmedForModification_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_ConfirmedForModification_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_RICaction_ConfirmedForModification_Item_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICaction_ConfirmedForModification_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICaction-ConfirmedForRemoval-Item.c b/e2sim/asn1c/RICaction-ConfirmedForRemoval-Item.c new file mode 100644 index 0000000..4220b9f --- /dev/null +++ b/e2sim/asn1c/RICaction-ConfirmedForRemoval-Item.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICaction-ConfirmedForRemoval-Item.h" + +asn_TYPE_member_t asn_MBR_RICaction_ConfirmedForRemoval_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ConfirmedForRemoval_Item, ricActionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricActionID" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_ConfirmedForRemoval_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_ConfirmedForRemoval_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ricActionID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_ConfirmedForRemoval_Item_specs_1 = { + sizeof(struct RICaction_ConfirmedForRemoval_Item), + offsetof(struct RICaction_ConfirmedForRemoval_Item, _asn_ctx), + asn_MAP_RICaction_ConfirmedForRemoval_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_RICaction_ConfirmedForRemoval_Item = { + "RICaction-ConfirmedForRemoval-Item", + "RICaction-ConfirmedForRemoval-Item", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_ConfirmedForRemoval_Item_tags_1, + sizeof(asn_DEF_RICaction_ConfirmedForRemoval_Item_tags_1) + /sizeof(asn_DEF_RICaction_ConfirmedForRemoval_Item_tags_1[0]), /* 1 */ + asn_DEF_RICaction_ConfirmedForRemoval_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_RICaction_ConfirmedForRemoval_Item_tags_1) + /sizeof(asn_DEF_RICaction_ConfirmedForRemoval_Item_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_ConfirmedForRemoval_Item_1, + 1, /* Elements count */ + &asn_SPC_RICaction_ConfirmedForRemoval_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICaction-ConfirmedForRemoval-Item.h b/e2sim/asn1c/RICaction-ConfirmedForRemoval-Item.h new file mode 100644 index 0000000..1910b2e --- /dev/null +++ b/e2sim/asn1c/RICaction-ConfirmedForRemoval-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 "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICaction_ConfirmedForRemoval_Item_H_ +#define _RICaction_ConfirmedForRemoval_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RICactionID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICaction-ConfirmedForRemoval-Item */ +typedef struct RICaction_ConfirmedForRemoval_Item { + RICactionID_t ricActionID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICaction_ConfirmedForRemoval_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICaction_ConfirmedForRemoval_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_ConfirmedForRemoval_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_RICaction_ConfirmedForRemoval_Item_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICaction_ConfirmedForRemoval_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICaction-FailedToBeAddedForModification-Item.c b/e2sim/asn1c/RICaction-FailedToBeAddedForModification-Item.c new file mode 100644 index 0000000..f445b84 --- /dev/null +++ b/e2sim/asn1c/RICaction-FailedToBeAddedForModification-Item.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICaction-FailedToBeAddedForModification-Item.h" + +asn_TYPE_member_t asn_MBR_RICaction_FailedToBeAddedForModification_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_FailedToBeAddedForModification_Item, ricActionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricActionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_FailedToBeAddedForModification_Item, cause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Cause, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "cause" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_FailedToBeAddedForModification_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_FailedToBeAddedForModification_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricActionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cause */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_FailedToBeAddedForModification_Item_specs_1 = { + sizeof(struct RICaction_FailedToBeAddedForModification_Item), + offsetof(struct RICaction_FailedToBeAddedForModification_Item, _asn_ctx), + asn_MAP_RICaction_FailedToBeAddedForModification_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_RICaction_FailedToBeAddedForModification_Item = { + "RICaction-FailedToBeAddedForModification-Item", + "RICaction-FailedToBeAddedForModification-Item", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_FailedToBeAddedForModification_Item_tags_1, + sizeof(asn_DEF_RICaction_FailedToBeAddedForModification_Item_tags_1) + /sizeof(asn_DEF_RICaction_FailedToBeAddedForModification_Item_tags_1[0]), /* 1 */ + asn_DEF_RICaction_FailedToBeAddedForModification_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_RICaction_FailedToBeAddedForModification_Item_tags_1) + /sizeof(asn_DEF_RICaction_FailedToBeAddedForModification_Item_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_FailedToBeAddedForModification_Item_1, + 2, /* Elements count */ + &asn_SPC_RICaction_FailedToBeAddedForModification_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICaction-FailedToBeAddedForModification-Item.h b/e2sim/asn1c/RICaction-FailedToBeAddedForModification-Item.h new file mode 100644 index 0000000..96113a2 --- /dev/null +++ b/e2sim/asn1c/RICaction-FailedToBeAddedForModification-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 "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICaction_FailedToBeAddedForModification_Item_H_ +#define _RICaction_FailedToBeAddedForModification_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RICactionID.h" +#include "Cause.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICaction-FailedToBeAddedForModification-Item */ +typedef struct RICaction_FailedToBeAddedForModification_Item { + RICactionID_t ricActionID; + Cause_t cause; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICaction_FailedToBeAddedForModification_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICaction_FailedToBeAddedForModification_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_FailedToBeAddedForModification_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_RICaction_FailedToBeAddedForModification_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICaction_FailedToBeAddedForModification_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICaction-FailedToBeModifiedForModification-Item.c b/e2sim/asn1c/RICaction-FailedToBeModifiedForModification-Item.c new file mode 100644 index 0000000..0018f1b --- /dev/null +++ b/e2sim/asn1c/RICaction-FailedToBeModifiedForModification-Item.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICaction-FailedToBeModifiedForModification-Item.h" + +asn_TYPE_member_t asn_MBR_RICaction_FailedToBeModifiedForModification_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_FailedToBeModifiedForModification_Item, ricActionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricActionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_FailedToBeModifiedForModification_Item, cause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Cause, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "cause" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_FailedToBeModifiedForModification_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_FailedToBeModifiedForModification_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricActionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cause */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_FailedToBeModifiedForModification_Item_specs_1 = { + sizeof(struct RICaction_FailedToBeModifiedForModification_Item), + offsetof(struct RICaction_FailedToBeModifiedForModification_Item, _asn_ctx), + asn_MAP_RICaction_FailedToBeModifiedForModification_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_RICaction_FailedToBeModifiedForModification_Item = { + "RICaction-FailedToBeModifiedForModification-Item", + "RICaction-FailedToBeModifiedForModification-Item", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_FailedToBeModifiedForModification_Item_tags_1, + sizeof(asn_DEF_RICaction_FailedToBeModifiedForModification_Item_tags_1) + /sizeof(asn_DEF_RICaction_FailedToBeModifiedForModification_Item_tags_1[0]), /* 1 */ + asn_DEF_RICaction_FailedToBeModifiedForModification_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_RICaction_FailedToBeModifiedForModification_Item_tags_1) + /sizeof(asn_DEF_RICaction_FailedToBeModifiedForModification_Item_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_FailedToBeModifiedForModification_Item_1, + 2, /* Elements count */ + &asn_SPC_RICaction_FailedToBeModifiedForModification_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICaction-FailedToBeModifiedForModification-Item.h b/e2sim/asn1c/RICaction-FailedToBeModifiedForModification-Item.h new file mode 100644 index 0000000..bdc54c6 --- /dev/null +++ b/e2sim/asn1c/RICaction-FailedToBeModifiedForModification-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 "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICaction_FailedToBeModifiedForModification_Item_H_ +#define _RICaction_FailedToBeModifiedForModification_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RICactionID.h" +#include "Cause.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICaction-FailedToBeModifiedForModification-Item */ +typedef struct RICaction_FailedToBeModifiedForModification_Item { + RICactionID_t ricActionID; + Cause_t cause; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICaction_FailedToBeModifiedForModification_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICaction_FailedToBeModifiedForModification_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_FailedToBeModifiedForModification_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_RICaction_FailedToBeModifiedForModification_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICaction_FailedToBeModifiedForModification_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICaction-FailedToBeRemovedForModification-Item.c b/e2sim/asn1c/RICaction-FailedToBeRemovedForModification-Item.c new file mode 100644 index 0000000..a861314 --- /dev/null +++ b/e2sim/asn1c/RICaction-FailedToBeRemovedForModification-Item.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICaction-FailedToBeRemovedForModification-Item.h" + +asn_TYPE_member_t asn_MBR_RICaction_FailedToBeRemovedForModification_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_FailedToBeRemovedForModification_Item, ricActionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricActionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_FailedToBeRemovedForModification_Item, cause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Cause, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "cause" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_FailedToBeRemovedForModification_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_FailedToBeRemovedForModification_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricActionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cause */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_FailedToBeRemovedForModification_Item_specs_1 = { + sizeof(struct RICaction_FailedToBeRemovedForModification_Item), + offsetof(struct RICaction_FailedToBeRemovedForModification_Item, _asn_ctx), + asn_MAP_RICaction_FailedToBeRemovedForModification_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_RICaction_FailedToBeRemovedForModification_Item = { + "RICaction-FailedToBeRemovedForModification-Item", + "RICaction-FailedToBeRemovedForModification-Item", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_FailedToBeRemovedForModification_Item_tags_1, + sizeof(asn_DEF_RICaction_FailedToBeRemovedForModification_Item_tags_1) + /sizeof(asn_DEF_RICaction_FailedToBeRemovedForModification_Item_tags_1[0]), /* 1 */ + asn_DEF_RICaction_FailedToBeRemovedForModification_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_RICaction_FailedToBeRemovedForModification_Item_tags_1) + /sizeof(asn_DEF_RICaction_FailedToBeRemovedForModification_Item_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_FailedToBeRemovedForModification_Item_1, + 2, /* Elements count */ + &asn_SPC_RICaction_FailedToBeRemovedForModification_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICaction-FailedToBeRemovedForModification-Item.h b/e2sim/asn1c/RICaction-FailedToBeRemovedForModification-Item.h new file mode 100644 index 0000000..ea92759 --- /dev/null +++ b/e2sim/asn1c/RICaction-FailedToBeRemovedForModification-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 "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICaction_FailedToBeRemovedForModification_Item_H_ +#define _RICaction_FailedToBeRemovedForModification_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RICactionID.h" +#include "Cause.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICaction-FailedToBeRemovedForModification-Item */ +typedef struct RICaction_FailedToBeRemovedForModification_Item { + RICactionID_t ricActionID; + Cause_t cause; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICaction_FailedToBeRemovedForModification_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICaction_FailedToBeRemovedForModification_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_FailedToBeRemovedForModification_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_RICaction_FailedToBeRemovedForModification_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICaction_FailedToBeRemovedForModification_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICaction-ModifiedForModification-Item.c b/e2sim/asn1c/RICaction-ModifiedForModification-Item.c new file mode 100644 index 0000000..b459207 --- /dev/null +++ b/e2sim/asn1c/RICaction-ModifiedForModification-Item.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICaction-ModifiedForModification-Item.h" + +asn_TYPE_member_t asn_MBR_RICaction_ModifiedForModification_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ModifiedForModification_Item, ricActionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricActionID" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_ModifiedForModification_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_ModifiedForModification_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ricActionID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_ModifiedForModification_Item_specs_1 = { + sizeof(struct RICaction_ModifiedForModification_Item), + offsetof(struct RICaction_ModifiedForModification_Item, _asn_ctx), + asn_MAP_RICaction_ModifiedForModification_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_RICaction_ModifiedForModification_Item = { + "RICaction-ModifiedForModification-Item", + "RICaction-ModifiedForModification-Item", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_ModifiedForModification_Item_tags_1, + sizeof(asn_DEF_RICaction_ModifiedForModification_Item_tags_1) + /sizeof(asn_DEF_RICaction_ModifiedForModification_Item_tags_1[0]), /* 1 */ + asn_DEF_RICaction_ModifiedForModification_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_RICaction_ModifiedForModification_Item_tags_1) + /sizeof(asn_DEF_RICaction_ModifiedForModification_Item_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_ModifiedForModification_Item_1, + 1, /* Elements count */ + &asn_SPC_RICaction_ModifiedForModification_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICaction-ModifiedForModification-Item.h b/e2sim/asn1c/RICaction-ModifiedForModification-Item.h new file mode 100644 index 0000000..7bae657 --- /dev/null +++ b/e2sim/asn1c/RICaction-ModifiedForModification-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 "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICaction_ModifiedForModification_Item_H_ +#define _RICaction_ModifiedForModification_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RICactionID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICaction-ModifiedForModification-Item */ +typedef struct RICaction_ModifiedForModification_Item { + RICactionID_t ricActionID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICaction_ModifiedForModification_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICaction_ModifiedForModification_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_ModifiedForModification_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_RICaction_ModifiedForModification_Item_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICaction_ModifiedForModification_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICaction-NotAdmitted-Item.c b/e2sim/asn1c/RICaction-NotAdmitted-Item.c new file mode 100644 index 0000000..d30c2d5 --- /dev/null +++ b/e2sim/asn1c/RICaction-NotAdmitted-Item.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICaction-NotAdmitted-Item.h" + +asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_Item, ricActionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricActionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_Item, cause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Cause, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "cause" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_NotAdmitted_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_NotAdmitted_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricActionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cause */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_Item_specs_1 = { + sizeof(struct RICaction_NotAdmitted_Item), + offsetof(struct RICaction_NotAdmitted_Item, _asn_ctx), + asn_MAP_RICaction_NotAdmitted_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_RICaction_NotAdmitted_Item = { + "RICaction-NotAdmitted-Item", + "RICaction-NotAdmitted-Item", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_NotAdmitted_Item_tags_1, + sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1) + /sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1[0]), /* 1 */ + asn_DEF_RICaction_NotAdmitted_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1) + /sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_NotAdmitted_Item_1, + 2, /* Elements count */ + &asn_SPC_RICaction_NotAdmitted_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICaction-NotAdmitted-Item.h b/e2sim/asn1c/RICaction-NotAdmitted-Item.h new file mode 100644 index 0000000..c90c186 --- /dev/null +++ b/e2sim/asn1c/RICaction-NotAdmitted-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 "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICaction_NotAdmitted_Item_H_ +#define _RICaction_NotAdmitted_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RICactionID.h" +#include "Cause.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICaction-NotAdmitted-Item */ +typedef struct RICaction_NotAdmitted_Item { + RICactionID_t ricActionID; + Cause_t cause; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICaction_NotAdmitted_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICaction_NotAdmitted_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICaction-NotAdmitted-List.c b/e2sim/asn1c/RICaction-NotAdmitted-List.c new file mode 100644 index 0000000..0584b77 --- /dev/null +++ b/e2sim/asn1c/RICaction-NotAdmitted-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICaction-NotAdmitted-List.h" + +#include "ProtocolIE-SingleContainer.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RICaction_NotAdmitted_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 0, 16 } /* (SIZE(0..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_88P2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_NotAdmitted_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RICaction_NotAdmitted_List_specs_1 = { + sizeof(struct RICaction_NotAdmitted_List), + offsetof(struct RICaction_NotAdmitted_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_List = { + "RICaction-NotAdmitted-List", + "RICaction-NotAdmitted-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_RICaction_NotAdmitted_List_tags_1, + sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1) + /sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1[0]), /* 1 */ + asn_DEF_RICaction_NotAdmitted_List_tags_1, /* Same as above */ + sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1) + /sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RICaction_NotAdmitted_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_RICaction_NotAdmitted_List_1, + 1, /* Single element */ + &asn_SPC_RICaction_NotAdmitted_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICaction-NotAdmitted-List.h b/e2sim/asn1c/RICaction-NotAdmitted-List.h new file mode 100644 index 0000000..d1d47d2 --- /dev/null +++ b/e2sim/asn1c/RICaction-NotAdmitted-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICaction_NotAdmitted_List_H_ +#define _RICaction_NotAdmitted_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* RICaction-NotAdmitted-List */ +typedef struct RICaction_NotAdmitted_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICaction_NotAdmitted_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_List; +extern asn_SET_OF_specifics_t asn_SPC_RICaction_NotAdmitted_List_specs_1; +extern asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_List_1[1]; +extern asn_per_constraints_t asn_PER_type_RICaction_NotAdmitted_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICaction_NotAdmitted_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICaction-RefusedToBeModified-Item.c b/e2sim/asn1c/RICaction-RefusedToBeModified-Item.c new file mode 100644 index 0000000..2304e76 --- /dev/null +++ b/e2sim/asn1c/RICaction-RefusedToBeModified-Item.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICaction-RefusedToBeModified-Item.h" + +asn_TYPE_member_t asn_MBR_RICaction_RefusedToBeModified_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_RefusedToBeModified_Item, ricActionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricActionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_RefusedToBeModified_Item, cause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Cause, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "cause" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_RefusedToBeModified_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_RefusedToBeModified_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricActionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cause */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_RefusedToBeModified_Item_specs_1 = { + sizeof(struct RICaction_RefusedToBeModified_Item), + offsetof(struct RICaction_RefusedToBeModified_Item, _asn_ctx), + asn_MAP_RICaction_RefusedToBeModified_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_RICaction_RefusedToBeModified_Item = { + "RICaction-RefusedToBeModified-Item", + "RICaction-RefusedToBeModified-Item", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_RefusedToBeModified_Item_tags_1, + sizeof(asn_DEF_RICaction_RefusedToBeModified_Item_tags_1) + /sizeof(asn_DEF_RICaction_RefusedToBeModified_Item_tags_1[0]), /* 1 */ + asn_DEF_RICaction_RefusedToBeModified_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_RICaction_RefusedToBeModified_Item_tags_1) + /sizeof(asn_DEF_RICaction_RefusedToBeModified_Item_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_RefusedToBeModified_Item_1, + 2, /* Elements count */ + &asn_SPC_RICaction_RefusedToBeModified_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICaction-RefusedToBeModified-Item.h b/e2sim/asn1c/RICaction-RefusedToBeModified-Item.h new file mode 100644 index 0000000..7e68418 --- /dev/null +++ b/e2sim/asn1c/RICaction-RefusedToBeModified-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 "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICaction_RefusedToBeModified_Item_H_ +#define _RICaction_RefusedToBeModified_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RICactionID.h" +#include "Cause.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICaction-RefusedToBeModified-Item */ +typedef struct RICaction_RefusedToBeModified_Item { + RICactionID_t ricActionID; + Cause_t cause; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICaction_RefusedToBeModified_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICaction_RefusedToBeModified_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_RefusedToBeModified_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_RICaction_RefusedToBeModified_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICaction_RefusedToBeModified_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICaction-RefusedToBeRemoved-Item.c b/e2sim/asn1c/RICaction-RefusedToBeRemoved-Item.c new file mode 100644 index 0000000..3394780 --- /dev/null +++ b/e2sim/asn1c/RICaction-RefusedToBeRemoved-Item.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICaction-RefusedToBeRemoved-Item.h" + +asn_TYPE_member_t asn_MBR_RICaction_RefusedToBeRemoved_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_RefusedToBeRemoved_Item, ricActionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricActionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_RefusedToBeRemoved_Item, cause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Cause, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "cause" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_RefusedToBeRemoved_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_RefusedToBeRemoved_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricActionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cause */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_RefusedToBeRemoved_Item_specs_1 = { + sizeof(struct RICaction_RefusedToBeRemoved_Item), + offsetof(struct RICaction_RefusedToBeRemoved_Item, _asn_ctx), + asn_MAP_RICaction_RefusedToBeRemoved_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_RICaction_RefusedToBeRemoved_Item = { + "RICaction-RefusedToBeRemoved-Item", + "RICaction-RefusedToBeRemoved-Item", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_RefusedToBeRemoved_Item_tags_1, + sizeof(asn_DEF_RICaction_RefusedToBeRemoved_Item_tags_1) + /sizeof(asn_DEF_RICaction_RefusedToBeRemoved_Item_tags_1[0]), /* 1 */ + asn_DEF_RICaction_RefusedToBeRemoved_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_RICaction_RefusedToBeRemoved_Item_tags_1) + /sizeof(asn_DEF_RICaction_RefusedToBeRemoved_Item_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_RefusedToBeRemoved_Item_1, + 2, /* Elements count */ + &asn_SPC_RICaction_RefusedToBeRemoved_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICaction-RefusedToBeRemoved-Item.h b/e2sim/asn1c/RICaction-RefusedToBeRemoved-Item.h new file mode 100644 index 0000000..c04d89f --- /dev/null +++ b/e2sim/asn1c/RICaction-RefusedToBeRemoved-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 "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICaction_RefusedToBeRemoved_Item_H_ +#define _RICaction_RefusedToBeRemoved_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RICactionID.h" +#include "Cause.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICaction-RefusedToBeRemoved-Item */ +typedef struct RICaction_RefusedToBeRemoved_Item { + RICactionID_t ricActionID; + Cause_t cause; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICaction_RefusedToBeRemoved_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICaction_RefusedToBeRemoved_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_RefusedToBeRemoved_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_RICaction_RefusedToBeRemoved_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICaction_RefusedToBeRemoved_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICaction-RemovedForModification-Item.c b/e2sim/asn1c/RICaction-RemovedForModification-Item.c new file mode 100644 index 0000000..55fa3e6 --- /dev/null +++ b/e2sim/asn1c/RICaction-RemovedForModification-Item.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICaction-RemovedForModification-Item.h" + +asn_TYPE_member_t asn_MBR_RICaction_RemovedForModification_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_RemovedForModification_Item, ricActionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricActionID" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_RemovedForModification_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_RemovedForModification_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ricActionID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_RemovedForModification_Item_specs_1 = { + sizeof(struct RICaction_RemovedForModification_Item), + offsetof(struct RICaction_RemovedForModification_Item, _asn_ctx), + asn_MAP_RICaction_RemovedForModification_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_RICaction_RemovedForModification_Item = { + "RICaction-RemovedForModification-Item", + "RICaction-RemovedForModification-Item", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_RemovedForModification_Item_tags_1, + sizeof(asn_DEF_RICaction_RemovedForModification_Item_tags_1) + /sizeof(asn_DEF_RICaction_RemovedForModification_Item_tags_1[0]), /* 1 */ + asn_DEF_RICaction_RemovedForModification_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_RICaction_RemovedForModification_Item_tags_1) + /sizeof(asn_DEF_RICaction_RemovedForModification_Item_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_RemovedForModification_Item_1, + 1, /* Elements count */ + &asn_SPC_RICaction_RemovedForModification_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICaction-RemovedForModification-Item.h b/e2sim/asn1c/RICaction-RemovedForModification-Item.h new file mode 100644 index 0000000..e34788f --- /dev/null +++ b/e2sim/asn1c/RICaction-RemovedForModification-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 "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICaction_RemovedForModification_Item_H_ +#define _RICaction_RemovedForModification_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RICactionID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICaction-RemovedForModification-Item */ +typedef struct RICaction_RemovedForModification_Item { + RICactionID_t ricActionID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICaction_RemovedForModification_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICaction_RemovedForModification_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_RemovedForModification_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_RICaction_RemovedForModification_Item_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICaction_RemovedForModification_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICaction-RequiredToBeModified-Item.c b/e2sim/asn1c/RICaction-RequiredToBeModified-Item.c new file mode 100644 index 0000000..7ada05a --- /dev/null +++ b/e2sim/asn1c/RICaction-RequiredToBeModified-Item.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICaction-RequiredToBeModified-Item.h" + +asn_TYPE_member_t asn_MBR_RICaction_RequiredToBeModified_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_RequiredToBeModified_Item, ricActionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricActionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_RequiredToBeModified_Item, ricTimeToWait), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICtimeToWait, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricTimeToWait" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_RequiredToBeModified_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_RequiredToBeModified_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricActionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricTimeToWait */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_RequiredToBeModified_Item_specs_1 = { + sizeof(struct RICaction_RequiredToBeModified_Item), + offsetof(struct RICaction_RequiredToBeModified_Item, _asn_ctx), + asn_MAP_RICaction_RequiredToBeModified_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_RICaction_RequiredToBeModified_Item = { + "RICaction-RequiredToBeModified-Item", + "RICaction-RequiredToBeModified-Item", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_RequiredToBeModified_Item_tags_1, + sizeof(asn_DEF_RICaction_RequiredToBeModified_Item_tags_1) + /sizeof(asn_DEF_RICaction_RequiredToBeModified_Item_tags_1[0]), /* 1 */ + asn_DEF_RICaction_RequiredToBeModified_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_RICaction_RequiredToBeModified_Item_tags_1) + /sizeof(asn_DEF_RICaction_RequiredToBeModified_Item_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_RequiredToBeModified_Item_1, + 2, /* Elements count */ + &asn_SPC_RICaction_RequiredToBeModified_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICaction-RequiredToBeModified-Item.h b/e2sim/asn1c/RICaction-RequiredToBeModified-Item.h new file mode 100644 index 0000000..014784c --- /dev/null +++ b/e2sim/asn1c/RICaction-RequiredToBeModified-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 "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICaction_RequiredToBeModified_Item_H_ +#define _RICaction_RequiredToBeModified_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RICactionID.h" +#include "RICtimeToWait.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICaction-RequiredToBeModified-Item */ +typedef struct RICaction_RequiredToBeModified_Item { + RICactionID_t ricActionID; + RICtimeToWait_t ricTimeToWait; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICaction_RequiredToBeModified_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICaction_RequiredToBeModified_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_RequiredToBeModified_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_RICaction_RequiredToBeModified_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICaction_RequiredToBeModified_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICaction-RequiredToBeRemoved-Item.c b/e2sim/asn1c/RICaction-RequiredToBeRemoved-Item.c new file mode 100644 index 0000000..4a57329 --- /dev/null +++ b/e2sim/asn1c/RICaction-RequiredToBeRemoved-Item.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICaction-RequiredToBeRemoved-Item.h" + +asn_TYPE_member_t asn_MBR_RICaction_RequiredToBeRemoved_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_RequiredToBeRemoved_Item, ricActionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricActionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_RequiredToBeRemoved_Item, cause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Cause, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "cause" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_RequiredToBeRemoved_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_RequiredToBeRemoved_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricActionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cause */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_RequiredToBeRemoved_Item_specs_1 = { + sizeof(struct RICaction_RequiredToBeRemoved_Item), + offsetof(struct RICaction_RequiredToBeRemoved_Item, _asn_ctx), + asn_MAP_RICaction_RequiredToBeRemoved_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_RICaction_RequiredToBeRemoved_Item = { + "RICaction-RequiredToBeRemoved-Item", + "RICaction-RequiredToBeRemoved-Item", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_RequiredToBeRemoved_Item_tags_1, + sizeof(asn_DEF_RICaction_RequiredToBeRemoved_Item_tags_1) + /sizeof(asn_DEF_RICaction_RequiredToBeRemoved_Item_tags_1[0]), /* 1 */ + asn_DEF_RICaction_RequiredToBeRemoved_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_RICaction_RequiredToBeRemoved_Item_tags_1) + /sizeof(asn_DEF_RICaction_RequiredToBeRemoved_Item_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_RequiredToBeRemoved_Item_1, + 2, /* Elements count */ + &asn_SPC_RICaction_RequiredToBeRemoved_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICaction-RequiredToBeRemoved-Item.h b/e2sim/asn1c/RICaction-RequiredToBeRemoved-Item.h new file mode 100644 index 0000000..052c505 --- /dev/null +++ b/e2sim/asn1c/RICaction-RequiredToBeRemoved-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 "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICaction_RequiredToBeRemoved_Item_H_ +#define _RICaction_RequiredToBeRemoved_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RICactionID.h" +#include "Cause.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICaction-RequiredToBeRemoved-Item */ +typedef struct RICaction_RequiredToBeRemoved_Item { + RICactionID_t ricActionID; + Cause_t cause; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICaction_RequiredToBeRemoved_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICaction_RequiredToBeRemoved_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_RequiredToBeRemoved_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_RICaction_RequiredToBeRemoved_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICaction_RequiredToBeRemoved_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICaction-ToBeAddedForModification-Item.c b/e2sim/asn1c/RICaction-ToBeAddedForModification-Item.c new file mode 100644 index 0000000..a4aa4e5 --- /dev/null +++ b/e2sim/asn1c/RICaction-ToBeAddedForModification-Item.c @@ -0,0 +1,141 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICaction-ToBeAddedForModification-Item.h" + +#include "RICsubsequentAction.h" +asn_TYPE_member_t asn_MBR_RICaction_ToBeAddedForModification_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeAddedForModification_Item, ricActionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricActionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeAddedForModification_Item, ricActionType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICactionType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricActionType" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeAddedForModification_Item, ricActionDefinition), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICactionDefinition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricActionDefinition" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeAddedForModification_Item, ricActionExecutionOrder), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICactionExecutionOrder, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricActionExecutionOrder" + }, + { ATF_POINTER, 1, offsetof(struct RICaction_ToBeAddedForModification_Item, ricSubsequentAction), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICsubsequentAction, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricSubsequentAction" + }, +}; +static const int asn_MAP_RICaction_ToBeAddedForModification_Item_oms_1[] = { 4 }; +static const ber_tlv_tag_t asn_DEF_RICaction_ToBeAddedForModification_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_ToBeAddedForModification_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricActionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricActionType */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ricActionDefinition */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ricActionExecutionOrder */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* ricSubsequentAction */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeAddedForModification_Item_specs_1 = { + sizeof(struct RICaction_ToBeAddedForModification_Item), + offsetof(struct RICaction_ToBeAddedForModification_Item, _asn_ctx), + asn_MAP_RICaction_ToBeAddedForModification_Item_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_RICaction_ToBeAddedForModification_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeAddedForModification_Item = { + "RICaction-ToBeAddedForModification-Item", + "RICaction-ToBeAddedForModification-Item", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_ToBeAddedForModification_Item_tags_1, + sizeof(asn_DEF_RICaction_ToBeAddedForModification_Item_tags_1) + /sizeof(asn_DEF_RICaction_ToBeAddedForModification_Item_tags_1[0]), /* 1 */ + asn_DEF_RICaction_ToBeAddedForModification_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_RICaction_ToBeAddedForModification_Item_tags_1) + /sizeof(asn_DEF_RICaction_ToBeAddedForModification_Item_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_ToBeAddedForModification_Item_1, + 5, /* Elements count */ + &asn_SPC_RICaction_ToBeAddedForModification_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICaction-ToBeAddedForModification-Item.h b/e2sim/asn1c/RICaction-ToBeAddedForModification-Item.h new file mode 100644 index 0000000..3b38a62 --- /dev/null +++ b/e2sim/asn1c/RICaction-ToBeAddedForModification-Item.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICaction_ToBeAddedForModification_Item_H_ +#define _RICaction_ToBeAddedForModification_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RICactionID.h" +#include "RICactionType.h" +#include "RICactionDefinition.h" +#include "RICactionExecutionOrder.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RICsubsequentAction; + +/* RICaction-ToBeAddedForModification-Item */ +typedef struct RICaction_ToBeAddedForModification_Item { + RICactionID_t ricActionID; + RICactionType_t ricActionType; + RICactionDefinition_t ricActionDefinition; + RICactionExecutionOrder_t ricActionExecutionOrder; + struct RICsubsequentAction *ricSubsequentAction; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICaction_ToBeAddedForModification_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeAddedForModification_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeAddedForModification_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_RICaction_ToBeAddedForModification_Item_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICaction_ToBeAddedForModification_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICaction-ToBeModifiedForModification-Item.c b/e2sim/asn1c/RICaction-ToBeModifiedForModification-Item.c new file mode 100644 index 0000000..c2d945e --- /dev/null +++ b/e2sim/asn1c/RICaction-ToBeModifiedForModification-Item.c @@ -0,0 +1,123 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICaction-ToBeModifiedForModification-Item.h" + +#include "RICsubsequentAction.h" +asn_TYPE_member_t asn_MBR_RICaction_ToBeModifiedForModification_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeModifiedForModification_Item, ricActionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricActionID" + }, + { ATF_POINTER, 3, offsetof(struct RICaction_ToBeModifiedForModification_Item, ricActionDefinition), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICactionDefinition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricActionDefinition" + }, + { ATF_POINTER, 2, offsetof(struct RICaction_ToBeModifiedForModification_Item, ricActionExecutionOrder), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICactionExecutionOrder, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricActionExecutionOrder" + }, + { ATF_POINTER, 1, offsetof(struct RICaction_ToBeModifiedForModification_Item, ricSubsequentAction), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICsubsequentAction, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricSubsequentAction" + }, +}; +static const int asn_MAP_RICaction_ToBeModifiedForModification_Item_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_RICaction_ToBeModifiedForModification_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_ToBeModifiedForModification_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricActionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricActionDefinition */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ricActionExecutionOrder */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ricSubsequentAction */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeModifiedForModification_Item_specs_1 = { + sizeof(struct RICaction_ToBeModifiedForModification_Item), + offsetof(struct RICaction_ToBeModifiedForModification_Item, _asn_ctx), + asn_MAP_RICaction_ToBeModifiedForModification_Item_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_RICaction_ToBeModifiedForModification_Item_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeModifiedForModification_Item = { + "RICaction-ToBeModifiedForModification-Item", + "RICaction-ToBeModifiedForModification-Item", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_ToBeModifiedForModification_Item_tags_1, + sizeof(asn_DEF_RICaction_ToBeModifiedForModification_Item_tags_1) + /sizeof(asn_DEF_RICaction_ToBeModifiedForModification_Item_tags_1[0]), /* 1 */ + asn_DEF_RICaction_ToBeModifiedForModification_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_RICaction_ToBeModifiedForModification_Item_tags_1) + /sizeof(asn_DEF_RICaction_ToBeModifiedForModification_Item_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_ToBeModifiedForModification_Item_1, + 4, /* Elements count */ + &asn_SPC_RICaction_ToBeModifiedForModification_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICaction-ToBeModifiedForModification-Item.h b/e2sim/asn1c/RICaction-ToBeModifiedForModification-Item.h new file mode 100644 index 0000000..0a9f4ca --- /dev/null +++ b/e2sim/asn1c/RICaction-ToBeModifiedForModification-Item.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICaction_ToBeModifiedForModification_Item_H_ +#define _RICaction_ToBeModifiedForModification_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RICactionID.h" +#include "RICactionDefinition.h" +#include "RICactionExecutionOrder.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RICsubsequentAction; + +/* RICaction-ToBeModifiedForModification-Item */ +typedef struct RICaction_ToBeModifiedForModification_Item { + RICactionID_t ricActionID; + RICactionDefinition_t *ricActionDefinition; /* OPTIONAL */ + RICactionExecutionOrder_t *ricActionExecutionOrder; /* OPTIONAL */ + struct RICsubsequentAction *ricSubsequentAction; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICaction_ToBeModifiedForModification_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeModifiedForModification_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeModifiedForModification_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_RICaction_ToBeModifiedForModification_Item_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICaction_ToBeModifiedForModification_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICaction-ToBeRemovedForModification-Item.c b/e2sim/asn1c/RICaction-ToBeRemovedForModification-Item.c new file mode 100644 index 0000000..8cdae66 --- /dev/null +++ b/e2sim/asn1c/RICaction-ToBeRemovedForModification-Item.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICaction-ToBeRemovedForModification-Item.h" + +asn_TYPE_member_t asn_MBR_RICaction_ToBeRemovedForModification_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeRemovedForModification_Item, ricActionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricActionID" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_ToBeRemovedForModification_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_ToBeRemovedForModification_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ricActionID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeRemovedForModification_Item_specs_1 = { + sizeof(struct RICaction_ToBeRemovedForModification_Item), + offsetof(struct RICaction_ToBeRemovedForModification_Item, _asn_ctx), + asn_MAP_RICaction_ToBeRemovedForModification_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_RICaction_ToBeRemovedForModification_Item = { + "RICaction-ToBeRemovedForModification-Item", + "RICaction-ToBeRemovedForModification-Item", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_ToBeRemovedForModification_Item_tags_1, + sizeof(asn_DEF_RICaction_ToBeRemovedForModification_Item_tags_1) + /sizeof(asn_DEF_RICaction_ToBeRemovedForModification_Item_tags_1[0]), /* 1 */ + asn_DEF_RICaction_ToBeRemovedForModification_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_RICaction_ToBeRemovedForModification_Item_tags_1) + /sizeof(asn_DEF_RICaction_ToBeRemovedForModification_Item_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_ToBeRemovedForModification_Item_1, + 1, /* Elements count */ + &asn_SPC_RICaction_ToBeRemovedForModification_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICaction-ToBeRemovedForModification-Item.h b/e2sim/asn1c/RICaction-ToBeRemovedForModification-Item.h new file mode 100644 index 0000000..e73a183 --- /dev/null +++ b/e2sim/asn1c/RICaction-ToBeRemovedForModification-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 "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICaction_ToBeRemovedForModification_Item_H_ +#define _RICaction_ToBeRemovedForModification_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RICactionID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICaction-ToBeRemovedForModification-Item */ +typedef struct RICaction_ToBeRemovedForModification_Item { + RICactionID_t ricActionID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICaction_ToBeRemovedForModification_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeRemovedForModification_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeRemovedForModification_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_RICaction_ToBeRemovedForModification_Item_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICaction_ToBeRemovedForModification_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICaction-ToBeSetup-Item.c b/e2sim/asn1c/RICaction-ToBeSetup-Item.c new file mode 100644 index 0000000..c2ac496 --- /dev/null +++ b/e2sim/asn1c/RICaction-ToBeSetup-Item.c @@ -0,0 +1,141 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICaction-ToBeSetup-Item.h" + +#include "RICsubsequentAction.h" +asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_Item, ricActionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICactionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricActionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_Item, ricActionType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICactionType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricActionType" + }, + { ATF_POINTER, 3, offsetof(struct RICaction_ToBeSetup_Item, ricActionDefinition), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICactionDefinition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricActionDefinition" + }, + { ATF_POINTER, 2, offsetof(struct RICaction_ToBeSetup_Item, ricSubsequentAction), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICsubsequentAction, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricSubsequentAction" + }, + { ATF_POINTER, 1, offsetof(struct RICaction_ToBeSetup_Item, ricActionExecutionOrder), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICactionExecutionOrder, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricActionExecutionOrder" + }, +}; +static const int asn_MAP_RICaction_ToBeSetup_Item_oms_1[] = { 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_RICaction_ToBeSetup_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_ToBeSetup_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricActionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricActionType */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ricActionDefinition */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ricSubsequentAction */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* ricActionExecutionOrder */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_Item_specs_1 = { + sizeof(struct RICaction_ToBeSetup_Item), + offsetof(struct RICaction_ToBeSetup_Item, _asn_ctx), + asn_MAP_RICaction_ToBeSetup_Item_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_RICaction_ToBeSetup_Item_oms_1, /* Optional members */ + 2, 1, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_Item = { + "RICaction-ToBeSetup-Item", + "RICaction-ToBeSetup-Item", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_ToBeSetup_Item_tags_1, + sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1) + /sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1[0]), /* 1 */ + asn_DEF_RICaction_ToBeSetup_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1) + /sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICaction_ToBeSetup_Item_1, + 5, /* Elements count */ + &asn_SPC_RICaction_ToBeSetup_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICaction-ToBeSetup-Item.h b/e2sim/asn1c/RICaction-ToBeSetup-Item.h new file mode 100644 index 0000000..8e55f5a --- /dev/null +++ b/e2sim/asn1c/RICaction-ToBeSetup-Item.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICaction_ToBeSetup_Item_H_ +#define _RICaction_ToBeSetup_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RICactionID.h" +#include "RICactionType.h" +#include "RICactionDefinition.h" +#include "RICactionExecutionOrder.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RICsubsequentAction; + +/* RICaction-ToBeSetup-Item */ +typedef struct RICaction_ToBeSetup_Item { + RICactionID_t ricActionID; + RICactionType_t ricActionType; + RICactionDefinition_t *ricActionDefinition; /* OPTIONAL */ + struct RICsubsequentAction *ricSubsequentAction; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + RICactionExecutionOrder_t *ricActionExecutionOrder; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICaction_ToBeSetup_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_Item_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICaction_ToBeSetup_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICactionDefinition.c b/e2sim/asn1c/RICactionDefinition.c new file mode 100644 index 0000000..1174a64 --- /dev/null +++ b/e2sim/asn1c/RICactionDefinition.c @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICactionDefinition.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_RICactionDefinition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RICactionDefinition = { + "RICactionDefinition", + "RICactionDefinition", + &asn_OP_OCTET_STRING, + asn_DEF_RICactionDefinition_tags_1, + sizeof(asn_DEF_RICactionDefinition_tags_1) + /sizeof(asn_DEF_RICactionDefinition_tags_1[0]), /* 1 */ + asn_DEF_RICactionDefinition_tags_1, /* Same as above */ + sizeof(asn_DEF_RICactionDefinition_tags_1) + /sizeof(asn_DEF_RICactionDefinition_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OCTET_STRING_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICactionDefinition.h b/e2sim/asn1c/RICactionDefinition.h new file mode 100644 index 0000000..a051539 --- /dev/null +++ b/e2sim/asn1c/RICactionDefinition.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICactionDefinition_H_ +#define _RICactionDefinition_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICactionDefinition */ +typedef OCTET_STRING_t RICactionDefinition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICactionDefinition; +asn_struct_free_f RICactionDefinition_free; +asn_struct_print_f RICactionDefinition_print; +asn_constr_check_f RICactionDefinition_constraint; +ber_type_decoder_f RICactionDefinition_decode_ber; +der_type_encoder_f RICactionDefinition_encode_der; +xer_type_decoder_f RICactionDefinition_decode_xer; +xer_type_encoder_f RICactionDefinition_encode_xer; +jer_type_encoder_f RICactionDefinition_encode_jer; +per_type_decoder_f RICactionDefinition_decode_uper; +per_type_encoder_f RICactionDefinition_encode_uper; +per_type_decoder_f RICactionDefinition_decode_aper; +per_type_encoder_f RICactionDefinition_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICactionDefinition_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICactionExecutionOrder.c b/e2sim/asn1c/RICactionExecutionOrder.c new file mode 100644 index 0000000..9d14496 --- /dev/null +++ b/e2sim/asn1c/RICactionExecutionOrder.c @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICactionExecutionOrder.h" + +int +RICactionExecutionOrder_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 >= 0L && value <= 255L)) { + /* 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. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RICactionExecutionOrder_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_RICactionExecutionOrder_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RICactionExecutionOrder = { + "RICactionExecutionOrder", + "RICactionExecutionOrder", + &asn_OP_NativeInteger, + asn_DEF_RICactionExecutionOrder_tags_1, + sizeof(asn_DEF_RICactionExecutionOrder_tags_1) + /sizeof(asn_DEF_RICactionExecutionOrder_tags_1[0]), /* 1 */ + asn_DEF_RICactionExecutionOrder_tags_1, /* Same as above */ + sizeof(asn_DEF_RICactionExecutionOrder_tags_1) + /sizeof(asn_DEF_RICactionExecutionOrder_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RICactionExecutionOrder_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + RICactionExecutionOrder_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/RICactionExecutionOrder.h b/e2sim/asn1c/RICactionExecutionOrder.h new file mode 100644 index 0000000..602bdf3 --- /dev/null +++ b/e2sim/asn1c/RICactionExecutionOrder.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICactionExecutionOrder_H_ +#define _RICactionExecutionOrder_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICactionExecutionOrder */ +typedef long RICactionExecutionOrder_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RICactionExecutionOrder_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RICactionExecutionOrder; +asn_struct_free_f RICactionExecutionOrder_free; +asn_struct_print_f RICactionExecutionOrder_print; +asn_constr_check_f RICactionExecutionOrder_constraint; +ber_type_decoder_f RICactionExecutionOrder_decode_ber; +der_type_encoder_f RICactionExecutionOrder_encode_der; +xer_type_decoder_f RICactionExecutionOrder_decode_xer; +xer_type_encoder_f RICactionExecutionOrder_encode_xer; +jer_type_encoder_f RICactionExecutionOrder_encode_jer; +per_type_decoder_f RICactionExecutionOrder_decode_uper; +per_type_encoder_f RICactionExecutionOrder_encode_uper; +per_type_decoder_f RICactionExecutionOrder_decode_aper; +per_type_encoder_f RICactionExecutionOrder_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICactionExecutionOrder_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICactionID.c b/e2sim/asn1c/RICactionID.c new file mode 100644 index 0000000..9da4c70 --- /dev/null +++ b/e2sim/asn1c/RICactionID.c @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICactionID.h" + +int +RICactionID_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 >= 0L && value <= 255L)) { + /* 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. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RICactionID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_RICactionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RICactionID = { + "RICactionID", + "RICactionID", + &asn_OP_NativeInteger, + asn_DEF_RICactionID_tags_1, + sizeof(asn_DEF_RICactionID_tags_1) + /sizeof(asn_DEF_RICactionID_tags_1[0]), /* 1 */ + asn_DEF_RICactionID_tags_1, /* Same as above */ + sizeof(asn_DEF_RICactionID_tags_1) + /sizeof(asn_DEF_RICactionID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RICactionID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + RICactionID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/RICactionID.h b/e2sim/asn1c/RICactionID.h new file mode 100644 index 0000000..5b1f826 --- /dev/null +++ b/e2sim/asn1c/RICactionID.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICactionID_H_ +#define _RICactionID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICactionID */ +typedef long RICactionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RICactionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RICactionID; +asn_struct_free_f RICactionID_free; +asn_struct_print_f RICactionID_print; +asn_constr_check_f RICactionID_constraint; +ber_type_decoder_f RICactionID_decode_ber; +der_type_encoder_f RICactionID_encode_der; +xer_type_decoder_f RICactionID_decode_xer; +xer_type_encoder_f RICactionID_encode_xer; +jer_type_encoder_f RICactionID_encode_jer; +per_type_decoder_f RICactionID_decode_uper; +per_type_encoder_f RICactionID_encode_uper; +per_type_decoder_f RICactionID_decode_aper; +per_type_encoder_f RICactionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICactionID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICactionType.c b/e2sim/asn1c/RICactionType.c new file mode 100644 index 0000000..8b5d316 --- /dev/null +++ b/e2sim/asn1c/RICactionType.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICactionType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RICactionType_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_RICactionType_value2enum_1[] = { + { 0, 6, "report" }, + { 1, 6, "insert" }, + { 2, 6, "policy" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RICactionType_enum2value_1[] = { + 1, /* insert(1) */ + 2, /* policy(2) */ + 0 /* report(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_RICactionType_specs_1 = { + asn_MAP_RICactionType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RICactionType_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_RICactionType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RICactionType = { + "RICactionType", + "RICactionType", + &asn_OP_NativeEnumerated, + asn_DEF_RICactionType_tags_1, + sizeof(asn_DEF_RICactionType_tags_1) + /sizeof(asn_DEF_RICactionType_tags_1[0]), /* 1 */ + asn_DEF_RICactionType_tags_1, /* Same as above */ + sizeof(asn_DEF_RICactionType_tags_1) + /sizeof(asn_DEF_RICactionType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RICactionType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RICactionType_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICactionType.h b/e2sim/asn1c/RICactionType.h new file mode 100644 index 0000000..8796fc9 --- /dev/null +++ b/e2sim/asn1c/RICactionType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICactionType_H_ +#define _RICactionType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RICactionType { + RICactionType_report = 0, + RICactionType_insert = 1, + RICactionType_policy = 2 + /* + * Enumeration is extensible + */ +} e_RICactionType; + +/* RICactionType */ +typedef long RICactionType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RICactionType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RICactionType; +extern const asn_INTEGER_specifics_t asn_SPC_RICactionType_specs_1; +asn_struct_free_f RICactionType_free; +asn_struct_print_f RICactionType_print; +asn_constr_check_f RICactionType_constraint; +ber_type_decoder_f RICactionType_decode_ber; +der_type_encoder_f RICactionType_encode_der; +xer_type_decoder_f RICactionType_decode_xer; +xer_type_encoder_f RICactionType_encode_xer; +jer_type_encoder_f RICactionType_encode_jer; +per_type_decoder_f RICactionType_decode_uper; +per_type_encoder_f RICactionType_encode_uper; +per_type_decoder_f RICactionType_decode_aper; +per_type_encoder_f RICactionType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICactionType_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICactions-AddedForModification-List.c b/e2sim/asn1c/RICactions-AddedForModification-List.c new file mode 100644 index 0000000..59a9028 --- /dev/null +++ b/e2sim/asn1c/RICactions-AddedForModification-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICactions-AddedForModification-List.h" + +#include "ProtocolIE-SingleContainer.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RICactions_AddedForModification_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 0, 16 } /* (SIZE(0..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_RICactions_AddedForModification_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_88P11, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICactions_AddedForModification_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RICactions_AddedForModification_List_specs_1 = { + sizeof(struct RICactions_AddedForModification_List), + offsetof(struct RICactions_AddedForModification_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RICactions_AddedForModification_List = { + "RICactions-AddedForModification-List", + "RICactions-AddedForModification-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_RICactions_AddedForModification_List_tags_1, + sizeof(asn_DEF_RICactions_AddedForModification_List_tags_1) + /sizeof(asn_DEF_RICactions_AddedForModification_List_tags_1[0]), /* 1 */ + asn_DEF_RICactions_AddedForModification_List_tags_1, /* Same as above */ + sizeof(asn_DEF_RICactions_AddedForModification_List_tags_1) + /sizeof(asn_DEF_RICactions_AddedForModification_List_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RICactions_AddedForModification_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_RICactions_AddedForModification_List_1, + 1, /* Single element */ + &asn_SPC_RICactions_AddedForModification_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICactions-AddedForModification-List.h b/e2sim/asn1c/RICactions-AddedForModification-List.h new file mode 100644 index 0000000..c200c42 --- /dev/null +++ b/e2sim/asn1c/RICactions-AddedForModification-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICactions_AddedForModification_List_H_ +#define _RICactions_AddedForModification_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* RICactions-AddedForModification-List */ +typedef struct RICactions_AddedForModification_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICactions_AddedForModification_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICactions_AddedForModification_List; +extern asn_SET_OF_specifics_t asn_SPC_RICactions_AddedForModification_List_specs_1; +extern asn_TYPE_member_t asn_MBR_RICactions_AddedForModification_List_1[1]; +extern asn_per_constraints_t asn_PER_type_RICactions_AddedForModification_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICactions_AddedForModification_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICactions-ConfirmedForModification-List.c b/e2sim/asn1c/RICactions-ConfirmedForModification-List.c new file mode 100644 index 0000000..4b09f4e --- /dev/null +++ b/e2sim/asn1c/RICactions-ConfirmedForModification-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICactions-ConfirmedForModification-List.h" + +#include "ProtocolIE-SingleContainer.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RICactions_ConfirmedForModification_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 0, 16 } /* (SIZE(0..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_RICactions_ConfirmedForModification_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_88P15, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICactions_ConfirmedForModification_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RICactions_ConfirmedForModification_List_specs_1 = { + sizeof(struct RICactions_ConfirmedForModification_List), + offsetof(struct RICactions_ConfirmedForModification_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RICactions_ConfirmedForModification_List = { + "RICactions-ConfirmedForModification-List", + "RICactions-ConfirmedForModification-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_RICactions_ConfirmedForModification_List_tags_1, + sizeof(asn_DEF_RICactions_ConfirmedForModification_List_tags_1) + /sizeof(asn_DEF_RICactions_ConfirmedForModification_List_tags_1[0]), /* 1 */ + asn_DEF_RICactions_ConfirmedForModification_List_tags_1, /* Same as above */ + sizeof(asn_DEF_RICactions_ConfirmedForModification_List_tags_1) + /sizeof(asn_DEF_RICactions_ConfirmedForModification_List_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RICactions_ConfirmedForModification_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_RICactions_ConfirmedForModification_List_1, + 1, /* Single element */ + &asn_SPC_RICactions_ConfirmedForModification_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICactions-ConfirmedForModification-List.h b/e2sim/asn1c/RICactions-ConfirmedForModification-List.h new file mode 100644 index 0000000..1228b41 --- /dev/null +++ b/e2sim/asn1c/RICactions-ConfirmedForModification-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICactions_ConfirmedForModification_List_H_ +#define _RICactions_ConfirmedForModification_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* RICactions-ConfirmedForModification-List */ +typedef struct RICactions_ConfirmedForModification_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICactions_ConfirmedForModification_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICactions_ConfirmedForModification_List; +extern asn_SET_OF_specifics_t asn_SPC_RICactions_ConfirmedForModification_List_specs_1; +extern asn_TYPE_member_t asn_MBR_RICactions_ConfirmedForModification_List_1[1]; +extern asn_per_constraints_t asn_PER_type_RICactions_ConfirmedForModification_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICactions_ConfirmedForModification_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICactions-ConfirmedForRemoval-List.c b/e2sim/asn1c/RICactions-ConfirmedForRemoval-List.c new file mode 100644 index 0000000..7d87425 --- /dev/null +++ b/e2sim/asn1c/RICactions-ConfirmedForRemoval-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICactions-ConfirmedForRemoval-List.h" + +#include "ProtocolIE-SingleContainer.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RICactions_ConfirmedForRemoval_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 0, 16 } /* (SIZE(0..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_RICactions_ConfirmedForRemoval_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_88P17, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICactions_ConfirmedForRemoval_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RICactions_ConfirmedForRemoval_List_specs_1 = { + sizeof(struct RICactions_ConfirmedForRemoval_List), + offsetof(struct RICactions_ConfirmedForRemoval_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RICactions_ConfirmedForRemoval_List = { + "RICactions-ConfirmedForRemoval-List", + "RICactions-ConfirmedForRemoval-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_RICactions_ConfirmedForRemoval_List_tags_1, + sizeof(asn_DEF_RICactions_ConfirmedForRemoval_List_tags_1) + /sizeof(asn_DEF_RICactions_ConfirmedForRemoval_List_tags_1[0]), /* 1 */ + asn_DEF_RICactions_ConfirmedForRemoval_List_tags_1, /* Same as above */ + sizeof(asn_DEF_RICactions_ConfirmedForRemoval_List_tags_1) + /sizeof(asn_DEF_RICactions_ConfirmedForRemoval_List_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RICactions_ConfirmedForRemoval_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_RICactions_ConfirmedForRemoval_List_1, + 1, /* Single element */ + &asn_SPC_RICactions_ConfirmedForRemoval_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICactions-ConfirmedForRemoval-List.h b/e2sim/asn1c/RICactions-ConfirmedForRemoval-List.h new file mode 100644 index 0000000..092b654 --- /dev/null +++ b/e2sim/asn1c/RICactions-ConfirmedForRemoval-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICactions_ConfirmedForRemoval_List_H_ +#define _RICactions_ConfirmedForRemoval_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* RICactions-ConfirmedForRemoval-List */ +typedef struct RICactions_ConfirmedForRemoval_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICactions_ConfirmedForRemoval_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICactions_ConfirmedForRemoval_List; +extern asn_SET_OF_specifics_t asn_SPC_RICactions_ConfirmedForRemoval_List_specs_1; +extern asn_TYPE_member_t asn_MBR_RICactions_ConfirmedForRemoval_List_1[1]; +extern asn_per_constraints_t asn_PER_type_RICactions_ConfirmedForRemoval_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICactions_ConfirmedForRemoval_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICactions-FailedToBeAddedForModification-List.c b/e2sim/asn1c/RICactions-FailedToBeAddedForModification-List.c new file mode 100644 index 0000000..c9cc17e --- /dev/null +++ b/e2sim/asn1c/RICactions-FailedToBeAddedForModification-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICactions-FailedToBeAddedForModification-List.h" + +#include "ProtocolIE-SingleContainer.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RICactions_FailedToBeAddedForModification_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 0, 16 } /* (SIZE(0..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_RICactions_FailedToBeAddedForModification_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_88P12, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICactions_FailedToBeAddedForModification_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RICactions_FailedToBeAddedForModification_List_specs_1 = { + sizeof(struct RICactions_FailedToBeAddedForModification_List), + offsetof(struct RICactions_FailedToBeAddedForModification_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RICactions_FailedToBeAddedForModification_List = { + "RICactions-FailedToBeAddedForModification-List", + "RICactions-FailedToBeAddedForModification-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_RICactions_FailedToBeAddedForModification_List_tags_1, + sizeof(asn_DEF_RICactions_FailedToBeAddedForModification_List_tags_1) + /sizeof(asn_DEF_RICactions_FailedToBeAddedForModification_List_tags_1[0]), /* 1 */ + asn_DEF_RICactions_FailedToBeAddedForModification_List_tags_1, /* Same as above */ + sizeof(asn_DEF_RICactions_FailedToBeAddedForModification_List_tags_1) + /sizeof(asn_DEF_RICactions_FailedToBeAddedForModification_List_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RICactions_FailedToBeAddedForModification_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_RICactions_FailedToBeAddedForModification_List_1, + 1, /* Single element */ + &asn_SPC_RICactions_FailedToBeAddedForModification_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICactions-FailedToBeAddedForModification-List.h b/e2sim/asn1c/RICactions-FailedToBeAddedForModification-List.h new file mode 100644 index 0000000..f41715f --- /dev/null +++ b/e2sim/asn1c/RICactions-FailedToBeAddedForModification-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICactions_FailedToBeAddedForModification_List_H_ +#define _RICactions_FailedToBeAddedForModification_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* RICactions-FailedToBeAddedForModification-List */ +typedef struct RICactions_FailedToBeAddedForModification_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICactions_FailedToBeAddedForModification_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICactions_FailedToBeAddedForModification_List; +extern asn_SET_OF_specifics_t asn_SPC_RICactions_FailedToBeAddedForModification_List_specs_1; +extern asn_TYPE_member_t asn_MBR_RICactions_FailedToBeAddedForModification_List_1[1]; +extern asn_per_constraints_t asn_PER_type_RICactions_FailedToBeAddedForModification_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICactions_FailedToBeAddedForModification_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICactions-FailedToBeModifiedForModification-List.c b/e2sim/asn1c/RICactions-FailedToBeModifiedForModification-List.c new file mode 100644 index 0000000..c8d9c01 --- /dev/null +++ b/e2sim/asn1c/RICactions-FailedToBeModifiedForModification-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICactions-FailedToBeModifiedForModification-List.h" + +#include "ProtocolIE-SingleContainer.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RICactions_FailedToBeModifiedForModification_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 0, 16 } /* (SIZE(0..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_RICactions_FailedToBeModifiedForModification_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_88P10, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICactions_FailedToBeModifiedForModification_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RICactions_FailedToBeModifiedForModification_List_specs_1 = { + sizeof(struct RICactions_FailedToBeModifiedForModification_List), + offsetof(struct RICactions_FailedToBeModifiedForModification_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RICactions_FailedToBeModifiedForModification_List = { + "RICactions-FailedToBeModifiedForModification-List", + "RICactions-FailedToBeModifiedForModification-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_RICactions_FailedToBeModifiedForModification_List_tags_1, + sizeof(asn_DEF_RICactions_FailedToBeModifiedForModification_List_tags_1) + /sizeof(asn_DEF_RICactions_FailedToBeModifiedForModification_List_tags_1[0]), /* 1 */ + asn_DEF_RICactions_FailedToBeModifiedForModification_List_tags_1, /* Same as above */ + sizeof(asn_DEF_RICactions_FailedToBeModifiedForModification_List_tags_1) + /sizeof(asn_DEF_RICactions_FailedToBeModifiedForModification_List_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RICactions_FailedToBeModifiedForModification_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_RICactions_FailedToBeModifiedForModification_List_1, + 1, /* Single element */ + &asn_SPC_RICactions_FailedToBeModifiedForModification_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICactions-FailedToBeModifiedForModification-List.h b/e2sim/asn1c/RICactions-FailedToBeModifiedForModification-List.h new file mode 100644 index 0000000..4c4e8f0 --- /dev/null +++ b/e2sim/asn1c/RICactions-FailedToBeModifiedForModification-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICactions_FailedToBeModifiedForModification_List_H_ +#define _RICactions_FailedToBeModifiedForModification_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* RICactions-FailedToBeModifiedForModification-List */ +typedef struct RICactions_FailedToBeModifiedForModification_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICactions_FailedToBeModifiedForModification_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICactions_FailedToBeModifiedForModification_List; +extern asn_SET_OF_specifics_t asn_SPC_RICactions_FailedToBeModifiedForModification_List_specs_1; +extern asn_TYPE_member_t asn_MBR_RICactions_FailedToBeModifiedForModification_List_1[1]; +extern asn_per_constraints_t asn_PER_type_RICactions_FailedToBeModifiedForModification_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICactions_FailedToBeModifiedForModification_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICactions-FailedToBeRemovedForModification-List.c b/e2sim/asn1c/RICactions-FailedToBeRemovedForModification-List.c new file mode 100644 index 0000000..f0a2d0f --- /dev/null +++ b/e2sim/asn1c/RICactions-FailedToBeRemovedForModification-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICactions-FailedToBeRemovedForModification-List.h" + +#include "ProtocolIE-SingleContainer.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RICactions_FailedToBeRemovedForModification_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 0, 16 } /* (SIZE(0..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_RICactions_FailedToBeRemovedForModification_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_88P8, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICactions_FailedToBeRemovedForModification_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RICactions_FailedToBeRemovedForModification_List_specs_1 = { + sizeof(struct RICactions_FailedToBeRemovedForModification_List), + offsetof(struct RICactions_FailedToBeRemovedForModification_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RICactions_FailedToBeRemovedForModification_List = { + "RICactions-FailedToBeRemovedForModification-List", + "RICactions-FailedToBeRemovedForModification-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_RICactions_FailedToBeRemovedForModification_List_tags_1, + sizeof(asn_DEF_RICactions_FailedToBeRemovedForModification_List_tags_1) + /sizeof(asn_DEF_RICactions_FailedToBeRemovedForModification_List_tags_1[0]), /* 1 */ + asn_DEF_RICactions_FailedToBeRemovedForModification_List_tags_1, /* Same as above */ + sizeof(asn_DEF_RICactions_FailedToBeRemovedForModification_List_tags_1) + /sizeof(asn_DEF_RICactions_FailedToBeRemovedForModification_List_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RICactions_FailedToBeRemovedForModification_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_RICactions_FailedToBeRemovedForModification_List_1, + 1, /* Single element */ + &asn_SPC_RICactions_FailedToBeRemovedForModification_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICactions-FailedToBeRemovedForModification-List.h b/e2sim/asn1c/RICactions-FailedToBeRemovedForModification-List.h new file mode 100644 index 0000000..bfc07c3 --- /dev/null +++ b/e2sim/asn1c/RICactions-FailedToBeRemovedForModification-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICactions_FailedToBeRemovedForModification_List_H_ +#define _RICactions_FailedToBeRemovedForModification_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* RICactions-FailedToBeRemovedForModification-List */ +typedef struct RICactions_FailedToBeRemovedForModification_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICactions_FailedToBeRemovedForModification_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICactions_FailedToBeRemovedForModification_List; +extern asn_SET_OF_specifics_t asn_SPC_RICactions_FailedToBeRemovedForModification_List_specs_1; +extern asn_TYPE_member_t asn_MBR_RICactions_FailedToBeRemovedForModification_List_1[1]; +extern asn_per_constraints_t asn_PER_type_RICactions_FailedToBeRemovedForModification_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICactions_FailedToBeRemovedForModification_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICactions-ModifiedForModification-List.c b/e2sim/asn1c/RICactions-ModifiedForModification-List.c new file mode 100644 index 0000000..dd26148 --- /dev/null +++ b/e2sim/asn1c/RICactions-ModifiedForModification-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICactions-ModifiedForModification-List.h" + +#include "ProtocolIE-SingleContainer.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RICactions_ModifiedForModification_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 0, 16 } /* (SIZE(0..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_RICactions_ModifiedForModification_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_88P9, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICactions_ModifiedForModification_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RICactions_ModifiedForModification_List_specs_1 = { + sizeof(struct RICactions_ModifiedForModification_List), + offsetof(struct RICactions_ModifiedForModification_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RICactions_ModifiedForModification_List = { + "RICactions-ModifiedForModification-List", + "RICactions-ModifiedForModification-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_RICactions_ModifiedForModification_List_tags_1, + sizeof(asn_DEF_RICactions_ModifiedForModification_List_tags_1) + /sizeof(asn_DEF_RICactions_ModifiedForModification_List_tags_1[0]), /* 1 */ + asn_DEF_RICactions_ModifiedForModification_List_tags_1, /* Same as above */ + sizeof(asn_DEF_RICactions_ModifiedForModification_List_tags_1) + /sizeof(asn_DEF_RICactions_ModifiedForModification_List_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RICactions_ModifiedForModification_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_RICactions_ModifiedForModification_List_1, + 1, /* Single element */ + &asn_SPC_RICactions_ModifiedForModification_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICactions-ModifiedForModification-List.h b/e2sim/asn1c/RICactions-ModifiedForModification-List.h new file mode 100644 index 0000000..d08ac27 --- /dev/null +++ b/e2sim/asn1c/RICactions-ModifiedForModification-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICactions_ModifiedForModification_List_H_ +#define _RICactions_ModifiedForModification_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* RICactions-ModifiedForModification-List */ +typedef struct RICactions_ModifiedForModification_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICactions_ModifiedForModification_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICactions_ModifiedForModification_List; +extern asn_SET_OF_specifics_t asn_SPC_RICactions_ModifiedForModification_List_specs_1; +extern asn_TYPE_member_t asn_MBR_RICactions_ModifiedForModification_List_1[1]; +extern asn_per_constraints_t asn_PER_type_RICactions_ModifiedForModification_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICactions_ModifiedForModification_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICactions-RefusedToBeModified-List.c b/e2sim/asn1c/RICactions-RefusedToBeModified-List.c new file mode 100644 index 0000000..7793d7b --- /dev/null +++ b/e2sim/asn1c/RICactions-RefusedToBeModified-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICactions-RefusedToBeModified-List.h" + +#include "ProtocolIE-SingleContainer.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RICactions_RefusedToBeModified_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 0, 16 } /* (SIZE(0..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_RICactions_RefusedToBeModified_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_88P16, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICactions_RefusedToBeModified_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RICactions_RefusedToBeModified_List_specs_1 = { + sizeof(struct RICactions_RefusedToBeModified_List), + offsetof(struct RICactions_RefusedToBeModified_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RICactions_RefusedToBeModified_List = { + "RICactions-RefusedToBeModified-List", + "RICactions-RefusedToBeModified-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_RICactions_RefusedToBeModified_List_tags_1, + sizeof(asn_DEF_RICactions_RefusedToBeModified_List_tags_1) + /sizeof(asn_DEF_RICactions_RefusedToBeModified_List_tags_1[0]), /* 1 */ + asn_DEF_RICactions_RefusedToBeModified_List_tags_1, /* Same as above */ + sizeof(asn_DEF_RICactions_RefusedToBeModified_List_tags_1) + /sizeof(asn_DEF_RICactions_RefusedToBeModified_List_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RICactions_RefusedToBeModified_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_RICactions_RefusedToBeModified_List_1, + 1, /* Single element */ + &asn_SPC_RICactions_RefusedToBeModified_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICactions-RefusedToBeModified-List.h b/e2sim/asn1c/RICactions-RefusedToBeModified-List.h new file mode 100644 index 0000000..fdfacf8 --- /dev/null +++ b/e2sim/asn1c/RICactions-RefusedToBeModified-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICactions_RefusedToBeModified_List_H_ +#define _RICactions_RefusedToBeModified_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* RICactions-RefusedToBeModified-List */ +typedef struct RICactions_RefusedToBeModified_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICactions_RefusedToBeModified_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICactions_RefusedToBeModified_List; +extern asn_SET_OF_specifics_t asn_SPC_RICactions_RefusedToBeModified_List_specs_1; +extern asn_TYPE_member_t asn_MBR_RICactions_RefusedToBeModified_List_1[1]; +extern asn_per_constraints_t asn_PER_type_RICactions_RefusedToBeModified_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICactions_RefusedToBeModified_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICactions-RefusedToBeRemoved-List.c b/e2sim/asn1c/RICactions-RefusedToBeRemoved-List.c new file mode 100644 index 0000000..32e2548 --- /dev/null +++ b/e2sim/asn1c/RICactions-RefusedToBeRemoved-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICactions-RefusedToBeRemoved-List.h" + +#include "ProtocolIE-SingleContainer.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RICactions_RefusedToBeRemoved_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 0, 16 } /* (SIZE(0..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_RICactions_RefusedToBeRemoved_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_88P18, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICactions_RefusedToBeRemoved_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RICactions_RefusedToBeRemoved_List_specs_1 = { + sizeof(struct RICactions_RefusedToBeRemoved_List), + offsetof(struct RICactions_RefusedToBeRemoved_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RICactions_RefusedToBeRemoved_List = { + "RICactions-RefusedToBeRemoved-List", + "RICactions-RefusedToBeRemoved-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_RICactions_RefusedToBeRemoved_List_tags_1, + sizeof(asn_DEF_RICactions_RefusedToBeRemoved_List_tags_1) + /sizeof(asn_DEF_RICactions_RefusedToBeRemoved_List_tags_1[0]), /* 1 */ + asn_DEF_RICactions_RefusedToBeRemoved_List_tags_1, /* Same as above */ + sizeof(asn_DEF_RICactions_RefusedToBeRemoved_List_tags_1) + /sizeof(asn_DEF_RICactions_RefusedToBeRemoved_List_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RICactions_RefusedToBeRemoved_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_RICactions_RefusedToBeRemoved_List_1, + 1, /* Single element */ + &asn_SPC_RICactions_RefusedToBeRemoved_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICactions-RefusedToBeRemoved-List.h b/e2sim/asn1c/RICactions-RefusedToBeRemoved-List.h new file mode 100644 index 0000000..e75e435 --- /dev/null +++ b/e2sim/asn1c/RICactions-RefusedToBeRemoved-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICactions_RefusedToBeRemoved_List_H_ +#define _RICactions_RefusedToBeRemoved_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* RICactions-RefusedToBeRemoved-List */ +typedef struct RICactions_RefusedToBeRemoved_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICactions_RefusedToBeRemoved_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICactions_RefusedToBeRemoved_List; +extern asn_SET_OF_specifics_t asn_SPC_RICactions_RefusedToBeRemoved_List_specs_1; +extern asn_TYPE_member_t asn_MBR_RICactions_RefusedToBeRemoved_List_1[1]; +extern asn_per_constraints_t asn_PER_type_RICactions_RefusedToBeRemoved_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICactions_RefusedToBeRemoved_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICactions-RemovedForModification-List.c b/e2sim/asn1c/RICactions-RemovedForModification-List.c new file mode 100644 index 0000000..3231dd1 --- /dev/null +++ b/e2sim/asn1c/RICactions-RemovedForModification-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICactions-RemovedForModification-List.h" + +#include "ProtocolIE-SingleContainer.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RICactions_RemovedForModification_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 0, 16 } /* (SIZE(0..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_RICactions_RemovedForModification_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_88P7, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICactions_RemovedForModification_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RICactions_RemovedForModification_List_specs_1 = { + sizeof(struct RICactions_RemovedForModification_List), + offsetof(struct RICactions_RemovedForModification_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RICactions_RemovedForModification_List = { + "RICactions-RemovedForModification-List", + "RICactions-RemovedForModification-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_RICactions_RemovedForModification_List_tags_1, + sizeof(asn_DEF_RICactions_RemovedForModification_List_tags_1) + /sizeof(asn_DEF_RICactions_RemovedForModification_List_tags_1[0]), /* 1 */ + asn_DEF_RICactions_RemovedForModification_List_tags_1, /* Same as above */ + sizeof(asn_DEF_RICactions_RemovedForModification_List_tags_1) + /sizeof(asn_DEF_RICactions_RemovedForModification_List_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RICactions_RemovedForModification_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_RICactions_RemovedForModification_List_1, + 1, /* Single element */ + &asn_SPC_RICactions_RemovedForModification_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICactions-RemovedForModification-List.h b/e2sim/asn1c/RICactions-RemovedForModification-List.h new file mode 100644 index 0000000..97bf82d --- /dev/null +++ b/e2sim/asn1c/RICactions-RemovedForModification-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICactions_RemovedForModification_List_H_ +#define _RICactions_RemovedForModification_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* RICactions-RemovedForModification-List */ +typedef struct RICactions_RemovedForModification_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICactions_RemovedForModification_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICactions_RemovedForModification_List; +extern asn_SET_OF_specifics_t asn_SPC_RICactions_RemovedForModification_List_specs_1; +extern asn_TYPE_member_t asn_MBR_RICactions_RemovedForModification_List_1[1]; +extern asn_per_constraints_t asn_PER_type_RICactions_RemovedForModification_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICactions_RemovedForModification_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICactions-RequiredToBeModified-List.c b/e2sim/asn1c/RICactions-RequiredToBeModified-List.c new file mode 100644 index 0000000..0fae2f6 --- /dev/null +++ b/e2sim/asn1c/RICactions-RequiredToBeModified-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICactions-RequiredToBeModified-List.h" + +#include "ProtocolIE-SingleContainer.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RICactions_RequiredToBeModified_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 0, 16 } /* (SIZE(0..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_RICactions_RequiredToBeModified_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_88P13, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICactions_RequiredToBeModified_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RICactions_RequiredToBeModified_List_specs_1 = { + sizeof(struct RICactions_RequiredToBeModified_List), + offsetof(struct RICactions_RequiredToBeModified_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RICactions_RequiredToBeModified_List = { + "RICactions-RequiredToBeModified-List", + "RICactions-RequiredToBeModified-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_RICactions_RequiredToBeModified_List_tags_1, + sizeof(asn_DEF_RICactions_RequiredToBeModified_List_tags_1) + /sizeof(asn_DEF_RICactions_RequiredToBeModified_List_tags_1[0]), /* 1 */ + asn_DEF_RICactions_RequiredToBeModified_List_tags_1, /* Same as above */ + sizeof(asn_DEF_RICactions_RequiredToBeModified_List_tags_1) + /sizeof(asn_DEF_RICactions_RequiredToBeModified_List_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RICactions_RequiredToBeModified_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_RICactions_RequiredToBeModified_List_1, + 1, /* Single element */ + &asn_SPC_RICactions_RequiredToBeModified_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICactions-RequiredToBeModified-List.h b/e2sim/asn1c/RICactions-RequiredToBeModified-List.h new file mode 100644 index 0000000..c9c0d9d --- /dev/null +++ b/e2sim/asn1c/RICactions-RequiredToBeModified-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICactions_RequiredToBeModified_List_H_ +#define _RICactions_RequiredToBeModified_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* RICactions-RequiredToBeModified-List */ +typedef struct RICactions_RequiredToBeModified_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICactions_RequiredToBeModified_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICactions_RequiredToBeModified_List; +extern asn_SET_OF_specifics_t asn_SPC_RICactions_RequiredToBeModified_List_specs_1; +extern asn_TYPE_member_t asn_MBR_RICactions_RequiredToBeModified_List_1[1]; +extern asn_per_constraints_t asn_PER_type_RICactions_RequiredToBeModified_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICactions_RequiredToBeModified_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICactions-RequiredToBeRemoved-List.c b/e2sim/asn1c/RICactions-RequiredToBeRemoved-List.c new file mode 100644 index 0000000..9b530a1 --- /dev/null +++ b/e2sim/asn1c/RICactions-RequiredToBeRemoved-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICactions-RequiredToBeRemoved-List.h" + +#include "ProtocolIE-SingleContainer.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RICactions_RequiredToBeRemoved_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 0, 16 } /* (SIZE(0..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_RICactions_RequiredToBeRemoved_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_88P14, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICactions_RequiredToBeRemoved_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RICactions_RequiredToBeRemoved_List_specs_1 = { + sizeof(struct RICactions_RequiredToBeRemoved_List), + offsetof(struct RICactions_RequiredToBeRemoved_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RICactions_RequiredToBeRemoved_List = { + "RICactions-RequiredToBeRemoved-List", + "RICactions-RequiredToBeRemoved-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_RICactions_RequiredToBeRemoved_List_tags_1, + sizeof(asn_DEF_RICactions_RequiredToBeRemoved_List_tags_1) + /sizeof(asn_DEF_RICactions_RequiredToBeRemoved_List_tags_1[0]), /* 1 */ + asn_DEF_RICactions_RequiredToBeRemoved_List_tags_1, /* Same as above */ + sizeof(asn_DEF_RICactions_RequiredToBeRemoved_List_tags_1) + /sizeof(asn_DEF_RICactions_RequiredToBeRemoved_List_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RICactions_RequiredToBeRemoved_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_RICactions_RequiredToBeRemoved_List_1, + 1, /* Single element */ + &asn_SPC_RICactions_RequiredToBeRemoved_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICactions-RequiredToBeRemoved-List.h b/e2sim/asn1c/RICactions-RequiredToBeRemoved-List.h new file mode 100644 index 0000000..749be7a --- /dev/null +++ b/e2sim/asn1c/RICactions-RequiredToBeRemoved-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICactions_RequiredToBeRemoved_List_H_ +#define _RICactions_RequiredToBeRemoved_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* RICactions-RequiredToBeRemoved-List */ +typedef struct RICactions_RequiredToBeRemoved_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICactions_RequiredToBeRemoved_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICactions_RequiredToBeRemoved_List; +extern asn_SET_OF_specifics_t asn_SPC_RICactions_RequiredToBeRemoved_List_specs_1; +extern asn_TYPE_member_t asn_MBR_RICactions_RequiredToBeRemoved_List_1[1]; +extern asn_per_constraints_t asn_PER_type_RICactions_RequiredToBeRemoved_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICactions_RequiredToBeRemoved_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICactions-ToBeAddedForModification-List.c b/e2sim/asn1c/RICactions-ToBeAddedForModification-List.c new file mode 100644 index 0000000..e8a58bb --- /dev/null +++ b/e2sim/asn1c/RICactions-ToBeAddedForModification-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICactions-ToBeAddedForModification-List.h" + +#include "ProtocolIE-SingleContainer.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RICactions_ToBeAddedForModification_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 0, 16 } /* (SIZE(0..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_RICactions_ToBeAddedForModification_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_88P6, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICactions_ToBeAddedForModification_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RICactions_ToBeAddedForModification_List_specs_1 = { + sizeof(struct RICactions_ToBeAddedForModification_List), + offsetof(struct RICactions_ToBeAddedForModification_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RICactions_ToBeAddedForModification_List = { + "RICactions-ToBeAddedForModification-List", + "RICactions-ToBeAddedForModification-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_RICactions_ToBeAddedForModification_List_tags_1, + sizeof(asn_DEF_RICactions_ToBeAddedForModification_List_tags_1) + /sizeof(asn_DEF_RICactions_ToBeAddedForModification_List_tags_1[0]), /* 1 */ + asn_DEF_RICactions_ToBeAddedForModification_List_tags_1, /* Same as above */ + sizeof(asn_DEF_RICactions_ToBeAddedForModification_List_tags_1) + /sizeof(asn_DEF_RICactions_ToBeAddedForModification_List_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RICactions_ToBeAddedForModification_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_RICactions_ToBeAddedForModification_List_1, + 1, /* Single element */ + &asn_SPC_RICactions_ToBeAddedForModification_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICactions-ToBeAddedForModification-List.h b/e2sim/asn1c/RICactions-ToBeAddedForModification-List.h new file mode 100644 index 0000000..1780636 --- /dev/null +++ b/e2sim/asn1c/RICactions-ToBeAddedForModification-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICactions_ToBeAddedForModification_List_H_ +#define _RICactions_ToBeAddedForModification_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* RICactions-ToBeAddedForModification-List */ +typedef struct RICactions_ToBeAddedForModification_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICactions_ToBeAddedForModification_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICactions_ToBeAddedForModification_List; +extern asn_SET_OF_specifics_t asn_SPC_RICactions_ToBeAddedForModification_List_specs_1; +extern asn_TYPE_member_t asn_MBR_RICactions_ToBeAddedForModification_List_1[1]; +extern asn_per_constraints_t asn_PER_type_RICactions_ToBeAddedForModification_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICactions_ToBeAddedForModification_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICactions-ToBeModifiedForModification-List.c b/e2sim/asn1c/RICactions-ToBeModifiedForModification-List.c new file mode 100644 index 0000000..fa73d99 --- /dev/null +++ b/e2sim/asn1c/RICactions-ToBeModifiedForModification-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICactions-ToBeModifiedForModification-List.h" + +#include "ProtocolIE-SingleContainer.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RICactions_ToBeModifiedForModification_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 0, 16 } /* (SIZE(0..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_RICactions_ToBeModifiedForModification_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_88P5, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICactions_ToBeModifiedForModification_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RICactions_ToBeModifiedForModification_List_specs_1 = { + sizeof(struct RICactions_ToBeModifiedForModification_List), + offsetof(struct RICactions_ToBeModifiedForModification_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RICactions_ToBeModifiedForModification_List = { + "RICactions-ToBeModifiedForModification-List", + "RICactions-ToBeModifiedForModification-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_RICactions_ToBeModifiedForModification_List_tags_1, + sizeof(asn_DEF_RICactions_ToBeModifiedForModification_List_tags_1) + /sizeof(asn_DEF_RICactions_ToBeModifiedForModification_List_tags_1[0]), /* 1 */ + asn_DEF_RICactions_ToBeModifiedForModification_List_tags_1, /* Same as above */ + sizeof(asn_DEF_RICactions_ToBeModifiedForModification_List_tags_1) + /sizeof(asn_DEF_RICactions_ToBeModifiedForModification_List_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RICactions_ToBeModifiedForModification_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_RICactions_ToBeModifiedForModification_List_1, + 1, /* Single element */ + &asn_SPC_RICactions_ToBeModifiedForModification_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICactions-ToBeModifiedForModification-List.h b/e2sim/asn1c/RICactions-ToBeModifiedForModification-List.h new file mode 100644 index 0000000..e05b1f4 --- /dev/null +++ b/e2sim/asn1c/RICactions-ToBeModifiedForModification-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICactions_ToBeModifiedForModification_List_H_ +#define _RICactions_ToBeModifiedForModification_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* RICactions-ToBeModifiedForModification-List */ +typedef struct RICactions_ToBeModifiedForModification_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICactions_ToBeModifiedForModification_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICactions_ToBeModifiedForModification_List; +extern asn_SET_OF_specifics_t asn_SPC_RICactions_ToBeModifiedForModification_List_specs_1; +extern asn_TYPE_member_t asn_MBR_RICactions_ToBeModifiedForModification_List_1[1]; +extern asn_per_constraints_t asn_PER_type_RICactions_ToBeModifiedForModification_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICactions_ToBeModifiedForModification_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICactions-ToBeRemovedForModification-List.c b/e2sim/asn1c/RICactions-ToBeRemovedForModification-List.c new file mode 100644 index 0000000..42a287c --- /dev/null +++ b/e2sim/asn1c/RICactions-ToBeRemovedForModification-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICactions-ToBeRemovedForModification-List.h" + +#include "ProtocolIE-SingleContainer.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RICactions_ToBeRemovedForModification_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 0, 16 } /* (SIZE(0..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_RICactions_ToBeRemovedForModification_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_88P4, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICactions_ToBeRemovedForModification_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RICactions_ToBeRemovedForModification_List_specs_1 = { + sizeof(struct RICactions_ToBeRemovedForModification_List), + offsetof(struct RICactions_ToBeRemovedForModification_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RICactions_ToBeRemovedForModification_List = { + "RICactions-ToBeRemovedForModification-List", + "RICactions-ToBeRemovedForModification-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_RICactions_ToBeRemovedForModification_List_tags_1, + sizeof(asn_DEF_RICactions_ToBeRemovedForModification_List_tags_1) + /sizeof(asn_DEF_RICactions_ToBeRemovedForModification_List_tags_1[0]), /* 1 */ + asn_DEF_RICactions_ToBeRemovedForModification_List_tags_1, /* Same as above */ + sizeof(asn_DEF_RICactions_ToBeRemovedForModification_List_tags_1) + /sizeof(asn_DEF_RICactions_ToBeRemovedForModification_List_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RICactions_ToBeRemovedForModification_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_RICactions_ToBeRemovedForModification_List_1, + 1, /* Single element */ + &asn_SPC_RICactions_ToBeRemovedForModification_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICactions-ToBeRemovedForModification-List.h b/e2sim/asn1c/RICactions-ToBeRemovedForModification-List.h new file mode 100644 index 0000000..4ecac1d --- /dev/null +++ b/e2sim/asn1c/RICactions-ToBeRemovedForModification-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICactions_ToBeRemovedForModification_List_H_ +#define _RICactions_ToBeRemovedForModification_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* RICactions-ToBeRemovedForModification-List */ +typedef struct RICactions_ToBeRemovedForModification_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICactions_ToBeRemovedForModification_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICactions_ToBeRemovedForModification_List; +extern asn_SET_OF_specifics_t asn_SPC_RICactions_ToBeRemovedForModification_List_specs_1; +extern asn_TYPE_member_t asn_MBR_RICactions_ToBeRemovedForModification_List_1[1]; +extern asn_per_constraints_t asn_PER_type_RICactions_ToBeRemovedForModification_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICactions_ToBeRemovedForModification_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICactions-ToBeSetup-List.c b/e2sim/asn1c/RICactions-ToBeSetup-List.c new file mode 100644 index 0000000..b7ea8e5 --- /dev/null +++ b/e2sim/asn1c/RICactions-ToBeSetup-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICactions-ToBeSetup-List.h" + +#include "ProtocolIE-SingleContainer.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RICactions_ToBeSetup_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_RICactions_ToBeSetup_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_88P0, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICactions_ToBeSetup_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RICactions_ToBeSetup_List_specs_1 = { + sizeof(struct RICactions_ToBeSetup_List), + offsetof(struct RICactions_ToBeSetup_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RICactions_ToBeSetup_List = { + "RICactions-ToBeSetup-List", + "RICactions-ToBeSetup-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_RICactions_ToBeSetup_List_tags_1, + sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1) + /sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1[0]), /* 1 */ + asn_DEF_RICactions_ToBeSetup_List_tags_1, /* Same as above */ + sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1) + /sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RICactions_ToBeSetup_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_RICactions_ToBeSetup_List_1, + 1, /* Single element */ + &asn_SPC_RICactions_ToBeSetup_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICactions-ToBeSetup-List.h b/e2sim/asn1c/RICactions-ToBeSetup-List.h new file mode 100644 index 0000000..61886ba --- /dev/null +++ b/e2sim/asn1c/RICactions-ToBeSetup-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICactions_ToBeSetup_List_H_ +#define _RICactions_ToBeSetup_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* RICactions-ToBeSetup-List */ +typedef struct RICactions_ToBeSetup_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICactions_ToBeSetup_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICactions_ToBeSetup_List; +extern asn_SET_OF_specifics_t asn_SPC_RICactions_ToBeSetup_List_specs_1; +extern asn_TYPE_member_t asn_MBR_RICactions_ToBeSetup_List_1[1]; +extern asn_per_constraints_t asn_PER_type_RICactions_ToBeSetup_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICactions_ToBeSetup_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICcallProcessID.c b/e2sim/asn1c/RICcallProcessID.c new file mode 100644 index 0000000..3806945 --- /dev/null +++ b/e2sim/asn1c/RICcallProcessID.c @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICcallProcessID.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_RICcallProcessID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RICcallProcessID = { + "RICcallProcessID", + "RICcallProcessID", + &asn_OP_OCTET_STRING, + asn_DEF_RICcallProcessID_tags_1, + sizeof(asn_DEF_RICcallProcessID_tags_1) + /sizeof(asn_DEF_RICcallProcessID_tags_1[0]), /* 1 */ + asn_DEF_RICcallProcessID_tags_1, /* Same as above */ + sizeof(asn_DEF_RICcallProcessID_tags_1) + /sizeof(asn_DEF_RICcallProcessID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OCTET_STRING_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICcallProcessID.h b/e2sim/asn1c/RICcallProcessID.h new file mode 100644 index 0000000..08723df --- /dev/null +++ b/e2sim/asn1c/RICcallProcessID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICcallProcessID_H_ +#define _RICcallProcessID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICcallProcessID */ +typedef OCTET_STRING_t RICcallProcessID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICcallProcessID; +asn_struct_free_f RICcallProcessID_free; +asn_struct_print_f RICcallProcessID_print; +asn_constr_check_f RICcallProcessID_constraint; +ber_type_decoder_f RICcallProcessID_decode_ber; +der_type_encoder_f RICcallProcessID_encode_der; +xer_type_decoder_f RICcallProcessID_decode_xer; +xer_type_encoder_f RICcallProcessID_encode_xer; +jer_type_encoder_f RICcallProcessID_encode_jer; +per_type_decoder_f RICcallProcessID_decode_uper; +per_type_encoder_f RICcallProcessID_encode_uper; +per_type_decoder_f RICcallProcessID_decode_aper; +per_type_encoder_f RICcallProcessID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICcallProcessID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICcontrolAckRequest.c b/e2sim/asn1c/RICcontrolAckRequest.c new file mode 100644 index 0000000..cb26d59 --- /dev/null +++ b/e2sim/asn1c/RICcontrolAckRequest.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICcontrolAckRequest.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RICcontrolAckRequest_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_RICcontrolAckRequest_value2enum_1[] = { + { 0, 5, "noAck" }, + { 1, 3, "ack" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RICcontrolAckRequest_enum2value_1[] = { + 1, /* ack(1) */ + 0 /* noAck(0) */ + /* This list is extensible */ +}; +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 */ + 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_RICcontrolAckRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RICcontrolAckRequest = { + "RICcontrolAckRequest", + "RICcontrolAckRequest", + &asn_OP_NativeEnumerated, + asn_DEF_RICcontrolAckRequest_tags_1, + sizeof(asn_DEF_RICcontrolAckRequest_tags_1) + /sizeof(asn_DEF_RICcontrolAckRequest_tags_1[0]), /* 1 */ + asn_DEF_RICcontrolAckRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_RICcontrolAckRequest_tags_1) + /sizeof(asn_DEF_RICcontrolAckRequest_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RICcontrolAckRequest_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RICcontrolAckRequest_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICcontrolAckRequest.h b/e2sim/asn1c/RICcontrolAckRequest.h new file mode 100644 index 0000000..8c4a61b --- /dev/null +++ b/e2sim/asn1c/RICcontrolAckRequest.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICcontrolAckRequest_H_ +#define _RICcontrolAckRequest_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RICcontrolAckRequest { + RICcontrolAckRequest_noAck = 0, + RICcontrolAckRequest_ack = 1 + /* + * Enumeration is extensible + */ +} e_RICcontrolAckRequest; + +/* RICcontrolAckRequest */ +typedef long RICcontrolAckRequest_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RICcontrolAckRequest_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAckRequest; +extern const asn_INTEGER_specifics_t asn_SPC_RICcontrolAckRequest_specs_1; +asn_struct_free_f RICcontrolAckRequest_free; +asn_struct_print_f RICcontrolAckRequest_print; +asn_constr_check_f RICcontrolAckRequest_constraint; +ber_type_decoder_f RICcontrolAckRequest_decode_ber; +der_type_encoder_f RICcontrolAckRequest_encode_der; +xer_type_decoder_f RICcontrolAckRequest_decode_xer; +xer_type_encoder_f RICcontrolAckRequest_encode_xer; +jer_type_encoder_f RICcontrolAckRequest_encode_jer; +per_type_decoder_f RICcontrolAckRequest_decode_uper; +per_type_encoder_f RICcontrolAckRequest_encode_uper; +per_type_decoder_f RICcontrolAckRequest_decode_aper; +per_type_encoder_f RICcontrolAckRequest_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICcontrolAckRequest_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICcontrolAcknowledge.c b/e2sim/asn1c/RICcontrolAcknowledge.c new file mode 100644 index 0000000..e50740b --- /dev/null +++ b/e2sim/asn1c/RICcontrolAcknowledge.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICcontrolAcknowledge.h" + +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_Container_85P15, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICcontrolAcknowledge_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICcontrolAcknowledge_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_specs_1 = { + sizeof(struct RICcontrolAcknowledge), + offsetof(struct RICcontrolAcknowledge, _asn_ctx), + asn_MAP_RICcontrolAcknowledge_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_RICcontrolAcknowledge = { + "RICcontrolAcknowledge", + "RICcontrolAcknowledge", + &asn_OP_SEQUENCE, + asn_DEF_RICcontrolAcknowledge_tags_1, + sizeof(asn_DEF_RICcontrolAcknowledge_tags_1) + /sizeof(asn_DEF_RICcontrolAcknowledge_tags_1[0]), /* 1 */ + asn_DEF_RICcontrolAcknowledge_tags_1, /* Same as above */ + sizeof(asn_DEF_RICcontrolAcknowledge_tags_1) + /sizeof(asn_DEF_RICcontrolAcknowledge_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICcontrolAcknowledge_1, + 1, /* Elements count */ + &asn_SPC_RICcontrolAcknowledge_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICcontrolAcknowledge.h b/e2sim/asn1c/RICcontrolAcknowledge.h new file mode 100644 index 0000000..9744208 --- /dev/null +++ b/e2sim/asn1c/RICcontrolAcknowledge.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICcontrolAcknowledge_H_ +#define _RICcontrolAcknowledge_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICcontrolAcknowledge */ +typedef struct RICcontrolAcknowledge { + ProtocolIE_Container_85P15_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICcontrolAcknowledge_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge; +extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_specs_1; +extern asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICcontrolAcknowledge_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICcontrolFailure.c b/e2sim/asn1c/RICcontrolFailure.c new file mode 100644 index 0000000..d3e18ae --- /dev/null +++ b/e2sim/asn1c/RICcontrolFailure.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICcontrolFailure.h" + +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_Container_85P16, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICcontrolFailure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICcontrolFailure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_specs_1 = { + sizeof(struct RICcontrolFailure), + offsetof(struct RICcontrolFailure, _asn_ctx), + asn_MAP_RICcontrolFailure_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_RICcontrolFailure = { + "RICcontrolFailure", + "RICcontrolFailure", + &asn_OP_SEQUENCE, + asn_DEF_RICcontrolFailure_tags_1, + sizeof(asn_DEF_RICcontrolFailure_tags_1) + /sizeof(asn_DEF_RICcontrolFailure_tags_1[0]), /* 1 */ + asn_DEF_RICcontrolFailure_tags_1, /* Same as above */ + sizeof(asn_DEF_RICcontrolFailure_tags_1) + /sizeof(asn_DEF_RICcontrolFailure_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICcontrolFailure_1, + 1, /* Elements count */ + &asn_SPC_RICcontrolFailure_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICcontrolFailure.h b/e2sim/asn1c/RICcontrolFailure.h new file mode 100644 index 0000000..537282a --- /dev/null +++ b/e2sim/asn1c/RICcontrolFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICcontrolFailure_H_ +#define _RICcontrolFailure_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICcontrolFailure */ +typedef struct RICcontrolFailure { + ProtocolIE_Container_85P16_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICcontrolFailure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure; +extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_specs_1; +extern asn_TYPE_member_t asn_MBR_RICcontrolFailure_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICcontrolFailure_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICcontrolHeader.c b/e2sim/asn1c/RICcontrolHeader.c new file mode 100644 index 0000000..db309e5 --- /dev/null +++ b/e2sim/asn1c/RICcontrolHeader.c @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICcontrolHeader.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_RICcontrolHeader_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RICcontrolHeader = { + "RICcontrolHeader", + "RICcontrolHeader", + &asn_OP_OCTET_STRING, + asn_DEF_RICcontrolHeader_tags_1, + sizeof(asn_DEF_RICcontrolHeader_tags_1) + /sizeof(asn_DEF_RICcontrolHeader_tags_1[0]), /* 1 */ + asn_DEF_RICcontrolHeader_tags_1, /* Same as above */ + sizeof(asn_DEF_RICcontrolHeader_tags_1) + /sizeof(asn_DEF_RICcontrolHeader_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OCTET_STRING_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICcontrolHeader.h b/e2sim/asn1c/RICcontrolHeader.h new file mode 100644 index 0000000..7a3d015 --- /dev/null +++ b/e2sim/asn1c/RICcontrolHeader.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICcontrolHeader_H_ +#define _RICcontrolHeader_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICcontrolHeader */ +typedef OCTET_STRING_t RICcontrolHeader_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICcontrolHeader; +asn_struct_free_f RICcontrolHeader_free; +asn_struct_print_f RICcontrolHeader_print; +asn_constr_check_f RICcontrolHeader_constraint; +ber_type_decoder_f RICcontrolHeader_decode_ber; +der_type_encoder_f RICcontrolHeader_encode_der; +xer_type_decoder_f RICcontrolHeader_decode_xer; +xer_type_encoder_f RICcontrolHeader_encode_xer; +jer_type_encoder_f RICcontrolHeader_encode_jer; +per_type_decoder_f RICcontrolHeader_decode_uper; +per_type_encoder_f RICcontrolHeader_encode_uper; +per_type_decoder_f RICcontrolHeader_decode_aper; +per_type_encoder_f RICcontrolHeader_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICcontrolHeader_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICcontrolMessage.c b/e2sim/asn1c/RICcontrolMessage.c new file mode 100644 index 0000000..da1aeea --- /dev/null +++ b/e2sim/asn1c/RICcontrolMessage.c @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICcontrolMessage.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_RICcontrolMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RICcontrolMessage = { + "RICcontrolMessage", + "RICcontrolMessage", + &asn_OP_OCTET_STRING, + asn_DEF_RICcontrolMessage_tags_1, + sizeof(asn_DEF_RICcontrolMessage_tags_1) + /sizeof(asn_DEF_RICcontrolMessage_tags_1[0]), /* 1 */ + asn_DEF_RICcontrolMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_RICcontrolMessage_tags_1) + /sizeof(asn_DEF_RICcontrolMessage_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OCTET_STRING_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICcontrolMessage.h b/e2sim/asn1c/RICcontrolMessage.h new file mode 100644 index 0000000..b9c6fcf --- /dev/null +++ b/e2sim/asn1c/RICcontrolMessage.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICcontrolMessage_H_ +#define _RICcontrolMessage_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICcontrolMessage */ +typedef OCTET_STRING_t RICcontrolMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICcontrolMessage; +asn_struct_free_f RICcontrolMessage_free; +asn_struct_print_f RICcontrolMessage_print; +asn_constr_check_f RICcontrolMessage_constraint; +ber_type_decoder_f RICcontrolMessage_decode_ber; +der_type_encoder_f RICcontrolMessage_encode_der; +xer_type_decoder_f RICcontrolMessage_decode_xer; +xer_type_encoder_f RICcontrolMessage_encode_xer; +jer_type_encoder_f RICcontrolMessage_encode_jer; +per_type_decoder_f RICcontrolMessage_decode_uper; +per_type_encoder_f RICcontrolMessage_encode_uper; +per_type_decoder_f RICcontrolMessage_decode_aper; +per_type_encoder_f RICcontrolMessage_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICcontrolMessage_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICcontrolOutcome.c b/e2sim/asn1c/RICcontrolOutcome.c new file mode 100644 index 0000000..44a641a --- /dev/null +++ b/e2sim/asn1c/RICcontrolOutcome.c @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICcontrolOutcome.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_RICcontrolOutcome_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RICcontrolOutcome = { + "RICcontrolOutcome", + "RICcontrolOutcome", + &asn_OP_OCTET_STRING, + asn_DEF_RICcontrolOutcome_tags_1, + sizeof(asn_DEF_RICcontrolOutcome_tags_1) + /sizeof(asn_DEF_RICcontrolOutcome_tags_1[0]), /* 1 */ + asn_DEF_RICcontrolOutcome_tags_1, /* Same as above */ + sizeof(asn_DEF_RICcontrolOutcome_tags_1) + /sizeof(asn_DEF_RICcontrolOutcome_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OCTET_STRING_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICcontrolOutcome.h b/e2sim/asn1c/RICcontrolOutcome.h new file mode 100644 index 0000000..3c64182 --- /dev/null +++ b/e2sim/asn1c/RICcontrolOutcome.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICcontrolOutcome_H_ +#define _RICcontrolOutcome_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICcontrolOutcome */ +typedef OCTET_STRING_t RICcontrolOutcome_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICcontrolOutcome; +asn_struct_free_f RICcontrolOutcome_free; +asn_struct_print_f RICcontrolOutcome_print; +asn_constr_check_f RICcontrolOutcome_constraint; +ber_type_decoder_f RICcontrolOutcome_decode_ber; +der_type_encoder_f RICcontrolOutcome_encode_der; +xer_type_decoder_f RICcontrolOutcome_decode_xer; +xer_type_encoder_f RICcontrolOutcome_encode_xer; +jer_type_encoder_f RICcontrolOutcome_encode_jer; +per_type_decoder_f RICcontrolOutcome_decode_uper; +per_type_encoder_f RICcontrolOutcome_encode_uper; +per_type_decoder_f RICcontrolOutcome_decode_aper; +per_type_encoder_f RICcontrolOutcome_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICcontrolOutcome_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICcontrolRequest.c b/e2sim/asn1c/RICcontrolRequest.c new file mode 100644 index 0000000..e8b1bd9 --- /dev/null +++ b/e2sim/asn1c/RICcontrolRequest.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICcontrolRequest.h" + +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_Container_85P14, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICcontrolRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICcontrolRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_specs_1 = { + sizeof(struct RICcontrolRequest), + offsetof(struct RICcontrolRequest, _asn_ctx), + asn_MAP_RICcontrolRequest_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_RICcontrolRequest = { + "RICcontrolRequest", + "RICcontrolRequest", + &asn_OP_SEQUENCE, + asn_DEF_RICcontrolRequest_tags_1, + sizeof(asn_DEF_RICcontrolRequest_tags_1) + /sizeof(asn_DEF_RICcontrolRequest_tags_1[0]), /* 1 */ + asn_DEF_RICcontrolRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_RICcontrolRequest_tags_1) + /sizeof(asn_DEF_RICcontrolRequest_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICcontrolRequest_1, + 1, /* Elements count */ + &asn_SPC_RICcontrolRequest_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICcontrolRequest.h b/e2sim/asn1c/RICcontrolRequest.h new file mode 100644 index 0000000..94857c9 --- /dev/null +++ b/e2sim/asn1c/RICcontrolRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICcontrolRequest_H_ +#define _RICcontrolRequest_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICcontrolRequest */ +typedef struct RICcontrolRequest { + ProtocolIE_Container_85P14_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICcontrolRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_RICcontrolRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICcontrolRequest_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICeventTriggerDefinition.c b/e2sim/asn1c/RICeventTriggerDefinition.c new file mode 100644 index 0000000..26cbac7 --- /dev/null +++ b/e2sim/asn1c/RICeventTriggerDefinition.c @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICeventTriggerDefinition.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_RICeventTriggerDefinition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RICeventTriggerDefinition = { + "RICeventTriggerDefinition", + "RICeventTriggerDefinition", + &asn_OP_OCTET_STRING, + asn_DEF_RICeventTriggerDefinition_tags_1, + sizeof(asn_DEF_RICeventTriggerDefinition_tags_1) + /sizeof(asn_DEF_RICeventTriggerDefinition_tags_1[0]), /* 1 */ + asn_DEF_RICeventTriggerDefinition_tags_1, /* Same as above */ + sizeof(asn_DEF_RICeventTriggerDefinition_tags_1) + /sizeof(asn_DEF_RICeventTriggerDefinition_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OCTET_STRING_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICeventTriggerDefinition.h b/e2sim/asn1c/RICeventTriggerDefinition.h new file mode 100644 index 0000000..c9610b3 --- /dev/null +++ b/e2sim/asn1c/RICeventTriggerDefinition.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICeventTriggerDefinition_H_ +#define _RICeventTriggerDefinition_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICeventTriggerDefinition */ +typedef OCTET_STRING_t RICeventTriggerDefinition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICeventTriggerDefinition; +asn_struct_free_f RICeventTriggerDefinition_free; +asn_struct_print_f RICeventTriggerDefinition_print; +asn_constr_check_f RICeventTriggerDefinition_constraint; +ber_type_decoder_f RICeventTriggerDefinition_decode_ber; +der_type_encoder_f RICeventTriggerDefinition_encode_der; +xer_type_decoder_f RICeventTriggerDefinition_decode_xer; +xer_type_encoder_f RICeventTriggerDefinition_encode_xer; +jer_type_encoder_f RICeventTriggerDefinition_encode_jer; +per_type_decoder_f RICeventTriggerDefinition_decode_uper; +per_type_encoder_f RICeventTriggerDefinition_encode_uper; +per_type_decoder_f RICeventTriggerDefinition_decode_aper; +per_type_encoder_f RICeventTriggerDefinition_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICeventTriggerDefinition_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICindication.c b/e2sim/asn1c/RICindication.c new file mode 100644 index 0000000..17bb20a --- /dev/null +++ b/e2sim/asn1c/RICindication.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICindication.h" + +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_Container_85P13, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICindication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICindication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICindication_specs_1 = { + sizeof(struct RICindication), + offsetof(struct RICindication, _asn_ctx), + asn_MAP_RICindication_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_RICindication = { + "RICindication", + "RICindication", + &asn_OP_SEQUENCE, + asn_DEF_RICindication_tags_1, + sizeof(asn_DEF_RICindication_tags_1) + /sizeof(asn_DEF_RICindication_tags_1[0]), /* 1 */ + asn_DEF_RICindication_tags_1, /* Same as above */ + sizeof(asn_DEF_RICindication_tags_1) + /sizeof(asn_DEF_RICindication_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICindication_1, + 1, /* Elements count */ + &asn_SPC_RICindication_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICindication.h b/e2sim/asn1c/RICindication.h new file mode 100644 index 0000000..b04314a --- /dev/null +++ b/e2sim/asn1c/RICindication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICindication_H_ +#define _RICindication_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICindication */ +typedef struct RICindication { + ProtocolIE_Container_85P13_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICindication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICindication; +extern asn_SEQUENCE_specifics_t asn_SPC_RICindication_specs_1; +extern asn_TYPE_member_t asn_MBR_RICindication_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICindication_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICindicationHeader.c b/e2sim/asn1c/RICindicationHeader.c new file mode 100644 index 0000000..7aa77cd --- /dev/null +++ b/e2sim/asn1c/RICindicationHeader.c @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICindicationHeader.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_RICindicationHeader_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RICindicationHeader = { + "RICindicationHeader", + "RICindicationHeader", + &asn_OP_OCTET_STRING, + asn_DEF_RICindicationHeader_tags_1, + sizeof(asn_DEF_RICindicationHeader_tags_1) + /sizeof(asn_DEF_RICindicationHeader_tags_1[0]), /* 1 */ + asn_DEF_RICindicationHeader_tags_1, /* Same as above */ + sizeof(asn_DEF_RICindicationHeader_tags_1) + /sizeof(asn_DEF_RICindicationHeader_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OCTET_STRING_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICindicationHeader.h b/e2sim/asn1c/RICindicationHeader.h new file mode 100644 index 0000000..ac26e89 --- /dev/null +++ b/e2sim/asn1c/RICindicationHeader.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICindicationHeader_H_ +#define _RICindicationHeader_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICindicationHeader */ +typedef OCTET_STRING_t RICindicationHeader_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICindicationHeader; +asn_struct_free_f RICindicationHeader_free; +asn_struct_print_f RICindicationHeader_print; +asn_constr_check_f RICindicationHeader_constraint; +ber_type_decoder_f RICindicationHeader_decode_ber; +der_type_encoder_f RICindicationHeader_encode_der; +xer_type_decoder_f RICindicationHeader_decode_xer; +xer_type_encoder_f RICindicationHeader_encode_xer; +jer_type_encoder_f RICindicationHeader_encode_jer; +per_type_decoder_f RICindicationHeader_decode_uper; +per_type_encoder_f RICindicationHeader_encode_uper; +per_type_decoder_f RICindicationHeader_decode_aper; +per_type_encoder_f RICindicationHeader_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICindicationHeader_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICindicationMessage.c b/e2sim/asn1c/RICindicationMessage.c new file mode 100644 index 0000000..a0ca72b --- /dev/null +++ b/e2sim/asn1c/RICindicationMessage.c @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICindicationMessage.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_RICindicationMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RICindicationMessage = { + "RICindicationMessage", + "RICindicationMessage", + &asn_OP_OCTET_STRING, + asn_DEF_RICindicationMessage_tags_1, + sizeof(asn_DEF_RICindicationMessage_tags_1) + /sizeof(asn_DEF_RICindicationMessage_tags_1[0]), /* 1 */ + asn_DEF_RICindicationMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_RICindicationMessage_tags_1) + /sizeof(asn_DEF_RICindicationMessage_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OCTET_STRING_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICindicationMessage.h b/e2sim/asn1c/RICindicationMessage.h new file mode 100644 index 0000000..a84e304 --- /dev/null +++ b/e2sim/asn1c/RICindicationMessage.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICindicationMessage_H_ +#define _RICindicationMessage_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICindicationMessage */ +typedef OCTET_STRING_t RICindicationMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICindicationMessage; +asn_struct_free_f RICindicationMessage_free; +asn_struct_print_f RICindicationMessage_print; +asn_constr_check_f RICindicationMessage_constraint; +ber_type_decoder_f RICindicationMessage_decode_ber; +der_type_encoder_f RICindicationMessage_encode_der; +xer_type_decoder_f RICindicationMessage_decode_xer; +xer_type_encoder_f RICindicationMessage_encode_xer; +jer_type_encoder_f RICindicationMessage_encode_jer; +per_type_decoder_f RICindicationMessage_decode_uper; +per_type_encoder_f RICindicationMessage_encode_uper; +per_type_decoder_f RICindicationMessage_decode_aper; +per_type_encoder_f RICindicationMessage_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICindicationMessage_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICindicationSN.c b/e2sim/asn1c/RICindicationSN.c new file mode 100644 index 0000000..4eca888 --- /dev/null +++ b/e2sim/asn1c/RICindicationSN.c @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICindicationSN.h" + +int +RICindicationSN_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 >= 0L && value <= 65535L)) { + /* 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. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RICindicationSN_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_RICindicationSN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RICindicationSN = { + "RICindicationSN", + "RICindicationSN", + &asn_OP_NativeInteger, + asn_DEF_RICindicationSN_tags_1, + sizeof(asn_DEF_RICindicationSN_tags_1) + /sizeof(asn_DEF_RICindicationSN_tags_1[0]), /* 1 */ + asn_DEF_RICindicationSN_tags_1, /* Same as above */ + sizeof(asn_DEF_RICindicationSN_tags_1) + /sizeof(asn_DEF_RICindicationSN_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RICindicationSN_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + RICindicationSN_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/RICindicationSN.h b/e2sim/asn1c/RICindicationSN.h new file mode 100644 index 0000000..815c9f5 --- /dev/null +++ b/e2sim/asn1c/RICindicationSN.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICindicationSN_H_ +#define _RICindicationSN_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICindicationSN */ +typedef long RICindicationSN_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RICindicationSN_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RICindicationSN; +asn_struct_free_f RICindicationSN_free; +asn_struct_print_f RICindicationSN_print; +asn_constr_check_f RICindicationSN_constraint; +ber_type_decoder_f RICindicationSN_decode_ber; +der_type_encoder_f RICindicationSN_encode_der; +xer_type_decoder_f RICindicationSN_decode_xer; +xer_type_encoder_f RICindicationSN_encode_xer; +jer_type_encoder_f RICindicationSN_encode_jer; +per_type_decoder_f RICindicationSN_decode_uper; +per_type_encoder_f RICindicationSN_encode_uper; +per_type_decoder_f RICindicationSN_decode_aper; +per_type_encoder_f RICindicationSN_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICindicationSN_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICindicationType.c b/e2sim/asn1c/RICindicationType.c new file mode 100644 index 0000000..49ba7c3 --- /dev/null +++ b/e2sim/asn1c/RICindicationType.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICindicationType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RICindicationType_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_RICindicationType_value2enum_1[] = { + { 0, 6, "report" }, + { 1, 6, "insert" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RICindicationType_enum2value_1[] = { + 1, /* insert(1) */ + 0 /* report(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_RICindicationType_specs_1 = { + asn_MAP_RICindicationType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RICindicationType_enum2value_1, /* 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_RICindicationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RICindicationType = { + "RICindicationType", + "RICindicationType", + &asn_OP_NativeEnumerated, + asn_DEF_RICindicationType_tags_1, + sizeof(asn_DEF_RICindicationType_tags_1) + /sizeof(asn_DEF_RICindicationType_tags_1[0]), /* 1 */ + asn_DEF_RICindicationType_tags_1, /* Same as above */ + sizeof(asn_DEF_RICindicationType_tags_1) + /sizeof(asn_DEF_RICindicationType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RICindicationType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RICindicationType_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICindicationType.h b/e2sim/asn1c/RICindicationType.h new file mode 100644 index 0000000..55c4809 --- /dev/null +++ b/e2sim/asn1c/RICindicationType.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICindicationType_H_ +#define _RICindicationType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RICindicationType { + RICindicationType_report = 0, + RICindicationType_insert = 1 + /* + * Enumeration is extensible + */ +} e_RICindicationType; + +/* RICindicationType */ +typedef long RICindicationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RICindicationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RICindicationType; +extern const asn_INTEGER_specifics_t asn_SPC_RICindicationType_specs_1; +asn_struct_free_f RICindicationType_free; +asn_struct_print_f RICindicationType_print; +asn_constr_check_f RICindicationType_constraint; +ber_type_decoder_f RICindicationType_decode_ber; +der_type_encoder_f RICindicationType_encode_der; +xer_type_decoder_f RICindicationType_decode_xer; +xer_type_encoder_f RICindicationType_encode_xer; +jer_type_encoder_f RICindicationType_encode_jer; +per_type_decoder_f RICindicationType_decode_uper; +per_type_encoder_f RICindicationType_encode_uper; +per_type_decoder_f RICindicationType_decode_aper; +per_type_encoder_f RICindicationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICindicationType_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICqueryDefinition.c b/e2sim/asn1c/RICqueryDefinition.c new file mode 100644 index 0000000..1dfcb14 --- /dev/null +++ b/e2sim/asn1c/RICqueryDefinition.c @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICqueryDefinition.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_RICqueryDefinition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RICqueryDefinition = { + "RICqueryDefinition", + "RICqueryDefinition", + &asn_OP_OCTET_STRING, + asn_DEF_RICqueryDefinition_tags_1, + sizeof(asn_DEF_RICqueryDefinition_tags_1) + /sizeof(asn_DEF_RICqueryDefinition_tags_1[0]), /* 1 */ + asn_DEF_RICqueryDefinition_tags_1, /* Same as above */ + sizeof(asn_DEF_RICqueryDefinition_tags_1) + /sizeof(asn_DEF_RICqueryDefinition_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OCTET_STRING_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICqueryDefinition.h b/e2sim/asn1c/RICqueryDefinition.h new file mode 100644 index 0000000..21928de --- /dev/null +++ b/e2sim/asn1c/RICqueryDefinition.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICqueryDefinition_H_ +#define _RICqueryDefinition_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICqueryDefinition */ +typedef OCTET_STRING_t RICqueryDefinition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICqueryDefinition; +asn_struct_free_f RICqueryDefinition_free; +asn_struct_print_f RICqueryDefinition_print; +asn_constr_check_f RICqueryDefinition_constraint; +ber_type_decoder_f RICqueryDefinition_decode_ber; +der_type_encoder_f RICqueryDefinition_encode_der; +xer_type_decoder_f RICqueryDefinition_decode_xer; +xer_type_encoder_f RICqueryDefinition_encode_xer; +jer_type_encoder_f RICqueryDefinition_encode_jer; +per_type_decoder_f RICqueryDefinition_decode_uper; +per_type_encoder_f RICqueryDefinition_encode_uper; +per_type_decoder_f RICqueryDefinition_decode_aper; +per_type_encoder_f RICqueryDefinition_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICqueryDefinition_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICqueryHeader.c b/e2sim/asn1c/RICqueryHeader.c new file mode 100644 index 0000000..38d8c86 --- /dev/null +++ b/e2sim/asn1c/RICqueryHeader.c @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICqueryHeader.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_RICqueryHeader_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RICqueryHeader = { + "RICqueryHeader", + "RICqueryHeader", + &asn_OP_OCTET_STRING, + asn_DEF_RICqueryHeader_tags_1, + sizeof(asn_DEF_RICqueryHeader_tags_1) + /sizeof(asn_DEF_RICqueryHeader_tags_1[0]), /* 1 */ + asn_DEF_RICqueryHeader_tags_1, /* Same as above */ + sizeof(asn_DEF_RICqueryHeader_tags_1) + /sizeof(asn_DEF_RICqueryHeader_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OCTET_STRING_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICqueryHeader.h b/e2sim/asn1c/RICqueryHeader.h new file mode 100644 index 0000000..ff8110b --- /dev/null +++ b/e2sim/asn1c/RICqueryHeader.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICqueryHeader_H_ +#define _RICqueryHeader_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICqueryHeader */ +typedef OCTET_STRING_t RICqueryHeader_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICqueryHeader; +asn_struct_free_f RICqueryHeader_free; +asn_struct_print_f RICqueryHeader_print; +asn_constr_check_f RICqueryHeader_constraint; +ber_type_decoder_f RICqueryHeader_decode_ber; +der_type_encoder_f RICqueryHeader_encode_der; +xer_type_decoder_f RICqueryHeader_decode_xer; +xer_type_encoder_f RICqueryHeader_encode_xer; +jer_type_encoder_f RICqueryHeader_encode_jer; +per_type_decoder_f RICqueryHeader_decode_uper; +per_type_encoder_f RICqueryHeader_encode_uper; +per_type_decoder_f RICqueryHeader_decode_aper; +per_type_encoder_f RICqueryHeader_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICqueryHeader_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICqueryOutcome.c b/e2sim/asn1c/RICqueryOutcome.c new file mode 100644 index 0000000..9209124 --- /dev/null +++ b/e2sim/asn1c/RICqueryOutcome.c @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICqueryOutcome.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_RICqueryOutcome_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RICqueryOutcome = { + "RICqueryOutcome", + "RICqueryOutcome", + &asn_OP_OCTET_STRING, + asn_DEF_RICqueryOutcome_tags_1, + sizeof(asn_DEF_RICqueryOutcome_tags_1) + /sizeof(asn_DEF_RICqueryOutcome_tags_1[0]), /* 1 */ + asn_DEF_RICqueryOutcome_tags_1, /* Same as above */ + sizeof(asn_DEF_RICqueryOutcome_tags_1) + /sizeof(asn_DEF_RICqueryOutcome_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OCTET_STRING_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICqueryOutcome.h b/e2sim/asn1c/RICqueryOutcome.h new file mode 100644 index 0000000..b5255d6 --- /dev/null +++ b/e2sim/asn1c/RICqueryOutcome.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICqueryOutcome_H_ +#define _RICqueryOutcome_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICqueryOutcome */ +typedef OCTET_STRING_t RICqueryOutcome_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICqueryOutcome; +asn_struct_free_f RICqueryOutcome_free; +asn_struct_print_f RICqueryOutcome_print; +asn_constr_check_f RICqueryOutcome_constraint; +ber_type_decoder_f RICqueryOutcome_decode_ber; +der_type_encoder_f RICqueryOutcome_encode_der; +xer_type_decoder_f RICqueryOutcome_decode_xer; +xer_type_encoder_f RICqueryOutcome_encode_xer; +jer_type_encoder_f RICqueryOutcome_encode_jer; +per_type_decoder_f RICqueryOutcome_decode_uper; +per_type_encoder_f RICqueryOutcome_encode_uper; +per_type_decoder_f RICqueryOutcome_decode_aper; +per_type_encoder_f RICqueryOutcome_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICqueryOutcome_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICrequestID.c b/e2sim/asn1c/RICrequestID.c new file mode 100644 index 0000000..6fed3ae --- /dev/null +++ b/e2sim/asn1c/RICrequestID.c @@ -0,0 +1,148 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICrequestID.h" + +static int +memb_ricRequestorID_constraint_1(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 >= 0L && value <= 65535L)) { + /* 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_ricInstanceID_constraint_1(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 >= 0L && value <= 65535L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ricRequestorID_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ricInstanceID_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_RICrequestID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICrequestID, ricRequestorID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_ricRequestorID_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_ricRequestorID_constraint_1 + }, + 0, 0, /* No default value */ + "ricRequestorID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICrequestID, ricInstanceID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_ricInstanceID_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_ricInstanceID_constraint_1 + }, + 0, 0, /* No default value */ + "ricInstanceID" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICrequestID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICrequestID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequestorID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricInstanceID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICrequestID_specs_1 = { + sizeof(struct RICrequestID), + offsetof(struct RICrequestID, _asn_ctx), + asn_MAP_RICrequestID_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_RICrequestID = { + "RICrequestID", + "RICrequestID", + &asn_OP_SEQUENCE, + asn_DEF_RICrequestID_tags_1, + sizeof(asn_DEF_RICrequestID_tags_1) + /sizeof(asn_DEF_RICrequestID_tags_1[0]), /* 1 */ + asn_DEF_RICrequestID_tags_1, /* Same as above */ + sizeof(asn_DEF_RICrequestID_tags_1) + /sizeof(asn_DEF_RICrequestID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICrequestID_1, + 2, /* Elements count */ + &asn_SPC_RICrequestID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICrequestID.h b/e2sim/asn1c/RICrequestID.h new file mode 100644 index 0000000..655d813 --- /dev/null +++ b/e2sim/asn1c/RICrequestID.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICrequestID_H_ +#define _RICrequestID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICrequestID */ +typedef struct RICrequestID { + long ricRequestorID; + long ricInstanceID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICrequestID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICrequestID; +extern asn_SEQUENCE_specifics_t asn_SPC_RICrequestID_specs_1; +extern asn_TYPE_member_t asn_MBR_RICrequestID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICrequestID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICserviceQuery.c b/e2sim/asn1c/RICserviceQuery.c new file mode 100644 index 0000000..0fd9ff0 --- /dev/null +++ b/e2sim/asn1c/RICserviceQuery.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICserviceQuery.h" + +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_Container_85P35, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICserviceQuery_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICserviceQuery_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_specs_1 = { + sizeof(struct RICserviceQuery), + offsetof(struct RICserviceQuery, _asn_ctx), + asn_MAP_RICserviceQuery_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_RICserviceQuery = { + "RICserviceQuery", + "RICserviceQuery", + &asn_OP_SEQUENCE, + asn_DEF_RICserviceQuery_tags_1, + sizeof(asn_DEF_RICserviceQuery_tags_1) + /sizeof(asn_DEF_RICserviceQuery_tags_1[0]), /* 1 */ + asn_DEF_RICserviceQuery_tags_1, /* Same as above */ + sizeof(asn_DEF_RICserviceQuery_tags_1) + /sizeof(asn_DEF_RICserviceQuery_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICserviceQuery_1, + 1, /* Elements count */ + &asn_SPC_RICserviceQuery_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICserviceQuery.h b/e2sim/asn1c/RICserviceQuery.h new file mode 100644 index 0000000..019be3e --- /dev/null +++ b/e2sim/asn1c/RICserviceQuery.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICserviceQuery_H_ +#define _RICserviceQuery_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICserviceQuery */ +typedef struct RICserviceQuery { + ProtocolIE_Container_85P35_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICserviceQuery_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICserviceQuery; +extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_specs_1; +extern asn_TYPE_member_t asn_MBR_RICserviceQuery_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICserviceQuery_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICserviceUpdate.c b/e2sim/asn1c/RICserviceUpdate.c new file mode 100644 index 0000000..c652eb3 --- /dev/null +++ b/e2sim/asn1c/RICserviceUpdate.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICserviceUpdate.h" + +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_Container_85P32, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICserviceUpdate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdate_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_specs_1 = { + sizeof(struct RICserviceUpdate), + offsetof(struct RICserviceUpdate, _asn_ctx), + asn_MAP_RICserviceUpdate_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_RICserviceUpdate = { + "RICserviceUpdate", + "RICserviceUpdate", + &asn_OP_SEQUENCE, + asn_DEF_RICserviceUpdate_tags_1, + sizeof(asn_DEF_RICserviceUpdate_tags_1) + /sizeof(asn_DEF_RICserviceUpdate_tags_1[0]), /* 1 */ + asn_DEF_RICserviceUpdate_tags_1, /* Same as above */ + sizeof(asn_DEF_RICserviceUpdate_tags_1) + /sizeof(asn_DEF_RICserviceUpdate_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICserviceUpdate_1, + 1, /* Elements count */ + &asn_SPC_RICserviceUpdate_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICserviceUpdate.h b/e2sim/asn1c/RICserviceUpdate.h new file mode 100644 index 0000000..b8213e7 --- /dev/null +++ b/e2sim/asn1c/RICserviceUpdate.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICserviceUpdate_H_ +#define _RICserviceUpdate_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICserviceUpdate */ +typedef struct RICserviceUpdate { + ProtocolIE_Container_85P32_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICserviceUpdate_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate; +extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_specs_1; +extern asn_TYPE_member_t asn_MBR_RICserviceUpdate_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICserviceUpdate_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICserviceUpdateAcknowledge.c b/e2sim/asn1c/RICserviceUpdateAcknowledge.c new file mode 100644 index 0000000..bcc703a --- /dev/null +++ b/e2sim/asn1c/RICserviceUpdateAcknowledge.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICserviceUpdateAcknowledge.h" + +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_Container_85P33, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICserviceUpdateAcknowledge_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateAcknowledge_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_specs_1 = { + sizeof(struct RICserviceUpdateAcknowledge), + offsetof(struct RICserviceUpdateAcknowledge, _asn_ctx), + asn_MAP_RICserviceUpdateAcknowledge_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_RICserviceUpdateAcknowledge = { + "RICserviceUpdateAcknowledge", + "RICserviceUpdateAcknowledge", + &asn_OP_SEQUENCE, + asn_DEF_RICserviceUpdateAcknowledge_tags_1, + sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1) + /sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1[0]), /* 1 */ + asn_DEF_RICserviceUpdateAcknowledge_tags_1, /* Same as above */ + sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1) + /sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICserviceUpdateAcknowledge_1, + 1, /* Elements count */ + &asn_SPC_RICserviceUpdateAcknowledge_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICserviceUpdateAcknowledge.h b/e2sim/asn1c/RICserviceUpdateAcknowledge.h new file mode 100644 index 0000000..e0d2db5 --- /dev/null +++ b/e2sim/asn1c/RICserviceUpdateAcknowledge.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICserviceUpdateAcknowledge_H_ +#define _RICserviceUpdateAcknowledge_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICserviceUpdateAcknowledge */ +typedef struct RICserviceUpdateAcknowledge { + ProtocolIE_Container_85P33_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICserviceUpdateAcknowledge_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge; +extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_specs_1; +extern asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICserviceUpdateAcknowledge_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICserviceUpdateFailure.c b/e2sim/asn1c/RICserviceUpdateFailure.c new file mode 100644 index 0000000..335c780 --- /dev/null +++ b/e2sim/asn1c/RICserviceUpdateFailure.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICserviceUpdateFailure.h" + +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_Container_85P34, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICserviceUpdateFailure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateFailure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_specs_1 = { + sizeof(struct RICserviceUpdateFailure), + offsetof(struct RICserviceUpdateFailure, _asn_ctx), + asn_MAP_RICserviceUpdateFailure_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_RICserviceUpdateFailure = { + "RICserviceUpdateFailure", + "RICserviceUpdateFailure", + &asn_OP_SEQUENCE, + asn_DEF_RICserviceUpdateFailure_tags_1, + sizeof(asn_DEF_RICserviceUpdateFailure_tags_1) + /sizeof(asn_DEF_RICserviceUpdateFailure_tags_1[0]), /* 1 */ + asn_DEF_RICserviceUpdateFailure_tags_1, /* Same as above */ + sizeof(asn_DEF_RICserviceUpdateFailure_tags_1) + /sizeof(asn_DEF_RICserviceUpdateFailure_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICserviceUpdateFailure_1, + 1, /* Elements count */ + &asn_SPC_RICserviceUpdateFailure_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICserviceUpdateFailure.h b/e2sim/asn1c/RICserviceUpdateFailure.h new file mode 100644 index 0000000..d1703f1 --- /dev/null +++ b/e2sim/asn1c/RICserviceUpdateFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICserviceUpdateFailure_H_ +#define _RICserviceUpdateFailure_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICserviceUpdateFailure */ +typedef struct RICserviceUpdateFailure { + ProtocolIE_Container_85P34_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICserviceUpdateFailure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure; +extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_specs_1; +extern asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICserviceUpdateFailure_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICsubscription-List-withCause.c b/e2sim/asn1c/RICsubscription-List-withCause.c new file mode 100644 index 0000000..5e4bfeb --- /dev/null +++ b/e2sim/asn1c/RICsubscription-List-withCause.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICsubscription-List-withCause.h" + +#include "ProtocolIE-SingleContainer.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RICsubscription_List_withCause_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_RICsubscription_List_withCause_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_88P3, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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)) +}; +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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RICsubscription_List_withCause_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_RICsubscription_List_withCause_1, + 1, /* Single element */ + &asn_SPC_RICsubscription_List_withCause_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICsubscription-List-withCause.h b/e2sim/asn1c/RICsubscription-List-withCause.h new file mode 100644 index 0000000..6d94ca3 --- /dev/null +++ b/e2sim/asn1c/RICsubscription-List-withCause.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICsubscription_List_withCause_H_ +#define _RICsubscription_List_withCause_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* RICsubscription-List-withCause */ +typedef struct RICsubscription_List_withCause { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) 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; +extern asn_SET_OF_specifics_t asn_SPC_RICsubscription_List_withCause_specs_1; +extern asn_TYPE_member_t asn_MBR_RICsubscription_List_withCause_1[1]; +extern asn_per_constraints_t asn_PER_type_RICsubscription_List_withCause_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICsubscription_List_withCause_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICsubscription-withCause-Item.c b/e2sim/asn1c/RICsubscription-withCause-Item.c new file mode 100644 index 0000000..557104e --- /dev/null +++ b/e2sim/asn1c/RICsubscription-withCause-Item.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICsubscription-withCause-Item.h" + +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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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_Cause, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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 */ +}; +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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICsubscription_withCause_Item_1, + 3, /* Elements count */ + &asn_SPC_RICsubscription_withCause_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICsubscription-withCause-Item.h b/e2sim/asn1c/RICsubscription-withCause-Item.h new file mode 100644 index 0000000..17ccc1e --- /dev/null +++ b/e2sim/asn1c/RICsubscription-withCause-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICsubscription_withCause_Item_H_ +#define _RICsubscription_withCause_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RICrequestID.h" +#include "RANfunctionID.h" +#include "Cause.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICsubscription-withCause-Item */ +typedef struct RICsubscription_withCause_Item { + RICrequestID_t ricRequestID; + RANfunctionID_t ranFunctionID; + Cause_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; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscription_withCause_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_RICsubscription_withCause_Item_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICsubscription_withCause_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICsubscriptionDeleteFailure.c b/e2sim/asn1c/RICsubscriptionDeleteFailure.c new file mode 100644 index 0000000..0dd2fa4 --- /dev/null +++ b/e2sim/asn1c/RICsubscriptionDeleteFailure.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICsubscriptionDeleteFailure.h" + +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_Container_85P5, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteFailure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteFailure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_specs_1 = { + sizeof(struct RICsubscriptionDeleteFailure), + offsetof(struct RICsubscriptionDeleteFailure, _asn_ctx), + asn_MAP_RICsubscriptionDeleteFailure_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_RICsubscriptionDeleteFailure = { + "RICsubscriptionDeleteFailure", + "RICsubscriptionDeleteFailure", + &asn_OP_SEQUENCE, + asn_DEF_RICsubscriptionDeleteFailure_tags_1, + sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1) + /sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1[0]), /* 1 */ + asn_DEF_RICsubscriptionDeleteFailure_tags_1, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1) + /sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICsubscriptionDeleteFailure_1, + 1, /* Elements count */ + &asn_SPC_RICsubscriptionDeleteFailure_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICsubscriptionDeleteFailure.h b/e2sim/asn1c/RICsubscriptionDeleteFailure.h new file mode 100644 index 0000000..bd3d397 --- /dev/null +++ b/e2sim/asn1c/RICsubscriptionDeleteFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICsubscriptionDeleteFailure_H_ +#define _RICsubscriptionDeleteFailure_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICsubscriptionDeleteFailure */ +typedef struct RICsubscriptionDeleteFailure { + ProtocolIE_Container_85P5_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICsubscriptionDeleteFailure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_specs_1; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICsubscriptionDeleteFailure_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICsubscriptionDeleteRequest.c b/e2sim/asn1c/RICsubscriptionDeleteRequest.c new file mode 100644 index 0000000..e221243 --- /dev/null +++ b/e2sim/asn1c/RICsubscriptionDeleteRequest.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICsubscriptionDeleteRequest.h" + +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_Container_85P3, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_specs_1 = { + sizeof(struct RICsubscriptionDeleteRequest), + offsetof(struct RICsubscriptionDeleteRequest, _asn_ctx), + asn_MAP_RICsubscriptionDeleteRequest_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_RICsubscriptionDeleteRequest = { + "RICsubscriptionDeleteRequest", + "RICsubscriptionDeleteRequest", + &asn_OP_SEQUENCE, + asn_DEF_RICsubscriptionDeleteRequest_tags_1, + sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1) + /sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1[0]), /* 1 */ + asn_DEF_RICsubscriptionDeleteRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1) + /sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICsubscriptionDeleteRequest_1, + 1, /* Elements count */ + &asn_SPC_RICsubscriptionDeleteRequest_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICsubscriptionDeleteRequest.h b/e2sim/asn1c/RICsubscriptionDeleteRequest.h new file mode 100644 index 0000000..a0c7e97 --- /dev/null +++ b/e2sim/asn1c/RICsubscriptionDeleteRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICsubscriptionDeleteRequest_H_ +#define _RICsubscriptionDeleteRequest_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICsubscriptionDeleteRequest */ +typedef struct RICsubscriptionDeleteRequest { + ProtocolIE_Container_85P3_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICsubscriptionDeleteRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICsubscriptionDeleteRequest_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICsubscriptionDeleteRequired.c b/e2sim/asn1c/RICsubscriptionDeleteRequired.c new file mode 100644 index 0000000..3d466e9 --- /dev/null +++ b/e2sim/asn1c/RICsubscriptionDeleteRequired.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#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_Container_85P6, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICsubscriptionDeleteRequired_1, + 1, /* Elements count */ + &asn_SPC_RICsubscriptionDeleteRequired_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICsubscriptionDeleteRequired.h b/e2sim/asn1c/RICsubscriptionDeleteRequired.h new file mode 100644 index 0000000..d7cf507 --- /dev/null +++ b/e2sim/asn1c/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 "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICsubscriptionDeleteRequired_H_ +#define _RICsubscriptionDeleteRequired_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICsubscriptionDeleteRequired */ +typedef struct RICsubscriptionDeleteRequired { + ProtocolIE_Container_85P6_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 "asn_internal.h" diff --git a/e2sim/asn1c/RICsubscriptionDeleteResponse.c b/e2sim/asn1c/RICsubscriptionDeleteResponse.c new file mode 100644 index 0000000..0ccef01 --- /dev/null +++ b/e2sim/asn1c/RICsubscriptionDeleteResponse.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICsubscriptionDeleteResponse.h" + +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_Container_85P4, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_specs_1 = { + sizeof(struct RICsubscriptionDeleteResponse), + offsetof(struct RICsubscriptionDeleteResponse, _asn_ctx), + asn_MAP_RICsubscriptionDeleteResponse_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_RICsubscriptionDeleteResponse = { + "RICsubscriptionDeleteResponse", + "RICsubscriptionDeleteResponse", + &asn_OP_SEQUENCE, + asn_DEF_RICsubscriptionDeleteResponse_tags_1, + sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1) + /sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1[0]), /* 1 */ + asn_DEF_RICsubscriptionDeleteResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1) + /sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICsubscriptionDeleteResponse_1, + 1, /* Elements count */ + &asn_SPC_RICsubscriptionDeleteResponse_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICsubscriptionDeleteResponse.h b/e2sim/asn1c/RICsubscriptionDeleteResponse.h new file mode 100644 index 0000000..6cffe8e --- /dev/null +++ b/e2sim/asn1c/RICsubscriptionDeleteResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICsubscriptionDeleteResponse_H_ +#define _RICsubscriptionDeleteResponse_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICsubscriptionDeleteResponse */ +typedef struct RICsubscriptionDeleteResponse { + ProtocolIE_Container_85P4_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICsubscriptionDeleteResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICsubscriptionDeleteResponse_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICsubscriptionDetails.c b/e2sim/asn1c/RICsubscriptionDetails.c new file mode 100644 index 0000000..3c393f6 --- /dev/null +++ b/e2sim/asn1c/RICsubscriptionDetails.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICsubscriptionDetails.h" + +asn_TYPE_member_t asn_MBR_RICsubscriptionDetails_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDetails, ricEventTriggerDefinition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICeventTriggerDefinition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricEventTriggerDefinition" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDetails, ricAction_ToBeSetup_List), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICactions_ToBeSetup_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricAction-ToBeSetup-List" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscriptionDetails_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDetails_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricEventTriggerDefinition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricAction-ToBeSetup-List */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDetails_specs_1 = { + sizeof(struct RICsubscriptionDetails), + offsetof(struct RICsubscriptionDetails, _asn_ctx), + asn_MAP_RICsubscriptionDetails_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_RICsubscriptionDetails = { + "RICsubscriptionDetails", + "RICsubscriptionDetails", + &asn_OP_SEQUENCE, + asn_DEF_RICsubscriptionDetails_tags_1, + sizeof(asn_DEF_RICsubscriptionDetails_tags_1) + /sizeof(asn_DEF_RICsubscriptionDetails_tags_1[0]), /* 1 */ + asn_DEF_RICsubscriptionDetails_tags_1, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionDetails_tags_1) + /sizeof(asn_DEF_RICsubscriptionDetails_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICsubscriptionDetails_1, + 2, /* Elements count */ + &asn_SPC_RICsubscriptionDetails_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICsubscriptionDetails.h b/e2sim/asn1c/RICsubscriptionDetails.h new file mode 100644 index 0000000..3888495 --- /dev/null +++ b/e2sim/asn1c/RICsubscriptionDetails.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICsubscriptionDetails_H_ +#define _RICsubscriptionDetails_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RICeventTriggerDefinition.h" +#include "RICactions-ToBeSetup-List.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICsubscriptionDetails */ +typedef struct RICsubscriptionDetails { + RICeventTriggerDefinition_t ricEventTriggerDefinition; + RICactions_ToBeSetup_List_t ricAction_ToBeSetup_List; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICsubscriptionDetails_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDetails; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDetails_specs_1; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionDetails_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICsubscriptionDetails_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICsubscriptionFailure.c b/e2sim/asn1c/RICsubscriptionFailure.c new file mode 100644 index 0000000..ea27bd9 --- /dev/null +++ b/e2sim/asn1c/RICsubscriptionFailure.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICsubscriptionFailure.h" + +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_Container_85P2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscriptionFailure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionFailure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_specs_1 = { + sizeof(struct RICsubscriptionFailure), + offsetof(struct RICsubscriptionFailure, _asn_ctx), + asn_MAP_RICsubscriptionFailure_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_RICsubscriptionFailure = { + "RICsubscriptionFailure", + "RICsubscriptionFailure", + &asn_OP_SEQUENCE, + asn_DEF_RICsubscriptionFailure_tags_1, + sizeof(asn_DEF_RICsubscriptionFailure_tags_1) + /sizeof(asn_DEF_RICsubscriptionFailure_tags_1[0]), /* 1 */ + asn_DEF_RICsubscriptionFailure_tags_1, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionFailure_tags_1) + /sizeof(asn_DEF_RICsubscriptionFailure_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICsubscriptionFailure_1, + 1, /* Elements count */ + &asn_SPC_RICsubscriptionFailure_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICsubscriptionFailure.h b/e2sim/asn1c/RICsubscriptionFailure.h new file mode 100644 index 0000000..961ed47 --- /dev/null +++ b/e2sim/asn1c/RICsubscriptionFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICsubscriptionFailure_H_ +#define _RICsubscriptionFailure_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICsubscriptionFailure */ +typedef struct RICsubscriptionFailure { + ProtocolIE_Container_85P2_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICsubscriptionFailure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_specs_1; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICsubscriptionFailure_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICsubscriptionModificationConfirm.c b/e2sim/asn1c/RICsubscriptionModificationConfirm.c new file mode 100644 index 0000000..c5f9184 --- /dev/null +++ b/e2sim/asn1c/RICsubscriptionModificationConfirm.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICsubscriptionModificationConfirm.h" + +asn_TYPE_member_t asn_MBR_RICsubscriptionModificationConfirm_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationConfirm, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_85P11, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscriptionModificationConfirm_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionModificationConfirm_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionModificationConfirm_specs_1 = { + sizeof(struct RICsubscriptionModificationConfirm), + offsetof(struct RICsubscriptionModificationConfirm, _asn_ctx), + asn_MAP_RICsubscriptionModificationConfirm_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_RICsubscriptionModificationConfirm = { + "RICsubscriptionModificationConfirm", + "RICsubscriptionModificationConfirm", + &asn_OP_SEQUENCE, + asn_DEF_RICsubscriptionModificationConfirm_tags_1, + sizeof(asn_DEF_RICsubscriptionModificationConfirm_tags_1) + /sizeof(asn_DEF_RICsubscriptionModificationConfirm_tags_1[0]), /* 1 */ + asn_DEF_RICsubscriptionModificationConfirm_tags_1, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionModificationConfirm_tags_1) + /sizeof(asn_DEF_RICsubscriptionModificationConfirm_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICsubscriptionModificationConfirm_1, + 1, /* Elements count */ + &asn_SPC_RICsubscriptionModificationConfirm_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICsubscriptionModificationConfirm.h b/e2sim/asn1c/RICsubscriptionModificationConfirm.h new file mode 100644 index 0000000..34e4733 --- /dev/null +++ b/e2sim/asn1c/RICsubscriptionModificationConfirm.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICsubscriptionModificationConfirm_H_ +#define _RICsubscriptionModificationConfirm_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICsubscriptionModificationConfirm */ +typedef struct RICsubscriptionModificationConfirm { + ProtocolIE_Container_85P11_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICsubscriptionModificationConfirm_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionModificationConfirm; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionModificationConfirm_specs_1; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionModificationConfirm_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICsubscriptionModificationConfirm_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICsubscriptionModificationFailure.c b/e2sim/asn1c/RICsubscriptionModificationFailure.c new file mode 100644 index 0000000..60826db --- /dev/null +++ b/e2sim/asn1c/RICsubscriptionModificationFailure.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICsubscriptionModificationFailure.h" + +asn_TYPE_member_t asn_MBR_RICsubscriptionModificationFailure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationFailure, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_85P9, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscriptionModificationFailure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionModificationFailure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionModificationFailure_specs_1 = { + sizeof(struct RICsubscriptionModificationFailure), + offsetof(struct RICsubscriptionModificationFailure, _asn_ctx), + asn_MAP_RICsubscriptionModificationFailure_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_RICsubscriptionModificationFailure = { + "RICsubscriptionModificationFailure", + "RICsubscriptionModificationFailure", + &asn_OP_SEQUENCE, + asn_DEF_RICsubscriptionModificationFailure_tags_1, + sizeof(asn_DEF_RICsubscriptionModificationFailure_tags_1) + /sizeof(asn_DEF_RICsubscriptionModificationFailure_tags_1[0]), /* 1 */ + asn_DEF_RICsubscriptionModificationFailure_tags_1, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionModificationFailure_tags_1) + /sizeof(asn_DEF_RICsubscriptionModificationFailure_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICsubscriptionModificationFailure_1, + 1, /* Elements count */ + &asn_SPC_RICsubscriptionModificationFailure_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICsubscriptionModificationFailure.h b/e2sim/asn1c/RICsubscriptionModificationFailure.h new file mode 100644 index 0000000..c295cde --- /dev/null +++ b/e2sim/asn1c/RICsubscriptionModificationFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICsubscriptionModificationFailure_H_ +#define _RICsubscriptionModificationFailure_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICsubscriptionModificationFailure */ +typedef struct RICsubscriptionModificationFailure { + ProtocolIE_Container_85P9_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICsubscriptionModificationFailure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionModificationFailure; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionModificationFailure_specs_1; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionModificationFailure_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICsubscriptionModificationFailure_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICsubscriptionModificationRefuse.c b/e2sim/asn1c/RICsubscriptionModificationRefuse.c new file mode 100644 index 0000000..74b446e --- /dev/null +++ b/e2sim/asn1c/RICsubscriptionModificationRefuse.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICsubscriptionModificationRefuse.h" + +asn_TYPE_member_t asn_MBR_RICsubscriptionModificationRefuse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationRefuse, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_85P12, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscriptionModificationRefuse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionModificationRefuse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionModificationRefuse_specs_1 = { + sizeof(struct RICsubscriptionModificationRefuse), + offsetof(struct RICsubscriptionModificationRefuse, _asn_ctx), + asn_MAP_RICsubscriptionModificationRefuse_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_RICsubscriptionModificationRefuse = { + "RICsubscriptionModificationRefuse", + "RICsubscriptionModificationRefuse", + &asn_OP_SEQUENCE, + asn_DEF_RICsubscriptionModificationRefuse_tags_1, + sizeof(asn_DEF_RICsubscriptionModificationRefuse_tags_1) + /sizeof(asn_DEF_RICsubscriptionModificationRefuse_tags_1[0]), /* 1 */ + asn_DEF_RICsubscriptionModificationRefuse_tags_1, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionModificationRefuse_tags_1) + /sizeof(asn_DEF_RICsubscriptionModificationRefuse_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICsubscriptionModificationRefuse_1, + 1, /* Elements count */ + &asn_SPC_RICsubscriptionModificationRefuse_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICsubscriptionModificationRefuse.h b/e2sim/asn1c/RICsubscriptionModificationRefuse.h new file mode 100644 index 0000000..3a13257 --- /dev/null +++ b/e2sim/asn1c/RICsubscriptionModificationRefuse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICsubscriptionModificationRefuse_H_ +#define _RICsubscriptionModificationRefuse_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICsubscriptionModificationRefuse */ +typedef struct RICsubscriptionModificationRefuse { + ProtocolIE_Container_85P12_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICsubscriptionModificationRefuse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionModificationRefuse; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionModificationRefuse_specs_1; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionModificationRefuse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICsubscriptionModificationRefuse_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICsubscriptionModificationRequest.c b/e2sim/asn1c/RICsubscriptionModificationRequest.c new file mode 100644 index 0000000..a0247c3 --- /dev/null +++ b/e2sim/asn1c/RICsubscriptionModificationRequest.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICsubscriptionModificationRequest.h" + +asn_TYPE_member_t asn_MBR_RICsubscriptionModificationRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_85P7, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscriptionModificationRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionModificationRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionModificationRequest_specs_1 = { + sizeof(struct RICsubscriptionModificationRequest), + offsetof(struct RICsubscriptionModificationRequest, _asn_ctx), + asn_MAP_RICsubscriptionModificationRequest_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_RICsubscriptionModificationRequest = { + "RICsubscriptionModificationRequest", + "RICsubscriptionModificationRequest", + &asn_OP_SEQUENCE, + asn_DEF_RICsubscriptionModificationRequest_tags_1, + sizeof(asn_DEF_RICsubscriptionModificationRequest_tags_1) + /sizeof(asn_DEF_RICsubscriptionModificationRequest_tags_1[0]), /* 1 */ + asn_DEF_RICsubscriptionModificationRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionModificationRequest_tags_1) + /sizeof(asn_DEF_RICsubscriptionModificationRequest_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICsubscriptionModificationRequest_1, + 1, /* Elements count */ + &asn_SPC_RICsubscriptionModificationRequest_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICsubscriptionModificationRequest.h b/e2sim/asn1c/RICsubscriptionModificationRequest.h new file mode 100644 index 0000000..de69b50 --- /dev/null +++ b/e2sim/asn1c/RICsubscriptionModificationRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICsubscriptionModificationRequest_H_ +#define _RICsubscriptionModificationRequest_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICsubscriptionModificationRequest */ +typedef struct RICsubscriptionModificationRequest { + ProtocolIE_Container_85P7_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICsubscriptionModificationRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionModificationRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionModificationRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionModificationRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICsubscriptionModificationRequest_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICsubscriptionModificationRequired.c b/e2sim/asn1c/RICsubscriptionModificationRequired.c new file mode 100644 index 0000000..5d47c3e --- /dev/null +++ b/e2sim/asn1c/RICsubscriptionModificationRequired.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICsubscriptionModificationRequired.h" + +asn_TYPE_member_t asn_MBR_RICsubscriptionModificationRequired_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationRequired, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_85P10, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscriptionModificationRequired_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionModificationRequired_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionModificationRequired_specs_1 = { + sizeof(struct RICsubscriptionModificationRequired), + offsetof(struct RICsubscriptionModificationRequired, _asn_ctx), + asn_MAP_RICsubscriptionModificationRequired_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_RICsubscriptionModificationRequired = { + "RICsubscriptionModificationRequired", + "RICsubscriptionModificationRequired", + &asn_OP_SEQUENCE, + asn_DEF_RICsubscriptionModificationRequired_tags_1, + sizeof(asn_DEF_RICsubscriptionModificationRequired_tags_1) + /sizeof(asn_DEF_RICsubscriptionModificationRequired_tags_1[0]), /* 1 */ + asn_DEF_RICsubscriptionModificationRequired_tags_1, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionModificationRequired_tags_1) + /sizeof(asn_DEF_RICsubscriptionModificationRequired_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICsubscriptionModificationRequired_1, + 1, /* Elements count */ + &asn_SPC_RICsubscriptionModificationRequired_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICsubscriptionModificationRequired.h b/e2sim/asn1c/RICsubscriptionModificationRequired.h new file mode 100644 index 0000000..6b7805a --- /dev/null +++ b/e2sim/asn1c/RICsubscriptionModificationRequired.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICsubscriptionModificationRequired_H_ +#define _RICsubscriptionModificationRequired_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICsubscriptionModificationRequired */ +typedef struct RICsubscriptionModificationRequired { + ProtocolIE_Container_85P10_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICsubscriptionModificationRequired_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionModificationRequired; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionModificationRequired_specs_1; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionModificationRequired_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICsubscriptionModificationRequired_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICsubscriptionModificationResponse.c b/e2sim/asn1c/RICsubscriptionModificationResponse.c new file mode 100644 index 0000000..f2ab630 --- /dev/null +++ b/e2sim/asn1c/RICsubscriptionModificationResponse.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICsubscriptionModificationResponse.h" + +asn_TYPE_member_t asn_MBR_RICsubscriptionModificationResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionModificationResponse, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_85P8, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscriptionModificationResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionModificationResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionModificationResponse_specs_1 = { + sizeof(struct RICsubscriptionModificationResponse), + offsetof(struct RICsubscriptionModificationResponse, _asn_ctx), + asn_MAP_RICsubscriptionModificationResponse_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_RICsubscriptionModificationResponse = { + "RICsubscriptionModificationResponse", + "RICsubscriptionModificationResponse", + &asn_OP_SEQUENCE, + asn_DEF_RICsubscriptionModificationResponse_tags_1, + sizeof(asn_DEF_RICsubscriptionModificationResponse_tags_1) + /sizeof(asn_DEF_RICsubscriptionModificationResponse_tags_1[0]), /* 1 */ + asn_DEF_RICsubscriptionModificationResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionModificationResponse_tags_1) + /sizeof(asn_DEF_RICsubscriptionModificationResponse_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICsubscriptionModificationResponse_1, + 1, /* Elements count */ + &asn_SPC_RICsubscriptionModificationResponse_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICsubscriptionModificationResponse.h b/e2sim/asn1c/RICsubscriptionModificationResponse.h new file mode 100644 index 0000000..68cadfe --- /dev/null +++ b/e2sim/asn1c/RICsubscriptionModificationResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICsubscriptionModificationResponse_H_ +#define _RICsubscriptionModificationResponse_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICsubscriptionModificationResponse */ +typedef struct RICsubscriptionModificationResponse { + ProtocolIE_Container_85P8_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICsubscriptionModificationResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionModificationResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionModificationResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionModificationResponse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICsubscriptionModificationResponse_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICsubscriptionRequest.c b/e2sim/asn1c/RICsubscriptionRequest.c new file mode 100644 index 0000000..8814128 --- /dev/null +++ b/e2sim/asn1c/RICsubscriptionRequest.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICsubscriptionRequest.h" + +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_Container_85P0, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscriptionRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_specs_1 = { + sizeof(struct RICsubscriptionRequest), + offsetof(struct RICsubscriptionRequest, _asn_ctx), + asn_MAP_RICsubscriptionRequest_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_RICsubscriptionRequest = { + "RICsubscriptionRequest", + "RICsubscriptionRequest", + &asn_OP_SEQUENCE, + asn_DEF_RICsubscriptionRequest_tags_1, + sizeof(asn_DEF_RICsubscriptionRequest_tags_1) + /sizeof(asn_DEF_RICsubscriptionRequest_tags_1[0]), /* 1 */ + asn_DEF_RICsubscriptionRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionRequest_tags_1) + /sizeof(asn_DEF_RICsubscriptionRequest_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICsubscriptionRequest_1, + 1, /* Elements count */ + &asn_SPC_RICsubscriptionRequest_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICsubscriptionRequest.h b/e2sim/asn1c/RICsubscriptionRequest.h new file mode 100644 index 0000000..4f7c9ae --- /dev/null +++ b/e2sim/asn1c/RICsubscriptionRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICsubscriptionRequest_H_ +#define _RICsubscriptionRequest_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICsubscriptionRequest */ +typedef struct RICsubscriptionRequest { + ProtocolIE_Container_85P0_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICsubscriptionRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICsubscriptionRequest_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICsubscriptionResponse.c b/e2sim/asn1c/RICsubscriptionResponse.c new file mode 100644 index 0000000..7b3aa4f --- /dev/null +++ b/e2sim/asn1c/RICsubscriptionResponse.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICsubscriptionResponse.h" + +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_Container_85P1, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscriptionResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_specs_1 = { + sizeof(struct RICsubscriptionResponse), + offsetof(struct RICsubscriptionResponse, _asn_ctx), + asn_MAP_RICsubscriptionResponse_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_RICsubscriptionResponse = { + "RICsubscriptionResponse", + "RICsubscriptionResponse", + &asn_OP_SEQUENCE, + asn_DEF_RICsubscriptionResponse_tags_1, + sizeof(asn_DEF_RICsubscriptionResponse_tags_1) + /sizeof(asn_DEF_RICsubscriptionResponse_tags_1[0]), /* 1 */ + asn_DEF_RICsubscriptionResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionResponse_tags_1) + /sizeof(asn_DEF_RICsubscriptionResponse_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICsubscriptionResponse_1, + 1, /* Elements count */ + &asn_SPC_RICsubscriptionResponse_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICsubscriptionResponse.h b/e2sim/asn1c/RICsubscriptionResponse.h new file mode 100644 index 0000000..94deb29 --- /dev/null +++ b/e2sim/asn1c/RICsubscriptionResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICsubscriptionResponse_H_ +#define _RICsubscriptionResponse_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICsubscriptionResponse */ +typedef struct RICsubscriptionResponse { + ProtocolIE_Container_85P1_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICsubscriptionResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICsubscriptionResponse_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICsubscriptionTime.c b/e2sim/asn1c/RICsubscriptionTime.c new file mode 100644 index 0000000..99f33f6 --- /dev/null +++ b/e2sim/asn1c/RICsubscriptionTime.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICsubscriptionTime.h" + +int +RICsubscriptionTime_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; + + 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 == 8UL)) { + /* 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 OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RICsubscriptionTime_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_RICsubscriptionTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RICsubscriptionTime = { + "RICsubscriptionTime", + "RICsubscriptionTime", + &asn_OP_OCTET_STRING, + asn_DEF_RICsubscriptionTime_tags_1, + sizeof(asn_DEF_RICsubscriptionTime_tags_1) + /sizeof(asn_DEF_RICsubscriptionTime_tags_1[0]), /* 1 */ + asn_DEF_RICsubscriptionTime_tags_1, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionTime_tags_1) + /sizeof(asn_DEF_RICsubscriptionTime_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RICsubscriptionTime_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + RICsubscriptionTime_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICsubscriptionTime.h b/e2sim/asn1c/RICsubscriptionTime.h new file mode 100644 index 0000000..8d4cdbf --- /dev/null +++ b/e2sim/asn1c/RICsubscriptionTime.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICsubscriptionTime_H_ +#define _RICsubscriptionTime_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICsubscriptionTime */ +typedef OCTET_STRING_t RICsubscriptionTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RICsubscriptionTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionTime; +asn_struct_free_f RICsubscriptionTime_free; +asn_struct_print_f RICsubscriptionTime_print; +asn_constr_check_f RICsubscriptionTime_constraint; +ber_type_decoder_f RICsubscriptionTime_decode_ber; +der_type_encoder_f RICsubscriptionTime_encode_der; +xer_type_decoder_f RICsubscriptionTime_decode_xer; +xer_type_encoder_f RICsubscriptionTime_encode_xer; +jer_type_encoder_f RICsubscriptionTime_encode_jer; +per_type_decoder_f RICsubscriptionTime_decode_uper; +per_type_encoder_f RICsubscriptionTime_encode_uper; +per_type_decoder_f RICsubscriptionTime_decode_aper; +per_type_encoder_f RICsubscriptionTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICsubscriptionTime_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICsubsequentAction.c b/e2sim/asn1c/RICsubsequentAction.c new file mode 100644 index 0000000..a9bcda0 --- /dev/null +++ b/e2sim/asn1c/RICsubsequentAction.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICsubsequentAction.h" + +asn_TYPE_member_t asn_MBR_RICsubsequentAction_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubsequentAction, ricSubsequentActionType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICsubsequentActionType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricSubsequentActionType" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubsequentAction, ricTimeToWait), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICtimeToWait, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ricTimeToWait" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubsequentAction_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubsequentAction_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricSubsequentActionType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricTimeToWait */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICsubsequentAction_specs_1 = { + sizeof(struct RICsubsequentAction), + offsetof(struct RICsubsequentAction, _asn_ctx), + asn_MAP_RICsubsequentAction_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_RICsubsequentAction = { + "RICsubsequentAction", + "RICsubsequentAction", + &asn_OP_SEQUENCE, + asn_DEF_RICsubsequentAction_tags_1, + sizeof(asn_DEF_RICsubsequentAction_tags_1) + /sizeof(asn_DEF_RICsubsequentAction_tags_1[0]), /* 1 */ + asn_DEF_RICsubsequentAction_tags_1, /* Same as above */ + sizeof(asn_DEF_RICsubsequentAction_tags_1) + /sizeof(asn_DEF_RICsubsequentAction_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RICsubsequentAction_1, + 2, /* Elements count */ + &asn_SPC_RICsubsequentAction_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICsubsequentAction.h b/e2sim/asn1c/RICsubsequentAction.h new file mode 100644 index 0000000..3968ab6 --- /dev/null +++ b/e2sim/asn1c/RICsubsequentAction.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICsubsequentAction_H_ +#define _RICsubsequentAction_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RICsubsequentActionType.h" +#include "RICtimeToWait.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICsubsequentAction */ +typedef struct RICsubsequentAction { + RICsubsequentActionType_t ricSubsequentActionType; + RICtimeToWait_t ricTimeToWait; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICsubsequentAction_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICsubsequentAction; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubsequentAction_specs_1; +extern asn_TYPE_member_t asn_MBR_RICsubsequentAction_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICsubsequentAction_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICsubsequentActionType.c b/e2sim/asn1c/RICsubsequentActionType.c new file mode 100644 index 0000000..95cdb53 --- /dev/null +++ b/e2sim/asn1c/RICsubsequentActionType.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICsubsequentActionType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RICsubsequentActionType_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_RICsubsequentActionType_value2enum_1[] = { + { 0, 8, "continue" }, + { 1, 4, "wait" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RICsubsequentActionType_enum2value_1[] = { + 0, /* continue(0) */ + 1 /* wait(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_RICsubsequentActionType_specs_1 = { + asn_MAP_RICsubsequentActionType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RICsubsequentActionType_enum2value_1, /* 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_RICsubsequentActionType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RICsubsequentActionType = { + "RICsubsequentActionType", + "RICsubsequentActionType", + &asn_OP_NativeEnumerated, + asn_DEF_RICsubsequentActionType_tags_1, + sizeof(asn_DEF_RICsubsequentActionType_tags_1) + /sizeof(asn_DEF_RICsubsequentActionType_tags_1[0]), /* 1 */ + asn_DEF_RICsubsequentActionType_tags_1, /* Same as above */ + sizeof(asn_DEF_RICsubsequentActionType_tags_1) + /sizeof(asn_DEF_RICsubsequentActionType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RICsubsequentActionType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RICsubsequentActionType_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICsubsequentActionType.h b/e2sim/asn1c/RICsubsequentActionType.h new file mode 100644 index 0000000..cd668c9 --- /dev/null +++ b/e2sim/asn1c/RICsubsequentActionType.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICsubsequentActionType_H_ +#define _RICsubsequentActionType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RICsubsequentActionType { + RICsubsequentActionType_continue = 0, + RICsubsequentActionType_wait = 1 + /* + * Enumeration is extensible + */ +} e_RICsubsequentActionType; + +/* RICsubsequentActionType */ +typedef long RICsubsequentActionType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RICsubsequentActionType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RICsubsequentActionType; +extern const asn_INTEGER_specifics_t asn_SPC_RICsubsequentActionType_specs_1; +asn_struct_free_f RICsubsequentActionType_free; +asn_struct_print_f RICsubsequentActionType_print; +asn_constr_check_f RICsubsequentActionType_constraint; +ber_type_decoder_f RICsubsequentActionType_decode_ber; +der_type_encoder_f RICsubsequentActionType_encode_der; +xer_type_decoder_f RICsubsequentActionType_decode_xer; +xer_type_encoder_f RICsubsequentActionType_encode_xer; +jer_type_encoder_f RICsubsequentActionType_encode_jer; +per_type_decoder_f RICsubsequentActionType_decode_uper; +per_type_encoder_f RICsubsequentActionType_encode_uper; +per_type_decoder_f RICsubsequentActionType_decode_aper; +per_type_encoder_f RICsubsequentActionType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICsubsequentActionType_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RICtimeToWait.c b/e2sim/asn1c/RICtimeToWait.c new file mode 100644 index 0000000..bc5d07b --- /dev/null +++ b/e2sim/asn1c/RICtimeToWait.c @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RICtimeToWait.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RICtimeToWait_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 16 } /* (0..16,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_RICtimeToWait_value2enum_1[] = { + { 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[] = { + 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 */ + 17, /* Number of elements in the maps */ + 18, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RICtimeToWait_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RICtimeToWait = { + "RICtimeToWait", + "RICtimeToWait", + &asn_OP_NativeEnumerated, + asn_DEF_RICtimeToWait_tags_1, + sizeof(asn_DEF_RICtimeToWait_tags_1) + /sizeof(asn_DEF_RICtimeToWait_tags_1[0]), /* 1 */ + asn_DEF_RICtimeToWait_tags_1, /* Same as above */ + sizeof(asn_DEF_RICtimeToWait_tags_1) + /sizeof(asn_DEF_RICtimeToWait_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RICtimeToWait_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RICtimeToWait_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RICtimeToWait.h b/e2sim/asn1c/RICtimeToWait.h new file mode 100644 index 0000000..566badf --- /dev/null +++ b/e2sim/asn1c/RICtimeToWait.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RICtimeToWait_H_ +#define _RICtimeToWait_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RICtimeToWait { + 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 + */ +} e_RICtimeToWait; + +/* RICtimeToWait */ +typedef long RICtimeToWait_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RICtimeToWait_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RICtimeToWait; +extern const asn_INTEGER_specifics_t asn_SPC_RICtimeToWait_specs_1; +asn_struct_free_f RICtimeToWait_free; +asn_struct_print_f RICtimeToWait_print; +asn_constr_check_f RICtimeToWait_constraint; +ber_type_decoder_f RICtimeToWait_decode_ber; +der_type_encoder_f RICtimeToWait_encode_der; +xer_type_decoder_f RICtimeToWait_decode_xer; +xer_type_encoder_f RICtimeToWait_encode_xer; +jer_type_encoder_f RICtimeToWait_encode_jer; +per_type_decoder_f RICtimeToWait_decode_uper; +per_type_encoder_f RICtimeToWait_encode_uper; +per_type_decoder_f RICtimeToWait_decode_aper; +per_type_encoder_f RICtimeToWait_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICtimeToWait_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RRC-MessageID.c b/e2sim/asn1c/RRC-MessageID.c new file mode 100644 index 0000000..f4f8def --- /dev/null +++ b/e2sim/asn1c/RRC-MessageID.c @@ -0,0 +1,164 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RRC-MessageID.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_rrcType_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_rrcType_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRC_MessageID__rrcType, choice.lTE), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCclass_LTE, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lTE" + }, + { ATF_NOFLAGS, 0, offsetof(struct RRC_MessageID__rrcType, choice.nR), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCclass_NR, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "nR" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_rrcType_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lTE */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nR */ +}; +static asn_CHOICE_specifics_t asn_SPC_rrcType_specs_2 = { + sizeof(struct RRC_MessageID__rrcType), + offsetof(struct RRC_MessageID__rrcType, _asn_ctx), + offsetof(struct RRC_MessageID__rrcType, present), + sizeof(((struct RRC_MessageID__rrcType *)0)->present), + asn_MAP_rrcType_tag2el_2, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_rrcType_2 = { + "rrcType", + "rrcType", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_rrcType_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_rrcType_2, + 2, /* Elements count */ + &asn_SPC_rrcType_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_RRC_MessageID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRC_MessageID, rrcType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_rrcType_2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rrcType" + }, + { ATF_NOFLAGS, 0, offsetof(struct RRC_MessageID, messageID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "messageID" + }, +}; +static const ber_tlv_tag_t asn_DEF_RRC_MessageID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RRC_MessageID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrcType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* messageID */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_RRC_MessageID_specs_1 = { + sizeof(struct RRC_MessageID), + offsetof(struct RRC_MessageID, _asn_ctx), + asn_MAP_RRC_MessageID_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_RRC_MessageID = { + "RRC-MessageID", + "RRC-MessageID", + &asn_OP_SEQUENCE, + asn_DEF_RRC_MessageID_tags_1, + sizeof(asn_DEF_RRC_MessageID_tags_1) + /sizeof(asn_DEF_RRC_MessageID_tags_1[0]), /* 1 */ + asn_DEF_RRC_MessageID_tags_1, /* Same as above */ + sizeof(asn_DEF_RRC_MessageID_tags_1) + /sizeof(asn_DEF_RRC_MessageID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RRC_MessageID_1, + 2, /* Elements count */ + &asn_SPC_RRC_MessageID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RRC-MessageID.h b/e2sim/asn1c/RRC-MessageID.h new file mode 100644 index 0000000..ee68714 --- /dev/null +++ b/e2sim/asn1c/RRC-MessageID.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RRC_MessageID_H_ +#define _RRC_MessageID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" +#include "RRCclass-LTE.h" +#include "RRCclass-NR.h" +#include "constr_CHOICE.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RRC_MessageID__rrcType_PR { + RRC_MessageID__rrcType_PR_NOTHING, /* No components present */ + RRC_MessageID__rrcType_PR_lTE, + RRC_MessageID__rrcType_PR_nR + /* Extensions may appear below */ + +} RRC_MessageID__rrcType_PR; + +/* RRC-MessageID */ +typedef struct RRC_MessageID { + struct RRC_MessageID__rrcType { + RRC_MessageID__rrcType_PR present; + union RRC_MessageID__rrcType_u { + RRCclass_LTE_t lTE; + RRCclass_NR_t nR; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } rrcType; + long messageID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RRC_MessageID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRC_MessageID; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRC_MessageID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RRCclass-LTE.c b/e2sim/asn1c/RRCclass-LTE.c new file mode 100644 index 0000000..c71940d --- /dev/null +++ b/e2sim/asn1c/RRCclass-LTE.c @@ -0,0 +1,85 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RRCclass-LTE.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RRCclass_LTE_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 11 } /* (0..11,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_RRCclass_LTE_value2enum_1[] = { + { 0, 8, "bCCH-BCH" }, + { 1, 13, "bCCH-BCH-MBMS" }, + { 2, 11, "bCCH-DL-SCH" }, + { 3, 14, "bCCH-DL-SCH-BR" }, + { 4, 16, "bCCH-DL-SCH-MBMS" }, + { 5, 4, "mCCH" }, + { 6, 4, "pCCH" }, + { 7, 7, "dL-CCCH" }, + { 8, 7, "dL-DCCH" }, + { 9, 7, "uL-CCCH" }, + { 10, 7, "uL-DCCH" }, + { 11, 7, "sC-MCCH" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RRCclass_LTE_enum2value_1[] = { + 0, /* bCCH-BCH(0) */ + 1, /* bCCH-BCH-MBMS(1) */ + 2, /* bCCH-DL-SCH(2) */ + 3, /* bCCH-DL-SCH-BR(3) */ + 4, /* bCCH-DL-SCH-MBMS(4) */ + 7, /* dL-CCCH(7) */ + 8, /* dL-DCCH(8) */ + 5, /* mCCH(5) */ + 6, /* pCCH(6) */ + 11, /* sC-MCCH(11) */ + 9, /* uL-CCCH(9) */ + 10 /* uL-DCCH(10) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_RRCclass_LTE_specs_1 = { + asn_MAP_RRCclass_LTE_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RRCclass_LTE_enum2value_1, /* N => "tag"; sorted by N */ + 12, /* Number of elements in the maps */ + 13, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RRCclass_LTE_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RRCclass_LTE = { + "RRCclass-LTE", + "RRCclass-LTE", + &asn_OP_NativeEnumerated, + asn_DEF_RRCclass_LTE_tags_1, + sizeof(asn_DEF_RRCclass_LTE_tags_1) + /sizeof(asn_DEF_RRCclass_LTE_tags_1[0]), /* 1 */ + asn_DEF_RRCclass_LTE_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCclass_LTE_tags_1) + /sizeof(asn_DEF_RRCclass_LTE_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RRCclass_LTE_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RRCclass_LTE_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RRCclass-LTE.h b/e2sim/asn1c/RRCclass-LTE.h new file mode 100644 index 0000000..509c015 --- /dev/null +++ b/e2sim/asn1c/RRCclass-LTE.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RRCclass_LTE_H_ +#define _RRCclass_LTE_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RRCclass_LTE { + RRCclass_LTE_bCCH_BCH = 0, + RRCclass_LTE_bCCH_BCH_MBMS = 1, + RRCclass_LTE_bCCH_DL_SCH = 2, + RRCclass_LTE_bCCH_DL_SCH_BR = 3, + RRCclass_LTE_bCCH_DL_SCH_MBMS = 4, + RRCclass_LTE_mCCH = 5, + RRCclass_LTE_pCCH = 6, + RRCclass_LTE_dL_CCCH = 7, + RRCclass_LTE_dL_DCCH = 8, + RRCclass_LTE_uL_CCCH = 9, + RRCclass_LTE_uL_DCCH = 10, + RRCclass_LTE_sC_MCCH = 11 + /* + * Enumeration is extensible + */ +} e_RRCclass_LTE; + +/* RRCclass-LTE */ +typedef long RRCclass_LTE_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RRCclass_LTE_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RRCclass_LTE; +extern const asn_INTEGER_specifics_t asn_SPC_RRCclass_LTE_specs_1; +asn_struct_free_f RRCclass_LTE_free; +asn_struct_print_f RRCclass_LTE_print; +asn_constr_check_f RRCclass_LTE_constraint; +ber_type_decoder_f RRCclass_LTE_decode_ber; +der_type_encoder_f RRCclass_LTE_encode_der; +xer_type_decoder_f RRCclass_LTE_decode_xer; +xer_type_encoder_f RRCclass_LTE_encode_xer; +jer_type_encoder_f RRCclass_LTE_encode_jer; +per_type_decoder_f RRCclass_LTE_decode_uper; +per_type_encoder_f RRCclass_LTE_encode_uper; +per_type_decoder_f RRCclass_LTE_decode_aper; +per_type_encoder_f RRCclass_LTE_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCclass_LTE_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/RRCclass-NR.c b/e2sim/asn1c/RRCclass-NR.c new file mode 100644 index 0000000..090cecb --- /dev/null +++ b/e2sim/asn1c/RRCclass-NR.c @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "RRCclass-NR.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RRCclass_NR_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_RRCclass_NR_value2enum_1[] = { + { 0, 8, "bCCH-BCH" }, + { 1, 11, "bCCH-DL-SCH" }, + { 2, 7, "dL-CCCH" }, + { 3, 7, "dL-DCCH" }, + { 4, 4, "pCCH" }, + { 5, 7, "uL-CCCH" }, + { 6, 8, "uL-CCCH1" }, + { 7, 7, "uL-DCCH" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RRCclass_NR_enum2value_1[] = { + 0, /* bCCH-BCH(0) */ + 1, /* bCCH-DL-SCH(1) */ + 2, /* dL-CCCH(2) */ + 3, /* dL-DCCH(3) */ + 4, /* pCCH(4) */ + 5, /* uL-CCCH(5) */ + 6, /* uL-CCCH1(6) */ + 7 /* uL-DCCH(7) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_RRCclass_NR_specs_1 = { + asn_MAP_RRCclass_NR_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RRCclass_NR_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 9, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RRCclass_NR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RRCclass_NR = { + "RRCclass-NR", + "RRCclass-NR", + &asn_OP_NativeEnumerated, + asn_DEF_RRCclass_NR_tags_1, + sizeof(asn_DEF_RRCclass_NR_tags_1) + /sizeof(asn_DEF_RRCclass_NR_tags_1[0]), /* 1 */ + asn_DEF_RRCclass_NR_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCclass_NR_tags_1) + /sizeof(asn_DEF_RRCclass_NR_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RRCclass_NR_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RRCclass_NR_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/RRCclass-NR.h b/e2sim/asn1c/RRCclass-NR.h new file mode 100644 index 0000000..0189b97 --- /dev/null +++ b/e2sim/asn1c/RRCclass-NR.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _RRCclass_NR_H_ +#define _RRCclass_NR_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RRCclass_NR { + RRCclass_NR_bCCH_BCH = 0, + RRCclass_NR_bCCH_DL_SCH = 1, + RRCclass_NR_dL_CCCH = 2, + RRCclass_NR_dL_DCCH = 3, + RRCclass_NR_pCCH = 4, + RRCclass_NR_uL_CCCH = 5, + RRCclass_NR_uL_CCCH1 = 6, + RRCclass_NR_uL_DCCH = 7 + /* + * Enumeration is extensible + */ +} e_RRCclass_NR; + +/* RRCclass-NR */ +typedef long RRCclass_NR_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RRCclass_NR_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RRCclass_NR; +extern const asn_INTEGER_specifics_t asn_SPC_RRCclass_NR_specs_1; +asn_struct_free_f RRCclass_NR_free; +asn_struct_print_f RRCclass_NR_print; +asn_constr_check_f RRCclass_NR_constraint; +ber_type_decoder_f RRCclass_NR_decode_ber; +der_type_encoder_f RRCclass_NR_encode_der; +xer_type_decoder_f RRCclass_NR_decode_xer; +xer_type_encoder_f RRCclass_NR_encode_xer; +jer_type_encoder_f RRCclass_NR_encode_jer; +per_type_decoder_f RRCclass_NR_decode_uper; +per_type_encoder_f RRCclass_NR_encode_uper; +per_type_decoder_f RRCclass_NR_decode_aper; +per_type_encoder_f RRCclass_NR_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCclass_NR_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/ResetRequest.c b/e2sim/asn1c/ResetRequest.c new file mode 100644 index 0000000..22b9ee0 --- /dev/null +++ b/e2sim/asn1c/ResetRequest.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "ResetRequest.h" + +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_Container_85P30, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ResetRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ResetRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ResetRequest_specs_1 = { + sizeof(struct ResetRequest), + offsetof(struct ResetRequest, _asn_ctx), + asn_MAP_ResetRequest_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_ResetRequest = { + "ResetRequest", + "ResetRequest", + &asn_OP_SEQUENCE, + asn_DEF_ResetRequest_tags_1, + sizeof(asn_DEF_ResetRequest_tags_1) + /sizeof(asn_DEF_ResetRequest_tags_1[0]), /* 1 */ + asn_DEF_ResetRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ResetRequest_tags_1) + /sizeof(asn_DEF_ResetRequest_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_ResetRequest_1, + 1, /* Elements count */ + &asn_SPC_ResetRequest_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/ResetRequest.h b/e2sim/asn1c/ResetRequest.h new file mode 100644 index 0000000..effaeff --- /dev/null +++ b/e2sim/asn1c/ResetRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _ResetRequest_H_ +#define _ResetRequest_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ResetRequest */ +typedef struct ResetRequest { + ProtocolIE_Container_85P30_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ResetRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ResetRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_ResetRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_ResetRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ResetRequest_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/ResetResponse.c b/e2sim/asn1c/ResetResponse.c new file mode 100644 index 0000000..148db43 --- /dev/null +++ b/e2sim/asn1c/ResetResponse.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "ResetResponse.h" + +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_Container_85P31, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ResetResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ResetResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ResetResponse_specs_1 = { + sizeof(struct ResetResponse), + offsetof(struct ResetResponse, _asn_ctx), + asn_MAP_ResetResponse_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_ResetResponse = { + "ResetResponse", + "ResetResponse", + &asn_OP_SEQUENCE, + asn_DEF_ResetResponse_tags_1, + sizeof(asn_DEF_ResetResponse_tags_1) + /sizeof(asn_DEF_ResetResponse_tags_1[0]), /* 1 */ + asn_DEF_ResetResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_ResetResponse_tags_1) + /sizeof(asn_DEF_ResetResponse_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_ResetResponse_1, + 1, /* Elements count */ + &asn_SPC_ResetResponse_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/ResetResponse.h b/e2sim/asn1c/ResetResponse.h new file mode 100644 index 0000000..f651d0e --- /dev/null +++ b/e2sim/asn1c/ResetResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-pdu-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _ResetResponse_H_ +#define _ResetResponse_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ResetResponse */ +typedef struct ResetResponse { + ProtocolIE_Container_85P31_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ResetResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ResetResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_ResetResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_ResetResponse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ResetResponse_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/S-NSSAI.c b/e2sim/asn1c/S-NSSAI.c new file mode 100644 index 0000000..0a1d1b0 --- /dev/null +++ b/e2sim/asn1c/S-NSSAI.c @@ -0,0 +1,86 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "S-NSSAI.h" + +asn_TYPE_member_t asn_MBR_S_NSSAI_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct S_NSSAI, sST), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SST, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sST" + }, + { ATF_POINTER, 1, offsetof(struct S_NSSAI, sD), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SD, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sD" + }, +}; +static const int asn_MAP_S_NSSAI_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_S_NSSAI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_S_NSSAI_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sST */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sD */ +}; +asn_SEQUENCE_specifics_t asn_SPC_S_NSSAI_specs_1 = { + sizeof(struct S_NSSAI), + offsetof(struct S_NSSAI, _asn_ctx), + asn_MAP_S_NSSAI_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_S_NSSAI_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_S_NSSAI = { + "S-NSSAI", + "S-NSSAI", + &asn_OP_SEQUENCE, + asn_DEF_S_NSSAI_tags_1, + sizeof(asn_DEF_S_NSSAI_tags_1) + /sizeof(asn_DEF_S_NSSAI_tags_1[0]), /* 1 */ + asn_DEF_S_NSSAI_tags_1, /* Same as above */ + sizeof(asn_DEF_S_NSSAI_tags_1) + /sizeof(asn_DEF_S_NSSAI_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_S_NSSAI_1, + 2, /* Elements count */ + &asn_SPC_S_NSSAI_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/S-NSSAI.h b/e2sim/asn1c/S-NSSAI.h new file mode 100644 index 0000000..ef4df9a --- /dev/null +++ b/e2sim/asn1c/S-NSSAI.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _S_NSSAI_H_ +#define _S_NSSAI_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "SST.h" +#include "SD.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* S-NSSAI */ +typedef struct S_NSSAI { + SST_t sST; + SD_t *sD; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} S_NSSAI_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_S_NSSAI; +extern asn_SEQUENCE_specifics_t asn_SPC_S_NSSAI_specs_1; +extern asn_TYPE_member_t asn_MBR_S_NSSAI_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _S_NSSAI_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/SD.c b/e2sim/asn1c/SD.c new file mode 100644 index 0000000..42fbbdd --- /dev/null +++ b/e2sim/asn1c/SD.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "SD.h" + +int +SD_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; + + 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 == 3UL)) { + /* 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 OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SD_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_SD_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SD = { + "SD", + "SD", + &asn_OP_OCTET_STRING, + asn_DEF_SD_tags_1, + sizeof(asn_DEF_SD_tags_1) + /sizeof(asn_DEF_SD_tags_1[0]), /* 1 */ + asn_DEF_SD_tags_1, /* Same as above */ + sizeof(asn_DEF_SD_tags_1) + /sizeof(asn_DEF_SD_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SD_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SD_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/e2sim/asn1c/SD.h b/e2sim/asn1c/SD.h new file mode 100644 index 0000000..890cad1 --- /dev/null +++ b/e2sim/asn1c/SD.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _SD_H_ +#define _SD_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* SD */ +typedef OCTET_STRING_t SD_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SD_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SD; +asn_struct_free_f SD_free; +asn_struct_print_f SD_print; +asn_constr_check_f SD_constraint; +ber_type_decoder_f SD_decode_ber; +der_type_encoder_f SD_encode_der; +xer_type_decoder_f SD_decode_xer; +xer_type_encoder_f SD_encode_xer; +jer_type_encoder_f SD_encode_jer; +per_type_decoder_f SD_decode_uper; +per_type_encoder_f SD_encode_uper; +per_type_decoder_f SD_decode_aper; +per_type_encoder_f SD_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SD_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/SST.c b/e2sim/asn1c/SST.c new file mode 100644 index 0000000..c332819 --- /dev/null +++ b/e2sim/asn1c/SST.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "SST.h" + +int +SST_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; + + 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 == 1UL)) { + /* 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 OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SST_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 1, 1 } /* (SIZE(1..1)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_SST_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SST = { + "SST", + "SST", + &asn_OP_OCTET_STRING, + asn_DEF_SST_tags_1, + sizeof(asn_DEF_SST_tags_1) + /sizeof(asn_DEF_SST_tags_1[0]), /* 1 */ + asn_DEF_SST_tags_1, /* Same as above */ + sizeof(asn_DEF_SST_tags_1) + /sizeof(asn_DEF_SST_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SST_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SST_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/e2sim/asn1c/SST.h b/e2sim/asn1c/SST.h new file mode 100644 index 0000000..4aae722 --- /dev/null +++ b/e2sim/asn1c/SST.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _SST_H_ +#define _SST_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* SST */ +typedef OCTET_STRING_t SST_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SST_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SST; +asn_struct_free_f SST_free; +asn_struct_print_f SST_print; +asn_constr_check_f SST_constraint; +ber_type_decoder_f SST_decode_ber; +der_type_encoder_f SST_encode_der; +xer_type_decoder_f SST_decode_xer; +xer_type_encoder_f SST_encode_xer; +jer_type_encoder_f SST_encode_jer; +per_type_decoder_f SST_decode_uper; +per_type_encoder_f SST_encode_uper; +per_type_decoder_f SST_decode_aper; +per_type_encoder_f SST_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SST_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/ServingCell-ARFCN.c b/e2sim/asn1c/ServingCell-ARFCN.c new file mode 100644 index 0000000..a8deec8 --- /dev/null +++ b/e2sim/asn1c/ServingCell-ARFCN.c @@ -0,0 +1,89 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "ServingCell-ARFCN.h" + +#include "NR-ARFCN.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ServingCell_ARFCN_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_ServingCell_ARFCN_1[] = { + { ATF_POINTER, 0, offsetof(struct ServingCell_ARFCN, choice.nR), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NR_ARFCN, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "nR" + }, + { ATF_NOFLAGS, 0, offsetof(struct ServingCell_ARFCN, choice.eUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E_UTRA_ARFCN, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "eUTRA" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ServingCell_ARFCN_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nR */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* eUTRA */ +}; +static asn_CHOICE_specifics_t asn_SPC_ServingCell_ARFCN_specs_1 = { + sizeof(struct ServingCell_ARFCN), + offsetof(struct ServingCell_ARFCN, _asn_ctx), + offsetof(struct ServingCell_ARFCN, present), + sizeof(((struct ServingCell_ARFCN *)0)->present), + asn_MAP_ServingCell_ARFCN_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ServingCell_ARFCN = { + "ServingCell-ARFCN", + "ServingCell-ARFCN", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ServingCell_ARFCN_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_ServingCell_ARFCN_1, + 2, /* Elements count */ + &asn_SPC_ServingCell_ARFCN_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/ServingCell-ARFCN.h b/e2sim/asn1c/ServingCell-ARFCN.h new file mode 100644 index 0000000..252e501 --- /dev/null +++ b/e2sim/asn1c/ServingCell-ARFCN.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _ServingCell_ARFCN_H_ +#define _ServingCell_ARFCN_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "E-UTRA-ARFCN.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ServingCell_ARFCN_PR { + ServingCell_ARFCN_PR_NOTHING, /* No components present */ + ServingCell_ARFCN_PR_nR, + ServingCell_ARFCN_PR_eUTRA + /* Extensions may appear below */ + +} ServingCell_ARFCN_PR; + +/* Forward declarations */ +struct NR_ARFCN; + +/* ServingCell-ARFCN */ +typedef struct ServingCell_ARFCN { + ServingCell_ARFCN_PR present; + union ServingCell_ARFCN_u { + struct NR_ARFCN *nR; + E_UTRA_ARFCN_t eUTRA; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ServingCell_ARFCN_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ServingCell_ARFCN; + +#ifdef __cplusplus +} +#endif + +#endif /* _ServingCell_ARFCN_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/ServingCell-PCI.c b/e2sim/asn1c/ServingCell-PCI.c new file mode 100644 index 0000000..a49fcd5 --- /dev/null +++ b/e2sim/asn1c/ServingCell-PCI.c @@ -0,0 +1,88 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "ServingCell-PCI.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ServingCell_PCI_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_ServingCell_PCI_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ServingCell_PCI, choice.nR), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NR_PCI, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "nR" + }, + { ATF_NOFLAGS, 0, offsetof(struct ServingCell_PCI, choice.eUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E_UTRA_PCI, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "eUTRA" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ServingCell_PCI_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nR */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* eUTRA */ +}; +static asn_CHOICE_specifics_t asn_SPC_ServingCell_PCI_specs_1 = { + sizeof(struct ServingCell_PCI), + offsetof(struct ServingCell_PCI, _asn_ctx), + offsetof(struct ServingCell_PCI, present), + sizeof(((struct ServingCell_PCI *)0)->present), + asn_MAP_ServingCell_PCI_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ServingCell_PCI = { + "ServingCell-PCI", + "ServingCell-PCI", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ServingCell_PCI_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_ServingCell_PCI_1, + 2, /* Elements count */ + &asn_SPC_ServingCell_PCI_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/ServingCell-PCI.h b/e2sim/asn1c/ServingCell-PCI.h new file mode 100644 index 0000000..d0b24c4 --- /dev/null +++ b/e2sim/asn1c/ServingCell-PCI.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _ServingCell_PCI_H_ +#define _ServingCell_PCI_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NR-PCI.h" +#include "E-UTRA-PCI.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ServingCell_PCI_PR { + ServingCell_PCI_PR_NOTHING, /* No components present */ + ServingCell_PCI_PR_nR, + ServingCell_PCI_PR_eUTRA + /* Extensions may appear below */ + +} ServingCell_PCI_PR; + +/* ServingCell-PCI */ +typedef struct ServingCell_PCI { + ServingCell_PCI_PR present; + union ServingCell_PCI_u { + NR_PCI_t nR; + E_UTRA_PCI_t eUTRA; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ServingCell_PCI_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ServingCell_PCI; + +#ifdef __cplusplus +} +#endif + +#endif /* _ServingCell_PCI_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/SubscriberProfileIDforRFP.c b/e2sim/asn1c/SubscriberProfileIDforRFP.c new file mode 100644 index 0000000..379f10b --- /dev/null +++ b/e2sim/asn1c/SubscriberProfileIDforRFP.c @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "SubscriberProfileIDforRFP.h" + +int +SubscriberProfileIDforRFP_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 >= 1L && value <= 256L)) { + /* 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. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_SubscriberProfileIDforRFP_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 1, 256 } /* (1..256) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_SubscriberProfileIDforRFP_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SubscriberProfileIDforRFP = { + "SubscriberProfileIDforRFP", + "SubscriberProfileIDforRFP", + &asn_OP_NativeInteger, + asn_DEF_SubscriberProfileIDforRFP_tags_1, + sizeof(asn_DEF_SubscriberProfileIDforRFP_tags_1) + /sizeof(asn_DEF_SubscriberProfileIDforRFP_tags_1[0]), /* 1 */ + asn_DEF_SubscriberProfileIDforRFP_tags_1, /* Same as above */ + sizeof(asn_DEF_SubscriberProfileIDforRFP_tags_1) + /sizeof(asn_DEF_SubscriberProfileIDforRFP_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SubscriberProfileIDforRFP_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SubscriberProfileIDforRFP_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/SubscriberProfileIDforRFP.h b/e2sim/asn1c/SubscriberProfileIDforRFP.h new file mode 100644 index 0000000..9a0c5cd --- /dev/null +++ b/e2sim/asn1c/SubscriberProfileIDforRFP.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _SubscriberProfileIDforRFP_H_ +#define _SubscriberProfileIDforRFP_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* SubscriberProfileIDforRFP */ +typedef long SubscriberProfileIDforRFP_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SubscriberProfileIDforRFP; +asn_struct_free_f SubscriberProfileIDforRFP_free; +asn_struct_print_f SubscriberProfileIDforRFP_print; +asn_constr_check_f SubscriberProfileIDforRFP_constraint; +ber_type_decoder_f SubscriberProfileIDforRFP_decode_ber; +der_type_encoder_f SubscriberProfileIDforRFP_encode_der; +xer_type_decoder_f SubscriberProfileIDforRFP_decode_xer; +xer_type_encoder_f SubscriberProfileIDforRFP_encode_xer; +jer_type_encoder_f SubscriberProfileIDforRFP_encode_jer; +per_type_decoder_f SubscriberProfileIDforRFP_decode_uper; +per_type_encoder_f SubscriberProfileIDforRFP_encode_uper; +per_type_decoder_f SubscriberProfileIDforRFP_decode_aper; +per_type_encoder_f SubscriberProfileIDforRFP_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SubscriberProfileIDforRFP_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/SuccessfulOutcome.c b/e2sim/asn1c/SuccessfulOutcome.c new file mode 100644 index 0000000..6b04791 --- /dev/null +++ b/e2sim/asn1c/SuccessfulOutcome.c @@ -0,0 +1,610 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Descriptions" + * found in "e2ap-epd-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "SuccessfulOutcome.h" + +static const long asn_VAL_1_id_RICsubscription = 8; +static const long asn_VAL_1_reject = 0; +static const long asn_VAL_2_id_RICsubscriptionDelete = 9; +static const long asn_VAL_2_reject = 0; +static const long asn_VAL_3_id_RICsubscriptionModification = 14; +static const long asn_VAL_3_reject = 0; +static const long asn_VAL_4_id_RICsubscriptionModificationRequired = 15; +static const long asn_VAL_4_reject = 0; +static const long asn_VAL_5_id_RICquery = 16; +static const long asn_VAL_5_reject = 0; +static const long asn_VAL_6_id_RICserviceUpdate = 7; +static const long asn_VAL_6_reject = 0; +static const long asn_VAL_7_id_RICcontrol = 4; +static const long asn_VAL_7_reject = 0; +static const long asn_VAL_8_id_E2setup = 1; +static const long asn_VAL_8_reject = 0; +static const long asn_VAL_9_id_E2nodeConfigurationUpdate = 10; +static const long asn_VAL_9_reject = 0; +static const long asn_VAL_10_id_E2connectionUpdate = 11; +static const long asn_VAL_10_reject = 0; +static const long asn_VAL_11_id_Reset = 3; +static const long asn_VAL_11_reject = 0; +static const long asn_VAL_12_id_E2removal = 13; +static const long asn_VAL_12_reject = 0; +static const long asn_VAL_13_id_RICindication = 5; +static const long asn_VAL_13_ignore = 1; +static const long asn_VAL_14_id_RICserviceQuery = 6; +static const long asn_VAL_14_ignore = 1; +static const long asn_VAL_15_id_ErrorIndication = 2; +static const long asn_VAL_15_ignore = 1; +static const long asn_VAL_16_id_RICsubscriptionDeleteRequired = 12; +static const long asn_VAL_16_ignore = 1; +static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { + { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_RICsubscription }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_RICsubscriptionDelete }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionModificationRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionModificationResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionModificationFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_RICsubscriptionModification }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionModificationRequired }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionModificationConfirm }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionModificationRefuse }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_RICsubscriptionModificationRequired }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICQueryRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICQueryResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICQueryFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_RICquery }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceUpdate }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateAcknowledge }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_RICserviceUpdate }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICcontrolRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolAcknowledge }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_RICcontrol }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_E2setupRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2setupResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2setupFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_E2setup }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_E2nodeConfigurationUpdate }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2nodeConfigurationUpdateAcknowledge }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2nodeConfigurationUpdateFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_E2nodeConfigurationUpdate }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_E2connectionUpdate }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2connectionUpdateAcknowledge }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2connectionUpdateFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_10_id_E2connectionUpdate }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ResetRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_11_id_Reset }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_E2RemovalRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2RemovalResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2RemovalFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_12_id_E2removal }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICindication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_13_id_RICindication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_13_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceQuery }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_14_id_RICserviceQuery }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_14_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_15_id_ErrorIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_15_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequired }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_16_id_RICsubscriptionDeleteRequired }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_16_ignore } +}; +static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { + { 16, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } +}; +static int +memb_procedureCode_constraint_1(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 >= 0L && value <= 255L)) { + /* 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_SuccessfulOutcome_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_E2AP_ELEMENTARY_PROCEDURES_1; + size_t constraining_column = 3; /* &procedureCode */ + size_t for_column = 4; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SuccessfulOutcome, procedureCode)); + + 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_1(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_SuccessfulOutcome_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_E2AP_ELEMENTARY_PROCEDURES_1; + size_t constraining_column = 3; /* &procedureCode */ + size_t for_column = 1; /* &SuccessfulOutcome */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SuccessfulOutcome, procedureCode)); + + 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_1(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); +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_value_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICsubscriptionResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscriptionResponse, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICsubscriptionResponse" + }, + { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICsubscriptionDeleteResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscriptionDeleteResponse, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICsubscriptionDeleteResponse" + }, + { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICsubscriptionModificationResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscriptionModificationResponse, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICsubscriptionModificationResponse" + }, + { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICsubscriptionModificationConfirm), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscriptionModificationConfirm, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICsubscriptionModificationConfirm" + }, + { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICQueryResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICQueryResponse, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICQueryResponse" + }, + { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICserviceUpdateAcknowledge), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICserviceUpdateAcknowledge, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICserviceUpdateAcknowledge" + }, + { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICcontrolAcknowledge), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICcontrolAcknowledge, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICcontrolAcknowledge" + }, + { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.E2setupResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2setupResponse, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "E2setupResponse" + }, + { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.E2nodeConfigurationUpdateAcknowledge), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeConfigurationUpdateAcknowledge, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "E2nodeConfigurationUpdateAcknowledge" + }, + { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.E2connectionUpdateAcknowledge), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2connectionUpdateAcknowledge, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "E2connectionUpdateAcknowledge" + }, + { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.ResetResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ResetResponse, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ResetResponse" + }, + { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.E2RemovalResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2RemovalResponse, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "E2RemovalResponse" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 11 }, /* RICsubscriptionResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 10 }, /* RICsubscriptionDeleteResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 9 }, /* RICsubscriptionModificationResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 8 }, /* RICsubscriptionModificationConfirm */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 7 }, /* RICQueryResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 6 }, /* RICserviceUpdateAcknowledge */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -6, 5 }, /* RICcontrolAcknowledge */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -7, 4 }, /* E2setupResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -8, 3 }, /* E2nodeConfigurationUpdateAcknowledge */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -9, 2 }, /* E2connectionUpdateAcknowledge */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 10, -10, 1 }, /* ResetResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 11, -11, 0 } /* E2RemovalResponse */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { + sizeof(struct SuccessfulOutcome__value), + offsetof(struct SuccessfulOutcome__value, _asn_ctx), + offsetof(struct SuccessfulOutcome__value, present), + sizeof(((struct SuccessfulOutcome__value *)0)->present), + asn_MAP_value_tag2el_4, + 12, /* 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) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_4, + 12, /* Elements count */ + &asn_SPC_value_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SuccessfulOutcome_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome, procedureCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProcedureCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_procedureCode_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_procedureCode_constraint_1 + }, + 0, 0, /* No default value */ + "procedureCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_SuccessfulOutcome_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_1 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_4, + select_SuccessfulOutcome_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_4, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_1 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_SuccessfulOutcome_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SuccessfulOutcome_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ + { (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_SuccessfulOutcome_specs_1 = { + sizeof(struct SuccessfulOutcome), + offsetof(struct SuccessfulOutcome, _asn_ctx), + asn_MAP_SuccessfulOutcome_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_SuccessfulOutcome = { + "SuccessfulOutcome", + "SuccessfulOutcome", + &asn_OP_SEQUENCE, + asn_DEF_SuccessfulOutcome_tags_1, + sizeof(asn_DEF_SuccessfulOutcome_tags_1) + /sizeof(asn_DEF_SuccessfulOutcome_tags_1[0]), /* 1 */ + asn_DEF_SuccessfulOutcome_tags_1, /* Same as above */ + sizeof(asn_DEF_SuccessfulOutcome_tags_1) + /sizeof(asn_DEF_SuccessfulOutcome_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_SuccessfulOutcome_1, + 3, /* Elements count */ + &asn_SPC_SuccessfulOutcome_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/SuccessfulOutcome.h b/e2sim/asn1c/SuccessfulOutcome.h new file mode 100644 index 0000000..c1676f2 --- /dev/null +++ b/e2sim/asn1c/SuccessfulOutcome.h @@ -0,0 +1,122 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Descriptions" + * found in "e2ap-epd-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _SuccessfulOutcome_H_ +#define _SuccessfulOutcome_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProcedureCode.h" +#include "Criticality.h" +#include "ANY.h" +#include "asn_ioc.h" +#include "RICsubscriptionRequest.h" +#include "RICsubscriptionResponse.h" +#include "RICsubscriptionFailure.h" +#include "RICsubscriptionDeleteRequest.h" +#include "RICsubscriptionDeleteResponse.h" +#include "RICsubscriptionDeleteFailure.h" +#include "RICsubscriptionModificationRequest.h" +#include "RICsubscriptionModificationResponse.h" +#include "RICsubscriptionModificationFailure.h" +#include "RICsubscriptionModificationRequired.h" +#include "RICsubscriptionModificationConfirm.h" +#include "RICsubscriptionModificationRefuse.h" +#include "RICQueryRequest.h" +#include "RICQueryResponse.h" +#include "RICQueryFailure.h" +#include "RICserviceUpdate.h" +#include "RICserviceUpdateAcknowledge.h" +#include "RICserviceUpdateFailure.h" +#include "RICcontrolRequest.h" +#include "RICcontrolAcknowledge.h" +#include "RICcontrolFailure.h" +#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 "E2RemovalRequest.h" +#include "E2RemovalResponse.h" +#include "E2RemovalFailure.h" +#include "RICindication.h" +#include "RICserviceQuery.h" +#include "ErrorIndication.h" +#include "RICsubscriptionDeleteRequired.h" +#include "OPEN_TYPE.h" +#include "constr_CHOICE.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SuccessfulOutcome__value_PR { + SuccessfulOutcome__value_PR_NOTHING, /* No components present */ + SuccessfulOutcome__value_PR_RICsubscriptionResponse, + SuccessfulOutcome__value_PR_RICsubscriptionDeleteResponse, + SuccessfulOutcome__value_PR_RICsubscriptionModificationResponse, + SuccessfulOutcome__value_PR_RICsubscriptionModificationConfirm, + SuccessfulOutcome__value_PR_RICQueryResponse, + SuccessfulOutcome__value_PR_RICserviceUpdateAcknowledge, + SuccessfulOutcome__value_PR_RICcontrolAcknowledge, + SuccessfulOutcome__value_PR_E2setupResponse, + SuccessfulOutcome__value_PR_E2nodeConfigurationUpdateAcknowledge, + SuccessfulOutcome__value_PR_E2connectionUpdateAcknowledge, + SuccessfulOutcome__value_PR_ResetResponse, + SuccessfulOutcome__value_PR_E2RemovalResponse +} SuccessfulOutcome__value_PR; + +/* SuccessfulOutcome */ +typedef struct SuccessfulOutcome { + ProcedureCode_t procedureCode; + Criticality_t criticality; + struct SuccessfulOutcome__value { + SuccessfulOutcome__value_PR present; + union SuccessfulOutcome__value_u { + RICsubscriptionResponse_t RICsubscriptionResponse; + RICsubscriptionDeleteResponse_t RICsubscriptionDeleteResponse; + RICsubscriptionModificationResponse_t RICsubscriptionModificationResponse; + RICsubscriptionModificationConfirm_t RICsubscriptionModificationConfirm; + RICQueryResponse_t RICQueryResponse; + RICserviceUpdateAcknowledge_t RICserviceUpdateAcknowledge; + RICcontrolAcknowledge_t RICcontrolAcknowledge; + E2setupResponse_t E2setupResponse; + E2nodeConfigurationUpdateAcknowledge_t E2nodeConfigurationUpdateAcknowledge; + E2connectionUpdateAcknowledge_t E2connectionUpdateAcknowledge; + ResetResponse_t ResetResponse; + E2RemovalResponse_t E2RemovalResponse; + } 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; +} SuccessfulOutcome_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SuccessfulOutcome; +extern asn_SEQUENCE_specifics_t asn_SPC_SuccessfulOutcome_specs_1; +extern asn_TYPE_member_t asn_MBR_SuccessfulOutcome_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SuccessfulOutcome_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/SupportedSULBandList.c b/e2sim/asn1c/SupportedSULBandList.c new file mode 100644 index 0000000..256524b --- /dev/null +++ b/e2sim/asn1c/SupportedSULBandList.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "SupportedSULBandList.h" + +#include "SupportedSULFreqBandItem.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SupportedSULBandList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 0, 32 } /* (SIZE(0..32)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_SupportedSULBandList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SupportedSULFreqBandItem, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SupportedSULBandList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SupportedSULBandList_specs_1 = { + sizeof(struct SupportedSULBandList), + offsetof(struct SupportedSULBandList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SupportedSULBandList = { + "SupportedSULBandList", + "SupportedSULBandList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SupportedSULBandList_tags_1, + sizeof(asn_DEF_SupportedSULBandList_tags_1) + /sizeof(asn_DEF_SupportedSULBandList_tags_1[0]), /* 1 */ + asn_DEF_SupportedSULBandList_tags_1, /* Same as above */ + sizeof(asn_DEF_SupportedSULBandList_tags_1) + /sizeof(asn_DEF_SupportedSULBandList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SupportedSULBandList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_SupportedSULBandList_1, + 1, /* Single element */ + &asn_SPC_SupportedSULBandList_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/SupportedSULBandList.h b/e2sim/asn1c/SupportedSULBandList.h new file mode 100644 index 0000000..9a799f9 --- /dev/null +++ b/e2sim/asn1c/SupportedSULBandList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _SupportedSULBandList_H_ +#define _SupportedSULBandList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SupportedSULFreqBandItem; + +/* SupportedSULBandList */ +typedef struct SupportedSULBandList { + A_SEQUENCE_OF(struct SupportedSULFreqBandItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SupportedSULBandList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SupportedSULBandList; +extern asn_SET_OF_specifics_t asn_SPC_SupportedSULBandList_specs_1; +extern asn_TYPE_member_t asn_MBR_SupportedSULBandList_1[1]; +extern asn_per_constraints_t asn_PER_type_SupportedSULBandList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SupportedSULBandList_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/SupportedSULFreqBandItem.c b/e2sim/asn1c/SupportedSULFreqBandItem.c new file mode 100644 index 0000000..a931733 --- /dev/null +++ b/e2sim/asn1c/SupportedSULFreqBandItem.c @@ -0,0 +1,98 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "SupportedSULFreqBandItem.h" + +static int +memb_freqBandIndicatorNr_constraint_1(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 >= 1L && value <= 1024L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_freqBandIndicatorNr_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 10, 10, 1, 1024 } /* (1..1024,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_SupportedSULFreqBandItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SupportedSULFreqBandItem, freqBandIndicatorNr), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_freqBandIndicatorNr_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_freqBandIndicatorNr_constraint_1 + }, + 0, 0, /* No default value */ + "freqBandIndicatorNr" + }, +}; +static const ber_tlv_tag_t asn_DEF_SupportedSULFreqBandItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SupportedSULFreqBandItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* freqBandIndicatorNr */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SupportedSULFreqBandItem_specs_1 = { + sizeof(struct SupportedSULFreqBandItem), + offsetof(struct SupportedSULFreqBandItem, _asn_ctx), + asn_MAP_SupportedSULFreqBandItem_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_SupportedSULFreqBandItem = { + "SupportedSULFreqBandItem", + "SupportedSULFreqBandItem", + &asn_OP_SEQUENCE, + asn_DEF_SupportedSULFreqBandItem_tags_1, + sizeof(asn_DEF_SupportedSULFreqBandItem_tags_1) + /sizeof(asn_DEF_SupportedSULFreqBandItem_tags_1[0]), /* 1 */ + asn_DEF_SupportedSULFreqBandItem_tags_1, /* Same as above */ + sizeof(asn_DEF_SupportedSULFreqBandItem_tags_1) + /sizeof(asn_DEF_SupportedSULFreqBandItem_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_SupportedSULFreqBandItem_1, + 1, /* Elements count */ + &asn_SPC_SupportedSULFreqBandItem_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/SupportedSULFreqBandItem.h b/e2sim/asn1c/SupportedSULFreqBandItem.h new file mode 100644 index 0000000..98773fa --- /dev/null +++ b/e2sim/asn1c/SupportedSULFreqBandItem.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _SupportedSULFreqBandItem_H_ +#define _SupportedSULFreqBandItem_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* SupportedSULFreqBandItem */ +typedef struct SupportedSULFreqBandItem { + long freqBandIndicatorNr; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SupportedSULFreqBandItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SupportedSULFreqBandItem; +extern asn_SEQUENCE_specifics_t asn_SPC_SupportedSULFreqBandItem_specs_1; +extern asn_TYPE_member_t asn_MBR_SupportedSULFreqBandItem_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SupportedSULFreqBandItem_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/TNLinformation.c b/e2sim/asn1c/TNLinformation.c new file mode 100644 index 0000000..a59fde9 --- /dev/null +++ b/e2sim/asn1c/TNLinformation.c @@ -0,0 +1,162 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#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 >= 1UL && size <= 160UL)) { + /* 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 == 16UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_tnlAddress_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_tnlPort_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_TNLinformation_1, + 2, /* Elements count */ + &asn_SPC_TNLinformation_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/TNLinformation.h b/e2sim/asn1c/TNLinformation.h new file mode 100644 index 0000000..c83f354 --- /dev/null +++ b/e2sim/asn1c/TNLinformation.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _TNLinformation_H_ +#define _TNLinformation_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" +#include "constr_SEQUENCE.h" + +#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 "asn_internal.h" diff --git a/e2sim/asn1c/TNLusage.c b/e2sim/asn1c/TNLusage.c new file mode 100644 index 0000000..e8a166e --- /dev/null +++ b/e2sim/asn1c/TNLusage.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "TNLusage.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TNLusage_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TNLusage_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/TNLusage.h b/e2sim/asn1c/TNLusage.h new file mode 100644 index 0000000..9bb8807 --- /dev/null +++ b/e2sim/asn1c/TNLusage.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _TNLusage_H_ +#define _TNLusage_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#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; +jer_type_encoder_f TNLusage_encode_jer; +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 "asn_internal.h" diff --git a/e2sim/asn1c/TestCond-Expression.c b/e2sim/asn1c/TestCond-Expression.c new file mode 100644 index 0000000..7525be5 --- /dev/null +++ b/e2sim/asn1c/TestCond-Expression.c @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "TestCond-Expression.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_TestCond_Expression_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 4 } /* (0..4,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_TestCond_Expression_value2enum_1[] = { + { 0, 5, "equal" }, + { 1, 11, "greaterthan" }, + { 2, 8, "lessthan" }, + { 3, 8, "contains" }, + { 4, 7, "present" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_TestCond_Expression_enum2value_1[] = { + 3, /* contains(3) */ + 0, /* equal(0) */ + 1, /* greaterthan(1) */ + 2, /* lessthan(2) */ + 4 /* present(4) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_TestCond_Expression_specs_1 = { + asn_MAP_TestCond_Expression_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TestCond_Expression_enum2value_1, /* N => "tag"; sorted by N */ + 5, /* Number of elements in the maps */ + 6, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TestCond_Expression_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TestCond_Expression = { + "TestCond-Expression", + "TestCond-Expression", + &asn_OP_NativeEnumerated, + asn_DEF_TestCond_Expression_tags_1, + sizeof(asn_DEF_TestCond_Expression_tags_1) + /sizeof(asn_DEF_TestCond_Expression_tags_1[0]), /* 1 */ + asn_DEF_TestCond_Expression_tags_1, /* Same as above */ + sizeof(asn_DEF_TestCond_Expression_tags_1) + /sizeof(asn_DEF_TestCond_Expression_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TestCond_Expression_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TestCond_Expression_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/TestCond-Expression.h b/e2sim/asn1c/TestCond-Expression.h new file mode 100644 index 0000000..0f39077 --- /dev/null +++ b/e2sim/asn1c/TestCond-Expression.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _TestCond_Expression_H_ +#define _TestCond_Expression_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TestCond_Expression { + TestCond_Expression_equal = 0, + TestCond_Expression_greaterthan = 1, + TestCond_Expression_lessthan = 2, + TestCond_Expression_contains = 3, + TestCond_Expression_present = 4 + /* + * Enumeration is extensible + */ +} e_TestCond_Expression; + +/* TestCond-Expression */ +typedef long TestCond_Expression_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TestCond_Expression_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TestCond_Expression; +extern const asn_INTEGER_specifics_t asn_SPC_TestCond_Expression_specs_1; +asn_struct_free_f TestCond_Expression_free; +asn_struct_print_f TestCond_Expression_print; +asn_constr_check_f TestCond_Expression_constraint; +ber_type_decoder_f TestCond_Expression_decode_ber; +der_type_encoder_f TestCond_Expression_encode_der; +xer_type_decoder_f TestCond_Expression_decode_xer; +xer_type_encoder_f TestCond_Expression_encode_xer; +jer_type_encoder_f TestCond_Expression_encode_jer; +per_type_decoder_f TestCond_Expression_decode_uper; +per_type_encoder_f TestCond_Expression_encode_uper; +per_type_decoder_f TestCond_Expression_decode_aper; +per_type_encoder_f TestCond_Expression_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TestCond_Expression_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/TestCond-Type.c b/e2sim/asn1c/TestCond-Type.c new file mode 100644 index 0000000..1a6c9a5 --- /dev/null +++ b/e2sim/asn1c/TestCond-Type.c @@ -0,0 +1,866 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "TestCond-Type.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_gBR_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_aMBR_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_isStat_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_isCatM_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_rSRP_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_rSRQ_constr_17 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ul_rSRP_constr_21 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cQI_constr_24 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_fiveQI_constr_27 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_qCI_constr_30 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_sNSSAI_constr_33 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_TestCond_Type_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_gBR_value2enum_2[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_gBR_enum2value_2[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_gBR_specs_2 = { + asn_MAP_gBR_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_gBR_enum2value_2, /* 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_gBR_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_gBR_2 = { + "gBR", + "gBR", + &asn_OP_NativeEnumerated, + asn_DEF_gBR_tags_2, + sizeof(asn_DEF_gBR_tags_2) + /sizeof(asn_DEF_gBR_tags_2[0]) - 1, /* 1 */ + asn_DEF_gBR_tags_2, /* Same as above */ + sizeof(asn_DEF_gBR_tags_2) + /sizeof(asn_DEF_gBR_tags_2[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_gBR_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_gBR_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_aMBR_value2enum_5[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_aMBR_enum2value_5[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_aMBR_specs_5 = { + asn_MAP_aMBR_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_aMBR_enum2value_5, /* 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_aMBR_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_aMBR_5 = { + "aMBR", + "aMBR", + &asn_OP_NativeEnumerated, + asn_DEF_aMBR_tags_5, + sizeof(asn_DEF_aMBR_tags_5) + /sizeof(asn_DEF_aMBR_tags_5[0]) - 1, /* 1 */ + asn_DEF_aMBR_tags_5, /* Same as above */ + sizeof(asn_DEF_aMBR_tags_5) + /sizeof(asn_DEF_aMBR_tags_5[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_aMBR_constr_5, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_aMBR_specs_5 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_isStat_value2enum_8[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_isStat_enum2value_8[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_isStat_specs_8 = { + asn_MAP_isStat_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_isStat_enum2value_8, /* 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_isStat_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_isStat_8 = { + "isStat", + "isStat", + &asn_OP_NativeEnumerated, + asn_DEF_isStat_tags_8, + sizeof(asn_DEF_isStat_tags_8) + /sizeof(asn_DEF_isStat_tags_8[0]) - 1, /* 1 */ + asn_DEF_isStat_tags_8, /* Same as above */ + sizeof(asn_DEF_isStat_tags_8) + /sizeof(asn_DEF_isStat_tags_8[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_isStat_constr_8, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_isStat_specs_8 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_isCatM_value2enum_11[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_isCatM_enum2value_11[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_isCatM_specs_11 = { + asn_MAP_isCatM_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_isCatM_enum2value_11, /* 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_isCatM_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_isCatM_11 = { + "isCatM", + "isCatM", + &asn_OP_NativeEnumerated, + asn_DEF_isCatM_tags_11, + sizeof(asn_DEF_isCatM_tags_11) + /sizeof(asn_DEF_isCatM_tags_11[0]) - 1, /* 1 */ + asn_DEF_isCatM_tags_11, /* Same as above */ + sizeof(asn_DEF_isCatM_tags_11) + /sizeof(asn_DEF_isCatM_tags_11[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_isCatM_constr_11, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_isCatM_specs_11 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_rSRP_value2enum_14[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_rSRP_enum2value_14[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_rSRP_specs_14 = { + asn_MAP_rSRP_value2enum_14, /* "tag" => N; sorted by tag */ + asn_MAP_rSRP_enum2value_14, /* 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_rSRP_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_rSRP_14 = { + "rSRP", + "rSRP", + &asn_OP_NativeEnumerated, + asn_DEF_rSRP_tags_14, + sizeof(asn_DEF_rSRP_tags_14) + /sizeof(asn_DEF_rSRP_tags_14[0]) - 1, /* 1 */ + asn_DEF_rSRP_tags_14, /* Same as above */ + sizeof(asn_DEF_rSRP_tags_14) + /sizeof(asn_DEF_rSRP_tags_14[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_rSRP_constr_14, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_rSRP_specs_14 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_rSRQ_value2enum_17[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_rSRQ_enum2value_17[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_rSRQ_specs_17 = { + asn_MAP_rSRQ_value2enum_17, /* "tag" => N; sorted by tag */ + asn_MAP_rSRQ_enum2value_17, /* 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_rSRQ_tags_17[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_rSRQ_17 = { + "rSRQ", + "rSRQ", + &asn_OP_NativeEnumerated, + asn_DEF_rSRQ_tags_17, + sizeof(asn_DEF_rSRQ_tags_17) + /sizeof(asn_DEF_rSRQ_tags_17[0]) - 1, /* 1 */ + asn_DEF_rSRQ_tags_17, /* Same as above */ + sizeof(asn_DEF_rSRQ_tags_17) + /sizeof(asn_DEF_rSRQ_tags_17[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_rSRQ_constr_17, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_rSRQ_specs_17 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ul_rSRP_value2enum_21[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ul_rSRP_enum2value_21[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ul_rSRP_specs_21 = { + asn_MAP_ul_rSRP_value2enum_21, /* "tag" => N; sorted by tag */ + asn_MAP_ul_rSRP_enum2value_21, /* 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_ul_rSRP_tags_21[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ul_rSRP_21 = { + "ul-rSRP", + "ul-rSRP", + &asn_OP_NativeEnumerated, + asn_DEF_ul_rSRP_tags_21, + sizeof(asn_DEF_ul_rSRP_tags_21) + /sizeof(asn_DEF_ul_rSRP_tags_21[0]) - 1, /* 1 */ + asn_DEF_ul_rSRP_tags_21, /* Same as above */ + sizeof(asn_DEF_ul_rSRP_tags_21) + /sizeof(asn_DEF_ul_rSRP_tags_21[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ul_rSRP_constr_21, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ul_rSRP_specs_21 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_cQI_value2enum_24[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_cQI_enum2value_24[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_cQI_specs_24 = { + asn_MAP_cQI_value2enum_24, /* "tag" => N; sorted by tag */ + asn_MAP_cQI_enum2value_24, /* 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_cQI_tags_24[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_cQI_24 = { + "cQI", + "cQI", + &asn_OP_NativeEnumerated, + asn_DEF_cQI_tags_24, + sizeof(asn_DEF_cQI_tags_24) + /sizeof(asn_DEF_cQI_tags_24[0]) - 1, /* 1 */ + asn_DEF_cQI_tags_24, /* Same as above */ + sizeof(asn_DEF_cQI_tags_24) + /sizeof(asn_DEF_cQI_tags_24[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_cQI_constr_24, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_cQI_specs_24 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_fiveQI_value2enum_27[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_fiveQI_enum2value_27[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_fiveQI_specs_27 = { + asn_MAP_fiveQI_value2enum_27, /* "tag" => N; sorted by tag */ + asn_MAP_fiveQI_enum2value_27, /* 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_fiveQI_tags_27[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_fiveQI_27 = { + "fiveQI", + "fiveQI", + &asn_OP_NativeEnumerated, + asn_DEF_fiveQI_tags_27, + sizeof(asn_DEF_fiveQI_tags_27) + /sizeof(asn_DEF_fiveQI_tags_27[0]) - 1, /* 1 */ + asn_DEF_fiveQI_tags_27, /* Same as above */ + sizeof(asn_DEF_fiveQI_tags_27) + /sizeof(asn_DEF_fiveQI_tags_27[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_fiveQI_constr_27, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_fiveQI_specs_27 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_qCI_value2enum_30[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_qCI_enum2value_30[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_qCI_specs_30 = { + asn_MAP_qCI_value2enum_30, /* "tag" => N; sorted by tag */ + asn_MAP_qCI_enum2value_30, /* 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_qCI_tags_30[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_qCI_30 = { + "qCI", + "qCI", + &asn_OP_NativeEnumerated, + asn_DEF_qCI_tags_30, + sizeof(asn_DEF_qCI_tags_30) + /sizeof(asn_DEF_qCI_tags_30[0]) - 1, /* 1 */ + asn_DEF_qCI_tags_30, /* Same as above */ + sizeof(asn_DEF_qCI_tags_30) + /sizeof(asn_DEF_qCI_tags_30[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_qCI_constr_30, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_qCI_specs_30 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_sNSSAI_value2enum_33[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_sNSSAI_enum2value_33[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_sNSSAI_specs_33 = { + asn_MAP_sNSSAI_value2enum_33, /* "tag" => N; sorted by tag */ + asn_MAP_sNSSAI_enum2value_33, /* 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_sNSSAI_tags_33[] = { + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_sNSSAI_33 = { + "sNSSAI", + "sNSSAI", + &asn_OP_NativeEnumerated, + asn_DEF_sNSSAI_tags_33, + sizeof(asn_DEF_sNSSAI_tags_33) + /sizeof(asn_DEF_sNSSAI_tags_33[0]) - 1, /* 1 */ + asn_DEF_sNSSAI_tags_33, /* Same as above */ + sizeof(asn_DEF_sNSSAI_tags_33) + /sizeof(asn_DEF_sNSSAI_tags_33[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_sNSSAI_constr_33, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_sNSSAI_specs_33 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_TestCond_Type_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TestCond_Type, choice.gBR), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_gBR_2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "gBR" + }, + { ATF_NOFLAGS, 0, offsetof(struct TestCond_Type, choice.aMBR), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_aMBR_5, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "aMBR" + }, + { ATF_NOFLAGS, 0, offsetof(struct TestCond_Type, choice.isStat), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_isStat_8, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "isStat" + }, + { ATF_NOFLAGS, 0, offsetof(struct TestCond_Type, choice.isCatM), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_isCatM_11, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "isCatM" + }, + { ATF_NOFLAGS, 0, offsetof(struct TestCond_Type, choice.rSRP), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_rSRP_14, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rSRP" + }, + { ATF_NOFLAGS, 0, offsetof(struct TestCond_Type, choice.rSRQ), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_rSRQ_17, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rSRQ" + }, + { ATF_NOFLAGS, 0, offsetof(struct TestCond_Type, choice.ul_rSRP), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ul_rSRP_21, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ul-rSRP" + }, + { ATF_NOFLAGS, 0, offsetof(struct TestCond_Type, choice.cQI), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cQI_24, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "cQI" + }, + { ATF_NOFLAGS, 0, offsetof(struct TestCond_Type, choice.fiveQI), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_fiveQI_27, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "fiveQI" + }, + { ATF_NOFLAGS, 0, offsetof(struct TestCond_Type, choice.qCI), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_qCI_30, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "qCI" + }, + { ATF_NOFLAGS, 0, offsetof(struct TestCond_Type, choice.sNSSAI), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_sNSSAI_33, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sNSSAI" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_TestCond_Type_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gBR */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* aMBR */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* isStat */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* isCatM */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* rSRP */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* rSRQ */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* ul-rSRP */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* cQI */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* fiveQI */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* qCI */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 } /* sNSSAI */ +}; +asn_CHOICE_specifics_t asn_SPC_TestCond_Type_specs_1 = { + sizeof(struct TestCond_Type), + offsetof(struct TestCond_Type, _asn_ctx), + offsetof(struct TestCond_Type, present), + sizeof(((struct TestCond_Type *)0)->present), + asn_MAP_TestCond_Type_tag2el_1, + 11, /* Count of tags in the map */ + 0, 0, + 6 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_TestCond_Type = { + "TestCond-Type", + "TestCond-Type", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TestCond_Type_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_TestCond_Type_1, + 11, /* Elements count */ + &asn_SPC_TestCond_Type_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/TestCond-Type.h b/e2sim/asn1c/TestCond-Type.h new file mode 100644 index 0000000..56c7ae3 --- /dev/null +++ b/e2sim/asn1c/TestCond-Type.h @@ -0,0 +1,152 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _TestCond_Type_H_ +#define _TestCond_Type_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TestCond_Type_PR { + TestCond_Type_PR_NOTHING, /* No components present */ + TestCond_Type_PR_gBR, + TestCond_Type_PR_aMBR, + TestCond_Type_PR_isStat, + TestCond_Type_PR_isCatM, + TestCond_Type_PR_rSRP, + TestCond_Type_PR_rSRQ, + /* Extensions may appear below */ + TestCond_Type_PR_ul_rSRP, + TestCond_Type_PR_cQI, + TestCond_Type_PR_fiveQI, + TestCond_Type_PR_qCI, + TestCond_Type_PR_sNSSAI +} TestCond_Type_PR; +typedef enum TestCond_Type__gBR { + TestCond_Type__gBR_true = 0 + /* + * Enumeration is extensible + */ +} e_TestCond_Type__gBR; +typedef enum TestCond_Type__aMBR { + TestCond_Type__aMBR_true = 0 + /* + * Enumeration is extensible + */ +} e_TestCond_Type__aMBR; +typedef enum TestCond_Type__isStat { + TestCond_Type__isStat_true = 0 + /* + * Enumeration is extensible + */ +} e_TestCond_Type__isStat; +typedef enum TestCond_Type__isCatM { + TestCond_Type__isCatM_true = 0 + /* + * Enumeration is extensible + */ +} e_TestCond_Type__isCatM; +typedef enum TestCond_Type__rSRP { + TestCond_Type__rSRP_true = 0 + /* + * Enumeration is extensible + */ +} e_TestCond_Type__rSRP; +typedef enum TestCond_Type__rSRQ { + TestCond_Type__rSRQ_true = 0 + /* + * Enumeration is extensible + */ +} e_TestCond_Type__rSRQ; +typedef enum TestCond_Type__ul_rSRP { + TestCond_Type__ul_rSRP_true = 0 + /* + * Enumeration is extensible + */ +} e_TestCond_Type__ul_rSRP; +typedef enum TestCond_Type__cQI { + TestCond_Type__cQI_true = 0 + /* + * Enumeration is extensible + */ +} e_TestCond_Type__cQI; +typedef enum TestCond_Type__fiveQI { + TestCond_Type__fiveQI_true = 0 + /* + * Enumeration is extensible + */ +} e_TestCond_Type__fiveQI; +typedef enum TestCond_Type__qCI { + TestCond_Type__qCI_true = 0 + /* + * Enumeration is extensible + */ +} e_TestCond_Type__qCI; +typedef enum TestCond_Type__sNSSAI { + TestCond_Type__sNSSAI_true = 0 + /* + * Enumeration is extensible + */ +} e_TestCond_Type__sNSSAI; + +/* TestCond-Type */ +typedef struct TestCond_Type { + TestCond_Type_PR present; + union TestCond_Type_u { + long gBR; + long aMBR; + long isStat; + long isCatM; + long rSRP; + long rSRQ; + /* + * This type is extensible, + * possible extensions are below. + */ + long ul_rSRP; + long cQI; + long fiveQI; + long qCI; + long sNSSAI; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TestCond_Type_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_gBR_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_aMBR_5; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_isStat_8; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_isCatM_11; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_rSRP_14; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_rSRQ_17; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ul_rSRP_21; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_cQI_24; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_fiveQI_27; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_qCI_30; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_sNSSAI_33; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_TestCond_Type; +extern asn_CHOICE_specifics_t asn_SPC_TestCond_Type_specs_1; +extern asn_TYPE_member_t asn_MBR_TestCond_Type_1[11]; +extern asn_per_constraints_t asn_PER_type_TestCond_Type_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _TestCond_Type_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/TestCond-Value.c b/e2sim/asn1c/TestCond-Value.c new file mode 100644 index 0000000..7dfd71e --- /dev/null +++ b/e2sim/asn1c/TestCond-Value.c @@ -0,0 +1,178 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "TestCond-Value.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_TestCond_Value_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_TestCond_Value_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TestCond_Value, choice.valueInt), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "valueInt" + }, + { ATF_NOFLAGS, 0, offsetof(struct TestCond_Value, choice.valueEnum), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "valueEnum" + }, + { ATF_NOFLAGS, 0, offsetof(struct TestCond_Value, choice.valueBool), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "valueBool" + }, + { ATF_NOFLAGS, 0, offsetof(struct TestCond_Value, choice.valueBitS), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "valueBitS" + }, + { ATF_NOFLAGS, 0, offsetof(struct TestCond_Value, choice.valueOctS), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "valueOctS" + }, + { ATF_NOFLAGS, 0, offsetof(struct TestCond_Value, choice.valuePrtS), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrintableString, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "valuePrtS" + }, + { ATF_NOFLAGS, 0, offsetof(struct TestCond_Value, choice.valueReal), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeReal, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "valueReal" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_TestCond_Value_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* valueInt */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* valueEnum */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* valueBool */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* valueBitS */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* valueOctS */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* valuePrtS */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* valueReal */ +}; +asn_CHOICE_specifics_t asn_SPC_TestCond_Value_specs_1 = { + sizeof(struct TestCond_Value), + offsetof(struct TestCond_Value, _asn_ctx), + offsetof(struct TestCond_Value, present), + sizeof(((struct TestCond_Value *)0)->present), + asn_MAP_TestCond_Value_tag2el_1, + 7, /* Count of tags in the map */ + 0, 0, + 6 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_TestCond_Value = { + "TestCond-Value", + "TestCond-Value", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TestCond_Value_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_TestCond_Value_1, + 7, /* Elements count */ + &asn_SPC_TestCond_Value_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/TestCond-Value.h b/e2sim/asn1c/TestCond-Value.h new file mode 100644 index 0000000..4bc1b09 --- /dev/null +++ b/e2sim/asn1c/TestCond-Value.h @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _TestCond_Value_H_ +#define _TestCond_Value_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" +#include "BOOLEAN.h" +#include "BIT_STRING.h" +#include "OCTET_STRING.h" +#include "PrintableString.h" +#include "NativeReal.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TestCond_Value_PR { + TestCond_Value_PR_NOTHING, /* No components present */ + TestCond_Value_PR_valueInt, + TestCond_Value_PR_valueEnum, + TestCond_Value_PR_valueBool, + TestCond_Value_PR_valueBitS, + TestCond_Value_PR_valueOctS, + TestCond_Value_PR_valuePrtS, + /* Extensions may appear below */ + TestCond_Value_PR_valueReal +} TestCond_Value_PR; + +/* TestCond-Value */ +typedef struct TestCond_Value { + TestCond_Value_PR present; + union TestCond_Value_u { + long valueInt; + long valueEnum; + BOOLEAN_t valueBool; + BIT_STRING_t valueBitS; + OCTET_STRING_t valueOctS; + PrintableString_t valuePrtS; + /* + * This type is extensible, + * possible extensions are below. + */ + double valueReal; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TestCond_Value_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TestCond_Value; +extern asn_CHOICE_specifics_t asn_SPC_TestCond_Value_specs_1; +extern asn_TYPE_member_t asn_MBR_TestCond_Value_1[7]; +extern asn_per_constraints_t asn_PER_type_TestCond_Value_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _TestCond_Value_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/TestCondInfo.c b/e2sim/asn1c/TestCondInfo.c new file mode 100644 index 0000000..ebdbe39 --- /dev/null +++ b/e2sim/asn1c/TestCondInfo.c @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "TestCondInfo.h" + +#include "TestCond-Value.h" +asn_TYPE_member_t asn_MBR_TestCondInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TestCondInfo, testType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_TestCond_Type, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "testType" + }, + { ATF_POINTER, 2, offsetof(struct TestCondInfo, testExpr), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TestCond_Expression, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "testExpr" + }, + { ATF_POINTER, 1, offsetof(struct TestCondInfo, testValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_TestCond_Value, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "testValue" + }, +}; +static const int asn_MAP_TestCondInfo_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_TestCondInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TestCondInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* testType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* testExpr */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* testValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TestCondInfo_specs_1 = { + sizeof(struct TestCondInfo), + offsetof(struct TestCondInfo, _asn_ctx), + asn_MAP_TestCondInfo_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_TestCondInfo_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TestCondInfo = { + "TestCondInfo", + "TestCondInfo", + &asn_OP_SEQUENCE, + asn_DEF_TestCondInfo_tags_1, + sizeof(asn_DEF_TestCondInfo_tags_1) + /sizeof(asn_DEF_TestCondInfo_tags_1[0]), /* 1 */ + asn_DEF_TestCondInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_TestCondInfo_tags_1) + /sizeof(asn_DEF_TestCondInfo_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_TestCondInfo_1, + 3, /* Elements count */ + &asn_SPC_TestCondInfo_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/TestCondInfo.h b/e2sim/asn1c/TestCondInfo.h new file mode 100644 index 0000000..fa8d744 --- /dev/null +++ b/e2sim/asn1c/TestCondInfo.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _TestCondInfo_H_ +#define _TestCondInfo_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "TestCond-Type.h" +#include "TestCond-Expression.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct TestCond_Value; + +/* TestCondInfo */ +typedef struct TestCondInfo { + TestCond_Type_t testType; + TestCond_Expression_t *testExpr; /* OPTIONAL */ + struct TestCond_Value *testValue; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TestCondInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TestCondInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_TestCondInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_TestCondInfo_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TestCondInfo_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/TimeStamp.c b/e2sim/asn1c/TimeStamp.c new file mode 100644 index 0000000..1c9327c --- /dev/null +++ b/e2sim/asn1c/TimeStamp.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "TimeStamp.h" + +int +TimeStamp_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; + + 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 == 8UL)) { + /* 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 OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_TimeStamp_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_TimeStamp_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeStamp = { + "TimeStamp", + "TimeStamp", + &asn_OP_OCTET_STRING, + asn_DEF_TimeStamp_tags_1, + sizeof(asn_DEF_TimeStamp_tags_1) + /sizeof(asn_DEF_TimeStamp_tags_1[0]), /* 1 */ + asn_DEF_TimeStamp_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeStamp_tags_1) + /sizeof(asn_DEF_TimeStamp_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TimeStamp_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + TimeStamp_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/e2sim/asn1c/TimeStamp.h b/e2sim/asn1c/TimeStamp.h new file mode 100644 index 0000000..1a8c126 --- /dev/null +++ b/e2sim/asn1c/TimeStamp.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _TimeStamp_H_ +#define _TimeStamp_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* TimeStamp */ +typedef OCTET_STRING_t TimeStamp_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeStamp_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeStamp; +asn_struct_free_f TimeStamp_free; +asn_struct_print_f TimeStamp_print; +asn_constr_check_f TimeStamp_constraint; +ber_type_decoder_f TimeStamp_decode_ber; +der_type_encoder_f TimeStamp_encode_der; +xer_type_decoder_f TimeStamp_decode_xer; +xer_type_encoder_f TimeStamp_encode_xer; +jer_type_encoder_f TimeStamp_encode_jer; +per_type_decoder_f TimeStamp_decode_uper; +per_type_encoder_f TimeStamp_encode_uper; +per_type_decoder_f TimeStamp_decode_aper; +per_type_encoder_f TimeStamp_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeStamp_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/TimeToWait.c b/e2sim/asn1c/TimeToWait.c new file mode 100644 index 0000000..919ac56 --- /dev/null +++ b/e2sim/asn1c/TimeToWait.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "TimeToWait.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_TimeToWait_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_TimeToWait_value2enum_1[] = { + { 0, 3, "v1s" }, + { 1, 3, "v2s" }, + { 2, 3, "v5s" }, + { 3, 4, "v10s" }, + { 4, 4, "v20s" }, + { 5, 4, "v60s" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_TimeToWait_enum2value_1[] = { + 3, /* v10s(3) */ + 0, /* v1s(0) */ + 4, /* v20s(4) */ + 1, /* v2s(1) */ + 2, /* v5s(2) */ + 5 /* v60s(5) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_TimeToWait_specs_1 = { + asn_MAP_TimeToWait_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TimeToWait_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 7, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TimeToWait_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeToWait = { + "TimeToWait", + "TimeToWait", + &asn_OP_NativeEnumerated, + asn_DEF_TimeToWait_tags_1, + sizeof(asn_DEF_TimeToWait_tags_1) + /sizeof(asn_DEF_TimeToWait_tags_1[0]), /* 1 */ + asn_DEF_TimeToWait_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeToWait_tags_1) + /sizeof(asn_DEF_TimeToWait_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TimeToWait_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TimeToWait_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/TimeToWait.h b/e2sim/asn1c/TimeToWait.h new file mode 100644 index 0000000..02cfdb5 --- /dev/null +++ b/e2sim/asn1c/TimeToWait.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _TimeToWait_H_ +#define _TimeToWait_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TimeToWait { + TimeToWait_v1s = 0, + TimeToWait_v2s = 1, + TimeToWait_v5s = 2, + TimeToWait_v10s = 3, + TimeToWait_v20s = 4, + TimeToWait_v60s = 5 + /* + * Enumeration is extensible + */ +} e_TimeToWait; + +/* TimeToWait */ +typedef long TimeToWait_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeToWait_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeToWait; +extern const asn_INTEGER_specifics_t asn_SPC_TimeToWait_specs_1; +asn_struct_free_f TimeToWait_free; +asn_struct_print_f TimeToWait_print; +asn_constr_check_f TimeToWait_constraint; +ber_type_decoder_f TimeToWait_decode_ber; +der_type_encoder_f TimeToWait_encode_der; +xer_type_decoder_f TimeToWait_decode_xer; +xer_type_encoder_f TimeToWait_encode_xer; +jer_type_encoder_f TimeToWait_encode_jer; +per_type_decoder_f TimeToWait_decode_uper; +per_type_encoder_f TimeToWait_encode_uper; +per_type_decoder_f TimeToWait_decode_aper; +per_type_encoder_f TimeToWait_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeToWait_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/TransactionID.c b/e2sim/asn1c/TransactionID.c new file mode 100644 index 0000000..614c1f9 --- /dev/null +++ b/e2sim/asn1c/TransactionID.c @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#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 >= 0L && value <= 255L)) { + /* 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. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +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 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TransactionID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + TransactionID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/asn1c/TransactionID.h b/e2sim/asn1c/TransactionID.h new file mode 100644 index 0000000..d36b9ed --- /dev/null +++ b/e2sim/asn1c/TransactionID.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _TransactionID_H_ +#define _TransactionID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* TransactionID */ +typedef long TransactionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TransactionID_constr_1; +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; +jer_type_encoder_f TransactionID_encode_jer; +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 "asn_internal.h" diff --git a/e2sim/asn1c/TriggeringMessage.c b/e2sim/asn1c/TriggeringMessage.c new file mode 100644 index 0000000..b4e089f --- /dev/null +++ b/e2sim/asn1c/TriggeringMessage.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-CommonDataTypes" + * found in "e2ap-common-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "TriggeringMessage.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_TriggeringMessage_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_TriggeringMessage_value2enum_1[] = { + { 0, 18, "initiating-message" }, + { 1, 18, "successful-outcome" }, + { 2, 21, "unsuccessfull-outcome" } +}; +static const unsigned int asn_MAP_TriggeringMessage_enum2value_1[] = { + 0, /* initiating-message(0) */ + 1, /* successful-outcome(1) */ + 2 /* unsuccessfull-outcome(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_TriggeringMessage_specs_1 = { + asn_MAP_TriggeringMessage_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TriggeringMessage_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TriggeringMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TriggeringMessage = { + "TriggeringMessage", + "TriggeringMessage", + &asn_OP_NativeEnumerated, + asn_DEF_TriggeringMessage_tags_1, + sizeof(asn_DEF_TriggeringMessage_tags_1) + /sizeof(asn_DEF_TriggeringMessage_tags_1[0]), /* 1 */ + asn_DEF_TriggeringMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_TriggeringMessage_tags_1) + /sizeof(asn_DEF_TriggeringMessage_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TriggeringMessage_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TriggeringMessage_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/TriggeringMessage.h b/e2sim/asn1c/TriggeringMessage.h new file mode 100644 index 0000000..0d1a51b --- /dev/null +++ b/e2sim/asn1c/TriggeringMessage.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-CommonDataTypes" + * found in "e2ap-common-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _TriggeringMessage_H_ +#define _TriggeringMessage_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TriggeringMessage { + TriggeringMessage_initiating_message = 0, + TriggeringMessage_successful_outcome = 1, + TriggeringMessage_unsuccessfull_outcome = 2 +} e_TriggeringMessage; + +/* TriggeringMessage */ +typedef long TriggeringMessage_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TriggeringMessage_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TriggeringMessage; +extern const asn_INTEGER_specifics_t asn_SPC_TriggeringMessage_specs_1; +asn_struct_free_f TriggeringMessage_free; +asn_struct_print_f TriggeringMessage_print; +asn_constr_check_f TriggeringMessage_constraint; +ber_type_decoder_f TriggeringMessage_decode_ber; +der_type_encoder_f TriggeringMessage_encode_der; +xer_type_decoder_f TriggeringMessage_decode_xer; +xer_type_encoder_f TriggeringMessage_encode_xer; +jer_type_encoder_f TriggeringMessage_encode_jer; +per_type_decoder_f TriggeringMessage_decode_uper; +per_type_encoder_f TriggeringMessage_encode_uper; +per_type_decoder_f TriggeringMessage_decode_aper; +per_type_encoder_f TriggeringMessage_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TriggeringMessage_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/TypeOfError.c b/e2sim/asn1c/TypeOfError.c new file mode 100644 index 0000000..1a1ee23 --- /dev/null +++ b/e2sim/asn1c/TypeOfError.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "TypeOfError.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_TypeOfError_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_TypeOfError_value2enum_1[] = { + { 0, 14, "not-understood" }, + { 1, 7, "missing" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_TypeOfError_enum2value_1[] = { + 1, /* missing(1) */ + 0 /* not-understood(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_TypeOfError_specs_1 = { + asn_MAP_TypeOfError_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TypeOfError_enum2value_1, /* 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_TypeOfError_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TypeOfError = { + "TypeOfError", + "TypeOfError", + &asn_OP_NativeEnumerated, + asn_DEF_TypeOfError_tags_1, + sizeof(asn_DEF_TypeOfError_tags_1) + /sizeof(asn_DEF_TypeOfError_tags_1[0]), /* 1 */ + asn_DEF_TypeOfError_tags_1, /* Same as above */ + sizeof(asn_DEF_TypeOfError_tags_1) + /sizeof(asn_DEF_TypeOfError_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TypeOfError_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TypeOfError_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/TypeOfError.h b/e2sim/asn1c/TypeOfError.h new file mode 100644 index 0000000..8c5f40c --- /dev/null +++ b/e2sim/asn1c/TypeOfError.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-ied-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _TypeOfError_H_ +#define _TypeOfError_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TypeOfError { + TypeOfError_not_understood = 0, + TypeOfError_missing = 1 + /* + * Enumeration is extensible + */ +} e_TypeOfError; + +/* TypeOfError */ +typedef long TypeOfError_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TypeOfError_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TypeOfError; +extern const asn_INTEGER_specifics_t asn_SPC_TypeOfError_specs_1; +asn_struct_free_f TypeOfError_free; +asn_struct_print_f TypeOfError_print; +asn_constr_check_f TypeOfError_constraint; +ber_type_decoder_f TypeOfError_decode_ber; +der_type_encoder_f TypeOfError_encode_der; +xer_type_decoder_f TypeOfError_decode_xer; +xer_type_encoder_f TypeOfError_encode_xer; +jer_type_encoder_f TypeOfError_encode_jer; +per_type_decoder_f TypeOfError_decode_uper; +per_type_encoder_f TypeOfError_encode_uper; +per_type_decoder_f TypeOfError_decode_aper; +per_type_encoder_f TypeOfError_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TypeOfError_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/UEID-EN-GNB.c b/e2sim/asn1c/UEID-EN-GNB.c new file mode 100644 index 0000000..2b9f40d --- /dev/null +++ b/e2sim/asn1c/UEID-EN-GNB.c @@ -0,0 +1,159 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "UEID-EN-GNB.h" + +#include "UEID-GNB-CU-CP-E1AP-ID-List.h" +asn_TYPE_member_t asn_MBR_UEID_EN_GNB_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEID_EN_GNB, m_eNB_UE_X2AP_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ENB_UE_X2AP_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "m-eNB-UE-X2AP-ID" + }, + { ATF_POINTER, 1, offsetof(struct UEID_EN_GNB, m_eNB_UE_X2AP_ID_Extension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ENB_UE_X2AP_ID_Extension, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "m-eNB-UE-X2AP-ID-Extension" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEID_EN_GNB, globalENB_ID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2SM_COMMON_IEs_GlobalENB_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "globalENB-ID" + }, + { ATF_POINTER, 3, offsetof(struct UEID_EN_GNB, gNB_CU_UE_F1AP_ID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GNB_CU_UE_F1AP_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "gNB-CU-UE-F1AP-ID" + }, + { ATF_POINTER, 2, offsetof(struct UEID_EN_GNB, gNB_CU_CP_UE_E1AP_ID_List), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UEID_GNB_CU_CP_E1AP_ID_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "gNB-CU-CP-UE-E1AP-ID-List" + }, + { ATF_POINTER, 1, offsetof(struct UEID_EN_GNB, ran_UEID), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RANUEID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ran-UEID" + }, +}; +static const int asn_MAP_UEID_EN_GNB_oms_1[] = { 1, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_UEID_EN_GNB_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEID_EN_GNB_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* m-eNB-UE-X2AP-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* m-eNB-UE-X2AP-ID-Extension */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* globalENB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* gNB-CU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* gNB-CU-CP-UE-E1AP-ID-List */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* ran-UEID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEID_EN_GNB_specs_1 = { + sizeof(struct UEID_EN_GNB), + offsetof(struct UEID_EN_GNB, _asn_ctx), + asn_MAP_UEID_EN_GNB_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_UEID_EN_GNB_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UEID_EN_GNB = { + "UEID-EN-GNB", + "UEID-EN-GNB", + &asn_OP_SEQUENCE, + asn_DEF_UEID_EN_GNB_tags_1, + sizeof(asn_DEF_UEID_EN_GNB_tags_1) + /sizeof(asn_DEF_UEID_EN_GNB_tags_1[0]), /* 1 */ + asn_DEF_UEID_EN_GNB_tags_1, /* Same as above */ + sizeof(asn_DEF_UEID_EN_GNB_tags_1) + /sizeof(asn_DEF_UEID_EN_GNB_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_UEID_EN_GNB_1, + 6, /* Elements count */ + &asn_SPC_UEID_EN_GNB_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/UEID-EN-GNB.h b/e2sim/asn1c/UEID-EN-GNB.h new file mode 100644 index 0000000..05bbfb1 --- /dev/null +++ b/e2sim/asn1c/UEID-EN-GNB.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _UEID_EN_GNB_H_ +#define _UEID_EN_GNB_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ENB-UE-X2AP-ID.h" +#include "ENB-UE-X2AP-ID-Extension.h" +#include "E2SM-COMMON-IEs_GlobalENB-ID.h" +#include "GNB-CU-UE-F1AP-ID.h" +#include "RANUEID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct UEID_GNB_CU_CP_E1AP_ID_List; + +/* UEID-EN-GNB */ +typedef struct UEID_EN_GNB { + ENB_UE_X2AP_ID_t m_eNB_UE_X2AP_ID; + ENB_UE_X2AP_ID_Extension_t *m_eNB_UE_X2AP_ID_Extension; /* OPTIONAL */ + E2SM_COMMON_IEs_GlobalENB_ID_t globalENB_ID; + GNB_CU_UE_F1AP_ID_t *gNB_CU_UE_F1AP_ID; /* OPTIONAL */ + struct UEID_GNB_CU_CP_E1AP_ID_List *gNB_CU_CP_UE_E1AP_ID_List; /* OPTIONAL */ + RANUEID_t *ran_UEID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEID_EN_GNB_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UEID_EN_GNB; +extern asn_SEQUENCE_specifics_t asn_SPC_UEID_EN_GNB_specs_1; +extern asn_TYPE_member_t asn_MBR_UEID_EN_GNB_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UEID_EN_GNB_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/UEID-ENB.c b/e2sim/asn1c/UEID-ENB.c new file mode 100644 index 0000000..93d0595 --- /dev/null +++ b/e2sim/asn1c/UEID-ENB.c @@ -0,0 +1,141 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "UEID-ENB.h" + +#include "E2SM-COMMON-IEs_GlobalENB-ID.h" +asn_TYPE_member_t asn_MBR_UEID_ENB_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEID_ENB, mME_UE_S1AP_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MME_UE_S1AP_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "mME-UE-S1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEID_ENB, gUMMEI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GUMMEI, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "gUMMEI" + }, + { ATF_POINTER, 3, offsetof(struct UEID_ENB, m_eNB_UE_X2AP_ID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ENB_UE_X2AP_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "m-eNB-UE-X2AP-ID" + }, + { ATF_POINTER, 2, offsetof(struct UEID_ENB, m_eNB_UE_X2AP_ID_Extension), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ENB_UE_X2AP_ID_Extension, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "m-eNB-UE-X2AP-ID-Extension" + }, + { ATF_POINTER, 1, offsetof(struct UEID_ENB, globalENB_ID), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2SM_COMMON_IEs_GlobalENB_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "globalENB-ID" + }, +}; +static const int asn_MAP_UEID_ENB_oms_1[] = { 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_UEID_ENB_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEID_ENB_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mME-UE-S1AP-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* gUMMEI */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* m-eNB-UE-X2AP-ID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* m-eNB-UE-X2AP-ID-Extension */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* globalENB-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEID_ENB_specs_1 = { + sizeof(struct UEID_ENB), + offsetof(struct UEID_ENB, _asn_ctx), + asn_MAP_UEID_ENB_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_UEID_ENB_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UEID_ENB = { + "UEID-ENB", + "UEID-ENB", + &asn_OP_SEQUENCE, + asn_DEF_UEID_ENB_tags_1, + sizeof(asn_DEF_UEID_ENB_tags_1) + /sizeof(asn_DEF_UEID_ENB_tags_1[0]), /* 1 */ + asn_DEF_UEID_ENB_tags_1, /* Same as above */ + sizeof(asn_DEF_UEID_ENB_tags_1) + /sizeof(asn_DEF_UEID_ENB_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_UEID_ENB_1, + 5, /* Elements count */ + &asn_SPC_UEID_ENB_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/UEID-ENB.h b/e2sim/asn1c/UEID-ENB.h new file mode 100644 index 0000000..b6c6a0d --- /dev/null +++ b/e2sim/asn1c/UEID-ENB.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _UEID_ENB_H_ +#define _UEID_ENB_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "MME-UE-S1AP-ID.h" +#include "GUMMEI.h" +#include "ENB-UE-X2AP-ID.h" +#include "ENB-UE-X2AP-ID-Extension.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct GlobalENB_ID; + +/* UEID-ENB */ +typedef struct UEID_ENB { + MME_UE_S1AP_ID_t mME_UE_S1AP_ID; + GUMMEI_t gUMMEI; + ENB_UE_X2AP_ID_t *m_eNB_UE_X2AP_ID; /* OPTIONAL */ + ENB_UE_X2AP_ID_Extension_t *m_eNB_UE_X2AP_ID_Extension; /* OPTIONAL */ + struct GlobalENB_ID *globalENB_ID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEID_ENB_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UEID_ENB; +extern asn_SEQUENCE_specifics_t asn_SPC_UEID_ENB_specs_1; +extern asn_TYPE_member_t asn_MBR_UEID_ENB_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UEID_ENB_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/UEID-GNB-CU-CP-E1AP-ID-Item.c b/e2sim/asn1c/UEID-GNB-CU-CP-E1AP-ID-Item.c new file mode 100644 index 0000000..d493c18 --- /dev/null +++ b/e2sim/asn1c/UEID-GNB-CU-CP-E1AP-ID-Item.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "UEID-GNB-CU-CP-E1AP-ID-Item.h" + +asn_TYPE_member_t asn_MBR_UEID_GNB_CU_CP_E1AP_ID_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEID_GNB_CU_CP_E1AP_ID_Item, gNB_CU_CP_UE_E1AP_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GNB_CU_CP_UE_E1AP_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "gNB-CU-CP-UE-E1AP-ID" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEID_GNB_CU_CP_E1AP_ID_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEID_GNB_CU_CP_E1AP_ID_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gNB-CU-CP-UE-E1AP-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEID_GNB_CU_CP_E1AP_ID_Item_specs_1 = { + sizeof(struct UEID_GNB_CU_CP_E1AP_ID_Item), + offsetof(struct UEID_GNB_CU_CP_E1AP_ID_Item, _asn_ctx), + asn_MAP_UEID_GNB_CU_CP_E1AP_ID_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_UEID_GNB_CU_CP_E1AP_ID_Item = { + "UEID-GNB-CU-CP-E1AP-ID-Item", + "UEID-GNB-CU-CP-E1AP-ID-Item", + &asn_OP_SEQUENCE, + asn_DEF_UEID_GNB_CU_CP_E1AP_ID_Item_tags_1, + sizeof(asn_DEF_UEID_GNB_CU_CP_E1AP_ID_Item_tags_1) + /sizeof(asn_DEF_UEID_GNB_CU_CP_E1AP_ID_Item_tags_1[0]), /* 1 */ + asn_DEF_UEID_GNB_CU_CP_E1AP_ID_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_UEID_GNB_CU_CP_E1AP_ID_Item_tags_1) + /sizeof(asn_DEF_UEID_GNB_CU_CP_E1AP_ID_Item_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_UEID_GNB_CU_CP_E1AP_ID_Item_1, + 1, /* Elements count */ + &asn_SPC_UEID_GNB_CU_CP_E1AP_ID_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/UEID-GNB-CU-CP-E1AP-ID-Item.h b/e2sim/asn1c/UEID-GNB-CU-CP-E1AP-ID-Item.h new file mode 100644 index 0000000..fa45914 --- /dev/null +++ b/e2sim/asn1c/UEID-GNB-CU-CP-E1AP-ID-Item.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _UEID_GNB_CU_CP_E1AP_ID_Item_H_ +#define _UEID_GNB_CU_CP_E1AP_ID_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "GNB-CU-CP-UE-E1AP-ID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* UEID-GNB-CU-CP-E1AP-ID-Item */ +typedef struct UEID_GNB_CU_CP_E1AP_ID_Item { + GNB_CU_CP_UE_E1AP_ID_t gNB_CU_CP_UE_E1AP_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEID_GNB_CU_CP_E1AP_ID_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UEID_GNB_CU_CP_E1AP_ID_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_UEID_GNB_CU_CP_E1AP_ID_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_UEID_GNB_CU_CP_E1AP_ID_Item_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UEID_GNB_CU_CP_E1AP_ID_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/UEID-GNB-CU-CP-E1AP-ID-List.c b/e2sim/asn1c/UEID-GNB-CU-CP-E1AP-ID-List.c new file mode 100644 index 0000000..cbe0efa --- /dev/null +++ b/e2sim/asn1c/UEID-GNB-CU-CP-E1AP-ID-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "UEID-GNB-CU-CP-E1AP-ID-List.h" + +#include "UEID-GNB-CU-CP-E1AP-ID-Item.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_UEID_GNB_CU_CP_E1AP_ID_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_UEID_GNB_CU_CP_E1AP_ID_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UEID_GNB_CU_CP_E1AP_ID_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEID_GNB_CU_CP_E1AP_ID_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_UEID_GNB_CU_CP_E1AP_ID_List_specs_1 = { + sizeof(struct UEID_GNB_CU_CP_E1AP_ID_List), + offsetof(struct UEID_GNB_CU_CP_E1AP_ID_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_UEID_GNB_CU_CP_E1AP_ID_List = { + "UEID-GNB-CU-CP-E1AP-ID-List", + "UEID-GNB-CU-CP-E1AP-ID-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_UEID_GNB_CU_CP_E1AP_ID_List_tags_1, + sizeof(asn_DEF_UEID_GNB_CU_CP_E1AP_ID_List_tags_1) + /sizeof(asn_DEF_UEID_GNB_CU_CP_E1AP_ID_List_tags_1[0]), /* 1 */ + asn_DEF_UEID_GNB_CU_CP_E1AP_ID_List_tags_1, /* Same as above */ + sizeof(asn_DEF_UEID_GNB_CU_CP_E1AP_ID_List_tags_1) + /sizeof(asn_DEF_UEID_GNB_CU_CP_E1AP_ID_List_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_UEID_GNB_CU_CP_E1AP_ID_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_UEID_GNB_CU_CP_E1AP_ID_List_1, + 1, /* Single element */ + &asn_SPC_UEID_GNB_CU_CP_E1AP_ID_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/UEID-GNB-CU-CP-E1AP-ID-List.h b/e2sim/asn1c/UEID-GNB-CU-CP-E1AP-ID-List.h new file mode 100644 index 0000000..27646f7 --- /dev/null +++ b/e2sim/asn1c/UEID-GNB-CU-CP-E1AP-ID-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _UEID_GNB_CU_CP_E1AP_ID_List_H_ +#define _UEID_GNB_CU_CP_E1AP_ID_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct UEID_GNB_CU_CP_E1AP_ID_Item; + +/* UEID-GNB-CU-CP-E1AP-ID-List */ +typedef struct UEID_GNB_CU_CP_E1AP_ID_List { + A_SEQUENCE_OF(struct UEID_GNB_CU_CP_E1AP_ID_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEID_GNB_CU_CP_E1AP_ID_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UEID_GNB_CU_CP_E1AP_ID_List; +extern asn_SET_OF_specifics_t asn_SPC_UEID_GNB_CU_CP_E1AP_ID_List_specs_1; +extern asn_TYPE_member_t asn_MBR_UEID_GNB_CU_CP_E1AP_ID_List_1[1]; +extern asn_per_constraints_t asn_PER_type_UEID_GNB_CU_CP_E1AP_ID_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _UEID_GNB_CU_CP_E1AP_ID_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/UEID-GNB-CU-CP-F1AP-ID-Item.c b/e2sim/asn1c/UEID-GNB-CU-CP-F1AP-ID-Item.c new file mode 100644 index 0000000..7f0afa6 --- /dev/null +++ b/e2sim/asn1c/UEID-GNB-CU-CP-F1AP-ID-Item.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "UEID-GNB-CU-CP-F1AP-ID-Item.h" + +asn_TYPE_member_t asn_MBR_UEID_GNB_CU_CP_F1AP_ID_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEID_GNB_CU_CP_F1AP_ID_Item, gNB_CU_UE_F1AP_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GNB_CU_UE_F1AP_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "gNB-CU-UE-F1AP-ID" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEID_GNB_CU_CP_F1AP_ID_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEID_GNB_CU_CP_F1AP_ID_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gNB-CU-UE-F1AP-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEID_GNB_CU_CP_F1AP_ID_Item_specs_1 = { + sizeof(struct UEID_GNB_CU_CP_F1AP_ID_Item), + offsetof(struct UEID_GNB_CU_CP_F1AP_ID_Item, _asn_ctx), + asn_MAP_UEID_GNB_CU_CP_F1AP_ID_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_UEID_GNB_CU_CP_F1AP_ID_Item = { + "UEID-GNB-CU-CP-F1AP-ID-Item", + "UEID-GNB-CU-CP-F1AP-ID-Item", + &asn_OP_SEQUENCE, + asn_DEF_UEID_GNB_CU_CP_F1AP_ID_Item_tags_1, + sizeof(asn_DEF_UEID_GNB_CU_CP_F1AP_ID_Item_tags_1) + /sizeof(asn_DEF_UEID_GNB_CU_CP_F1AP_ID_Item_tags_1[0]), /* 1 */ + asn_DEF_UEID_GNB_CU_CP_F1AP_ID_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_UEID_GNB_CU_CP_F1AP_ID_Item_tags_1) + /sizeof(asn_DEF_UEID_GNB_CU_CP_F1AP_ID_Item_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_UEID_GNB_CU_CP_F1AP_ID_Item_1, + 1, /* Elements count */ + &asn_SPC_UEID_GNB_CU_CP_F1AP_ID_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/UEID-GNB-CU-CP-F1AP-ID-Item.h b/e2sim/asn1c/UEID-GNB-CU-CP-F1AP-ID-Item.h new file mode 100644 index 0000000..e3b48c2 --- /dev/null +++ b/e2sim/asn1c/UEID-GNB-CU-CP-F1AP-ID-Item.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _UEID_GNB_CU_CP_F1AP_ID_Item_H_ +#define _UEID_GNB_CU_CP_F1AP_ID_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "GNB-CU-UE-F1AP-ID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* UEID-GNB-CU-CP-F1AP-ID-Item */ +typedef struct UEID_GNB_CU_CP_F1AP_ID_Item { + GNB_CU_UE_F1AP_ID_t gNB_CU_UE_F1AP_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEID_GNB_CU_CP_F1AP_ID_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UEID_GNB_CU_CP_F1AP_ID_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_UEID_GNB_CU_CP_F1AP_ID_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_UEID_GNB_CU_CP_F1AP_ID_Item_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UEID_GNB_CU_CP_F1AP_ID_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/UEID-GNB-CU-F1AP-ID-List.c b/e2sim/asn1c/UEID-GNB-CU-F1AP-ID-List.c new file mode 100644 index 0000000..004d938 --- /dev/null +++ b/e2sim/asn1c/UEID-GNB-CU-F1AP-ID-List.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "UEID-GNB-CU-F1AP-ID-List.h" + +#include "UEID-GNB-CU-CP-F1AP-ID-Item.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_UEID_GNB_CU_F1AP_ID_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_UEID_GNB_CU_F1AP_ID_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UEID_GNB_CU_CP_F1AP_ID_Item, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEID_GNB_CU_F1AP_ID_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_UEID_GNB_CU_F1AP_ID_List_specs_1 = { + sizeof(struct UEID_GNB_CU_F1AP_ID_List), + offsetof(struct UEID_GNB_CU_F1AP_ID_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_UEID_GNB_CU_F1AP_ID_List = { + "UEID-GNB-CU-F1AP-ID-List", + "UEID-GNB-CU-F1AP-ID-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_UEID_GNB_CU_F1AP_ID_List_tags_1, + sizeof(asn_DEF_UEID_GNB_CU_F1AP_ID_List_tags_1) + /sizeof(asn_DEF_UEID_GNB_CU_F1AP_ID_List_tags_1[0]), /* 1 */ + asn_DEF_UEID_GNB_CU_F1AP_ID_List_tags_1, /* Same as above */ + sizeof(asn_DEF_UEID_GNB_CU_F1AP_ID_List_tags_1) + /sizeof(asn_DEF_UEID_GNB_CU_F1AP_ID_List_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_UEID_GNB_CU_F1AP_ID_List_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_UEID_GNB_CU_F1AP_ID_List_1, + 1, /* Single element */ + &asn_SPC_UEID_GNB_CU_F1AP_ID_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/UEID-GNB-CU-F1AP-ID-List.h b/e2sim/asn1c/UEID-GNB-CU-F1AP-ID-List.h new file mode 100644 index 0000000..46713ad --- /dev/null +++ b/e2sim/asn1c/UEID-GNB-CU-F1AP-ID-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _UEID_GNB_CU_F1AP_ID_List_H_ +#define _UEID_GNB_CU_F1AP_ID_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct UEID_GNB_CU_CP_F1AP_ID_Item; + +/* UEID-GNB-CU-F1AP-ID-List */ +typedef struct UEID_GNB_CU_F1AP_ID_List { + A_SEQUENCE_OF(struct UEID_GNB_CU_CP_F1AP_ID_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEID_GNB_CU_F1AP_ID_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UEID_GNB_CU_F1AP_ID_List; +extern asn_SET_OF_specifics_t asn_SPC_UEID_GNB_CU_F1AP_ID_List_specs_1; +extern asn_TYPE_member_t asn_MBR_UEID_GNB_CU_F1AP_ID_List_1[1]; +extern asn_per_constraints_t asn_PER_type_UEID_GNB_CU_F1AP_ID_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _UEID_GNB_CU_F1AP_ID_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/UEID-GNB-CU-UP.c b/e2sim/asn1c/UEID-GNB-CU-UP.c new file mode 100644 index 0000000..557b99d --- /dev/null +++ b/e2sim/asn1c/UEID-GNB-CU-UP.c @@ -0,0 +1,86 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "UEID-GNB-CU-UP.h" + +asn_TYPE_member_t asn_MBR_UEID_GNB_CU_UP_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEID_GNB_CU_UP, gNB_CU_CP_UE_E1AP_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GNB_CU_CP_UE_E1AP_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "gNB-CU-CP-UE-E1AP-ID" + }, + { ATF_POINTER, 1, offsetof(struct UEID_GNB_CU_UP, ran_UEID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RANUEID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ran-UEID" + }, +}; +static const int asn_MAP_UEID_GNB_CU_UP_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_UEID_GNB_CU_UP_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEID_GNB_CU_UP_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB-CU-CP-UE-E1AP-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ran-UEID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEID_GNB_CU_UP_specs_1 = { + sizeof(struct UEID_GNB_CU_UP), + offsetof(struct UEID_GNB_CU_UP, _asn_ctx), + asn_MAP_UEID_GNB_CU_UP_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_UEID_GNB_CU_UP_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UEID_GNB_CU_UP = { + "UEID-GNB-CU-UP", + "UEID-GNB-CU-UP", + &asn_OP_SEQUENCE, + asn_DEF_UEID_GNB_CU_UP_tags_1, + sizeof(asn_DEF_UEID_GNB_CU_UP_tags_1) + /sizeof(asn_DEF_UEID_GNB_CU_UP_tags_1[0]), /* 1 */ + asn_DEF_UEID_GNB_CU_UP_tags_1, /* Same as above */ + sizeof(asn_DEF_UEID_GNB_CU_UP_tags_1) + /sizeof(asn_DEF_UEID_GNB_CU_UP_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_UEID_GNB_CU_UP_1, + 2, /* Elements count */ + &asn_SPC_UEID_GNB_CU_UP_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/UEID-GNB-CU-UP.h b/e2sim/asn1c/UEID-GNB-CU-UP.h new file mode 100644 index 0000000..ddfce78 --- /dev/null +++ b/e2sim/asn1c/UEID-GNB-CU-UP.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _UEID_GNB_CU_UP_H_ +#define _UEID_GNB_CU_UP_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "GNB-CU-CP-UE-E1AP-ID.h" +#include "RANUEID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* UEID-GNB-CU-UP */ +typedef struct UEID_GNB_CU_UP { + GNB_CU_CP_UE_E1AP_ID_t gNB_CU_CP_UE_E1AP_ID; + RANUEID_t *ran_UEID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEID_GNB_CU_UP_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UEID_GNB_CU_UP; +extern asn_SEQUENCE_specifics_t asn_SPC_UEID_GNB_CU_UP_specs_1; +extern asn_TYPE_member_t asn_MBR_UEID_GNB_CU_UP_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UEID_GNB_CU_UP_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/UEID-GNB-DU.c b/e2sim/asn1c/UEID-GNB-DU.c new file mode 100644 index 0000000..27f2d19 --- /dev/null +++ b/e2sim/asn1c/UEID-GNB-DU.c @@ -0,0 +1,86 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "UEID-GNB-DU.h" + +asn_TYPE_member_t asn_MBR_UEID_GNB_DU_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEID_GNB_DU, gNB_CU_UE_F1AP_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GNB_CU_UE_F1AP_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "gNB-CU-UE-F1AP-ID" + }, + { ATF_POINTER, 1, offsetof(struct UEID_GNB_DU, ran_UEID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RANUEID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ran-UEID" + }, +}; +static const int asn_MAP_UEID_GNB_DU_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_UEID_GNB_DU_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEID_GNB_DU_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB-CU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ran-UEID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEID_GNB_DU_specs_1 = { + sizeof(struct UEID_GNB_DU), + offsetof(struct UEID_GNB_DU, _asn_ctx), + asn_MAP_UEID_GNB_DU_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_UEID_GNB_DU_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UEID_GNB_DU = { + "UEID-GNB-DU", + "UEID-GNB-DU", + &asn_OP_SEQUENCE, + asn_DEF_UEID_GNB_DU_tags_1, + sizeof(asn_DEF_UEID_GNB_DU_tags_1) + /sizeof(asn_DEF_UEID_GNB_DU_tags_1[0]), /* 1 */ + asn_DEF_UEID_GNB_DU_tags_1, /* Same as above */ + sizeof(asn_DEF_UEID_GNB_DU_tags_1) + /sizeof(asn_DEF_UEID_GNB_DU_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_UEID_GNB_DU_1, + 2, /* Elements count */ + &asn_SPC_UEID_GNB_DU_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/UEID-GNB-DU.h b/e2sim/asn1c/UEID-GNB-DU.h new file mode 100644 index 0000000..5a0f364 --- /dev/null +++ b/e2sim/asn1c/UEID-GNB-DU.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _UEID_GNB_DU_H_ +#define _UEID_GNB_DU_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "GNB-CU-UE-F1AP-ID.h" +#include "RANUEID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* UEID-GNB-DU */ +typedef struct UEID_GNB_DU { + GNB_CU_UE_F1AP_ID_t gNB_CU_UE_F1AP_ID; + RANUEID_t *ran_UEID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEID_GNB_DU_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UEID_GNB_DU; +extern asn_SEQUENCE_specifics_t asn_SPC_UEID_GNB_DU_specs_1; +extern asn_TYPE_member_t asn_MBR_UEID_GNB_DU_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UEID_GNB_DU_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/UEID-GNB.c b/e2sim/asn1c/UEID-GNB.c new file mode 100644 index 0000000..3f2d8de --- /dev/null +++ b/e2sim/asn1c/UEID-GNB.c @@ -0,0 +1,198 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "UEID-GNB.h" + +#include "UEID-GNB-CU-F1AP-ID-List.h" +#include "UEID-GNB-CU-CP-E1AP-ID-List.h" +#include "GlobalGNB-ID.h" +#include "GlobalNGRANNodeID.h" +asn_TYPE_member_t asn_MBR_UEID_GNB_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEID_GNB, amf_UE_NGAP_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AMF_UE_NGAP_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "amf-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEID_GNB, guami), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GUAMI, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "guami" + }, + { ATF_POINTER, 6, offsetof(struct UEID_GNB, gNB_CU_UE_F1AP_ID_List), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UEID_GNB_CU_F1AP_ID_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "gNB-CU-UE-F1AP-ID-List" + }, + { ATF_POINTER, 5, offsetof(struct UEID_GNB, gNB_CU_CP_UE_E1AP_ID_List), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UEID_GNB_CU_CP_E1AP_ID_List, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "gNB-CU-CP-UE-E1AP-ID-List" + }, + { ATF_POINTER, 4, offsetof(struct UEID_GNB, ran_UEID), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RANUEID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ran-UEID" + }, + { ATF_POINTER, 3, offsetof(struct UEID_GNB, m_NG_RAN_UE_XnAP_ID), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NG_RANnodeUEXnAPID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "m-NG-RAN-UE-XnAP-ID" + }, + { ATF_POINTER, 2, offsetof(struct UEID_GNB, globalGNB_ID), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GlobalGNB_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "globalGNB-ID" + }, + { ATF_POINTER, 1, offsetof(struct UEID_GNB, globalNG_RANNode_ID), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_GlobalNGRANNodeID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "globalNG-RANNode-ID" + }, +}; +static const int asn_MAP_UEID_GNB_oms_1[] = { 2, 3, 4, 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_UEID_GNB_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEID_GNB_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* amf-UE-NGAP-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* guami */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* gNB-CU-UE-F1AP-ID-List */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* gNB-CU-CP-UE-E1AP-ID-List */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* ran-UEID */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* m-NG-RAN-UE-XnAP-ID */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* globalGNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* globalNG-RANNode-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEID_GNB_specs_1 = { + sizeof(struct UEID_GNB), + offsetof(struct UEID_GNB, _asn_ctx), + asn_MAP_UEID_GNB_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_UEID_GNB_oms_1, /* Optional members */ + 5, 1, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UEID_GNB = { + "UEID-GNB", + "UEID-GNB", + &asn_OP_SEQUENCE, + asn_DEF_UEID_GNB_tags_1, + sizeof(asn_DEF_UEID_GNB_tags_1) + /sizeof(asn_DEF_UEID_GNB_tags_1[0]), /* 1 */ + asn_DEF_UEID_GNB_tags_1, /* Same as above */ + sizeof(asn_DEF_UEID_GNB_tags_1) + /sizeof(asn_DEF_UEID_GNB_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_UEID_GNB_1, + 8, /* Elements count */ + &asn_SPC_UEID_GNB_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/UEID-GNB.h b/e2sim/asn1c/UEID-GNB.h new file mode 100644 index 0000000..4acb78a --- /dev/null +++ b/e2sim/asn1c/UEID-GNB.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _UEID_GNB_H_ +#define _UEID_GNB_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "AMF-UE-NGAP-ID.h" +#include "GUAMI.h" +#include "RANUEID.h" +#include "NG-RANnodeUEXnAPID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct UEID_GNB_CU_F1AP_ID_List; +struct UEID_GNB_CU_CP_E1AP_ID_List; +struct GlobalGNB_ID; +struct GlobalNGRANNodeID; + +/* UEID-GNB */ +typedef struct UEID_GNB { + AMF_UE_NGAP_ID_t amf_UE_NGAP_ID; + GUAMI_t guami; + struct UEID_GNB_CU_F1AP_ID_List *gNB_CU_UE_F1AP_ID_List; /* OPTIONAL */ + struct UEID_GNB_CU_CP_E1AP_ID_List *gNB_CU_CP_UE_E1AP_ID_List; /* OPTIONAL */ + RANUEID_t *ran_UEID; /* OPTIONAL */ + NG_RANnodeUEXnAPID_t *m_NG_RAN_UE_XnAP_ID; /* OPTIONAL */ + struct GlobalGNB_ID *globalGNB_ID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct GlobalNGRANNodeID *globalNG_RANNode_ID; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEID_GNB_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UEID_GNB; +extern asn_SEQUENCE_specifics_t asn_SPC_UEID_GNB_specs_1; +extern asn_TYPE_member_t asn_MBR_UEID_GNB_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UEID_GNB_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/UEID-NG-ENB-DU.c b/e2sim/asn1c/UEID-NG-ENB-DU.c new file mode 100644 index 0000000..538978e --- /dev/null +++ b/e2sim/asn1c/UEID-NG-ENB-DU.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "UEID-NG-ENB-DU.h" + +asn_TYPE_member_t asn_MBR_UEID_NG_ENB_DU_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEID_NG_ENB_DU, ng_eNB_CU_UE_W1AP_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NGENB_CU_UE_W1AP_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ng-eNB-CU-UE-W1AP-ID" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEID_NG_ENB_DU_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEID_NG_ENB_DU_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ng-eNB-CU-UE-W1AP-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEID_NG_ENB_DU_specs_1 = { + sizeof(struct UEID_NG_ENB_DU), + offsetof(struct UEID_NG_ENB_DU, _asn_ctx), + asn_MAP_UEID_NG_ENB_DU_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_UEID_NG_ENB_DU = { + "UEID-NG-ENB-DU", + "UEID-NG-ENB-DU", + &asn_OP_SEQUENCE, + asn_DEF_UEID_NG_ENB_DU_tags_1, + sizeof(asn_DEF_UEID_NG_ENB_DU_tags_1) + /sizeof(asn_DEF_UEID_NG_ENB_DU_tags_1[0]), /* 1 */ + asn_DEF_UEID_NG_ENB_DU_tags_1, /* Same as above */ + sizeof(asn_DEF_UEID_NG_ENB_DU_tags_1) + /sizeof(asn_DEF_UEID_NG_ENB_DU_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_UEID_NG_ENB_DU_1, + 1, /* Elements count */ + &asn_SPC_UEID_NG_ENB_DU_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/UEID-NG-ENB-DU.h b/e2sim/asn1c/UEID-NG-ENB-DU.h new file mode 100644 index 0000000..76524e1 --- /dev/null +++ b/e2sim/asn1c/UEID-NG-ENB-DU.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _UEID_NG_ENB_DU_H_ +#define _UEID_NG_ENB_DU_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NGENB-CU-UE-W1AP-ID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* UEID-NG-ENB-DU */ +typedef struct UEID_NG_ENB_DU { + NGENB_CU_UE_W1AP_ID_t ng_eNB_CU_UE_W1AP_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEID_NG_ENB_DU_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UEID_NG_ENB_DU; +extern asn_SEQUENCE_specifics_t asn_SPC_UEID_NG_ENB_DU_specs_1; +extern asn_TYPE_member_t asn_MBR_UEID_NG_ENB_DU_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UEID_NG_ENB_DU_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/UEID-NG-ENB.c b/e2sim/asn1c/UEID-NG-ENB.c new file mode 100644 index 0000000..9bb4f29 --- /dev/null +++ b/e2sim/asn1c/UEID-NG-ENB.c @@ -0,0 +1,160 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "UEID-NG-ENB.h" + +#include "GlobalNgENB-ID.h" +#include "GlobalNGRANNodeID.h" +asn_TYPE_member_t asn_MBR_UEID_NG_ENB_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEID_NG_ENB, amf_UE_NGAP_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AMF_UE_NGAP_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "amf-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEID_NG_ENB, guami), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GUAMI, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "guami" + }, + { ATF_POINTER, 4, offsetof(struct UEID_NG_ENB, ng_eNB_CU_UE_W1AP_ID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NGENB_CU_UE_W1AP_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ng-eNB-CU-UE-W1AP-ID" + }, + { ATF_POINTER, 3, offsetof(struct UEID_NG_ENB, m_NG_RAN_UE_XnAP_ID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NG_RANnodeUEXnAPID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "m-NG-RAN-UE-XnAP-ID" + }, + { ATF_POINTER, 2, offsetof(struct UEID_NG_ENB, globalNgENB_ID), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GlobalNgENB_ID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "globalNgENB-ID" + }, + { ATF_POINTER, 1, offsetof(struct UEID_NG_ENB, globalNG_RANNode_ID), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_GlobalNGRANNodeID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "globalNG-RANNode-ID" + }, +}; +static const int asn_MAP_UEID_NG_ENB_oms_1[] = { 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_UEID_NG_ENB_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEID_NG_ENB_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* amf-UE-NGAP-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* guami */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ng-eNB-CU-UE-W1AP-ID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* m-NG-RAN-UE-XnAP-ID */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* globalNgENB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* globalNG-RANNode-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEID_NG_ENB_specs_1 = { + sizeof(struct UEID_NG_ENB), + offsetof(struct UEID_NG_ENB, _asn_ctx), + asn_MAP_UEID_NG_ENB_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_UEID_NG_ENB_oms_1, /* Optional members */ + 3, 1, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UEID_NG_ENB = { + "UEID-NG-ENB", + "UEID-NG-ENB", + &asn_OP_SEQUENCE, + asn_DEF_UEID_NG_ENB_tags_1, + sizeof(asn_DEF_UEID_NG_ENB_tags_1) + /sizeof(asn_DEF_UEID_NG_ENB_tags_1[0]), /* 1 */ + asn_DEF_UEID_NG_ENB_tags_1, /* Same as above */ + sizeof(asn_DEF_UEID_NG_ENB_tags_1) + /sizeof(asn_DEF_UEID_NG_ENB_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_UEID_NG_ENB_1, + 6, /* Elements count */ + &asn_SPC_UEID_NG_ENB_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/UEID-NG-ENB.h b/e2sim/asn1c/UEID-NG-ENB.h new file mode 100644 index 0000000..99c4432 --- /dev/null +++ b/e2sim/asn1c/UEID-NG-ENB.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _UEID_NG_ENB_H_ +#define _UEID_NG_ENB_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "AMF-UE-NGAP-ID.h" +#include "GUAMI.h" +#include "NGENB-CU-UE-W1AP-ID.h" +#include "NG-RANnodeUEXnAPID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct GlobalNgENB_ID; +struct GlobalNGRANNodeID; + +/* UEID-NG-ENB */ +typedef struct UEID_NG_ENB { + AMF_UE_NGAP_ID_t amf_UE_NGAP_ID; + GUAMI_t guami; + NGENB_CU_UE_W1AP_ID_t *ng_eNB_CU_UE_W1AP_ID; /* OPTIONAL */ + NG_RANnodeUEXnAPID_t *m_NG_RAN_UE_XnAP_ID; /* OPTIONAL */ + struct GlobalNgENB_ID *globalNgENB_ID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct GlobalNGRANNodeID *globalNG_RANNode_ID; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEID_NG_ENB_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UEID_NG_ENB; +extern asn_SEQUENCE_specifics_t asn_SPC_UEID_NG_ENB_specs_1; +extern asn_TYPE_member_t asn_MBR_UEID_NG_ENB_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UEID_NG_ENB_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/UEID.c b/e2sim/asn1c/UEID.c new file mode 100644 index 0000000..66bbaa5 --- /dev/null +++ b/e2sim/asn1c/UEID.c @@ -0,0 +1,185 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "UEID.h" + +#include "UEID-GNB.h" +#include "UEID-GNB-DU.h" +#include "UEID-GNB-CU-UP.h" +#include "UEID-NG-ENB.h" +#include "UEID-NG-ENB-DU.h" +#include "UEID-EN-GNB.h" +#include "UEID-ENB.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_UEID_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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_UEID_1[] = { + { ATF_POINTER, 0, offsetof(struct UEID, choice.gNB_UEID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UEID_GNB, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "gNB-UEID" + }, + { ATF_POINTER, 0, offsetof(struct UEID, choice.gNB_DU_UEID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UEID_GNB_DU, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "gNB-DU-UEID" + }, + { ATF_POINTER, 0, offsetof(struct UEID, choice.gNB_CU_UP_UEID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UEID_GNB_CU_UP, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "gNB-CU-UP-UEID" + }, + { ATF_POINTER, 0, offsetof(struct UEID, choice.ng_eNB_UEID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UEID_NG_ENB, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ng-eNB-UEID" + }, + { ATF_POINTER, 0, offsetof(struct UEID, choice.ng_eNB_DU_UEID), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UEID_NG_ENB_DU, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ng-eNB-DU-UEID" + }, + { ATF_POINTER, 0, offsetof(struct UEID, choice.en_gNB_UEID), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UEID_EN_GNB, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "en-gNB-UEID" + }, + { ATF_POINTER, 0, offsetof(struct UEID, choice.eNB_UEID), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UEID_ENB, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "eNB-UEID" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_UEID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB-UEID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* gNB-DU-UEID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* gNB-CU-UP-UEID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ng-eNB-UEID */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* ng-eNB-DU-UEID */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* en-gNB-UEID */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* eNB-UEID */ +}; +asn_CHOICE_specifics_t asn_SPC_UEID_specs_1 = { + sizeof(struct UEID), + offsetof(struct UEID, _asn_ctx), + offsetof(struct UEID, present), + sizeof(((struct UEID *)0)->present), + asn_MAP_UEID_tag2el_1, + 7, /* Count of tags in the map */ + 0, 0, + 7 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_UEID = { + "UEID", + "UEID", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_UEID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_UEID_1, + 7, /* Elements count */ + &asn_SPC_UEID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/UEID.h b/e2sim/asn1c/UEID.h new file mode 100644 index 0000000..f69cc5b --- /dev/null +++ b/e2sim/asn1c/UEID.h @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-COMMON-IEs" + * found in "e2sm-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _UEID_H_ +#define _UEID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum UEID_PR { + UEID_PR_NOTHING, /* No components present */ + UEID_PR_gNB_UEID, + UEID_PR_gNB_DU_UEID, + UEID_PR_gNB_CU_UP_UEID, + UEID_PR_ng_eNB_UEID, + UEID_PR_ng_eNB_DU_UEID, + UEID_PR_en_gNB_UEID, + UEID_PR_eNB_UEID + /* Extensions may appear below */ + +} UEID_PR; + +/* Forward declarations */ +struct UEID_GNB; +struct UEID_GNB_DU; +struct UEID_GNB_CU_UP; +struct UEID_NG_ENB; +struct UEID_NG_ENB_DU; +struct UEID_EN_GNB; +struct UEID_ENB; + +/* UEID */ +typedef struct UEID { + UEID_PR present; + union UEID_u { + struct UEID_GNB *gNB_UEID; + struct UEID_GNB_DU *gNB_DU_UEID; + struct UEID_GNB_CU_UP *gNB_CU_UP_UEID; + struct UEID_NG_ENB *ng_eNB_UEID; + struct UEID_NG_ENB_DU *ng_eNB_DU_UEID; + struct UEID_EN_GNB *en_gNB_UEID; + struct UEID_ENB *eNB_UEID; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UEID; +extern asn_CHOICE_specifics_t asn_SPC_UEID_specs_1; +extern asn_TYPE_member_t asn_MBR_UEID_1[7]; +extern asn_per_constraints_t asn_PER_type_UEID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _UEID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/UEMeasurementReportItem.c b/e2sim/asn1c/UEMeasurementReportItem.c new file mode 100644 index 0000000..e158a38 --- /dev/null +++ b/e2sim/asn1c/UEMeasurementReportItem.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "UEMeasurementReportItem.h" + +asn_TYPE_member_t asn_MBR_UEMeasurementReportItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEMeasurementReportItem, ueID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_UEID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ueID" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEMeasurementReportItem, measReport), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2SM_KPM_IndicationMessage_Format1, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "measReport" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEMeasurementReportItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEMeasurementReportItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ueID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* measReport */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEMeasurementReportItem_specs_1 = { + sizeof(struct UEMeasurementReportItem), + offsetof(struct UEMeasurementReportItem, _asn_ctx), + asn_MAP_UEMeasurementReportItem_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_UEMeasurementReportItem = { + "UEMeasurementReportItem", + "UEMeasurementReportItem", + &asn_OP_SEQUENCE, + asn_DEF_UEMeasurementReportItem_tags_1, + sizeof(asn_DEF_UEMeasurementReportItem_tags_1) + /sizeof(asn_DEF_UEMeasurementReportItem_tags_1[0]), /* 1 */ + asn_DEF_UEMeasurementReportItem_tags_1, /* Same as above */ + sizeof(asn_DEF_UEMeasurementReportItem_tags_1) + /sizeof(asn_DEF_UEMeasurementReportItem_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_UEMeasurementReportItem_1, + 2, /* Elements count */ + &asn_SPC_UEMeasurementReportItem_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/UEMeasurementReportItem.h b/e2sim/asn1c/UEMeasurementReportItem.h new file mode 100644 index 0000000..8b8dae8 --- /dev/null +++ b/e2sim/asn1c/UEMeasurementReportItem.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _UEMeasurementReportItem_H_ +#define _UEMeasurementReportItem_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "UEID.h" +#include "E2SM-KPM-IndicationMessage-Format1.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* UEMeasurementReportItem */ +typedef struct UEMeasurementReportItem { + UEID_t ueID; + E2SM_KPM_IndicationMessage_Format1_t measReport; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEMeasurementReportItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UEMeasurementReportItem; +extern asn_SEQUENCE_specifics_t asn_SPC_UEMeasurementReportItem_specs_1; +extern asn_TYPE_member_t asn_MBR_UEMeasurementReportItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UEMeasurementReportItem_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/UEMeasurementReportList.c b/e2sim/asn1c/UEMeasurementReportList.c new file mode 100644 index 0000000..a8d67be --- /dev/null +++ b/e2sim/asn1c/UEMeasurementReportList.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "UEMeasurementReportList.h" + +#include "UEMeasurementReportItem.h" +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_UEMeasurementReportList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_UEMeasurementReportList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UEMeasurementReportItem, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEMeasurementReportList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_UEMeasurementReportList_specs_1 = { + sizeof(struct UEMeasurementReportList), + offsetof(struct UEMeasurementReportList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_UEMeasurementReportList = { + "UEMeasurementReportList", + "UEMeasurementReportList", + &asn_OP_SEQUENCE_OF, + asn_DEF_UEMeasurementReportList_tags_1, + sizeof(asn_DEF_UEMeasurementReportList_tags_1) + /sizeof(asn_DEF_UEMeasurementReportList_tags_1[0]), /* 1 */ + asn_DEF_UEMeasurementReportList_tags_1, /* Same as above */ + sizeof(asn_DEF_UEMeasurementReportList_tags_1) + /sizeof(asn_DEF_UEMeasurementReportList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_UEMeasurementReportList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_UEMeasurementReportList_1, + 1, /* Single element */ + &asn_SPC_UEMeasurementReportList_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/UEMeasurementReportList.h b/e2sim/asn1c/UEMeasurementReportList.h new file mode 100644 index 0000000..081afc6 --- /dev/null +++ b/e2sim/asn1c/UEMeasurementReportList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "e2sm-kpm-v03.00.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _UEMeasurementReportList_H_ +#define _UEMeasurementReportList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct UEMeasurementReportItem; + +/* UEMeasurementReportList */ +typedef struct UEMeasurementReportList { + A_SEQUENCE_OF(struct UEMeasurementReportItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEMeasurementReportList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UEMeasurementReportList; +extern asn_SET_OF_specifics_t asn_SPC_UEMeasurementReportList_specs_1; +extern asn_TYPE_member_t asn_MBR_UEMeasurementReportList_1[1]; +extern asn_per_constraints_t asn_PER_type_UEMeasurementReportList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _UEMeasurementReportList_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/UnsuccessfulOutcome.c b/e2sim/asn1c/UnsuccessfulOutcome.c new file mode 100644 index 0000000..75678bb --- /dev/null +++ b/e2sim/asn1c/UnsuccessfulOutcome.c @@ -0,0 +1,592 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Descriptions" + * found in "e2ap-epd-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#include "UnsuccessfulOutcome.h" + +static const long asn_VAL_1_id_RICsubscription = 8; +static const long asn_VAL_1_reject = 0; +static const long asn_VAL_2_id_RICsubscriptionDelete = 9; +static const long asn_VAL_2_reject = 0; +static const long asn_VAL_3_id_RICsubscriptionModification = 14; +static const long asn_VAL_3_reject = 0; +static const long asn_VAL_4_id_RICsubscriptionModificationRequired = 15; +static const long asn_VAL_4_reject = 0; +static const long asn_VAL_5_id_RICquery = 16; +static const long asn_VAL_5_reject = 0; +static const long asn_VAL_6_id_RICserviceUpdate = 7; +static const long asn_VAL_6_reject = 0; +static const long asn_VAL_7_id_RICcontrol = 4; +static const long asn_VAL_7_reject = 0; +static const long asn_VAL_8_id_E2setup = 1; +static const long asn_VAL_8_reject = 0; +static const long asn_VAL_9_id_E2nodeConfigurationUpdate = 10; +static const long asn_VAL_9_reject = 0; +static const long asn_VAL_10_id_E2connectionUpdate = 11; +static const long asn_VAL_10_reject = 0; +static const long asn_VAL_11_id_Reset = 3; +static const long asn_VAL_11_reject = 0; +static const long asn_VAL_12_id_E2removal = 13; +static const long asn_VAL_12_reject = 0; +static const long asn_VAL_13_id_RICindication = 5; +static const long asn_VAL_13_ignore = 1; +static const long asn_VAL_14_id_RICserviceQuery = 6; +static const long asn_VAL_14_ignore = 1; +static const long asn_VAL_15_id_ErrorIndication = 2; +static const long asn_VAL_15_ignore = 1; +static const long asn_VAL_16_id_RICsubscriptionDeleteRequired = 12; +static const long asn_VAL_16_ignore = 1; +static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { + { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_RICsubscription }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_RICsubscriptionDelete }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionModificationRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionModificationResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionModificationFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_RICsubscriptionModification }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionModificationRequired }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionModificationConfirm }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionModificationRefuse }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_RICsubscriptionModificationRequired }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICQueryRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICQueryResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICQueryFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_RICquery }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceUpdate }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateAcknowledge }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_RICserviceUpdate }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICcontrolRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolAcknowledge }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_RICcontrol }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_E2setupRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2setupResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2setupFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_E2setup }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_E2nodeConfigurationUpdate }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2nodeConfigurationUpdateAcknowledge }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2nodeConfigurationUpdateFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_E2nodeConfigurationUpdate }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_E2connectionUpdate }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2connectionUpdateAcknowledge }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2connectionUpdateFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_10_id_E2connectionUpdate }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ResetRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_11_id_Reset }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_E2RemovalRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2RemovalResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2RemovalFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_12_id_E2removal }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICindication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_13_id_RICindication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_13_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceQuery }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_14_id_RICserviceQuery }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_14_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_15_id_ErrorIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_15_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequired }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_16_id_RICsubscriptionDeleteRequired }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_16_ignore } +}; +static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { + { 16, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } +}; +static int +memb_procedureCode_constraint_1(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 >= 0L && value <= 255L)) { + /* 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_UnsuccessfulOutcome_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_E2AP_ELEMENTARY_PROCEDURES_1; + size_t constraining_column = 3; /* &procedureCode */ + size_t for_column = 4; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UnsuccessfulOutcome, procedureCode)); + + 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_1(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_UnsuccessfulOutcome_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_E2AP_ELEMENTARY_PROCEDURES_1; + size_t constraining_column = 3; /* &procedureCode */ + size_t for_column = 2; /* &UnsuccessfulOutcome */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UnsuccessfulOutcome, procedureCode)); + + 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_1(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); +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +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 */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_value_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICsubscriptionFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscriptionFailure, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICsubscriptionFailure" + }, + { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICsubscriptionDeleteFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscriptionDeleteFailure, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICsubscriptionDeleteFailure" + }, + { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICsubscriptionModificationFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscriptionModificationFailure, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICsubscriptionModificationFailure" + }, + { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICsubscriptionModificationRefuse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscriptionModificationRefuse, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICsubscriptionModificationRefuse" + }, + { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICQueryFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICQueryFailure, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICQueryFailure" + }, + { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICserviceUpdateFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICserviceUpdateFailure, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICserviceUpdateFailure" + }, + { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICcontrolFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICcontrolFailure, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RICcontrolFailure" + }, + { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.E2setupFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2setupFailure, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "E2setupFailure" + }, + { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.E2nodeConfigurationUpdateFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeConfigurationUpdateFailure, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "E2nodeConfigurationUpdateFailure" + }, + { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.E2connectionUpdateFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2connectionUpdateFailure, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "E2connectionUpdateFailure" + }, + { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.E2RemovalFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2RemovalFailure, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "E2RemovalFailure" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 10 }, /* RICsubscriptionFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 9 }, /* RICsubscriptionDeleteFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 8 }, /* RICsubscriptionModificationFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 7 }, /* RICsubscriptionModificationRefuse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 6 }, /* RICQueryFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 5 }, /* RICserviceUpdateFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -6, 4 }, /* RICcontrolFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -7, 3 }, /* E2setupFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -8, 2 }, /* E2nodeConfigurationUpdateFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -9, 1 }, /* E2connectionUpdateFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 10, -10, 0 } /* E2RemovalFailure */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { + sizeof(struct UnsuccessfulOutcome__value), + offsetof(struct UnsuccessfulOutcome__value, _asn_ctx), + offsetof(struct UnsuccessfulOutcome__value, present), + sizeof(((struct UnsuccessfulOutcome__value *)0)->present), + asn_MAP_value_tag2el_4, + 11, /* 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) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_4, + 11, /* Elements count */ + &asn_SPC_value_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UnsuccessfulOutcome_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome, procedureCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProcedureCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_procedureCode_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_procedureCode_constraint_1 + }, + 0, 0, /* No default value */ + "procedureCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_UnsuccessfulOutcome_criticality_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_criticality_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_criticality_constraint_1 + }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_4, + select_UnsuccessfulOutcome_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_4, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_1 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_UnsuccessfulOutcome_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UnsuccessfulOutcome_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ + { (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_UnsuccessfulOutcome_specs_1 = { + sizeof(struct UnsuccessfulOutcome), + offsetof(struct UnsuccessfulOutcome, _asn_ctx), + asn_MAP_UnsuccessfulOutcome_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_UnsuccessfulOutcome = { + "UnsuccessfulOutcome", + "UnsuccessfulOutcome", + &asn_OP_SEQUENCE, + asn_DEF_UnsuccessfulOutcome_tags_1, + sizeof(asn_DEF_UnsuccessfulOutcome_tags_1) + /sizeof(asn_DEF_UnsuccessfulOutcome_tags_1[0]), /* 1 */ + asn_DEF_UnsuccessfulOutcome_tags_1, /* Same as above */ + sizeof(asn_DEF_UnsuccessfulOutcome_tags_1) + /sizeof(asn_DEF_UnsuccessfulOutcome_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_UnsuccessfulOutcome_1, + 3, /* Elements count */ + &asn_SPC_UnsuccessfulOutcome_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/asn1c/UnsuccessfulOutcome.h b/e2sim/asn1c/UnsuccessfulOutcome.h new file mode 100644 index 0000000..9d7c6e3 --- /dev/null +++ b/e2sim/asn1c/UnsuccessfulOutcome.h @@ -0,0 +1,120 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Descriptions" + * found in "e2ap-epd-v03.01.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -no-gen-example -no-gen-OER -D /tmp/workspace/oransim-gerrit/e2sim/asn1c/` + */ + +#ifndef _UnsuccessfulOutcome_H_ +#define _UnsuccessfulOutcome_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProcedureCode.h" +#include "Criticality.h" +#include "ANY.h" +#include "asn_ioc.h" +#include "RICsubscriptionRequest.h" +#include "RICsubscriptionResponse.h" +#include "RICsubscriptionFailure.h" +#include "RICsubscriptionDeleteRequest.h" +#include "RICsubscriptionDeleteResponse.h" +#include "RICsubscriptionDeleteFailure.h" +#include "RICsubscriptionModificationRequest.h" +#include "RICsubscriptionModificationResponse.h" +#include "RICsubscriptionModificationFailure.h" +#include "RICsubscriptionModificationRequired.h" +#include "RICsubscriptionModificationConfirm.h" +#include "RICsubscriptionModificationRefuse.h" +#include "RICQueryRequest.h" +#include "RICQueryResponse.h" +#include "RICQueryFailure.h" +#include "RICserviceUpdate.h" +#include "RICserviceUpdateAcknowledge.h" +#include "RICserviceUpdateFailure.h" +#include "RICcontrolRequest.h" +#include "RICcontrolAcknowledge.h" +#include "RICcontrolFailure.h" +#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 "E2RemovalRequest.h" +#include "E2RemovalResponse.h" +#include "E2RemovalFailure.h" +#include "RICindication.h" +#include "RICserviceQuery.h" +#include "ErrorIndication.h" +#include "RICsubscriptionDeleteRequired.h" +#include "OPEN_TYPE.h" +#include "constr_CHOICE.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum UnsuccessfulOutcome__value_PR { + UnsuccessfulOutcome__value_PR_NOTHING, /* No components present */ + UnsuccessfulOutcome__value_PR_RICsubscriptionFailure, + UnsuccessfulOutcome__value_PR_RICsubscriptionDeleteFailure, + UnsuccessfulOutcome__value_PR_RICsubscriptionModificationFailure, + UnsuccessfulOutcome__value_PR_RICsubscriptionModificationRefuse, + UnsuccessfulOutcome__value_PR_RICQueryFailure, + UnsuccessfulOutcome__value_PR_RICserviceUpdateFailure, + UnsuccessfulOutcome__value_PR_RICcontrolFailure, + UnsuccessfulOutcome__value_PR_E2setupFailure, + UnsuccessfulOutcome__value_PR_E2nodeConfigurationUpdateFailure, + UnsuccessfulOutcome__value_PR_E2connectionUpdateFailure, + UnsuccessfulOutcome__value_PR_E2RemovalFailure +} UnsuccessfulOutcome__value_PR; + +/* UnsuccessfulOutcome */ +typedef struct UnsuccessfulOutcome { + ProcedureCode_t procedureCode; + Criticality_t criticality; + struct UnsuccessfulOutcome__value { + UnsuccessfulOutcome__value_PR present; + union UnsuccessfulOutcome__value_u { + RICsubscriptionFailure_t RICsubscriptionFailure; + RICsubscriptionDeleteFailure_t RICsubscriptionDeleteFailure; + RICsubscriptionModificationFailure_t RICsubscriptionModificationFailure; + RICsubscriptionModificationRefuse_t RICsubscriptionModificationRefuse; + RICQueryFailure_t RICQueryFailure; + RICserviceUpdateFailure_t RICserviceUpdateFailure; + RICcontrolFailure_t RICcontrolFailure; + E2setupFailure_t E2setupFailure; + E2nodeConfigurationUpdateFailure_t E2nodeConfigurationUpdateFailure; + E2connectionUpdateFailure_t E2connectionUpdateFailure; + E2RemovalFailure_t E2RemovalFailure; + } 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; +} UnsuccessfulOutcome_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UnsuccessfulOutcome; +extern asn_SEQUENCE_specifics_t asn_SPC_UnsuccessfulOutcome_specs_1; +extern asn_TYPE_member_t asn_MBR_UnsuccessfulOutcome_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UnsuccessfulOutcome_H_ */ +#include "asn_internal.h" diff --git a/e2sim/asn1c/aper_decoder.c b/e2sim/asn1c/aper_decoder.c new file mode 100644 index 0000000..0637b6a --- /dev/null +++ b/e2sim/asn1c/aper_decoder.c @@ -0,0 +1,91 @@ +#include +#include +#include + +asn_dec_rval_t +aper_decode_complete(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const void *buffer, size_t size) { + asn_dec_rval_t rval; + + rval = aper_decode(opt_codec_ctx, td, sptr, buffer, size, 0, 0); + if(rval.consumed) { + /* + * We've always given 8-aligned data, + * so convert bits to integral bytes. + */ + rval.consumed += 7; + rval.consumed >>= 3; + } else if(rval.code == RC_OK) { + if(size) { + if(((const uint8_t *)buffer)[0] == 0) { + rval.consumed = 1; /* 1 byte */ + } else { + ASN_DEBUG("Expecting single zeroed byte"); + rval.code = RC_FAIL; + } + } else { + /* Must contain at least 8 bits. */ + rval.code = RC_WMORE; + } + } + + return rval; +} + +asn_dec_rval_t +aper_decode(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, const void *buffer, + size_t size, int skip_bits, int unused_bits) { + asn_codec_ctx_t s_codec_ctx; + asn_dec_rval_t rval; + asn_per_data_t pd; + + if(skip_bits < 0 || skip_bits > 7 + || unused_bits < 0 || unused_bits > 7 + || (unused_bits > 0 && !size)) + ASN__DECODE_FAILED; + + /* + * Stack checker requires that the codec context + * must be allocated on the stack. + */ + if(opt_codec_ctx) { + if(opt_codec_ctx->max_stack_size) { + s_codec_ctx = *opt_codec_ctx; + opt_codec_ctx = &s_codec_ctx; + } + } else { + /* If context is not given, be security-conscious anyway */ + memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); + s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; + opt_codec_ctx = &s_codec_ctx; + } + + /* Fill in the position indicator */ + memset(&pd, 0, sizeof(pd)); + pd.buffer = (const uint8_t *)buffer; + pd.nboff = skip_bits; + pd.nbits = 8 * size - unused_bits; /* 8 is CHAR_BIT from */ + if(pd.nboff > pd.nbits) + ASN__DECODE_FAILED; + + /* + * Invoke type-specific decoder. + */ + if(!td->op->aper_decoder) + ASN__DECODE_FAILED; /* PER is not compiled in */ + rval = td->op->aper_decoder(opt_codec_ctx, td, 0, sptr, &pd); + if(rval.code == RC_OK) { + /* Return the number of consumed bits */ + rval.consumed = ((pd.buffer - (const uint8_t *)buffer) << 3) + + pd.nboff - skip_bits; + ASN_DEBUG("PER decoding consumed %zu, counted %zu", + rval.consumed, pd.moved); + assert(rval.consumed == pd.moved); + } else { + /* PER codec is not a restartable */ + rval.consumed = 0; + } + return rval; +} diff --git a/e2sim/asn1c/aper_decoder.h b/e2sim/asn1c/aper_decoder.h new file mode 100644 index 0000000..10352c7 --- /dev/null +++ b/e2sim/asn1c/aper_decoder.h @@ -0,0 +1,47 @@ +/*- + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _APER_DECODER_H_ +#define _APER_DECODER_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * Aligned PER decoder of a "complete encoding" as per X.691#10.1. + * On success, this call always returns (.consumed >= 1), in BITS, as per X.691#10.1.3. + */ +asn_dec_rval_t aper_decode_complete( + const struct asn_codec_ctx_s *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ + void **struct_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size /* Size of data buffer */ + ); + +/* + * Aligned PER decoder of any ASN.1 type. May be invoked by the application. + * WARNING: This call returns the number of BITS read from the stream. Beware. + */ +asn_dec_rval_t aper_decode( + const struct asn_codec_ctx_s *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ + void **struct_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size, /* Size of data buffer */ + int skip_bits, /* Number of unused leading bits, 0..7 */ + int unused_bits /* Number of unused tailing bits, 0..7 */ + ); + +#ifdef __cplusplus +} +#endif + +#endif /* _APER_DECODER_H_ */ diff --git a/e2sim/asn1c/aper_encoder.c b/e2sim/asn1c/aper_encoder.c new file mode 100644 index 0000000..d9b1c1d --- /dev/null +++ b/e2sim/asn1c/aper_encoder.c @@ -0,0 +1,129 @@ +#include +#include +#include + +/* + * Argument type and callback necessary for aper_encode_to_buffer(). + */ +typedef struct enc_to_buf_arg { + void *buffer; + size_t left; +} enc_to_buf_arg; +static int encode_to_buffer_cb(const void *buffer, size_t size, void *key) { + enc_to_buf_arg *arg = (enc_to_buf_arg *)key; + + if(arg->left < size) + return -1; /* Data exceeds the available buffer size */ + + memcpy(arg->buffer, buffer, size); + arg->buffer = ((char *)arg->buffer) + size; + arg->left -= size; + + return 0; +} + +asn_enc_rval_t +aper_encode_to_buffer(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, void *buffer, size_t buffer_size) { + enc_to_buf_arg key; + + key.buffer = buffer; + key.left = buffer_size; + + if(td) ASN_DEBUG("Encoding \"%s\" using ALIGNED PER", td->name); + + return aper_encode(td, constraints, sptr, encode_to_buffer_cb, &key); +} + +ssize_t +aper_encode_to_new_buffer(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, void **buffer_r) { + asn_enc_rval_t er = {0,0,0}; + enc_dyn_arg key; + + memset(&key, 0, sizeof(key)); + + er = aper_encode(td, constraints, sptr, encode_dyn_cb, &key); + switch(er.encoded) { + case -1: + FREEMEM(key.buffer); + return -1; + case 0: + FREEMEM(key.buffer); + key.buffer = MALLOC(1); + if(key.buffer) { + *(char *)key.buffer = '\0'; + *buffer_r = key.buffer; + return 1; + } else { + return -1; + } + default: + *buffer_r = key.buffer; + ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); + return ((er.encoded + 7) >> 3); + } +} + +/* + * Internally useful functions. + */ + +/* Flush partially filled buffer */ +static int +_aper_encode_flush_outp(asn_per_outp_t *po) { + uint8_t *buf; + + if(po->nboff == 0 && po->buffer == po->tmpspace) + return 0; + + buf = po->buffer + (po->nboff >> 3); + /* Make sure we account for the last, partially filled */ + if(po->nboff & 0x07) { + buf[0] &= 0xff << (8 - (po->nboff & 0x07)); + buf++; + } + + if (po->output) { + return po->output(po->tmpspace, buf - po->tmpspace, po->op_key); + } + return 0; +} + +asn_enc_rval_t +aper_encode(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_app_consume_bytes_f *cb, void *app_key) { + asn_per_outp_t po; + asn_enc_rval_t er = {0,0,0}; + + /* + * Invoke type-specific encoder. + */ + if(!td || !td->op->aper_encoder) + ASN__ENCODE_FAILED; /* PER is not compiled in */ + + po.buffer = po.tmpspace; + po.nboff = 0; + po.nbits = 8 * sizeof(po.tmpspace); + po.output = cb ? cb : ignore_output; + po.op_key = app_key; + po.flushed_bytes = 0; + + er = td->op->aper_encoder(td, constraints, sptr, &po); + if(er.encoded != -1) { + size_t bits_to_flush; + + bits_to_flush = ((po.buffer - po.tmpspace) << 3) + po.nboff; + + /* Set number of bits encoded to a firm value */ + er.encoded = (po.flushed_bytes << 3) + bits_to_flush; + + if(_aper_encode_flush_outp(&po)) + ASN__ENCODE_FAILED; + } + + return er; +} diff --git a/e2sim/asn1c/aper_encoder.h b/e2sim/asn1c/aper_encoder.h new file mode 100644 index 0000000..957b0bd --- /dev/null +++ b/e2sim/asn1c/aper_encoder.h @@ -0,0 +1,63 @@ +/*- + * Copyright (c) 2006-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _APER_ENCODER_H_ +#define _APER_ENCODER_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * Aligned PER encoder of any ASN.1 type. May be invoked by the application. + * WARNING: This function returns the number of encoded bits in the .encoded + * field of the return value. Use the following formula to convert to bytes: + * bytes = ((.encoded + 7) / 8) + */ +asn_enc_rval_t aper_encode( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, + const void *struct_ptr, /* Structure to be encoded */ + asn_app_consume_bytes_f *consume_bytes_cb, /* Data collector */ + void *app_key /* Arbitrary callback argument */ +); + +/* + * A variant of aper_encode() which encodes data into the existing buffer + * WARNING: This function returns the number of encoded bits in the .encoded + * field of the return value. + */ +asn_enc_rval_t aper_encode_to_buffer( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, + const void *struct_ptr, /* Structure to be encoded */ + void *buffer, /* Pre-allocated buffer */ + size_t buffer_size /* Initial buffer size (max) */ +); + +/* + * A variant of aper_encode_to_buffer() which allocates buffer itself. + * Returns the number of bytes in the buffer or -1 in case of failure. + * WARNING: This function produces a "Production of the complete encoding", + * with length of at least one octet. Contrast this to precise bit-packing + * encoding of aper_encode() and aper_encode_to_buffer(). + */ +ssize_t +aper_encode_to_new_buffer( + const struct asn_TYPE_descriptor_s *td, + const asn_per_constraints_t *constraints, + const void *sptr, + void **buffer_r +); + +#ifdef __cplusplus +} +#endif + +#endif /* _APER_ENCODER_H_ */ diff --git a/e2sim/asn1c/aper_opentype.c b/e2sim/asn1c/aper_opentype.c new file mode 100644 index 0000000..cdd5999 --- /dev/null +++ b/e2sim/asn1c/aper_opentype.c @@ -0,0 +1,149 @@ +/* + * Copyright (c) 2007 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +static asn_dec_rval_t +aper_open_type_get_simple(const asn_codec_ctx_t *ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + asn_dec_rval_t rv; + ssize_t chunk_bytes; + int repeat; + uint8_t *buf = 0; + size_t bufLen = 0; + size_t bufSize = 0; + asn_per_data_t spd; + size_t padding; + + ASN__STACK_OVERFLOW_CHECK(ctx); + + ASN_DEBUG("Getting open type %s...", td->name); + + do { + chunk_bytes = aper_get_length(pd, -1, -1, -1, &repeat); + if(chunk_bytes < 0) { + FREEMEM(buf); + ASN__DECODE_STARVED; + } + if(bufLen + chunk_bytes > bufSize) { + void *ptr; + bufSize = chunk_bytes + (bufSize << 2); + ptr = REALLOC(buf, bufSize); + if(!ptr) { + FREEMEM(buf); + ASN__DECODE_FAILED; + } + buf = ptr; + } + if(per_get_many_bits(pd, buf + bufLen, 0, chunk_bytes << 3)) { + FREEMEM(buf); + ASN__DECODE_STARVED; + } + bufLen += chunk_bytes; + } while(repeat); + + ASN_DEBUG("Getting open type %s encoded in %ld bytes", td->name, + (long)bufLen); + + memset(&spd, 0, sizeof(spd)); + spd.buffer = buf; + spd.nbits = bufLen << 3; + + ASN_DEBUG_INDENT_ADD(+4); + rv = td->op->aper_decoder(ctx, td, constraints, sptr, &spd); + ASN_DEBUG_INDENT_ADD(-4); + + if(rv.code == RC_OK) { + /* Check padding validity */ + padding = spd.nbits - spd.nboff; + if (((padding > 0 && padding < 8) || + /* X.691#10.1.3 */ + (spd.nboff == 0 && spd.nbits == 8 && spd.buffer == buf)) && + per_get_few_bits(&spd, padding) == 0) { + /* Everything is cool */ + FREEMEM(buf); + return rv; + } + FREEMEM(buf); + if(padding >= 8) { + ASN_DEBUG("Too large padding %d in open type", (int)padding); + ASN__DECODE_FAILED; + } else { + ASN_DEBUG("No padding"); + } + } else { + FREEMEM(buf); + /* rv.code could be RC_WMORE, nonsense in this context */ + rv.code = RC_FAIL; /* Noone would give us more */ + } + + return rv; +} + +int +aper_open_type_put(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + void *buf; + void *bptr; + ssize_t size; + size_t toGo; + + ASN_DEBUG("Open type put %s ...", td->name); + + size = aper_encode_to_new_buffer(td, constraints, sptr, &buf); + if(size <= 0) return -1; + + for(bptr = buf, toGo = size; toGo;) { + int need_eom = 0; + ssize_t maySave = aper_put_length(po, -1, -1, toGo, &need_eom); + if(maySave < 0) break; + if(per_put_many_bits(po, bptr, maySave * 8)) break; + bptr = (char *)bptr + maySave; + toGo -= maySave; + if(need_eom && (aper_put_length(po, -1, -1, 0, NULL) < 0)) { + FREEMEM(buf); + return -1; + } + } + + FREEMEM(buf); + if(toGo) return -1; + + ASN_DEBUG("Open type put %s of length %zd + overhead (1byte?)", + td->name, size); + + return 0; +} + +asn_dec_rval_t +aper_open_type_get(const asn_codec_ctx_t *ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd) { + + return aper_open_type_get_simple(ctx, td, constraints, sptr, pd); +} + +int +aper_open_type_skip(const asn_codec_ctx_t *ctx, asn_per_data_t *pd) { + asn_TYPE_descriptor_t s_td; + asn_dec_rval_t rv; + asn_TYPE_operation_t op_t; + + memset(&op_t, 0, sizeof(op_t)); + s_td.name = ""; + s_td.op = &op_t; + s_td.op->aper_decoder = uper_sot_suck; + + rv = aper_open_type_get(ctx, &s_td, 0, 0, pd); + if(rv.code != RC_OK) + return -1; + else + return 0; +} diff --git a/e2sim/asn1c/aper_opentype.h b/e2sim/asn1c/aper_opentype.h new file mode 100644 index 0000000..451b01c --- /dev/null +++ b/e2sim/asn1c/aper_opentype.h @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2007-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _APER_OPENTYPE_H_ +#define _APER_OPENTYPE_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +asn_dec_rval_t aper_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd); + + +int aper_open_type_skip(const asn_codec_ctx_t *opt_codec_ctx, asn_per_data_t *pd); + +int aper_open_type_put(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po); + +#ifdef __cplusplus +} +#endif + +#endif /* _APER_OPENTYPE_H_ */ diff --git a/e2sim/asn1c/aper_support.c b/e2sim/asn1c/aper_support.c new file mode 100644 index 0000000..1f34c60 --- /dev/null +++ b/e2sim/asn1c/aper_support.c @@ -0,0 +1,239 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +int32_t +aper_get_align(asn_per_data_t *pd) { + + if(pd->nboff & 0x7) { + ASN_DEBUG("Aligning %ld bits", 8 - ((unsigned long)pd->nboff & 0x7)); + return per_get_few_bits(pd, 8 - (pd->nboff & 0x7)); + } + return 0; +} + +ssize_t +aper_get_length(asn_per_data_t *pd, ssize_t lb, ssize_t ub, + int ebits, int *repeat) { + int constrained = (lb >= 0) && (ub >= 0); + ssize_t value; + + *repeat = 0; + + if (constrained && ub < 65536) { + int range = ub - lb + 1; + return aper_get_nsnnwn(pd, range); + } + + if (aper_get_align(pd) < 0) + return -1; + + if(ebits >= 0) return per_get_few_bits(pd, ebits); + + value = per_get_few_bits(pd, 8); + if(value < 0) return -1; + if((value & 128) == 0) /* #11.9.3.6 */ + return (value & 0x7F); + if((value & 64) == 0) { /* #11.9.3.7 */ + value = ((value & 63) << 8) | per_get_few_bits(pd, 8); + if(value < 0) return -1; + return value; + } + value &= 63; /* this is "m" from X.691, #11.9.3.8 */ + if(value < 1 || value > 4) + return -1; + *repeat = 1; + return (16384 * value); +} + +ssize_t +aper_get_nslength(asn_per_data_t *pd) { + ssize_t length; + + ASN_DEBUG("Getting normally small length"); + + if(per_get_few_bits(pd, 1) == 0) { + length = per_get_few_bits(pd, 6) + 1; + if(length <= 0) return -1; + ASN_DEBUG("l=%zd", length); + return length; + } else { + int repeat; + length = aper_get_length(pd, -1, -1, -1, &repeat); + if(length >= 0 && !repeat) return length; + return -1; /* Error, or do not support >16K extensions */ + } +} + +ssize_t +aper_get_nsnnwn(asn_per_data_t *pd, int range) { + ssize_t value; + int bytes = 0; + + ASN_DEBUG("getting nsnnwn with range %d", range); + + if(range <= 255) { + int i; + + if (range < 0) return -1; + /* 1 -> 8 bits */ + for (i = 1; i <= 8; i++) { + int upper = 1 << i; + if (upper >= range) + break; + } + value = per_get_few_bits(pd, i); + return value; + } else if (range == 256){ + /* 1 byte */ + bytes = 1; + } else if (range <= 65536) { + /* 2 bytes */ + bytes = 2; + } else { + //return -1; + int length; + + /* handle indefinite range */ + length = per_get_few_bits(pd, 1); + if (length == 0) + return per_get_few_bits(pd, 6); + + if (aper_get_align(pd) < 0) + return -1; + + length = per_get_few_bits(pd, 8); + /* the length is not likely to be that big */ + if (length > 4) + return -1; + value = 0; + if (per_get_many_bits(pd, (uint8_t *)&value, 0, length * 8) < 0) + return -1; + return value; + } + if (aper_get_align(pd) < 0) + return -1; + value = per_get_few_bits(pd, 8 * bytes); + return value; +} + +int aper_put_align(asn_per_outp_t *po) { + + if(po->nboff & 0x7) { + ASN_DEBUG("Aligning %ld bits", 8 - ((unsigned long)po->nboff & 0x7)); + if(per_put_few_bits(po, 0x00, (8 - (po->nboff & 0x7)))) + return -1; + } + return 0; +} + +ssize_t +aper_put_length(asn_per_outp_t *po, ssize_t lb, ssize_t ub, size_t n, int *need_eom) { + int constrained = (lb >= 0) && (ub >= 0); + int dummy = 0; + if(!need_eom) need_eom = &dummy; + + *need_eom = 0; + + + ASN_DEBUG("APER put length %zu with range (%zd..%zd)", n, lb, ub); + + /* 11.9 X.691 Note 2 */ + if (constrained && ub < 65536) { + int range = ub - lb + 1; + return aper_put_nsnnwn(po, range, n) ? -1 : (ssize_t)n; + } + + if (aper_put_align(po) < 0) + return -1; + + if(n <= 127) { /* #11.9.3.6 */ + return per_put_few_bits(po, n, 8) + ? -1 : (ssize_t)n; + } + else if(n < 16384) /* #11.9.3.7 */ + return per_put_few_bits(po, n|0x8000, 16) + ? -1 : (ssize_t)n; + + *need_eom = 0 == (n & 16383); + n >>= 14; + if(n > 4) { + *need_eom = 0; + n = 4; + } + + return per_put_few_bits(po, 0xC0 | n, 8) + ? -1 : (ssize_t)(n << 14); +} + + +int +aper_put_nslength(asn_per_outp_t *po, size_t length) { + + if(length <= 64) { + /* #11.9.3.4 */ + if(length == 0) return -1; + return per_put_few_bits(po, length-1, 7) ? -1 : 0; + } else { + if(aper_put_length(po, -1, -1, length, NULL) != (ssize_t)length) { + /* This might happen in case of >16K extensions */ + return -1; + } + } + + return 0; +} + +int +aper_put_nsnnwn(asn_per_outp_t *po, int range, int number) { + int bytes; + + ASN_DEBUG("aper put nsnnwn %d with range %d", number, range); + /* 10.5.7.1 X.691 */ + if(range < 0) { + int i; + for (i = 1; ; i++) { + int bits = 1 << (8 * i); + if (number <= bits) + break; + } + bytes = i; + assert(i <= 4); + } + if(range <= 255) { + int i; + for (i = 1; i <= 8; i++) { + int bits = 1 << i; + if (range <= bits) + break; + } + return per_put_few_bits(po, number, i); + } else if(range == 256) { + if (number >= range) + return -1; + bytes = 1; + } else if(range <= 65536) { + if (number >= range) + return -1; + bytes = 2; + } else { /* Ranges > 64K */ + int i; + for (i = 1; ; i++) { + int bits = 1 << (8 * i); + if (range <= bits) + break; + } + assert(i <= 4); + bytes = i; + } + if(aper_put_align(po) < 0) /* Aligning on octet */ + return -1; +/* if(per_put_few_bits(po, bytes, 8)) + return -1; +*/ + return per_put_few_bits(po, number, 8 * bytes); +} diff --git a/e2sim/asn1c/aper_support.h b/e2sim/asn1c/aper_support.h new file mode 100644 index 0000000..a372445 --- /dev/null +++ b/e2sim/asn1c/aper_support.h @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _APER_SUPPORT_H_ +#define _APER_SUPPORT_H_ + +#include /* Platform-specific types */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" + * Get the length "n" from the Aligned PER stream. + */ +ssize_t aper_get_length(asn_per_data_t *pd, ssize_t lb, ssize_t ub, + int effective_bound_bits, int *repeat); + +/* + * Get the normally small length "n". + */ +ssize_t aper_get_nslength(asn_per_data_t *pd); + +/* + * Get the normally small non-negative whole number. + */ +ssize_t aper_get_nsnnwn(asn_per_data_t *pd, int range); + +/* + * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" + * Put the length "n" to the Aligned PER stream. + * If (opt_need_eom) is given, it will be set to 1 if final 0-n is needed. + * In that case, invoke aper_put_length(po, -1, -1, 0, NULL) after encoding the + * last block. + * This function returns the number of units which may be flushed + * in the next units saving iteration. + */ +ssize_t aper_put_length(asn_per_outp_t *po, ssize_t lb, ssize_t ub, size_t n, + int *opt_need_eom); + +/* Align the current bit position to octet bundary */ +int aper_put_align(asn_per_outp_t *po); +int32_t aper_get_align(asn_per_data_t *pd); + +/* + * Put the normally small length "n" to the Unaligned PER stream. + * Returns 0 or -1. + */ +int aper_put_nslength(asn_per_outp_t *po, size_t length); + +/* + * Put the normally small non-negative whole number. + */ +int aper_put_nsnnwn(asn_per_outp_t *po, int range, int number); + +#ifdef __cplusplus +} +#endif + +#endif /* _APER_SUPPORT_H_ */ diff --git a/e2sim/asn1c/asn/v03/e2ap-common-v03.01.asn b/e2sim/asn1c/asn/v03/e2ap-common-v03.01.asn new file mode 100755 index 0000000..ee0c79f --- /dev/null +++ b/e2sim/asn1c/asn/v03/e2ap-common-v03.01.asn @@ -0,0 +1,27 @@ +-- ASN1START +-- ************************************************************** +-- +-- Common definitions +-- Derived from 3GPP 38.413 (NGAP) +-- +-- ************************************************************** + +E2AP-CommonDataTypes { +iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version2 (2) e2ap(1) e2ap-CommonDataTypes (3) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +Criticality ::= ENUMERATED { reject, ignore, notify } + +Presence ::= ENUMERATED { optional, conditional, mandatory } + +ProcedureCode ::= INTEGER (0..255) + +ProtocolIE-ID ::= INTEGER (0..65535) + +TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessfull-outcome } + +END +-- ASN1STOP diff --git a/e2sim/asn1c/asn/v03/e2ap-constant-v03.01.asn b/e2sim/asn1c/asn/v03/e2ap-constant-v03.01.asn new file mode 100755 index 0000000..27b071a --- /dev/null +++ b/e2sim/asn1c/asn/v03/e2ap-constant-v03.01.asn @@ -0,0 +1,165 @@ +-- ASN1START +-- ************************************************************** +-- +-- Constant definitions +-- +-- ************************************************************** + +E2AP-Constants { +iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version2 (2) e2ap(1) e2ap-Constants (4) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + ProcedureCode, + ProtocolIE-ID +FROM E2AP-CommonDataTypes; + +-- ************************************************************** +-- +-- Elementary Procedures +-- +-- ************************************************************** +id-E2setup ProcedureCode ::= 1 +id-ErrorIndication ProcedureCode ::= 2 +id-Reset ProcedureCode ::= 3 +id-RICcontrol ProcedureCode ::= 4 +id-RICindication ProcedureCode ::= 5 +id-RICserviceQuery ProcedureCode ::= 6 +id-RICserviceUpdate ProcedureCode ::= 7 +id-RICsubscription ProcedureCode ::= 8 +id-RICsubscriptionDelete ProcedureCode ::= 9 +id-E2nodeConfigurationUpdate ProcedureCode ::= 10 +id-E2connectionUpdate ProcedureCode ::= 11 +id-RICsubscriptionDeleteRequired ProcedureCode ::= 12 +id-E2removal ProcedureCode ::= 13 +id-RICsubscriptionModification ProcedureCode ::= 14 +id-RICsubscriptionModificationRequired ProcedureCode ::= 15 +id-RICquery ProcedureCode ::= 16 + +-- ************************************************************** +-- +-- Extension constants +-- +-- ************************************************************** + +maxProtocolIEs INTEGER ::= 65535 + + +-- ************************************************************** +-- +-- Lists +-- +-- ************************************************************** +maxnoofErrors INTEGER ::= 256 +maxofE2nodeComponents INTEGER ::= 1024 +maxofRANfunctionID INTEGER ::= 256 +maxofRICactionID INTEGER ::= 16 +maxofTNLA INTEGER ::= 32 +maxofRICrequestID INTEGER ::= 1024 + + +-- ************************************************************** +-- +-- IEs +-- +-- ************************************************************** +id-Cause ProtocolIE-ID ::= 1 +id-CriticalityDiagnostics ProtocolIE-ID ::= 2 +id-GlobalE2node-ID ProtocolIE-ID ::= 3 +id-GlobalRIC-ID ProtocolIE-ID ::= 4 +id-RANfunctionID ProtocolIE-ID ::= 5 +id-RANfunctionID-Item ProtocolIE-ID ::= 6 +id-RANfunctionIEcause-Item ProtocolIE-ID ::= 7 +id-RANfunction-Item ProtocolIE-ID ::= 8 +id-RANfunctionsAccepted ProtocolIE-ID ::= 9 +id-RANfunctionsAdded ProtocolIE-ID ::= 10 +id-RANfunctionsDeleted ProtocolIE-ID ::= 11 +id-RANfunctionsModified ProtocolIE-ID ::= 12 +id-RANfunctionsRejected ProtocolIE-ID ::= 13 +id-RICaction-Admitted-Item ProtocolIE-ID ::= 14 +id-RICactionID ProtocolIE-ID ::= 15 +id-RICaction-NotAdmitted-Item ProtocolIE-ID ::= 16 +id-RICactions-Admitted ProtocolIE-ID ::= 17 +id-RICactions-NotAdmitted ProtocolIE-ID ::= 18 +id-RICaction-ToBeSetup-Item ProtocolIE-ID ::= 19 +id-RICcallProcessID ProtocolIE-ID ::= 20 +id-RICcontrolAckRequest ProtocolIE-ID ::= 21 +id-RICcontrolHeader ProtocolIE-ID ::= 22 +id-RICcontrolMessage ProtocolIE-ID ::= 23 +id-RICcontrolStatus ProtocolIE-ID ::= 24 +id-RICindicationHeader ProtocolIE-ID ::= 25 +id-RICindicationMessage ProtocolIE-ID ::= 26 +id-RICindicationSN ProtocolIE-ID ::= 27 +id-RICindicationType ProtocolIE-ID ::= 28 +id-RICrequestID ProtocolIE-ID ::= 29 +id-RICsubscriptionDetails ProtocolIE-ID ::= 30 +id-TimeToWait ProtocolIE-ID ::= 31 +id-RICcontrolOutcome ProtocolIE-ID ::= 32 +id-E2nodeComponentConfigUpdate ProtocolIE-ID ::= 33 +id-E2nodeComponentConfigUpdate-Item ProtocolIE-ID ::= 34 +id-E2nodeComponentConfigUpdateAck ProtocolIE-ID ::= 35 +id-E2nodeComponentConfigUpdateAck-Item ProtocolIE-ID ::= 36 +id-E2connectionSetup ProtocolIE-ID ::= 39 +id-E2connectionSetupFailed ProtocolIE-ID ::= 40 +id-E2connectionSetupFailed-Item ProtocolIE-ID ::= 41 +id-E2connectionFailed-Item ProtocolIE-ID ::= 42 +id-E2connectionUpdate-Item ProtocolIE-ID ::= 43 +id-E2connectionUpdateAdd ProtocolIE-ID ::= 44 +id-E2connectionUpdateModify ProtocolIE-ID ::= 45 +id-E2connectionUpdateRemove ProtocolIE-ID ::= 46 +id-E2connectionUpdateRemove-Item ProtocolIE-ID ::= 47 +id-TNLinformation ProtocolIE-ID ::= 48 +id-TransactionID ProtocolIE-ID ::= 49 +id-E2nodeComponentConfigAddition ProtocolIE-ID ::= 50 +id-E2nodeComponentConfigAddition-Item ProtocolIE-ID ::= 51 +id-E2nodeComponentConfigAdditionAck ProtocolIE-ID ::= 52 +id-E2nodeComponentConfigAdditionAck-Item ProtocolIE-ID ::= 53 +id-E2nodeComponentConfigRemoval ProtocolIE-ID ::= 54 +id-E2nodeComponentConfigRemoval-Item ProtocolIE-ID ::= 55 +id-E2nodeComponentConfigRemovalAck ProtocolIE-ID ::= 56 +id-E2nodeComponentConfigRemovalAck-Item ProtocolIE-ID ::= 57 +id-E2nodeTNLassociationRemoval ProtocolIE-ID ::= 58 +id-E2nodeTNLassociationRemoval-Item ProtocolIE-ID ::= 59 +id-RICsubscriptionToBeRemoved ProtocolIE-ID ::= 60 +id-RICsubscription-withCause-Item ProtocolIE-ID ::= 61 +id-RICsubscriptionStartTime ProtocolIE-ID ::= 62 +id-RICsubscriptionEndTime ProtocolIE-ID ::= 63 +id-RICeventTriggerDefinitionToBeModified ProtocolIE-ID ::= 64 +id-RICactionsToBeRemovedForModification-List ProtocolIE-ID ::= 65 +id-RICaction-ToBeRemovedForModification-Item ProtocolIE-ID ::= 66 +id-RICactionsToBeModifiedForModification-List ProtocolIE-ID ::= 67 +id-RICaction-ToBeModifiedForModification-Item ProtocolIE-ID ::= 68 +id-RICactionsToBeAddedForModification-List ProtocolIE-ID ::= 69 +id-RICaction-ToBeAddedForModification-Item ProtocolIE-ID ::= 70 +id-RICactionsRemovedForModification-List ProtocolIE-ID ::= 71 +id-RICaction-RemovedForModification-Item ProtocolIE-ID ::= 72 +id-RICactionsFailedToBeRemovedForModification-List ProtocolIE-ID ::= 73 +id-RICaction-FailedToBeRemovedForModification-Item ProtocolIE-ID ::= 74 +id-RICactionsModifiedForModification-List ProtocolIE-ID ::= 75 +id-RICaction-ModifiedForModification-Item ProtocolIE-ID ::= 76 +id-RICactionsFailedToBeModifiedForModification-List ProtocolIE-ID ::= 77 +id-RICaction-FailedToBeModifiedForModification-Item ProtocolIE-ID ::= 78 +id-RICactionsAddedForModification-List ProtocolIE-ID ::= 79 +id-RICaction-AddedForModification-Item ProtocolIE-ID ::= 80 +id-RICactionsFailedToBeAddedForModification-List ProtocolIE-ID ::= 81 +id-RICaction-FailedToBeAddedForModification-Item ProtocolIE-ID ::= 82 +id-RICactionsRequiredToBeModified-List ProtocolIE-ID ::= 83 +id-RICaction-RequiredToBeModified-Item ProtocolIE-ID ::= 84 +id-RICactionsRequiredToBeRemoved-List ProtocolIE-ID ::= 85 +id-RICaction-RequiredToBeRemoved-Item ProtocolIE-ID ::= 86 +id-RICactionsConfirmedForModification-List ProtocolIE-ID ::= 87 +id-RICaction-ConfirmedForModification-Item ProtocolIE-ID ::= 88 +id-RICactionsRefusedToBeModified-List ProtocolIE-ID ::= 89 +id-RICaction-RefusedToBeModified-Item ProtocolIE-ID ::= 90 +id-RICactionsConfirmedForRemoval-List ProtocolIE-ID ::= 91 +id-RICaction-ConfirmedForRemoval-Item ProtocolIE-ID ::= 92 +id-RICactionsRefusedToBeRemoved-List ProtocolIE-ID ::= 93 +id-RICaction-RefusedToBeRemoved-Item ProtocolIE-ID ::= 94 +id-RICqueryHeader ProtocolIE-ID ::= 95 +id-RICqueryDefinition ProtocolIE-ID ::= 96 +id-RICqueryOutcome ProtocolIE-ID ::= 97 +END +-- ASN1STOP diff --git a/e2sim/asn1c/asn/v03/e2ap-container-v03.01.asn b/e2sim/asn1c/asn/v03/e2ap-container-v03.01.asn new file mode 100755 index 0000000..27b36f3 --- /dev/null +++ b/e2sim/asn1c/asn/v03/e2ap-container-v03.01.asn @@ -0,0 +1,130 @@ +-- ASN1START +-- ************************************************************** +-- +-- Container definitions +-- +-- derived from 3GPP 38.413 (NGAP) +-- ************************************************************** + +E2AP-Containers { +iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version2 (2) e2ap(1) e2ap-Containers (5) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + + Criticality, + Presence, + ProtocolIE-ID +FROM E2AP-CommonDataTypes + + maxProtocolIEs +FROM E2AP-Constants; + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +E2AP-PROTOCOL-IES ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +E2AP-PROTOCOL-IES-PAIR ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &firstCriticality Criticality, + &FirstValue, + &secondCriticality Criticality, + &SecondValue, + &presence Presence +} +WITH SYNTAX { + ID &id + FIRST CRITICALITY &firstCriticality + FIRST TYPE &FirstValue + SECOND CRITICALITY &secondCriticality + SECOND TYPE &SecondValue + PRESENCE &presence +} + + + + +-- ************************************************************** +-- +-- Container for Protocol IEs +-- +-- ************************************************************** + +ProtocolIE-Container {E2AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-SingleContainer {E2AP-PROTOCOL-IES : IEsSetParam} ::= + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Field {E2AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { + id E2AP-PROTOCOL-IES.&id ({IEsSetParam}), + criticality E2AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}), + value E2AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Protocol IE Pairs +-- +-- ************************************************************** + +ProtocolIE-ContainerPair {E2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-FieldPair {{IEsSetParam}} + +ProtocolIE-FieldPair {E2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE { + id E2AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}), + firstCriticality E2AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}), + firstValue E2AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}), + secondCriticality E2AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}), + secondValue E2AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container Lists for Protocol IE Containers +-- +-- ************************************************************** + +ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, E2AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-SingleContainer {{IEsSetParam}} + +ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, E2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-ContainerPair {{IEsSetParam}} + + +END +-- ASN1STOP diff --git a/e2sim/asn1c/asn/v03/e2ap-epd-v03.01.asn b/e2sim/asn1c/asn/v03/e2ap-epd-v03.01.asn new file mode 100755 index 0000000..b7d5b83 --- /dev/null +++ b/e2sim/asn1c/asn/v03/e2ap-epd-v03.01.asn @@ -0,0 +1,304 @@ +-- ASN1START +-- ************************************************************** +-- +-- Elementary Procedure definitions +-- Derived from 3GPP 38.413 v15.4.0 NGAP +-- ************************************************************** + +E2AP-PDU-Descriptions { +iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version2 (2) e2ap(1) e2ap-PDU-Descriptions (0) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + ProcedureCode +FROM E2AP-CommonDataTypes + + + + E2connectionUpdate, + E2connectionUpdateAcknowledge, + E2connectionUpdateFailure, + E2nodeConfigurationUpdate, + E2nodeConfigurationUpdateAcknowledge, + E2nodeConfigurationUpdateFailure, + E2RemovalRequest, + E2RemovalResponse, + E2RemovalFailure, + E2setupFailure, + E2setupRequest, + E2setupResponse, + ErrorIndication, + ResetRequest, + ResetResponse, + RICcontrolAcknowledge, + RICcontrolFailure, + RICcontrolRequest, + RICindication, + RICserviceQuery, + RICserviceUpdate, + RICserviceUpdateAcknowledge, + RICserviceUpdateFailure, + RICsubscriptionFailure, + RICsubscriptionRequest, + RICsubscriptionResponse, + RICsubscriptionDeleteFailure, + RICsubscriptionDeleteRequest, + RICsubscriptionDeleteResponse, + RICsubscriptionDeleteRequired, + RICsubscriptionModificationRequest, + RICsubscriptionModificationResponse, + RICsubscriptionModificationFailure, + RICsubscriptionModificationRequired, + RICsubscriptionModificationConfirm, + RICsubscriptionModificationRefuse, + RICqueryRequest, + RICqueryResponse, + RICqueryFailure +FROM E2AP-PDU-Contents + + id-E2connectionUpdate, + id-E2nodeConfigurationUpdate, + id-E2removal, + id-E2setup, + id-ErrorIndication, + id-Reset, + id-RICcontrol, + id-RICindication, + id-RICserviceQuery, + id-RICserviceUpdate, + id-RICsubscription, + id-RICsubscriptionDelete, + id-RICsubscriptionDeleteRequired, + id-RICsubscriptionModification, + id-RICsubscriptionModificationRequired, + id-RICquery +FROM E2AP-Constants; + +-- ************************************************************** +-- +-- Interface Elementary Procedure Class +-- +-- ************************************************************** + +E2AP-ELEMENTARY-PROCEDURE ::= CLASS { + &InitiatingMessage , + &SuccessfulOutcome OPTIONAL , + &UnsuccessfulOutcome OPTIONAL , + &procedureCode ProcedureCode UNIQUE , + &criticality Criticality DEFAULT ignore +} + +WITH SYNTAX { + INITIATING MESSAGE &InitiatingMessage + [SUCCESSFUL OUTCOME &SuccessfulOutcome] + [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] + PROCEDURE CODE &procedureCode + [CRITICALITY &criticality] +} + +-- ************************************************************** +-- +-- Interface PDU Definition +-- +-- ************************************************************** + +E2AP-PDU ::= CHOICE { + initiatingMessage InitiatingMessage, + successfulOutcome SuccessfulOutcome, + unsuccessfulOutcome UnsuccessfulOutcome, + ... +} + +InitiatingMessage ::= SEQUENCE { + procedureCode E2AP-ELEMENTARY-PROCEDURE.&procedureCode ({E2AP-ELEMENTARY-PROCEDURES}), + criticality E2AP-ELEMENTARY-PROCEDURE.&criticality ({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value E2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +SuccessfulOutcome ::= SEQUENCE { + procedureCode E2AP-ELEMENTARY-PROCEDURE.&procedureCode ({E2AP-ELEMENTARY-PROCEDURES}), + criticality E2AP-ELEMENTARY-PROCEDURE.&criticality ({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value E2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +UnsuccessfulOutcome ::= SEQUENCE { + procedureCode E2AP-ELEMENTARY-PROCEDURE.&procedureCode ({E2AP-ELEMENTARY-PROCEDURES}), + criticality E2AP-ELEMENTARY-PROCEDURE.&criticality ({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value E2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +-- ************************************************************** +-- +-- Interface Elementary Procedure List +-- +-- ************************************************************** + +E2AP-ELEMENTARY-PROCEDURES E2AP-ELEMENTARY-PROCEDURE ::= { + E2AP-ELEMENTARY-PROCEDURES-CLASS-1 | + E2AP-ELEMENTARY-PROCEDURES-CLASS-2, + ... +} + +E2AP-ELEMENTARY-PROCEDURES-CLASS-1 E2AP-ELEMENTARY-PROCEDURE ::= { + ricSubscription | + ricSubscriptionDelete | + ricSubscriptionModification | + ricSubscriptionModificationRequired | + ricQuery | + ricServiceUpdate | + ricControl | + e2setup | + e2nodeConfigurationUpdate | + e2connectionUpdate | + reset | + e2removal, + ... +} + +E2AP-ELEMENTARY-PROCEDURES-CLASS-2 E2AP-ELEMENTARY-PROCEDURE ::= { + ricIndication | + ricServiceQuery | + errorIndication | + ricSubscriptionDeleteRequired, + ... +} + +-- ************************************************************** +-- +-- Interface Elementary Procedures +-- +-- ************************************************************** + +-- New for v01.01 +e2connectionUpdate E2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E2connectionUpdate + SUCCESSFUL OUTCOME E2connectionUpdateAcknowledge + UNSUCCESSFUL OUTCOME E2connectionUpdateFailure + PROCEDURE CODE id-E2connectionUpdate + CRITICALITY reject +} + +e2nodeConfigurationUpdate E2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E2nodeConfigurationUpdate + SUCCESSFUL OUTCOME E2nodeConfigurationUpdateAcknowledge + UNSUCCESSFUL OUTCOME E2nodeConfigurationUpdateFailure + PROCEDURE CODE id-E2nodeConfigurationUpdate + CRITICALITY reject +} + +-- New for v02.01 +e2removal E2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E2RemovalRequest + SUCCESSFUL OUTCOME E2RemovalResponse + UNSUCCESSFUL OUTCOME E2RemovalFailure + PROCEDURE CODE id-E2removal + CRITICALITY reject +} + +e2setup E2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E2setupRequest + SUCCESSFUL OUTCOME E2setupResponse + UNSUCCESSFUL OUTCOME E2setupFailure + PROCEDURE CODE id-E2setup + CRITICALITY reject +} + +errorIndication E2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ErrorIndication + PROCEDURE CODE id-ErrorIndication + CRITICALITY ignore +} + +reset E2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ResetRequest + SUCCESSFUL OUTCOME ResetResponse + PROCEDURE CODE id-Reset + CRITICALITY reject +} + +ricControl E2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RICcontrolRequest + SUCCESSFUL OUTCOME RICcontrolAcknowledge + UNSUCCESSFUL OUTCOME RICcontrolFailure + PROCEDURE CODE id-RICcontrol + CRITICALITY reject +} + +ricIndication E2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RICindication + PROCEDURE CODE id-RICindication + CRITICALITY ignore +} + +ricServiceQuery E2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RICserviceQuery + PROCEDURE CODE id-RICserviceQuery + CRITICALITY ignore +} + +ricServiceUpdate E2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RICserviceUpdate + SUCCESSFUL OUTCOME RICserviceUpdateAcknowledge + UNSUCCESSFUL OUTCOME RICserviceUpdateFailure + PROCEDURE CODE id-RICserviceUpdate + CRITICALITY reject +} + +ricSubscription E2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RICsubscriptionRequest + SUCCESSFUL OUTCOME RICsubscriptionResponse + UNSUCCESSFUL OUTCOME RICsubscriptionFailure + PROCEDURE CODE id-RICsubscription + CRITICALITY reject +} + +ricSubscriptionDelete E2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RICsubscriptionDeleteRequest + SUCCESSFUL OUTCOME RICsubscriptionDeleteResponse + UNSUCCESSFUL OUTCOME RICsubscriptionDeleteFailure + PROCEDURE CODE id-RICsubscriptionDelete + CRITICALITY reject +} + +ricSubscriptionDeleteRequired E2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RICsubscriptionDeleteRequired + PROCEDURE CODE id-RICsubscriptionDeleteRequired + CRITICALITY ignore +} + +ricSubscriptionModification E2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RICsubscriptionModificationRequest + SUCCESSFUL OUTCOME RICsubscriptionModificationResponse + UNSUCCESSFUL OUTCOME RICsubscriptionModificationFailure + PROCEDURE CODE id-RICsubscriptionModification + CRITICALITY reject +} + +ricSubscriptionModificationRequired E2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RICsubscriptionModificationRequired + SUCCESSFUL OUTCOME RICsubscriptionModificationConfirm + UNSUCCESSFUL OUTCOME RICsubscriptionModificationRefuse + PROCEDURE CODE id-RICsubscriptionModificationRequired + CRITICALITY reject +} + +ricQuery E2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RICQueryRequest + SUCCESSFUL OUTCOME RICQueryResponse + UNSUCCESSFUL OUTCOME RICQueryFailure + PROCEDURE CODE id-RICquery + CRITICALITY reject +} + +END +-- ASN1STOP diff --git a/e2sim/asn1c/asn/v03/e2ap-ied-v03.01.asn b/e2sim/asn1c/asn/v03/e2ap-ied-v03.01.asn new file mode 100755 index 0000000..79213fc --- /dev/null +++ b/e2sim/asn1c/asn/v03/e2ap-ied-v03.01.asn @@ -0,0 +1,530 @@ +-- ASN1START +-- ************************************************************** +-- E2AP +-- Information Element Definitions +-- +-- ************************************************************** + +E2AP-IEs { +iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version2 (2) e2ap(1) e2ap-IEs (2)} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + Criticality, + Presence, + ProcedureCode, + ProtocolIE-ID, + TriggeringMessage +FROM E2AP-CommonDataTypes + + maxnoofErrors, + maxProtocolIEs +FROM E2AP-Constants; + +-- A + +-- ************************************************************** +-- [New for E2AP v02.00] copied from 3GPP 38.413 (NGAP) IEs +-- ************************************************************** +AMFName ::= PrintableString (SIZE(1..150, ...)) + +-- B +-- C +Cause ::= CHOICE { + ricRequest CauseRICrequest, + ricService CauseRICservice, + e2Node CauseE2node, + transport CauseTransport, + protocol CauseProtocol, + misc CauseMisc, + ... +} + +CauseE2node ::= ENUMERATED { + e2node-component-unknown, + ... +} + +CauseMisc ::= ENUMERATED { + control-processing-overload, + hardware-failure, + om-intervention, + unspecified, + ... +} + +CauseProtocol ::= ENUMERATED { + transfer-syntax-error, + abstract-syntax-error-reject, + abstract-syntax-error-ignore-and-notify, + message-not-compatible-with-receiver-state, + semantic-error, + abstract-syntax-error-falsely-constructed-message, + unspecified, + ... +} + +CauseRICrequest ::= ENUMERATED { + ran-function-id-invalid, + action-not-supported, + excessive-actions, + duplicate-action, + duplicate-event-trigger, + function-resource-limit, + request-id-unknown, + inconsistent-action-subsequent-action-sequence, + control-message-invalid, + ric-call-process-id-invalid, + control-timer-expired, + control-failed-to-execute, + system-not-ready, + unspecified, + ... , + ric-subscription-end-time-expired, + ric-subscription-end-time-invalid, + duplicate-ric-request-id, + eventTriggerNotSupported, + requested-information-unavailable, + invalid-information-request +} + +CauseRICservice ::= ENUMERATED{ + ran-function-not-supported, + excessive-functions, + ric-resource-limit, + ... +} +CauseTransport ::= ENUMERATED { + unspecified, + transport-resource-unavailable, + ... +} + +-- ************************************************************** +-- copied from 3GPP 38.413 (NGAP) IEs +-- note: ie-Extensions removed +-- ************************************************************** +CriticalityDiagnostics ::= SEQUENCE { + procedureCode ProcedureCode OPTIONAL, + triggeringMessage TriggeringMessage OPTIONAL, + procedureCriticality Criticality OPTIONAL, + ricRequestorID RICrequestID OPTIONAL, + iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, + ... +} + +CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE(1..maxnoofErrors)) OF CriticalityDiagnostics-IE-Item + +CriticalityDiagnostics-IE-Item ::= SEQUENCE { + iECriticality Criticality, + iE-ID ProtocolIE-ID, + typeOfError TypeOfError, + ... +} + +-- D +-- E + +-- Following IE used to carry 3GPP defined SETUP and RAN Configuration messages defined in F1AP, E1AP, XnAP, etc. +E2nodeComponentConfiguration ::= SEQUENCE{ + e2nodeComponentRequestPart OCTET STRING, + e2nodeComponentResponsePart OCTET STRING, + ... +} + +E2nodeComponentConfigurationAck ::= SEQUENCE{ + updateOutcome ENUMERATED {success, failure, ...}, + failureCause Cause OPTIONAL, + ... +} + +E2nodeComponentInterfaceType ::= ENUMERATED {ng, xn, e1, f1, w1, s1, x2,...} + +E2nodeComponentID ::= CHOICE{ + e2nodeComponentInterfaceTypeNG E2nodeComponentInterfaceNG, + e2nodeComponentInterfaceTypeXn E2nodeComponentInterfaceXn, + e2nodeComponentInterfaceTypeE1 E2nodeComponentInterfaceE1, + e2nodeComponentInterfaceTypeF1 E2nodeComponentInterfaceF1, + e2nodeComponentInterfaceTypeW1 E2nodeComponentInterfaceW1, + e2nodeComponentInterfaceTypeS1 E2nodeComponentInterfaceS1, + e2nodeComponentInterfaceTypeX2 E2nodeComponentInterfaceX2, + ... +} + +E2nodeComponentInterfaceE1 ::= SEQUENCE{ + gNB-CU-UP-ID GNB-CU-UP-ID, + ... +} + +E2nodeComponentInterfaceF1 ::= SEQUENCE{ + gNB-DU-ID GNB-DU-ID, + ... +} + +E2nodeComponentInterfaceNG ::= SEQUENCE{ + amf-name AMFName, + ... +} + +E2nodeComponentInterfaceS1 ::= SEQUENCE{ + mme-name MMEname, + ... +} + +E2nodeComponentInterfaceX2 ::= SEQUENCE{ + global-eNB-ID GlobalENB-ID OPTIONAL, + global-en-gNB-ID GlobalenGNB-ID OPTIONAL, + ... +} + +E2nodeComponentInterfaceXn ::= SEQUENCE{ + global-NG-RAN-Node-ID GlobalNG-RANNode-ID, + ... +} + +E2nodeComponentInterfaceW1 ::= SEQUENCE{ + ng-eNB-DU-ID NGENB-DU-ID, + ... +} + +-- ************************************************************** +-- copied from 3GPP 36.423 (X2AP) IEs +-- note: ie-Extensions removed +-- ************************************************************** +ENB-ID ::= CHOICE { + macro-eNB-ID BIT STRING (SIZE (20)), + home-eNB-ID BIT STRING (SIZE (28)), + ... , + short-Macro-eNB-ID BIT STRING (SIZE(18)), + long-Macro-eNB-ID BIT STRING (SIZE(21)) +} +-- ************************************************************** +-- copied from 3GPP 38.423 (XnAP) IEs +-- note: choice-extension removed +-- ************************************************************** +ENB-ID-Choice ::= CHOICE { + enb-ID-macro BIT STRING (SIZE(20)), + enb-ID-shortmacro BIT STRING (SIZE(18)), + enb-ID-longmacro BIT STRING (SIZE(21)), + ... +} + +-- ************************************************************** +-- copied from 3GPP 36.423 (X2AP) IEs +-- note: ie-Extensions removed +-- Note: to avoid duplicate names with XnAP, GNB-ID renamed ENGNB-ID, GlobalGNB-ID renamed GlobalenGNB-ID +-- ************************************************************** +ENGNB-ID ::= CHOICE { + gNB-ID BIT STRING (SIZE (22..32)), + ... +} + +-- F +-- G +GlobalE2node-ID ::= CHOICE{ + gNB GlobalE2node-gNB-ID, + en-gNB GlobalE2node-en-gNB-ID, + ng-eNB GlobalE2node-ng-eNB-ID, + eNB GlobalE2node-eNB-ID, + ... +} + +GlobalE2node-en-gNB-ID ::= SEQUENCE{ + global-en-gNB-ID GlobalenGNB-ID, + en-gNB-CU-UP-ID GNB-CU-UP-ID OPTIONAL, + en-gNB-DU-ID GNB-DU-ID OPTIONAL, + ... +} +GlobalE2node-eNB-ID ::= SEQUENCE{ + global-eNB-ID GlobalENB-ID, + ... +} +GlobalE2node-gNB-ID ::= SEQUENCE{ + global-gNB-ID GlobalgNB-ID, + global-en-gNB-ID GlobalenGNB-ID OPTIONAL, + gNB-CU-UP-ID GNB-CU-UP-ID OPTIONAL, + gNB-DU-ID GNB-DU-ID OPTIONAL, + ... +} +GlobalE2node-ng-eNB-ID ::= SEQUENCE{ + global-ng-eNB-ID GlobalngeNB-ID, + global-eNB-ID GlobalENB-ID OPTIONAL, + ngENB-DU-ID NGENB-DU-ID OPTIONAL, + ... +} +-- ************************************************************** +-- copied from 3GPP 36.423 (X2AP) IEs +-- note: ie-Extensions removed +-- ************************************************************** + +GlobalENB-ID ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + eNB-ID ENB-ID, + ... +} +-- ************************************************************** +-- copied from 3GPP 36.423 (X2AP) IEs +-- Note: to avoid duplicate names with XnAP, GNB-ID renamed ENGNB-ID, GlobalGNB-ID renamed GlobalenGNB-ID +-- ************************************************************** +GlobalenGNB-ID ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + gNB-ID ENGNB-ID, + ... +} +-- ************************************************************** +-- copied from 3GPP 38.423 (XnAP) IEs +-- note: choice-extension removed +-- ************************************************************** +GlobalgNB-ID ::= SEQUENCE { + plmn-id PLMN-Identity, + gnb-id GNB-ID-Choice, + ... +} + + +-- ************************************************************** +-- copied from 3GPP 38.423 (XnAP) IEs +-- note: choice-extension removed +-- ************************************************************** +GlobalngeNB-ID ::= SEQUENCE { + plmn-id PLMN-Identity, + enb-id ENB-ID-Choice, + ... +} + +-- ************************************************************** +-- [NEW for E2AP v02.00] copied from 3GPP 38.423 (XnAP) IEs +-- Note: extension field removed +-- ************************************************************** + +GlobalNG-RANNode-ID ::= CHOICE { + gNB GlobalgNB-ID, + ng-eNB GlobalngeNB-ID, + ... +} + +GlobalRIC-ID ::= SEQUENCE{ + pLMN-Identity PLMN-Identity, + ric-ID BIT STRING (SIZE (20)), + ... +} + +-- ************************************************************** +-- copied from 3GPP 37.483 (E1AP) IEs +-- ************************************************************** +GNB-CU-UP-ID::= INTEGER (0..68719476735) + +-- ************************************************************** +-- copied from 3GPP 38.473 (F1AP) IEs +-- ************************************************************** +GNB-DU-ID::= INTEGER (0..68719476735) + +-- ************************************************************** +-- copied from 3GPP 38.423 (XnAP) IEs +-- note: choice-extension removed +-- ************************************************************** +GNB-ID-Choice ::= CHOICE { + gnb-ID BIT STRING (SIZE(22..32)), + ... +} +-- H +-- I +-- J +-- K +-- L +-- M + +-- ************************************************************** +-- [New for E2AP v02.00] copied from 3GPP 36.413 (S1AP) IEs +-- ************************************************************** +MMEname ::= PrintableString (SIZE (1..150,...)) + +-- N + +-- ************************************************************** +-- copied from 3GPP 37.473 (W1AP) IEs +-- ************************************************************** +NGENB-DU-ID ::= INTEGER (0..68719476735) + + +-- O +-- P +-- ************************************************************** +-- copied from 3GPP 36.423 (X2AP) IEs +-- ************************************************************** +PLMN-Identity ::= OCTET STRING (SIZE(3)) + +-- Q +-- R +-- ************************************************************** +-- Following IE defined in E2SM +-- ************************************************************** +RANfunctionDefinition ::= OCTET STRING + +RANfunctionID ::= INTEGER (0..4095) + +RANfunctionOID ::= PrintableString(SIZE(1..1000,...)) + +RANfunctionRevision ::= INTEGER (0..4095) + +-- ************************************************************** +-- Following IE defined in E2SM +-- ************************************************************** +RICactionDefinition ::= OCTET STRING + +-- new in E2AP-v03.00 +RICactionExecutionOrder ::= INTEGER (0..255, ...) + +RICactionID ::= INTEGER (0..255) + +RICactionType ::= ENUMERATED{ + report, + insert, + policy, + ... +} + +-- ************************************************************** +-- Following IE defined in E2SM +-- ************************************************************** +RICcallProcessID ::= OCTET STRING + +RICcontrolAckRequest ::= ENUMERATED{ + noAck, + ack, + ... +} + +-- ************************************************************** +-- Following IE defined in E2SM +-- ************************************************************** +RICcontrolHeader ::= OCTET STRING + +-- ************************************************************** +-- Following IE defined in E2SM +-- ************************************************************** +RICcontrolMessage ::= OCTET STRING + +-- ************************************************************** +-- Following IE defined in E2SM +-- ************************************************************** +RICcontrolOutcome ::= OCTET STRING + +-- ************************************************************** +-- Following IE defined in E2SM +-- ************************************************************** +RICeventTriggerDefinition ::= OCTET STRING + +-- ************************************************************** +-- Following IE defined in E2SM +-- ************************************************************** +RICindicationHeader ::= OCTET STRING + +-- ************************************************************** +-- Following IE defined in E2SM +-- ************************************************************** +RICindicationMessage ::= OCTET STRING + +RICindicationSN ::= INTEGER (0..65535) + +RICindicationType ::= ENUMERATED{ + report, + insert, + ... +} + +RICrequestID ::= SEQUENCE { + ricRequestorID INTEGER (0..65535), + ricInstanceID INTEGER (0..65535), + ... +} + +RICsubscriptionTime ::= OCTET STRING (SIZE(8)) + +RICsubsequentAction ::=SEQUENCE{ + ricSubsequentActionType RICsubsequentActionType, + ricTimeToWait RICtimeToWait, + ... +} + +RICsubsequentActionType ::= ENUMERATED{ + continue, + wait, + ... +} + +-- ************************************************************** +-- Following IE defined in E2SM +-- ************************************************************** +RICqueryHeader ::= OCTET STRING + +-- ************************************************************** +-- Following IE defined in E2SM +-- ************************************************************** +RICqueryDefinition ::= OCTET STRING + +-- ************************************************************** +-- Following IE defined in E2SM +-- ************************************************************** +RICqueryOutcome ::= OCTET STRING + + +RICtimeToWait ::= ENUMERATED{ + w1ms, + w2ms, + w5ms, + w10ms, + w20ms, + w30ms, + w40ms, + w50ms, + w100ms, + w200ms, + w500ms, + w1s, + w2s, + w5s, + w10s, + w20s, + w60s, + ... +} +-- S +-- T +-- ************************************************************** +-- copied from 3GPP 38.413 (NGAP) IEs +-- ************************************************************** +TimeToWait ::= ENUMERATED {v1s, v2s, v5s, v10s, v20s, v60s, ...} + + +TNLinformation ::= SEQUENCE{ + tnlAddress BIT STRING (SIZE(1..160,...)), + tnlPort BIT STRING (SIZE(16)) OPTIONAL, + ... +} + +TNLusage ::= ENUMERATED{ric-service, support-function, both, ...} + +TransactionID ::= INTEGER (0..255,...) + +-- ************************************************************** +-- copied from 3GPP 38.413 (NGAP) IEs +-- ************************************************************** +TypeOfError ::= ENUMERATED { + not-understood, + missing, + ... +} + +-- U +-- V +-- W +-- X +-- Y +-- Z + +END +-- ASN1STOP diff --git a/e2sim/asn1c/asn/v03/e2ap-pdu-v03.01.asn b/e2sim/asn1c/asn/v03/e2ap-pdu-v03.01.asn new file mode 100755 index 0000000..80c7e06 --- /dev/null +++ b/e2sim/asn1c/asn/v03/e2ap-pdu-v03.01.asn @@ -0,0 +1,1412 @@ +-- ASN1START +-- ************************************************************** +-- +-- PDU definitions for E2AP +-- Derived from 3GPP 38.413 (NGAP) +-- +-- ************************************************************** + +E2AP-PDU-Contents { +iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version2 (2) e2ap(1) e2ap-PDU-Contents (1) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Cause, + CriticalityDiagnostics, + E2nodeComponentConfiguration, + E2nodeComponentConfigurationAck, + E2nodeComponentID, + E2nodeComponentInterfaceType, + GlobalE2node-ID, + GlobalRIC-ID, + RANfunctionDefinition, + RANfunctionID, + RANfunctionOID, + RANfunctionRevision, + RICactionDefinition, + RICactionExecutionOrder, + RICactionID, + RICactionType, + RICcallProcessID, + RICcontrolAckRequest, + RICcontrolHeader, + RICcontrolMessage, + RICcontrolOutcome, + RICeventTriggerDefinition, + RICindicationHeader, + RICindicationMessage, + RICindicationSN, + RICindicationType, + RICrequestID, + RICsubsequentAction, + RICsubscriptionTime, + RICqueryHeader, + RICqueryDefinition, + RICqueryOutcome, + TimeToWait, + TNLinformation, + TNLusage, + TransactionID +FROM E2AP-IEs + + ProtocolIE-Container{}, + ProtocolIE-ContainerList{}, + ProtocolIE-SingleContainer{}, + E2AP-PROTOCOL-IES, + E2AP-PROTOCOL-IES-PAIR +FROM E2AP-Containers + + id-Cause, + id-CriticalityDiagnostics, + id-E2connectionSetup, + id-E2connectionSetupFailed, + id-E2connectionSetupFailed-Item, + id-E2connectionFailed-Item, + id-E2connectionUpdate-Item, + id-E2connectionUpdateAdd, + id-E2connectionUpdateModify, + id-E2connectionUpdateRemove, + id-E2connectionUpdateRemove-Item, + id-E2nodeComponentConfigAddition, + id-E2nodeComponentConfigAddition-Item, + id-E2nodeComponentConfigAdditionAck, + id-E2nodeComponentConfigAdditionAck-Item, + id-E2nodeComponentConfigRemoval, + id-E2nodeComponentConfigRemoval-Item, + id-E2nodeComponentConfigRemovalAck, + id-E2nodeComponentConfigRemovalAck-Item, + id-E2nodeComponentConfigUpdate, + id-E2nodeComponentConfigUpdate-Item, + id-E2nodeComponentConfigUpdateAck, + id-E2nodeComponentConfigUpdateAck-Item, + id-E2nodeTNLassociationRemoval, + id-E2nodeTNLassociationRemoval-Item, + id-GlobalE2node-ID, + id-GlobalRIC-ID, + id-RANfunctionID, + id-RANfunctionID-Item, + id-RANfunctionIEcause-Item, + id-RANfunction-Item, + id-RANfunctionsAccepted, + id-RANfunctionsAdded, + id-RANfunctionsDeleted, + id-RANfunctionsModified, + id-RANfunctionsRejected, + id-RICaction-Admitted-Item, + id-RICactionID, + id-RICaction-NotAdmitted-Item, + id-RICactions-Admitted, + id-RICactions-NotAdmitted, + id-RICaction-ToBeSetup-Item, + id-RICactionsToBeRemovedForModification-List, + id-RICaction-ToBeRemovedForModification-Item, + id-RICactionsToBeModifiedForModification-List, + id-RICaction-ToBeModifiedForModification-Item, + id-RICactionsToBeAddedForModification-List, + id-RICaction-ToBeAddedForModification-Item, + id-RICactionsRemovedForModification-List, + id-RICaction-RemovedForModification-Item, + id-RICactionsFailedToBeRemovedForModification-List, + id-RICaction-FailedToBeRemovedForModification-Item, + id-RICactionsModifiedForModification-List, + id-RICaction-ModifiedForModification-Item, + id-RICactionsFailedToBeModifiedForModification-List, + id-RICaction-FailedToBeModifiedForModification-Item, + id-RICactionsAddedForModification-List, + id-RICaction-AddedForModification-Item, + id-RICactionsFailedToBeAddedForModification-List, + id-RICaction-FailedToBeAddedForModification-Item, + id-RICactionsRequiredToBeModified-List, + id-RICaction-RequiredToBeModified-Item, + id-RICactionsRequiredToBeRemoved-List, + id-RICaction-RequiredToBeRemoved-Item, + id-RICactionsConfirmedForModification-List, + id-RICaction-ConfirmedForModification-Item, + id-RICactionsRefusedToBeModified-List, + id-RICaction-RefusedToBeModified-Item, + id-RICactionsConfirmedForRemoval-List, + id-RICaction-ConfirmedForRemoval-Item, + id-RICactionsRefusedToBeRemoved-List, + id-RICaction-RefusedToBeRemoved-Item, + id-RICcallProcessID, + id-RICcontrolAckRequest, + id-RICcontrolHeader, + id-RICcontrolMessage, + id-RICcontrolOutcome, + id-RICeventTriggerDefinitionToBeModified, + id-RICindicationHeader, + id-RICindicationMessage, + id-RICindicationSN, + id-RICindicationType, + id-RICrequestID, + id-RICserviceQuery, + id-RICsubscriptionDetails, + id-RICsubscriptionToBeRemoved, + id-RICsubscription-withCause-Item, + id-RICsubscriptionStartTime, + id-RICsubscriptionEndTime, + id-RICqueryHeader, + id-RICqueryDefinition, + id-RICqueryOutcome, + id-TimeToWait, + id-TNLinformation, + id-TransactionID, + + maxofE2nodeComponents, + maxofRANfunctionID, + maxofRICactionID, + maxofRICrequestID, + maxofTNLA +FROM E2AP-Constants; + + +-- ************************************************************** +-- +-- MESSAGES FOR RIC FUNCTIONAL PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- RIC Subscription Elementary Procedure +-- +-- ************************************************************** +-- ************************************************************** +-- +-- RIC SUBSCRIPTION REQUEST +-- +-- ************************************************************** +RICsubscriptionRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RICsubscriptionRequest-IEs}}, + ... +} + +RICsubscriptionRequest-IEs E2AP-PROTOCOL-IES ::= { + { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| + { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| + { ID id-RICsubscriptionDetails CRITICALITY reject TYPE RICsubscriptionDetails PRESENCE mandatory}, + ..., + { ID id-RICsubscriptionStartTime CRITICALITY reject TYPE RICsubscriptionTime PRESENCE optional}| + { ID id-RICsubscriptionEndTime CRITICALITY reject TYPE RICsubscriptionTime PRESENCE optional} +} + + +RICsubscriptionDetails ::= SEQUENCE { + ricEventTriggerDefinition RICeventTriggerDefinition, + ricAction-ToBeSetup-List RICactions-ToBeSetup-List, + ... +} + +RICactions-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxofRICactionID)) OF ProtocolIE-SingleContainer { {RICaction-ToBeSetup-ItemIEs} } + +RICaction-ToBeSetup-ItemIEs E2AP-PROTOCOL-IES ::= { + { ID id-RICaction-ToBeSetup-Item CRITICALITY ignore TYPE RICaction-ToBeSetup-Item PRESENCE mandatory }, + ... +} + +RICaction-ToBeSetup-Item ::= SEQUENCE { + ricActionID RICactionID, + ricActionType RICactionType, + ricActionDefinition RICactionDefinition OPTIONAL, + ricSubsequentAction RICsubsequentAction OPTIONAL, + ..., + ricActionExecutionOrder RICactionExecutionOrder OPTIONAL -- New in E2APv03.00 + +} + +-- ************************************************************** +-- +-- RIC SUBSCRIPTION RESPONSE +-- +-- ************************************************************** +RICsubscriptionResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container{{RICsubscriptionResponse-IEs}}, + ... +} + +RICsubscriptionResponse-IEs E2AP-PROTOCOL-IES ::= { + { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory } | + { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory } | + { ID id-RICactions-Admitted CRITICALITY reject TYPE RICaction-Admitted-List PRESENCE mandatory } | + { ID id-RICactions-NotAdmitted CRITICALITY reject TYPE RICaction-NotAdmitted-List PRESENCE optional }, + ... +} + + + +RICaction-Admitted-List ::= SEQUENCE (SIZE(1..maxofRICactionID)) OF ProtocolIE-SingleContainer{{RICaction-Admitted-ItemIEs}} + +RICaction-Admitted-ItemIEs E2AP-PROTOCOL-IES ::= { + { ID id-RICaction-Admitted-Item CRITICALITY ignore TYPE RICaction-Admitted-Item PRESENCE mandatory }, + ... +} + +RICaction-Admitted-Item ::= SEQUENCE { + ricActionID RICactionID, + ... +} + +RICaction-NotAdmitted-List ::= SEQUENCE (SIZE(0..maxofRICactionID)) OF ProtocolIE-SingleContainer { {RICaction-NotAdmitted-ItemIEs} } + +RICaction-NotAdmitted-ItemIEs E2AP-PROTOCOL-IES ::= { + { ID id-RICaction-NotAdmitted-Item CRITICALITY ignore TYPE RICaction-NotAdmitted-Item PRESENCE mandatory }, + ... +} + +RICaction-NotAdmitted-Item ::= SEQUENCE { + ricActionID RICactionID, + cause Cause, + ... +} + +-- ************************************************************** +-- +-- RIC SUBSCRIPTION FAILURE +-- +-- ************************************************************** +RICsubscriptionFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RICsubscriptionFailure-IEs}}, + ... +} + +RICsubscriptionFailure-IEs E2AP-PROTOCOL-IES ::= { + { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory }| + { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory }| + { ID id-Cause CRITICALITY reject TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- RIC Subscription Delete Elementary Procedure +-- +-- ************************************************************** +-- ************************************************************** +-- +-- RIC SUBSCRIPTION DELETE REQUEST +-- +-- ************************************************************** +RICsubscriptionDeleteRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RICsubscriptionDeleteRequest-IEs}}, + ... +} + +RICsubscriptionDeleteRequest-IEs E2AP-PROTOCOL-IES ::= { + { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory }| + { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- RIC SUBSCRIPTION DELETE RESPONSE +-- +-- ************************************************************** +RICsubscriptionDeleteResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RICsubscriptionDeleteResponse-IEs}}, + ... +} + +RICsubscriptionDeleteResponse-IEs E2AP-PROTOCOL-IES ::= { + { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory }| + { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory }, + ... +} +-- ************************************************************** +-- +-- RIC SUBSCRIPTION DELETE FAILURE +-- +-- ************************************************************** +RICsubscriptionDeleteFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RICsubscriptionDeleteFailure-IEs}}, + ... +} + +RICsubscriptionDeleteFailure-IEs E2AP-PROTOCOL-IES ::= { + { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory }| + { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- RIC Subscription Delete Required Elementary Procedure +-- +-- ************************************************************** +-- ************************************************************** +-- +-- RIC SUBSCRIPTION DELETE REQUIRED +-- +-- ************************************************************** + +RICsubscriptionDeleteRequired ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RICsubscriptionDeleteRequired-IEs}}, + ... +} + +RICsubscriptionDeleteRequired-IEs E2AP-PROTOCOL-IES ::= { + { ID id-RICsubscriptionToBeRemoved CRITICALITY ignore TYPE RICsubscription-List-withCause PRESENCE mandatory }, + ... +} + +RICsubscription-List-withCause ::= SEQUENCE (SIZE(1..maxofRICrequestID)) OF ProtocolIE-SingleContainer { {RICsubscription-withCause-ItemIEs} } + +RICsubscription-withCause-ItemIEs E2AP-PROTOCOL-IES ::= { + { ID id-RICsubscription-withCause-Item CRITICALITY ignore TYPE RICsubscription-withCause-Item PRESENCE mandatory }, + ... +} + +RICsubscription-withCause-Item ::= SEQUENCE { + ricRequestID RICrequestID, + ranFunctionID RANfunctionID, + cause Cause, + ... +} + +-- ************************************************************** +-- +-- RIC Subscription Modification Elementary Procedure +-- +-- ************************************************************** +-- ************************************************************** +-- +-- RIC SUBSCRIPTION MODIFICATION REQUEST +-- +-- ************************************************************** +RICsubscriptionModificationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RICsubscriptionModificationRequest-IEs}}, + ... +} + +RICsubscriptionModificationRequest-IEs E2AP-PROTOCOL-IES ::= { + { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| + { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| + { ID id-RICeventTriggerDefinitionToBeModified CRITICALITY ignore TYPE RICeventTriggerDefinition PRESENCE optional}| + { ID id-RICactionsToBeRemovedForModification-List CRITICALITY ignore TYPE RICactions-ToBeRemovedForModification-List PRESENCE optional}| + { ID id-RICactionsToBeModifiedForModification-List CRITICALITY ignore TYPE RICactions-ToBeModifiedForModification-List PRESENCE optional}| + { ID id-RICactionsToBeAddedForModification-List CRITICALITY ignore TYPE RICactions-ToBeAddedForModification-List PRESENCE optional}, + ... +} + +RICactions-ToBeRemovedForModification-List ::= SEQUENCE (SIZE(0..maxofRICactionID)) OF ProtocolIE-SingleContainer {{RICaction-ToBeRemovedForModification-ItemIEs} } + +RICaction-ToBeRemovedForModification-ItemIEs E2AP-PROTOCOL-IES ::= { + { ID id-RICaction-ToBeRemovedForModification-Item CRITICALITY ignore TYPE RICaction-ToBeRemovedForModification-Item PRESENCE mandatory }, + ... +} + +RICaction-ToBeRemovedForModification-Item ::= SEQUENCE { + ricActionID RICactionID, + ... +} + +RICactions-ToBeModifiedForModification-List ::= SEQUENCE (SIZE(0..maxofRICactionID)) OF ProtocolIE-SingleContainer {{RICaction-ToBeModifiedForModification-ItemIEs} } + +RICaction-ToBeModifiedForModification-ItemIEs E2AP-PROTOCOL-IES ::= { + { ID id-RICaction-ToBeModifiedForModification-Item CRITICALITY ignore TYPE RICaction-ToBeModifiedForModification-Item PRESENCE mandatory }, + ... +} + +RICaction-ToBeModifiedForModification-Item ::= SEQUENCE { + ricActionID RICactionID, + ricActionDefinition RICactionDefinition OPTIONAL, + ricActionExecutionOrder RICactionExecutionOrder OPTIONAL, + ricSubsequentAction RICsubsequentAction OPTIONAL, + ... +} + + +RICactions-ToBeAddedForModification-List ::= SEQUENCE (SIZE(0..maxofRICactionID)) OF ProtocolIE-SingleContainer {{RICaction-ToBeAddedForModification-ItemIEs} } + +RICaction-ToBeAddedForModification-ItemIEs E2AP-PROTOCOL-IES ::= { + { ID id-RICaction-ToBeAddedForModification-Item CRITICALITY ignore TYPE RICaction-ToBeAddedForModification-Item PRESENCE mandatory }, + ... +} + +RICaction-ToBeAddedForModification-Item ::= SEQUENCE { + ricActionID RICactionID, + ricActionType RICactionType, + ricActionDefinition RICactionDefinition, + ricActionExecutionOrder RICactionExecutionOrder, + ricSubsequentAction RICsubsequentAction OPTIONAL, + ... +} +-- ************************************************************** +-- +-- RIC SUBSCRIPTION MODIFICATION RESPONSE +-- +-- ************************************************************** +RICsubscriptionModificationResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RICsubscriptionModificationResponse-IEs}}, + ... +} + +RICsubscriptionModificationResponse-IEs E2AP-PROTOCOL-IES ::= { + { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| + { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| + { ID id-RICactionsRemovedForModification-List CRITICALITY ignore TYPE RICactions-RemovedForModification-List PRESENCE optional}| + { ID id-RICactionsFailedToBeRemovedForModification-List CRITICALITY ignore TYPE RICactions-FailedToBeRemovedForModification-List PRESENCE optional}| + { ID id-RICactionsModifiedForModification-List CRITICALITY ignore TYPE RICactions-ModifiedForModification-List PRESENCE optional}| + { ID id-RICactionsFailedToBeModifiedForModification-List CRITICALITY ignore TYPE RICactions-FailedToBeModifiedForModification-List PRESENCE optional}| + { ID id-RICactionsAddedForModification-List CRITICALITY ignore TYPE RICactions-AddedForModification-List PRESENCE optional}| + { ID id-RICactionsFailedToBeAddedForModification-List CRITICALITY ignore TYPE RICactions-FailedToBeAddedForModification-List PRESENCE optional}, + ... +} + +RICactions-RemovedForModification-List ::= SEQUENCE (SIZE(0..maxofRICactionID)) OF ProtocolIE-SingleContainer {{RICaction-RemovedForModification-ItemIEs} } + +RICaction-RemovedForModification-ItemIEs E2AP-PROTOCOL-IES ::= { + { ID id-RICaction-RemovedForModification-Item CRITICALITY ignore TYPE RICaction-RemovedForModification-Item PRESENCE mandatory }, + ... +} + +RICaction-RemovedForModification-Item ::= SEQUENCE { + ricActionID RICactionID, + ... +} +RICactions-FailedToBeRemovedForModification-List ::= SEQUENCE (SIZE(0..maxofRICactionID)) OF ProtocolIE-SingleContainer {{RICaction-FailedToBeRemovedForModification-ItemIEs} } + +RICaction-FailedToBeRemovedForModification-ItemIEs E2AP-PROTOCOL-IES ::= { + { ID id-RICaction-FailedToBeRemovedForModification-Item CRITICALITY ignore TYPE RICaction-FailedToBeRemovedForModification-Item PRESENCE mandatory }, + ... +} + +RICaction-FailedToBeRemovedForModification-Item ::= SEQUENCE { + ricActionID RICactionID, + cause Cause, + ... +} + +RICactions-ModifiedForModification-List ::= SEQUENCE (SIZE(0..maxofRICactionID)) OF ProtocolIE-SingleContainer {{RICaction-ModifiedForModification-ItemIEs} } + +RICaction-ModifiedForModification-ItemIEs E2AP-PROTOCOL-IES ::= { + { ID id-RICaction-ModifiedForModification-Item CRITICALITY ignore TYPE RICaction-ModifiedForModification-Item PRESENCE mandatory }, + ... +} + +RICaction-ModifiedForModification-Item ::= SEQUENCE { + ricActionID RICactionID, + ... +} + +RICactions-FailedToBeModifiedForModification-List ::= SEQUENCE (SIZE(0..maxofRICactionID)) OF ProtocolIE-SingleContainer {{RICaction-FailedToBeModifiedForModification-ItemIEs} } + +RICaction-FailedToBeModifiedForModification-ItemIEs E2AP-PROTOCOL-IES ::= { + { ID id-RICaction-FailedToBeModifiedForModification-Item CRITICALITY ignore TYPE RICaction-FailedToBeModifiedForModification-Item PRESENCE mandatory }, + ... +} + +RICaction-FailedToBeModifiedForModification-Item ::= SEQUENCE { + ricActionID RICactionID, + cause Cause, + ... +} + +RICactions-AddedForModification-List ::= SEQUENCE (SIZE(0..maxofRICactionID)) OF ProtocolIE-SingleContainer {{RICaction-AddedForModification-ItemIEs} } + +RICaction-AddedForModification-ItemIEs E2AP-PROTOCOL-IES ::= { + { ID id-RICaction-AddedForModification-Item CRITICALITY ignore TYPE RICaction-AddedForModification-Item PRESENCE mandatory }, + ... +} + +RICaction-AddedForModification-Item ::= SEQUENCE { + ricActionID RICactionID, + ... +} + +RICactions-FailedToBeAddedForModification-List ::= SEQUENCE (SIZE(0..maxofRICactionID)) OF ProtocolIE-SingleContainer {{RICaction-FailedToBeAddedForModification-ItemIEs} } + +RICaction-FailedToBeAddedForModification-ItemIEs E2AP-PROTOCOL-IES ::= { + { ID id-RICaction-FailedToBeAddedForModification-Item CRITICALITY ignore TYPE RICaction-FailedToBeAddedForModification-Item PRESENCE mandatory }, + ... +} + +RICaction-FailedToBeAddedForModification-Item ::= SEQUENCE { + ricActionID RICactionID, + cause Cause, + ... +} + +-- ************************************************************** +-- +-- RIC SUBSCRIPTION MODIFICATION FAILURE +-- +-- ************************************************************** +RICsubscriptionModificationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RICsubscriptionModificationFailure-IEs}}, + ... +} + +RICsubscriptionModificationFailure-IEs E2AP-PROTOCOL-IES ::= { + { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| + { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| + { ID id-Cause CRITICALITY reject TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- RIC Subscription Modification Required Elementary Procedure +-- +-- ************************************************************** +-- ************************************************************** +-- +-- RIC SUBSCRIPTION MODIFICATION REQUIRED +-- +-- ************************************************************** +RICsubscriptionModificationRequired ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RICsubscriptionModificationRequired-IEs}}, + ... +} + +RICsubscriptionModificationRequired-IEs E2AP-PROTOCOL-IES ::= { + { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| + { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| + { ID id-RICactionsRequiredToBeModified-List CRITICALITY ignore TYPE RICactions-RequiredToBeModified-List PRESENCE optional}| + { ID id-RICactionsRequiredToBeRemoved-List CRITICALITY ignore TYPE RICactions-RequiredToBeRemoved-List PRESENCE optional}, + ... +} + +RICactions-RequiredToBeModified-List ::= SEQUENCE (SIZE(0..maxofRICactionID)) OF ProtocolIE-SingleContainer {{RICaction-RequiredToBeModified-ItemIEs} } + +RICaction-RequiredToBeModified-ItemIEs E2AP-PROTOCOL-IES ::= { + { ID id-RICaction-RequiredToBeModified-Item CRITICALITY ignore TYPE RICaction-RequiredToBeModified-Item PRESENCE mandatory }, + ... +} + +RICaction-RequiredToBeModified-Item ::= SEQUENCE { + ricActionID RICactionID, + ricTimeToWait RICtimeToWait, + ... +} + +RICactions-RequiredToBeRemoved-List ::= SEQUENCE (SIZE(0..maxofRICactionID)) OF ProtocolIE-SingleContainer {{RICaction-RequiredToBeRemoved-ItemIEs} } + +RICaction-RequiredToBeRemoved-ItemIEs E2AP-PROTOCOL-IES ::= { + { ID id-RICaction-RequiredToBeRemoved-Item CRITICALITY ignore TYPE RICaction-RequiredToBeRemoved-Item PRESENCE mandatory }, + ... +} + +RICaction-RequiredToBeRemoved-Item ::= SEQUENCE { + ricActionID RICactionID, + cause Cause, + ... +} + +-- ************************************************************** +-- +-- RIC SUBSCRIPTION MODIFICATION CONFIRM +-- +-- ************************************************************** +RICsubscriptionModificationConfirm ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RICsubscriptionModificationConfirm-IEs}}, + ... +} + +RICsubscriptionModificationConfirm-IEs E2AP-PROTOCOL-IES ::= { + { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| + { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| + { ID id-RICactionsConfirmedForModification-List CRITICALITY ignore TYPE RICactions-ConfirmedForModification-List PRESENCE optional}| + { ID id-RICactionsRefusedToBeModified-List CRITICALITY ignore TYPE RICactions-RefusedToBeModified-List PRESENCE optional}| + { ID id-RICactionsConfirmedForRemoval-List CRITICALITY ignore TYPE RICactions-ConfirmedForRemoval-List PRESENCE optional}| + { ID id-RICactionsRefusedToBeRemoved-List CRITICALITY ignore TYPE RICactions-RefusedToBeRemoved-List PRESENCE optional}, + ... +} + +RICactions-ConfirmedForModification-List ::= SEQUENCE (SIZE(0..maxofRICactionID)) OF ProtocolIE-SingleContainer {{RICaction-ConfirmedForModification-ItemIEs} } + +RICaction-ConfirmedForModification-ItemIEs E2AP-PROTOCOL-IES ::= { + { ID id-RICaction-ConfirmedForModification-Item CRITICALITY ignore TYPE RICaction-ConfirmedForModification-Item PRESENCE mandatory }, + ... +} + +RICaction-ConfirmedForModification-Item ::= SEQUENCE { + ricActionID RICactionID, + ... +} +RICactions-RefusedToBeModified-List ::= SEQUENCE (SIZE(0..maxofRICactionID)) OF ProtocolIE-SingleContainer {{RICaction-RefusedToBeModified-ItemIEs} } + +RICaction-RefusedToBeModified-ItemIEs E2AP-PROTOCOL-IES ::= { + { ID id-RICaction-RefusedToBeModified-Item CRITICALITY ignore TYPE RICaction-RefusedToBeModified-Item PRESENCE mandatory }, + ... +} + +RICaction-RefusedToBeModified-Item ::= SEQUENCE { + ricActionID RICactionID, + cause Cause, + ... +} + +RICactions-ConfirmedForRemoval-List ::= SEQUENCE (SIZE(0..maxofRICactionID)) OF ProtocolIE-SingleContainer {{RICaction-ConfirmedForRemoval-ItemIEs} } + +RICaction-ConfirmedForRemoval-ItemIEs E2AP-PROTOCOL-IES ::= { + { ID id-RICaction-ConfirmedForRemoval-Item CRITICALITY ignore TYPE RICaction-ConfirmedForRemoval-Item PRESENCE mandatory }, + ... +} + +RICaction-ConfirmedForRemoval-Item ::= SEQUENCE { + ricActionID RICactionID, + ... +} + +RICactions-RefusedToBeRemoved-List ::= SEQUENCE (SIZE(0..maxofRICactionID)) OF ProtocolIE-SingleContainer {{RICaction-RefusedToBeRemoved-ItemIEs} } + +RICaction-RefusedToBeRemoved-ItemIEs E2AP-PROTOCOL-IES ::= { + { ID id-RICaction-RefusedToBeRemoved-Item CRITICALITY ignore TYPE RICaction-RefusedToBeRemoved-Item PRESENCE mandatory }, + ... +} + +RICaction-RefusedToBeRemoved-Item ::= SEQUENCE { + ricActionID RICactionID, + cause Cause, + ... +} + +-- ************************************************************** +-- +-- RIC SUBSCRIPTION MODIFICATION REFUSE +-- +-- ************************************************************** +RICsubscriptionModificationRefuse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RICsubscriptionModificationRefuse-IEs}}, + ... +} + + +RICsubscriptionModificationRefuse-IEs E2AP-PROTOCOL-IES ::= { + { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| + { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| + { ID id-Cause CRITICALITY reject TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- RIC Indication Elementary Procedure +-- +-- ************************************************************** +-- ************************************************************** +-- +-- RIC INDICATION +-- +-- ************************************************************** +RICindication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RICindication-IEs}}, + ... +} + +RICindication-IEs E2AP-PROTOCOL-IES ::= { + { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory }| + { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory }| + { ID id-RICactionID CRITICALITY reject TYPE RICactionID PRESENCE mandatory }| + { ID id-RICindicationSN CRITICALITY reject TYPE RICindicationSN PRESENCE optional }| + { ID id-RICindicationType CRITICALITY reject TYPE RICindicationType PRESENCE mandatory }| + { ID id-RICindicationHeader CRITICALITY reject TYPE RICindicationHeader PRESENCE mandatory }| + { ID id-RICindicationMessage CRITICALITY reject TYPE RICindicationMessage PRESENCE mandatory }| + { ID id-RICcallProcessID CRITICALITY reject TYPE RICcallProcessID PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- RIC Control Elementary Procedure +-- +-- ************************************************************** +-- ************************************************************** +-- +-- RIC CONTROL REQUEST +-- +-- ************************************************************** +RICcontrolRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RICcontrolRequest-IEs}}, + ... +} + +RICcontrolRequest-IEs E2AP-PROTOCOL-IES ::= { + { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory }| + { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory }| + { ID id-RICcallProcessID CRITICALITY reject TYPE RICcallProcessID PRESENCE optional }| + { ID id-RICcontrolHeader CRITICALITY reject TYPE RICcontrolHeader PRESENCE mandatory }| + { ID id-RICcontrolMessage CRITICALITY reject TYPE RICcontrolMessage PRESENCE mandatory }| + { ID id-RICcontrolAckRequest CRITICALITY reject TYPE RICcontrolAckRequest PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- RIC CONTROL ACKNOWLEDGE +-- +-- ************************************************************** +RICcontrolAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RICcontrolAcknowledge-IEs}}, + ... +} + +RICcontrolAcknowledge-IEs E2AP-PROTOCOL-IES ::= { + { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory }| + { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory }| + { ID id-RICcallProcessID CRITICALITY reject TYPE RICcallProcessID PRESENCE optional }| + { ID id-RICcontrolOutcome CRITICALITY reject TYPE RICcontrolOutcome PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- RIC CONTROL FAILURE +-- +-- ************************************************************** +RICcontrolFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RICcontrolFailure-IEs}}, + ... +} + +RICcontrolFailure-IEs E2AP-PROTOCOL-IES ::= { + { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory }| + { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory }| + { ID id-RICcallProcessID CRITICALITY reject TYPE RICcallProcessID PRESENCE optional }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-RICcontrolOutcome CRITICALITY reject TYPE RICcontrolOutcome PRESENCE optional }, + ..., + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } +} + +-- ************************************************************** +-- +-- RIC QUERY Elementary Procedure +-- +-- ************************************************************** +-- ************************************************************** +-- +-- RIC QUERY REQUEST +-- +-- ************************************************************** +RICQueryRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RICQueryRequest-IEs}}, + ... +} + +RICQueryRequest-IEs E2AP-PROTOCOL-IES ::= { + { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory }| + { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory }| + { ID id-RICqueryHeader CRITICALITY reject TYPE RICqueryHeader PRESENCE mandatory }| + { ID id-RICqueryDefinition CRITICALITY reject TYPE RICqueryDefinition PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- RIC QUERY RESPONSE +-- +-- ************************************************************** +RICQueryResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RICQueryResponse-IEs}}, + ... +} + +RICQueryResponse-IEs E2AP-PROTOCOL-IES ::= { + { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory }| + { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory }| + { ID id-RICqueryOutcome CRITICALITY reject TYPE RICqueryOutcome PRESENCE mandatory }, + ... +} +-- ************************************************************** +-- +-- RIC QUERY FAILURE +-- +-- ************************************************************** +RICQueryFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RICQueryFailure-IEs}}, + ... +} + +RICQueryFailure-IEs E2AP-PROTOCOL-IES ::= { + { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory }| + { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- MESSAGES FOR GLOBAL PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Error Indication Elementary Procedure +-- +-- ************************************************************** +-- ************************************************************** +-- +-- ERROR INDICATION +-- +-- ************************************************************** +ErrorIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ErrorIndication-IEs}}, + ... +} + +ErrorIndication-IEs E2AP-PROTOCOL-IES ::= { + { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE optional }| + { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE optional }| + { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE optional }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- E2 Setup Elementary Procedure +-- +-- ************************************************************** +-- ************************************************************** +-- +-- E2 SETUP REQUEST +-- +-- ************************************************************** + +E2setupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E2setupRequestIEs} }, + ... +} + +E2setupRequestIEs E2AP-PROTOCOL-IES ::= { + { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }| + { ID id-GlobalE2node-ID CRITICALITY reject TYPE GlobalE2node-ID PRESENCE mandatory }| + { ID id-RANfunctionsAdded CRITICALITY reject TYPE RANfunctions-List PRESENCE mandatory }| + { ID id-E2nodeComponentConfigAddition CRITICALITY reject TYPE E2nodeComponentConfigAddition-List PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- E2 SETUP RESPONSE +-- +-- ************************************************************** + +E2setupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E2setupResponseIEs} }, + ... +} + +E2setupResponseIEs E2AP-PROTOCOL-IES ::= { + { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }| + { ID id-GlobalRIC-ID CRITICALITY reject TYPE GlobalRIC-ID PRESENCE mandatory }| + { ID id-RANfunctionsAccepted CRITICALITY reject TYPE RANfunctionsID-List PRESENCE optional }| + { ID id-RANfunctionsRejected CRITICALITY reject TYPE RANfunctionsIDcause-List PRESENCE optional }| + { ID id-E2nodeComponentConfigAdditionAck CRITICALITY reject TYPE E2nodeComponentConfigAdditionAck-List PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- E2 SETUP FAILURE +-- +-- ************************************************************** + +E2setupFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E2setupFailureIEs} }, + ... +} + +E2setupFailureIEs E2AP-PROTOCOL-IES ::= { + { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }| + { ID id-TNLinformation CRITICALITY ignore TYPE TNLinformation PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- E2 Connection Update Elementary Procedure +-- +-- ************************************************************** +-- ************************************************************** +-- +-- E2 CONNECTION UPDATE +-- +-- ************************************************************** +E2connectionUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{E2connectionUpdate-IEs}}, + ... +} + +E2connectionUpdate-IEs E2AP-PROTOCOL-IES ::= { + { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }| + { ID id-E2connectionUpdateAdd CRITICALITY reject TYPE E2connectionUpdate-List PRESENCE optional }| + { ID id-E2connectionUpdateRemove CRITICALITY reject TYPE E2connectionUpdateRemove-List PRESENCE optional }| + { ID id-E2connectionUpdateModify CRITICALITY reject TYPE E2connectionUpdate-List PRESENCE optional }, + ... +} + +E2connectionUpdate-List ::= SEQUENCE (SIZE(1..maxofTNLA)) OF ProtocolIE-SingleContainer { {E2connectionUpdate-ItemIEs} } + +E2connectionUpdate-ItemIEs E2AP-PROTOCOL-IES ::= { + { ID id-E2connectionUpdate-Item CRITICALITY ignore TYPE E2connectionUpdate-Item PRESENCE mandatory }, + ... +} + +E2connectionUpdate-Item ::= SEQUENCE { + tnlInformation TNLinformation, + tnlUsage TNLusage, + ... +} + +E2connectionUpdateRemove-List ::= SEQUENCE (SIZE(1..maxofTNLA)) OF ProtocolIE-SingleContainer { {E2connectionUpdateRemove-ItemIEs} } + +E2connectionUpdateRemove-ItemIEs E2AP-PROTOCOL-IES ::= { + { ID id-E2connectionUpdateRemove-Item CRITICALITY ignore TYPE E2connectionUpdateRemove-Item PRESENCE mandatory }, + ... +} + +E2connectionUpdateRemove-Item ::= SEQUENCE { + tnlInformation TNLinformation, + ... +} + + + +-- ************************************************************** +-- +-- E2 CONNECTION UPDATE ACKNOWLEDGE +-- +-- ************************************************************** +E2connectionUpdateAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{E2connectionUpdateAck-IEs}}, + ... +} + +E2connectionUpdateAck-IEs E2AP-PROTOCOL-IES ::= { + { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }| + { ID id-E2connectionSetup CRITICALITY reject TYPE E2connectionUpdate-List PRESENCE optional }| + { ID id-E2connectionSetupFailed CRITICALITY reject TYPE E2connectionSetupFailed-List PRESENCE optional }, + ... +} + +E2connectionSetupFailed-List ::= SEQUENCE (SIZE(1..maxofTNLA)) OF ProtocolIE-SingleContainer { {E2connectionSetupFailed-ItemIEs} } + +E2connectionSetupFailed-ItemIEs E2AP-PROTOCOL-IES ::= { + { ID id-E2connectionSetupFailed-Item CRITICALITY ignore TYPE E2connectionSetupFailed-Item PRESENCE mandatory }, + ... +} + +E2connectionSetupFailed-Item ::= SEQUENCE { + tnlInformation TNLinformation, + cause Cause, + ... +} + +-- ************************************************************** +-- +-- E2 CONNECTION UPDATE FAILURE +-- +-- ************************************************************** +E2connectionUpdateFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{E2connectionUpdateFailure-IEs}}, + ... +} + +E2connectionUpdateFailure-IEs E2AP-PROTOCOL-IES ::= { + { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }| + { ID id-Cause CRITICALITY reject TYPE Cause PRESENCE optional }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- E2 Node Configuration Update Elementary Procedure +-- +-- ************************************************************** +-- ************************************************************** +-- +-- E2 NODE CONFIGURATION UPDATE +-- +-- ************************************************************** +E2nodeConfigurationUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{E2nodeConfigurationUpdate-IEs}}, + ... +} + +E2nodeConfigurationUpdate-IEs E2AP-PROTOCOL-IES ::= { + { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }| + { ID id-GlobalE2node-ID CRITICALITY reject TYPE GlobalE2node-ID PRESENCE optional }| + { ID id-E2nodeComponentConfigAddition CRITICALITY reject TYPE E2nodeComponentConfigAddition-List PRESENCE optional }| + { ID id-E2nodeComponentConfigUpdate CRITICALITY reject TYPE E2nodeComponentConfigUpdate-List PRESENCE optional }| + { ID id-E2nodeComponentConfigRemoval CRITICALITY reject TYPE E2nodeComponentConfigRemoval-List PRESENCE optional }| + { ID id-E2nodeTNLassociationRemoval CRITICALITY reject TYPE E2nodeTNLassociationRemoval-List PRESENCE optional }, + ... +} + +E2nodeComponentConfigAddition-List ::= SEQUENCE (SIZE(1..maxofE2nodeComponents)) OF ProtocolIE-SingleContainer { {E2nodeComponentConfigAddition-ItemIEs} } + +E2nodeComponentConfigAddition-ItemIEs E2AP-PROTOCOL-IES ::= { + { ID id-E2nodeComponentConfigAddition-Item CRITICALITY reject TYPE E2nodeComponentConfigAddition-Item PRESENCE mandatory }, + ... +} + +E2nodeComponentConfigAddition-Item ::= SEQUENCE { + e2nodeComponentInterfaceType E2nodeComponentInterfaceType, + e2nodeComponentID E2nodeComponentID, + e2nodeComponentConfiguration E2nodeComponentConfiguration, + ... +} + +E2nodeComponentConfigUpdate-List ::= SEQUENCE (SIZE(1..maxofE2nodeComponents)) OF ProtocolIE-SingleContainer { {E2nodeComponentConfigUpdate-ItemIEs} } + +E2nodeComponentConfigUpdate-ItemIEs E2AP-PROTOCOL-IES ::= { + { ID id-E2nodeComponentConfigUpdate-Item CRITICALITY reject TYPE E2nodeComponentConfigUpdate-Item PRESENCE mandatory }, + ... +} + +E2nodeComponentConfigUpdate-Item ::= SEQUENCE { + e2nodeComponentInterfaceType E2nodeComponentInterfaceType, + e2nodeComponentID E2nodeComponentID, + e2nodeComponentConfiguration E2nodeComponentConfiguration, + ... +} + +E2nodeComponentConfigRemoval-List ::= SEQUENCE (SIZE(1..maxofE2nodeComponents)) OF ProtocolIE-SingleContainer { {E2nodeComponentConfigRemoval-ItemIEs} } + +E2nodeComponentConfigRemoval-ItemIEs E2AP-PROTOCOL-IES ::= { + { ID id-E2nodeComponentConfigRemoval-Item CRITICALITY reject TYPE E2nodeComponentConfigRemoval-Item PRESENCE mandatory }, + ... +} + +E2nodeComponentConfigRemoval-Item ::= SEQUENCE { + e2nodeComponentInterfaceType E2nodeComponentInterfaceType, + e2nodeComponentID E2nodeComponentID, + ... +} + +E2nodeTNLassociationRemoval-List ::= SEQUENCE (SIZE(1..maxofTNLA)) OF ProtocolIE-SingleContainer { {E2nodeTNLassociationRemoval-ItemIEs} } + +E2nodeTNLassociationRemoval-ItemIEs E2AP-PROTOCOL-IES ::= { + { ID id-E2nodeTNLassociationRemoval-Item CRITICALITY reject TYPE E2nodeTNLassociationRemoval-Item PRESENCE mandatory }, + ... +} + +E2nodeTNLassociationRemoval-Item ::= SEQUENCE { + tnlInformation TNLinformation, + tnlInformationRIC TNLinformation, + ... +} + +-- ************************************************************** +-- +-- E2 NODE CONFIGURATION UPDATE ACKNOWLEDGE +-- +-- ************************************************************** +E2nodeConfigurationUpdateAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{E2nodeConfigurationUpdateAcknowledge-IEs}}, + ... +} + +E2nodeConfigurationUpdateAcknowledge-IEs E2AP-PROTOCOL-IES ::= { + { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }| + { ID id-E2nodeComponentConfigAdditionAck CRITICALITY reject TYPE E2nodeComponentConfigAdditionAck-List PRESENCE optional }| + { ID id-E2nodeComponentConfigUpdateAck CRITICALITY reject TYPE E2nodeComponentConfigUpdateAck-List PRESENCE optional }| + { ID id-E2nodeComponentConfigRemovalAck CRITICALITY reject TYPE E2nodeComponentConfigRemovalAck-List PRESENCE optional }, + ... +} + +E2nodeComponentConfigAdditionAck-List ::= SEQUENCE (SIZE(1..maxofE2nodeComponents)) OF ProtocolIE-SingleContainer { {E2nodeComponentConfigAdditionAck-ItemIEs} } + +E2nodeComponentConfigAdditionAck-ItemIEs E2AP-PROTOCOL-IES ::= { + { ID id-E2nodeComponentConfigAdditionAck-Item CRITICALITY reject TYPE E2nodeComponentConfigAdditionAck-Item PRESENCE mandatory }, + ... +} + +E2nodeComponentConfigAdditionAck-Item ::= SEQUENCE { + e2nodeComponentInterfaceType E2nodeComponentInterfaceType, + e2nodeComponentID E2nodeComponentID, + e2nodeComponentConfigurationAck E2nodeComponentConfigurationAck, + ... +} + +E2nodeComponentConfigUpdateAck-List ::= SEQUENCE (SIZE(1..maxofE2nodeComponents)) OF ProtocolIE-SingleContainer { {E2nodeComponentConfigUpdateAck-ItemIEs} } + +E2nodeComponentConfigUpdateAck-ItemIEs E2AP-PROTOCOL-IES ::= { + { ID id-E2nodeComponentConfigUpdateAck-Item CRITICALITY reject TYPE E2nodeComponentConfigUpdateAck-Item PRESENCE mandatory }, + ... +} + +E2nodeComponentConfigUpdateAck-Item ::= SEQUENCE { + e2nodeComponentInterfaceType E2nodeComponentInterfaceType, + e2nodeComponentID E2nodeComponentID, + e2nodeComponentConfigurationAck E2nodeComponentConfigurationAck, + ... +} + +E2nodeComponentConfigRemovalAck-List ::= SEQUENCE (SIZE(1..maxofE2nodeComponents)) OF ProtocolIE-SingleContainer { {E2nodeComponentConfigRemovalAck-ItemIEs} } + +E2nodeComponentConfigRemovalAck-ItemIEs E2AP-PROTOCOL-IES ::= { + { ID id-E2nodeComponentConfigRemovalAck-Item CRITICALITY reject TYPE E2nodeComponentConfigRemovalAck-Item PRESENCE mandatory }, + ... +} + +E2nodeComponentConfigRemovalAck-Item ::= SEQUENCE { + e2nodeComponentInterfaceType E2nodeComponentInterfaceType, + e2nodeComponentID E2nodeComponentID, + e2nodeComponentConfigurationAck E2nodeComponentConfigurationAck, + ... +} + +-- ************************************************************** +-- +-- E2 NODE CONFIGURATION UPDATE FAILURE +-- +-- ************************************************************** +E2nodeConfigurationUpdateFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{E2nodeConfigurationUpdateFailure-IEs}}, + ... +} + +E2nodeConfigurationUpdateFailure-IEs E2AP-PROTOCOL-IES ::= { + { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- Reset Elementary Procedure +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- RESET REQUEST +-- +-- ************************************************************** + +ResetRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ResetRequestIEs} }, + ... +} + +ResetRequestIEs E2AP-PROTOCOL-IES ::= { + { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- RESET RESPONSE +-- +-- ************************************************************** + +ResetResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ResetResponseIEs} }, + ... +} + +ResetResponseIEs E2AP-PROTOCOL-IES ::= { + { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- RIC Service Update Elementary Procedure +-- +-- ************************************************************** +-- ************************************************************** +-- +-- RIC SERVICE UPDATE +-- +-- ************************************************************** +RICserviceUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RICserviceUpdate-IEs}}, + ... +} + +RICserviceUpdate-IEs E2AP-PROTOCOL-IES ::= { + { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }| + { ID id-RANfunctionsAdded CRITICALITY reject TYPE RANfunctions-List PRESENCE optional }| + { ID id-RANfunctionsModified CRITICALITY reject TYPE RANfunctions-List PRESENCE optional }| + { ID id-RANfunctionsDeleted CRITICALITY reject TYPE RANfunctionsID-List PRESENCE optional }, + ... +} + +RANfunctions-List ::= SEQUENCE (SIZE(1..maxofRANfunctionID)) OF ProtocolIE-SingleContainer { {RANfunction-ItemIEs} } + +RANfunction-ItemIEs E2AP-PROTOCOL-IES ::= { + { ID id-RANfunction-Item CRITICALITY ignore TYPE RANfunction-Item PRESENCE mandatory }, + ... +} + + +RANfunction-Item ::= SEQUENCE { + ranFunctionID RANfunctionID, + ranFunctionDefinition RANfunctionDefinition, + ranFunctionRevision RANfunctionRevision, + ranFunctionOID RANfunctionOID, + ... +} + +RANfunctionsID-List ::= SEQUENCE (SIZE(1..maxofRANfunctionID)) OF ProtocolIE-SingleContainer{{RANfunctionID-ItemIEs}} + +RANfunctionID-ItemIEs E2AP-PROTOCOL-IES ::= { + { ID id-RANfunctionID-Item CRITICALITY ignore TYPE RANfunctionID-Item PRESENCE mandatory }, + ... +} + +RANfunctionID-Item ::= SEQUENCE { + ranFunctionID RANfunctionID, + ranFunctionRevision RANfunctionRevision, + ... +} + +-- ************************************************************** +-- +-- RIC SERVICE UPDATE ACKNOWLEDGE +-- +-- ************************************************************** +RICserviceUpdateAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RICserviceUpdateAcknowledge-IEs}}, + ... +} + +RICserviceUpdateAcknowledge-IEs E2AP-PROTOCOL-IES ::= { + { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }| + { ID id-RANfunctionsAccepted CRITICALITY reject TYPE RANfunctionsID-List PRESENCE optional }| + { ID id-RANfunctionsRejected CRITICALITY reject TYPE RANfunctionsIDcause-List PRESENCE optional }, + ... +} + +RANfunctionsIDcause-List ::= SEQUENCE (SIZE(1..maxofRANfunctionID)) OF ProtocolIE-SingleContainer { {RANfunctionIDcause-ItemIEs} } + +RANfunctionIDcause-ItemIEs E2AP-PROTOCOL-IES ::= { + { ID id-RANfunctionIEcause-Item CRITICALITY ignore TYPE RANfunctionIDcause-Item PRESENCE mandatory }, + ... +} + + +RANfunctionIDcause-Item ::= SEQUENCE { + ranFunctionID RANfunctionID, + cause Cause, + ... +} + + +-- ************************************************************** +-- +-- RIC SERVICE UPDATE FAILURE +-- +-- ************************************************************** +RICserviceUpdateFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RICserviceUpdateFailure-IEs}}, + ... +} + +RICserviceUpdateFailure-IEs E2AP-PROTOCOL-IES ::= { + { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }| + { ID id-Cause CRITICALITY reject TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- RIC Service Query Elementary Procedure +-- +-- ************************************************************** +-- ************************************************************** +-- +-- RIC SERVICE QUERY +-- +-- ************************************************************** +RICserviceQuery ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RICserviceQuery-IEs}}, + ... +} + +RICserviceQuery-IEs E2AP-PROTOCOL-IES ::= { + { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }| + { ID id-RANfunctionsAccepted CRITICALITY reject TYPE RANfunctionsID-List PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- E2 Removal Elementary Procedure +-- +-- ************************************************************** +-- ************************************************************** +-- +-- E2 REMOVAL REQUEST +-- +-- ************************************************************** + +E2RemovalRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E2RemovalRequestIEs} }, + ... +} + +E2RemovalRequestIEs E2AP-PROTOCOL-IES ::= { + { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- E2 REMOVAL RESPONSE +-- +-- ************************************************************** + +E2RemovalResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E2RemovalResponseIEs} }, + ... +} + +E2RemovalResponseIEs E2AP-PROTOCOL-IES ::= { + { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- E2 REMOVAL FAILURE +-- +-- ************************************************************** + +E2RemovalFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E2RemovalFailureIEs} }, + ... +} + +E2RemovalFailureIEs E2AP-PROTOCOL-IES ::= { + { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +END +-- ASN1STOP diff --git a/e2sim/asn1c/asn/v03/e2sm-kpm-v03.00.asn b/e2sim/asn1c/asn/v03/e2sm-kpm-v03.00.asn new file mode 100755 index 0000000..a77905e --- /dev/null +++ b/e2sim/asn1c/asn/v03/e2sm-kpm-v03.00.asn @@ -0,0 +1,448 @@ +-- ASN1START +-- ************************************************************** +-- E2SM-KPM Information Element Definitions +-- ************************************************************** + +E2SM-KPM-IEs { +iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) oran(53148) e2(1) version3(3) e2sm(2) e2sm-KPMMON-IEs (2)} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- IEs +-- ************************************************************** + +IMPORTS + CGI, + FiveQI, + PLMNIdentity, + QCI, + QosFlowIdentifier, + RANfunction-Name, + RIC-Format-Type, + RIC-Style-Name, + RIC-Style-Type, + S-NSSAI, + UEID +FROM E2SM-COMMON-IEs; + +TimeStamp ::= OCTET STRING (SIZE(8)) + +BinIndex ::= INTEGER (1.. 65535, ...) + +BinRangeValue ::= CHOICE { + valueInt INTEGER, + valueReal REAL, + ... +} + +GranularityPeriod ::= INTEGER (1.. 4294967295) + +LogicalOR ::= ENUMERATED {true, ...} + +MeasurementType ::= CHOICE { + measName MeasurementTypeName, + measID MeasurementTypeID, + ... +} + +MeasurementTypeName ::= PrintableString(SIZE(1.. 150, ...)) + +MeasurementTypeID ::= INTEGER (1.. 65536, ...) + +MeasurementLabel ::= SEQUENCE { + noLabel ENUMERATED {true, ...} OPTIONAL, + plmnID PLMNIdentity OPTIONAL, + sliceID S-NSSAI OPTIONAL, + fiveQI FiveQI OPTIONAL, + qFI QosFlowIdentifier OPTIONAL, + qCI QCI OPTIONAL, + qCImax QCI OPTIONAL, + qCImin QCI OPTIONAL, + aRPmax INTEGER (1.. 15, ...) OPTIONAL, + aRPmin INTEGER (1.. 15, ...) OPTIONAL, + bitrateRange INTEGER (1.. 65535, ...) OPTIONAL, + layerMU-MIMO INTEGER (1.. 65535, ...) OPTIONAL, + sUM ENUMERATED {true, ...} OPTIONAL, + distBinX INTEGER (1.. 65535, ...) OPTIONAL, + distBinY INTEGER (1.. 65535, ...) OPTIONAL, + distBinZ INTEGER (1.. 65535, ...) OPTIONAL, + preLabelOverride ENUMERATED {true, ...} OPTIONAL, + startEndInd ENUMERATED {start, end, ...} OPTIONAL, + min ENUMERATED {true, ...} OPTIONAL, + max ENUMERATED {true, ...} OPTIONAL, + avg ENUMERATED {true, ...} OPTIONAL, + ..., + ssbIndex INTEGER (1.. 65535, ...) OPTIONAL, + nonGoB-BFmode-Index INTEGER (1.. 65535, ...) OPTIONAL, + mIMO-mode-Index INTEGER (1.. 2, ...) OPTIONAL +} + +TestCondInfo ::= SEQUENCE{ + testType TestCond-Type, + testExpr TestCond-Expression OPTIONAL, + testValue TestCond-Value OPTIONAL, + ... +} + +TestCond-Type ::= CHOICE{ + gBR ENUMERATED {true, ...}, + aMBR ENUMERATED {true, ...}, + isStat ENUMERATED {true, ...}, + isCatM ENUMERATED {true, ...}, + rSRP ENUMERATED {true, ...}, + rSRQ ENUMERATED {true, ...}, + ..., + ul-rSRP ENUMERATED {true, ...}, + cQI ENUMERATED {true, ...}, + fiveQI ENUMERATED {true, ...}, + qCI ENUMERATED {true, ...}, + sNSSAI ENUMERATED {true, ...} +} + +TestCond-Expression ::= ENUMERATED { +equal, +greaterthan, +lessthan, +contains, +present, +... +} + +TestCond-Value ::= CHOICE{ + valueInt INTEGER, + valueEnum INTEGER, + valueBool BOOLEAN, + valueBitS BIT STRING, + valueOctS OCTET STRING, + valuePrtS PrintableString, + ..., + valueReal REAL +} + +-- ************************************************************** +-- Lists +-- ************************************************************** + +maxnoofCells INTEGER ::= 16384 +maxnoofRICStyles INTEGER ::= 63 +maxnoofMeasurementInfo INTEGER ::= 65535 +maxnoofLabelInfo INTEGER ::= 2147483647 +maxnoofMeasurementRecord INTEGER ::= 65535 +maxnoofMeasurementValue INTEGER ::= 2147483647 +maxnoofConditionInfo INTEGER ::= 32768 +maxnoofUEID INTEGER ::= 65535 +maxnoofConditionInfoPerSub INTEGER ::= 32768 +maxnoofUEIDPerSub INTEGER ::= 65535 +maxnoofUEMeasReport INTEGER ::= 65535 +maxnoofBin INTEGER ::= 65535 + +BinRangeDefinition ::= SEQUENCE { +binRangeListX BinRangeList, +binRangeListY BinRangeList OPTIONAL -- This IE shall not be present for a distribution measurement type that doesn't use Distribution Bin Y --, +binRangeListZ BinRangeList OPTIONAL -- This IE shall not be present for a distribution measurement type that doesn't use Distribution Bin Z --, +... +} + +BinRangeList ::= SEQUENCE (SIZE(1..maxnoofBin)) OF BinRangeItem + +BinRangeItem ::= SEQUENCE { + binIndex BinIndex, + startValue BinRangeValue, + endValue BinRangeValue, + ... +} + +DistMeasurementBinRangeList ::= SEQUENCE (SIZE(1..maxnoofMeasurementInfo)) OF DistMeasurementBinRangeItem + +DistMeasurementBinRangeItem ::= SEQUENCE { + measType MeasurementType, + binRangeDef BinRangeDefinition, + ... +} + +MeasurementInfoList ::= SEQUENCE (SIZE(1..maxnoofMeasurementInfo)) OF MeasurementInfoItem + +MeasurementInfoItem ::= SEQUENCE { + measType MeasurementType, + labelInfoList LabelInfoList, + ... +} + +LabelInfoList ::= SEQUENCE (SIZE(1..maxnoofLabelInfo)) OF LabelInfoItem + +LabelInfoItem ::= SEQUENCE { + measLabel MeasurementLabel, + ... +} + +MeasurementData ::= SEQUENCE (SIZE(1..maxnoofMeasurementRecord)) OF MeasurementDataItem + +MeasurementDataItem ::= SEQUENCE { +measRecord MeasurementRecord, +incompleteFlag ENUMERATED {true, ...} OPTIONAL, +... +} + +MeasurementRecord ::= SEQUENCE (SIZE(1..maxnoofMeasurementValue)) OF MeasurementRecordItem + +MeasurementRecordItem ::= CHOICE { + integer INTEGER (0.. 4294967295), + real REAL, + noValue NULL, + ... +} + +MeasurementInfo-Action-List ::= SEQUENCE (SIZE(1..maxnoofMeasurementInfo)) OF MeasurementInfo-Action-Item + +MeasurementInfo-Action-Item ::= SEQUENCE { + measName MeasurementTypeName, + measID MeasurementTypeID OPTIONAL, + ..., + binRangeDef BinRangeDefinition OPTIONAL +} + +MeasurementCondList ::= SEQUENCE (SIZE(1..maxnoofMeasurementInfo)) OF MeasurementCondItem + +MeasurementCondItem ::= SEQUENCE { + measType MeasurementType, + matchingCond MatchingCondList, + ..., + binRangeDef BinRangeDefinition OPTIONAL +} + +MeasurementCondUEidList ::= SEQUENCE (SIZE(1..maxnoofMeasurementInfo)) OF MeasurementCondUEidItem + +MeasurementCondUEidItem ::= SEQUENCE { + measType MeasurementType, + matchingCond MatchingCondList, + matchingUEidList MatchingUEidList OPTIONAL, + ..., + matchingUEidPerGP MatchingUEidPerGP OPTIONAL +} + +MatchingCondList ::= SEQUENCE (SIZE(1..maxnoofConditionInfo)) OF MatchingCondItem + +MatchingCondItem ::= SEQUENCE { +matchingCondChoice MatchingCondItem-Choice, +logicalOR LogicalOR OPTIONAL, +... +} + +MatchingCondItem-Choice ::= CHOICE{ + measLabel MeasurementLabel, + testCondInfo TestCondInfo, + ... +} + +MatchingUEidList ::= SEQUENCE (SIZE(1..maxnoofUEID)) OF MatchingUEidItem + +MatchingUEidItem ::= SEQUENCE{ + ueID UEID, + ... +} + +MatchingUEidPerGP ::= SEQUENCE (SIZE(1..maxnoofMeasurementRecord)) OF MatchingUEidPerGP-Item + +MatchingUEidPerGP-Item ::= SEQUENCE{ + matchedPerGP CHOICE{ + noUEmatched ENUMERATED {true, ...}, + oneOrMoreUEmatched MatchingUEidList-PerGP, + ... + }, + ... +} + +MatchingUEidList-PerGP ::= SEQUENCE (SIZE(1..maxnoofUEID)) OF MatchingUEidItem-PerGP + +MatchingUEidItem-PerGP ::= SEQUENCE{ + ueID UEID, + ... +} + + +MatchingUeCondPerSubList ::= SEQUENCE (SIZE(1..maxnoofConditionInfoPerSub)) OF MatchingUeCondPerSubItem + +MatchingUeCondPerSubItem ::= SEQUENCE{ + testCondInfo TestCondInfo, + ..., + logicalOR LogicalOR OPTIONAL +} + +MatchingUEidPerSubList ::= SEQUENCE (SIZE(2..maxnoofUEIDPerSub)) OF MatchingUEidPerSubItem + +MatchingUEidPerSubItem ::= SEQUENCE{ + ueID UEID, + ... +} + +UEMeasurementReportList ::= SEQUENCE (SIZE(1..maxnoofUEMeasReport)) OF UEMeasurementReportItem + +UEMeasurementReportItem ::= SEQUENCE{ + ueID UEID, + measReport E2SM-KPM-IndicationMessage-Format1, + ... +} + + + +-- ************************************************************** +-- E2SM-KPM Service Model IEs +-- ************************************************************** + +-- ************************************************************** +-- Event Trigger Definition OCTET STRING contents +-- ************************************************************** + +E2SM-KPM-EventTriggerDefinition ::= SEQUENCE{ + eventDefinition-formats CHOICE{ + eventDefinition-Format1 E2SM-KPM-EventTriggerDefinition-Format1, + ... + }, + ... +} + +E2SM-KPM-EventTriggerDefinition-Format1 ::= SEQUENCE{ + reportingPeriod INTEGER (1.. 4294967295), + ... +} + +-- ************************************************************** +-- Action Definition OCTET STRING contents +-- ************************************************************** + +E2SM-KPM-ActionDefinition ::= SEQUENCE{ + ric-Style-Type RIC-Style-Type, + actionDefinition-formats CHOICE{ + actionDefinition-Format1 E2SM-KPM-ActionDefinition-Format1, + actionDefinition-Format2 E2SM-KPM-ActionDefinition-Format2, + actionDefinition-Format3 E2SM-KPM-ActionDefinition-Format3, + ..., + actionDefinition-Format4 E2SM-KPM-ActionDefinition-Format4, + actionDefinition-Format5 E2SM-KPM-ActionDefinition-Format5 + }, + ... +} + +E2SM-KPM-ActionDefinition-Format1 ::= SEQUENCE { + measInfoList MeasurementInfoList, + granulPeriod GranularityPeriod, + cellGlobalID CGI OPTIONAL, + ..., + distMeasBinRangeInfo DistMeasurementBinRangeList OPTIONAL +} + +E2SM-KPM-ActionDefinition-Format2 ::= SEQUENCE { + ueID UEID, + subscriptInfo E2SM-KPM-ActionDefinition-Format1, + ... +} + +E2SM-KPM-ActionDefinition-Format3 ::= SEQUENCE { + measCondList MeasurementCondList, + granulPeriod GranularityPeriod, + cellGlobalID CGI OPTIONAL, + ... +} + +E2SM-KPM-ActionDefinition-Format4 ::= SEQUENCE { + matchingUeCondList MatchingUeCondPerSubList, + subscriptionInfo E2SM-KPM-ActionDefinition-Format1, + ... +} + +E2SM-KPM-ActionDefinition-Format5 ::= SEQUENCE { + matchingUEidList MatchingUEidPerSubList, + subscriptionInfo E2SM-KPM-ActionDefinition-Format1, + ... +} + + +-- ************************************************************** +-- Indication Header OCTET STRING contents +-- ************************************************************** + +E2SM-KPM-IndicationHeader ::= SEQUENCE{ + indicationHeader-formats CHOICE{ + indicationHeader-Format1 E2SM-KPM-IndicationHeader-Format1, + ... + }, + ... +} + +E2SM-KPM-IndicationHeader-Format1 ::= SEQUENCE{ + colletStartTime TimeStamp, + fileFormatversion PrintableString (SIZE (0..15), ...) OPTIONAL, + senderName PrintableString (SIZE (0..400), ...) OPTIONAL, + senderType PrintableString (SIZE (0..8), ...) OPTIONAL, + vendorName PrintableString (SIZE (0..32), ...) OPTIONAL, + ... +} + +-- ************************************************************** +-- Indication Message OCTET STRING contents +-- ************************************************************** + +E2SM-KPM-IndicationMessage ::= SEQUENCE{ + indicationMessage-formats CHOICE{ + indicationMessage-Format1 E2SM-KPM-IndicationMessage-Format1, + indicationMessage-Format2 E2SM-KPM-IndicationMessage-Format2, + ..., + indicationMessage-Format3 E2SM-KPM-IndicationMessage-Format3 + }, + ... +} + +E2SM-KPM-IndicationMessage-Format1 ::= SEQUENCE { + measData MeasurementData, + measInfoList MeasurementInfoList OPTIONAL, + granulPeriod GranularityPeriod OPTIONAL, + ... +} + +E2SM-KPM-IndicationMessage-Format2 ::= SEQUENCE { + measData MeasurementData, + measCondUEidList MeasurementCondUEidList, + granulPeriod GranularityPeriod OPTIONAL, + ... +} + +E2SM-KPM-IndicationMessage-Format3 ::= SEQUENCE { + ueMeasReportList UEMeasurementReportList, + ... +} + + +-- *************************************************************** +-- RAN Function Definition OCTET STRING contents +-- *************************************************************** + +E2SM-KPM-RANfunction-Description ::= SEQUENCE{ + ranFunction-Name RANfunction-Name, + ric-EventTriggerStyle-List SEQUENCE (SIZE(1..maxnoofRICStyles)) OF RIC-EventTriggerStyle-Item OPTIONAL, + ric-ReportStyle-List SEQUENCE (SIZE(1..maxnoofRICStyles)) OF RIC-ReportStyle-Item OPTIONAL, + ... +} + +RIC-EventTriggerStyle-Item ::= SEQUENCE{ + ric-EventTriggerStyle-Type RIC-Style-Type, + ric-EventTriggerStyle-Name RIC-Style-Name, + ric-EventTriggerFormat-Type RIC-Format-Type, + ... +} + +RIC-ReportStyle-Item ::= SEQUENCE{ + ric-ReportStyle-Type RIC-Style-Type, + ric-ReportStyle-Name RIC-Style-Name, + ric-ActionFormat-Type RIC-Format-Type, + measInfo-Action-List MeasurementInfo-Action-List, + ric-IndicationHeaderFormat-Type RIC-Format-Type, + ric-IndicationMessageFormat-Type RIC-Format-Type, + ... +} + +END + +-- ASN1STOP diff --git a/e2sim/asn1c/asn/v03/e2sm-v03.01.asn b/e2sim/asn1c/asn/v03/e2sm-v03.01.asn new file mode 100755 index 0000000..e969046 --- /dev/null +++ b/e2sim/asn1c/asn/v03/e2sm-v03.01.asn @@ -0,0 +1,573 @@ +-- ASN1START +-- ************************************************************** +-- E2SM +-- Information Element Definitions +-- +-- ************************************************************** + +E2SM-COMMON-IEs { +iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version1 (1) e2sm(2) e2sm-COMMON-IEs (0)} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- -------------------------------------------------- +-- Constants +-- -------------------------------------------------- + +maxE1APid INTEGER ::= 65535 +maxF1APid INTEGER ::= 4 + +-- IEs derived from 3GPP 36.423 (X2AP) +maxEARFCN INTEGER ::= 65535 + +-- IEs derived from 3GPP 38.473 (F1AP) +maxNRARFCN INTEGER ::= 3279165 +maxnoofNrCellBands INTEGER ::= 32 + + +-- -------------------------------------------------- +-- E2SM Commmon IEs +-- -------------------------------------------------- + +CGI ::= CHOICE { + nR-CGI NR-CGI, + eUTRA-CGI EUTRA-CGI, + ... +} + +CoreCPID ::= CHOICE { + fiveGC GUAMI, + ePC GUMMEI, + ... +} + +InterfaceIdentifier ::= CHOICE { + nG InterfaceID-NG, + xN InterfaceID-Xn, + f1 InterfaceID-F1, + e1 InterfaceID-E1, + s1 InterfaceID-S1, + x2 InterfaceID-X2, + w1 InterfaceID-W1, + ... +} + +InterfaceID-NG ::= SEQUENCE { + guami GUAMI, + ... +} + +InterfaceID-Xn ::= SEQUENCE { + global-NG-RAN-ID GlobalNGRANNodeID, + ... +} + +InterfaceID-F1 ::= SEQUENCE { + globalGNB-ID GlobalGNB-ID, + gNB-DU-ID GNB-DU-ID, + ... +} + +InterfaceID-E1 ::= SEQUENCE { + globalGNB-ID GlobalGNB-ID, + gNB-CU-UP-ID GNB-CU-UP-ID, + ... +} + +InterfaceID-S1 ::= SEQUENCE { + gUMMEI GUMMEI, + ... +} + +InterfaceID-X2 ::= SEQUENCE { + nodeType CHOICE { + global-eNB-ID GlobalENB-ID, + global-en-gNB-ID GlobalenGNB-ID, + ... + }, + ... +} + +InterfaceID-W1 ::= SEQUENCE { + global-ng-eNB-ID GlobalNgENB-ID, + ng-eNB-DU-ID NGENB-DU-ID, + ... +} + +Interface-MessageID ::= SEQUENCE { + interfaceProcedureID INTEGER, + messageType ENUMERATED {initiatingMessage, successfulOutcome, unsuccessfulOutcome, ...}, + ... +} + +InterfaceType ::= ENUMERATED {nG, xn, f1, e1, s1, x2, w1, ...} + +GroupID ::= CHOICE { + fiveGC FiveQI, + ePC QCI, + ... +} + +QoSID ::= CHOICE { + fiveGC FiveQI, + ePC QCI, + ... +} + +RANfunction-Name ::= SEQUENCE{ + ranFunction-ShortName PrintableString(SIZE(1..150,...)), + ranFunction-E2SM-OID PrintableString(SIZE(1..1000,...)), + ranFunction-Description PrintableString(SIZE(1..150,...)), + ranFunction-Instance INTEGER OPTIONAL, + ... +} + +RIC-Format-Type ::= INTEGER + +RIC-Style-Type ::= INTEGER + +RIC-Style-Name ::= PrintableString(SIZE(1..150,...)) + + +RRC-MessageID ::= SEQUENCE { + rrcType CHOICE { + lTE RRCclass-LTE, + nR RRCclass-NR, + ... + }, + messageID INTEGER, + ... +} + +RRCclass-LTE ::= ENUMERATED {bCCH-BCH, bCCH-BCH-MBMS, bCCH-DL-SCH, bCCH-DL-SCH-BR, bCCH-DL-SCH-MBMS, mCCH, pCCH, dL-CCCH, dL-DCCH, uL-CCCH, uL-DCCH, sC-MCCH, ...} + +RRCclass-NR ::= ENUMERATED {bCCH-BCH, bCCH-DL-SCH, dL-CCCH, dL-DCCH, pCCH, uL-CCCH, uL-CCCH1, uL-DCCH, ...} + +ServingCell-ARFCN ::= CHOICE { + nR NR-ARFCN, + eUTRA E-UTRA-ARFCN, + ... +} + +ServingCell-PCI ::= CHOICE { + nR NR-PCI, + eUTRA E-UTRA-PCI, + ... +} + + +UEID ::= CHOICE{ + gNB-UEID UEID-GNB, + gNB-DU-UEID UEID-GNB-DU, + gNB-CU-UP-UEID UEID-GNB-CU-UP, + ng-eNB-UEID UEID-NG-ENB, + ng-eNB-DU-UEID UEID-NG-ENB-DU, + en-gNB-UEID UEID-EN-GNB, + eNB-UEID UEID-ENB, + ... +} + +UEID-GNB ::= SEQUENCE{ + amf-UE-NGAP-ID AMF-UE-NGAP-ID, + guami GUAMI, + gNB-CU-UE-F1AP-ID-List UEID-GNB-CU-F1AP-ID-List OPTIONAL, +-- C-ifCUDUseparated: This IE shall be present in messages from E2 Node to NearRT-RIC for a CU-DU separated gNB, whereas from NearRT-RIC to E2 Node messages, this IE may not be included. More than 1 F1AP ID shall be reported by E2 Node only when NR-DC is established. + gNB-CU-CP-UE-E1AP-ID-List UEID-GNB-CU-CP-E1AP-ID-List OPTIONAL, +-- C-ifCPUPseparated: This IE shall be present in messages from E2 Node to NearRT-RIC for a CP-UP separated gNB, whereas from NearRT-RIC to E2 Node messages, this IE may not be included. + ran-UEID RANUEID OPTIONAL, + m-NG-RAN-UE-XnAP-ID NG-RANnodeUEXnAPID OPTIONAL, +-- C-ifDCSetup: This IE shall be present in messages from E2 Node to NearRT-RIC if DC is established, whereas from NearRT-RIC to E2 Node messages, this IE may not be included. To be reported by both MN and SN. + globalGNB-ID GlobalGNB-ID OPTIONAL, +-- This IE shall not be used. This IE is replaced with globalNG-RANNode-ID. + ..., + globalNG-RANNode-ID GlobalNGRANNodeID OPTIONAL +-- C-ifDCSetup: This IE shall be present in messages from E2 Node to NearRT-RIC if DC is established, whereas from NearRT-RIC to E2 Node messages, this IE may not be included. To be reported only by SN. +} + +UEID-GNB-CU-CP-E1AP-ID-List ::= SEQUENCE (SIZE(1..maxE1APid)) OF UEID-GNB-CU-CP-E1AP-ID-Item + +UEID-GNB-CU-CP-E1AP-ID-Item ::= SEQUENCE{ + gNB-CU-CP-UE-E1AP-ID GNB-CU-CP-UE-E1AP-ID, + ... +} + +UEID-GNB-CU-F1AP-ID-List ::= SEQUENCE (SIZE(1..maxF1APid)) OF UEID-GNB-CU-CP-F1AP-ID-Item + +UEID-GNB-CU-CP-F1AP-ID-Item ::= SEQUENCE{ + gNB-CU-UE-F1AP-ID GNB-CU-UE-F1AP-ID, + ... +} + +UEID-GNB-DU ::= SEQUENCE{ + gNB-CU-UE-F1AP-ID GNB-CU-UE-F1AP-ID, + ran-UEID RANUEID OPTIONAL, + ... +} + +UEID-GNB-CU-UP ::= SEQUENCE{ + gNB-CU-CP-UE-E1AP-ID GNB-CU-CP-UE-E1AP-ID, + ran-UEID RANUEID OPTIONAL, + ... +} + +UEID-NG-ENB ::= SEQUENCE{ + amf-UE-NGAP-ID AMF-UE-NGAP-ID, + guami GUAMI, + ng-eNB-CU-UE-W1AP-ID NGENB-CU-UE-W1AP-ID OPTIONAL, +-- C-ifCUDUseperated: This IE shall be present in messages from E2 Node to NearRT-RIC for a CU-DU seperated ng-eNB, whereas from NearRT-RIC to E2 Node messages, this IE may not be included. + m-NG-RAN-UE-XnAP-ID NG-RANnodeUEXnAPID OPTIONAL, +-- C-ifDCSetup: This IE shall be present in messages from E2 Node to NearRT-RIC if DC is established, whereas from NearRT-RIC to E2 Node messages, this IE may not be included. To be reported by both MN and SN. + globalNgENB-ID GlobalNgENB-ID OPTIONAL, +-- This IE shall not be used. This IE is replaced with globalNG-RANNode-ID. + ..., + globalNG-RANNode-ID GlobalNGRANNodeID OPTIONAL +-- C-ifDCSetup: This IE shall be present in messages from E2 Node to NearRT-RIC if DC is established, whereas from NearRT-RIC to E2 Node messages, this IE may not be included. To be reported only by SN. +} + + +UEID-NG-ENB-DU ::= SEQUENCE{ + ng-eNB-CU-UE-W1AP-ID NGENB-CU-UE-W1AP-ID, + ... +} + +UEID-EN-GNB ::= SEQUENCE{ + m-eNB-UE-X2AP-ID ENB-UE-X2AP-ID, + m-eNB-UE-X2AP-ID-Extension ENB-UE-X2AP-ID-Extension OPTIONAL, + globalENB-ID GlobalENB-ID, + gNB-CU-UE-F1AP-ID GNB-CU-UE-F1AP-ID OPTIONAL, +-- C-ifCUDUseperated: This IE shall be present in messages from E2 Node to NearRT-RIC for a CU-DU seperated en-gNB, whereas from NearRT-RIC to E2 Node messages, this IE may not be included. + gNB-CU-CP-UE-E1AP-ID-List UEID-GNB-CU-CP-E1AP-ID-List OPTIONAL, +-- C-ifCPUPseparated: This IE shall be present in messages from E2 Node to NearRT-RIC for a CP-UP separated en-gNB, whereas from NearRT-RIC to E2 Node messages, this IE may not be included. + ran-UEID RANUEID OPTIONAL, + ... +} + +UEID-ENB ::= SEQUENCE{ + mME-UE-S1AP-ID MME-UE-S1AP-ID, + gUMMEI GUMMEI, + m-eNB-UE-X2AP-ID ENB-UE-X2AP-ID OPTIONAL, +-- This IE shall be present in messages from E2 Node to NearRT-RIC if DC is established, whereas from NearRT-RIC to E2 Node messages, this IE may not be included. To be reported by MeNB and SeNB. + m-eNB-UE-X2AP-ID-Extension ENB-UE-X2AP-ID-Extension OPTIONAL, + globalENB-ID GlobalENB-ID OPTIONAL, +-- This IE shall be present in messages from E2 Node to NearRT-RIC if DC is established, whereas from NearRT-RIC to E2 Node messages, this IE may not be included. To be reported only by SeNB. + ... +} + +-- ************************************************************** +-- 3GPP derived IEs +-- ************************************************************** +-- NOTE: +-- - Extension fields removed and replaced with "..." +-- - IE names modified across all extracts to use "PLMNIdentity" + +-- ************************************************************** +-- IEs derived from 3GPP 36.413 (S1AP) +-- ************************************************************** +-- ************************************************************** + +-- copied from v16.5.0 +ENB-ID ::= CHOICE { + macro-eNB-ID BIT STRING (SIZE (20)), + home-eNB-ID BIT STRING (SIZE (28)), + ... , + short-Macro-eNB-ID BIT STRING (SIZE(18)), + long-Macro-eNB-ID BIT STRING (SIZE(21)) +} + +-- copied from v16.5.0 +GlobalENB-ID ::= SEQUENCE { + pLMNIdentity PLMNIdentity, + eNB-ID ENB-ID, + ... +} + + +-- copied from v16.5.0 +GUMMEI ::= SEQUENCE { + pLMN-Identity PLMNIdentity, + mME-Group-ID MME-Group-ID, + mME-Code MME-Code, + ... +} + +-- copied from v16.5.0 +MME-Group-ID ::= OCTET STRING (SIZE (2)) + +-- copied from v16.5.0 +MME-Code ::= OCTET STRING (SIZE (1)) + +-- copied from v16.5.0 +MME-UE-S1AP-ID ::= INTEGER (0..4294967295) + +-- copied from v16.5.0 +QCI ::= INTEGER (0..255) + +-- copied from v16.5.0 +SubscriberProfileIDforRFP ::= INTEGER (1..256) + + + + +-- ************************************************************** +-- IEs derived from 3GPP 36.423 (X2AP) +-- ************************************************************** +-- Extension fields removed. +-- Note: to avoid duplicate names with NGAP, XnAP, etc.: +-- GNB-ID renamed ENGNB-ID, +-- GlobalGNB-ID renamed GlobalenGNB-ID, +-- UE-X2AP-ID renamed ENB-UE-X2AP-ID +-- UE-X2AP-ID-Extension renamed ENB-UE-X2AP-ID-Extension +-- ************************************************************** + +-- copied from v16.5.0 +EN-GNB-ID ::= CHOICE { + en-gNB-ID BIT STRING (SIZE (22..32)), + ... +} + +-- copied from v16.5.0 +ENB-UE-X2AP-ID ::= INTEGER (0..4095) + +-- copied from v16.5.0 +ENB-UE-X2AP-ID-Extension ::= INTEGER (0..4095, ...) + +-- copied from v16.5.0 +E-UTRA-ARFCN ::= INTEGER (0..maxEARFCN) + +-- copied from v16.5.0 +E-UTRA-PCI ::= INTEGER (0..503, ...) + +-- copied from v16.5.0 +E-UTRA-TAC ::= OCTET STRING (SIZE(2)) + +-- copied from v16.5.0 +GlobalenGNB-ID ::= SEQUENCE { + pLMN-Identity PLMNIdentity, + en-gNB-ID EN-GNB-ID, + ... +} + + + + + +-- ************************************************************** +-- IEs derived from 3GPP 37.473 (W1AP) +-- ************************************************************** + +-- copied from v16.3.0 +NGENB-CU-UE-W1AP-ID ::= INTEGER (0..4294967295) + +-- copied from v16.3.0 +NGENB-DU-ID ::= INTEGER (0..68719476735) + + + + + +-- ************************************************************** +-- IEs derived from 3GPP 38.413 (NGAP) +-- Extension fields removed and replaced with ... +-- ************************************************************** + +-- copied from v16.2.0 +AMFPointer ::= BIT STRING (SIZE(6)) + +-- copied from v16.2.0 +AMFRegionID ::= BIT STRING (SIZE(8)) + +-- copied from v16.2.0 +AMFSetID ::= BIT STRING (SIZE(10)) + +-- copied from v16.2.0 +AMF-UE-NGAP-ID ::= INTEGER (0..1099511627775) + +-- copied from v16.2.0 +EUTRACellIdentity ::= BIT STRING (SIZE(28)) + +-- copied from v16.2.0 +EUTRA-CGI ::= SEQUENCE { + pLMNIdentity PLMNIdentity, + eUTRACellIdentity EUTRACellIdentity, + ... +} + +-- copied from v16.2.0 +FiveQI ::= INTEGER (0..255, ...) + +-- copied from v16.2.0 +GlobalGNB-ID ::= SEQUENCE { + pLMNIdentity PLMNIdentity, + gNB-ID GNB-ID, + ... +} + +-- copied from v16.2.0 +GlobalNgENB-ID ::= SEQUENCE { + pLMNIdentity PLMNIdentity, + ngENB-ID NgENB-ID, + ... +} + + +-- copied from v16.2.0 +GNB-ID ::= CHOICE { + gNB-ID BIT STRING (SIZE(22..32)), + ... +} + +-- copied from v16.2.0 +GUAMI ::= SEQUENCE { + pLMNIdentity PLMNIdentity, + aMFRegionID AMFRegionID, + aMFSetID AMFSetID, + aMFPointer AMFPointer, + ... +} + +-- copied from v16.2.0 +IndexToRFSP ::= INTEGER (1..256, ...) + +-- copied from v16.2.0 +NgENB-ID ::= CHOICE { + macroNgENB-ID BIT STRING (SIZE(20)), + shortMacroNgENB-ID BIT STRING (SIZE(18)), + longMacroNgENB-ID BIT STRING (SIZE(21)), + ... +} + +-- copied from v16.2.0 +NRCellIdentity ::= BIT STRING (SIZE(36)) + +-- copied from v16.2.0 +NR-CGI ::= SEQUENCE { + pLMNIdentity PLMNIdentity, + nRCellIdentity NRCellIdentity, + ... +} + +-- copied from v16.2.0 +PLMNIdentity ::= OCTET STRING (SIZE(3)) + +-- copied from v16.2.0 +QosFlowIdentifier ::= INTEGER (0..63, ...) + +-- copied from v16.2.0 +SD ::= OCTET STRING (SIZE(3)) + +-- copied from v16.2.0 +S-NSSAI ::= SEQUENCE { + sST SST, + sD SD OPTIONAL, + ... +} + +-- copied from v16.2.0 +SST ::= OCTET STRING (SIZE(1)) + + + + + +-- ************************************************************** +-- IEs derived from 3GPP 38.423 (XnAP) +-- ************************************************************** + +-- copied from v16.2.0 +NG-RANnodeUEXnAPID ::= INTEGER (0.. 4294967295) + +GlobalNGRANNodeID ::= CHOICE { + gNB GlobalGNB-ID, + ng-eNB GlobalNgENB-ID, + ... +} + + + + +-- ************************************************************** +-- IEs derived from 3GPP 37.483 (E1AP) +-- ************************************************************** + +-- copied from v17.1.0 +GNB-CU-CP-UE-E1AP-ID ::= INTEGER (0..4294967295) + +-- copied from v17.1.0 +GNB-CU-UP-ID ::= INTEGER (0..68719476735) + + + + + + +-- ************************************************************** +-- IEs derived from 3GPP 38.473 (F1AP) +-- ************************************************************** + +-- copied from v16.5.0 +FiveGS-TAC ::= OCTET STRING (SIZE(3)) + +-- copied from v16.5.0 +FreqBandNrItem ::= SEQUENCE { + freqBandIndicatorNr INTEGER (1..1024, ...), + ... +} + + +-- copied from v16.5.0 +GNB-CU-UE-F1AP-ID ::= INTEGER (0..4294967295) + +-- copied from v16.5.0 +GNB-DU-ID ::= INTEGER (0..68719476735) + +-- copied from v16.5.0 +NR-PCI ::= INTEGER (0..1007) + +-- copied from v16.5.0 +NR-ARFCN ::= SEQUENCE { + nRARFCN INTEGER (0..maxNRARFCN), + ... +} +-- copied from v16.5.0 +NRFrequencyBand-List ::= SEQUENCE (SIZE(1..maxnoofNrCellBands)) OF NRFrequencyBandItem + +-- copied from v16.5.0 +NRFrequencyBandItem ::= SEQUENCE { + freqBandIndicatorNr INTEGER (1..1024,...), + supportedSULBandList SupportedSULBandList, + ... +} + +-- copied from v16.5.0 +NRFrequencyInfo ::= SEQUENCE { + nrARFCN NR-ARFCN, + frequencyBand-List NRFrequencyBand-List, + frequencyShift7p5khz NRFrequencyShift7p5khz OPTIONAL, + ... +} + +-- copied from v16.5.0 +NRFrequencyShift7p5khz ::= ENUMERATED {false, true, ...} + + +-- copied from v16.5.0 +RANUEID ::= OCTET STRING (SIZE (8)) + + +-- copied from v16.5.0 +SupportedSULBandList ::= SEQUENCE (SIZE(0..maxnoofNrCellBands)) OF SupportedSULFreqBandItem + +-- copied from v16.5.0 +SupportedSULFreqBandItem ::= SEQUENCE { + freqBandIndicatorNr INTEGER (1..1024,...), + ... +} + + + + + +END +-- ASN1STOP diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_SEQUENCE_OF.c b/e2sim/asn1c/asn_SEQUENCE_OF.c similarity index 100% rename from e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_SEQUENCE_OF.c rename to e2sim/asn1c/asn_SEQUENCE_OF.c diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_SEQUENCE_OF.h b/e2sim/asn1c/asn_SEQUENCE_OF.h similarity index 100% rename from e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_SEQUENCE_OF.h rename to e2sim/asn1c/asn_SEQUENCE_OF.h diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_SET_OF.c b/e2sim/asn1c/asn_SET_OF.c similarity index 100% rename from e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_SET_OF.c rename to e2sim/asn1c/asn_SET_OF.c diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_SET_OF.h b/e2sim/asn1c/asn_SET_OF.h similarity index 100% rename from e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_SET_OF.h rename to e2sim/asn1c/asn_SET_OF.h diff --git a/e2sim/asn1c/asn_application.c b/e2sim/asn1c/asn_application.c new file mode 100644 index 0000000..7992185 --- /dev/null +++ b/e2sim/asn1c/asn_application.c @@ -0,0 +1,538 @@ +/* + * Copyright (c) 2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +static asn_enc_rval_t asn_encode_internal(const asn_codec_ctx_t *opt_codec_ctx, + enum asn_transfer_syntax syntax, + const asn_TYPE_descriptor_t *td, + const void *sptr, + asn_app_consume_bytes_f *callback, + void *callback_key); + + +struct callback_count_bytes_key { + asn_app_consume_bytes_f *callback; + void *callback_key; + size_t computed_size; +}; + +/* + * Encoder which just counts bytes that come through it. + */ +static int +callback_count_bytes_cb(const void *data, size_t size, void *keyp) { + struct callback_count_bytes_key *key = keyp; + int ret; + + ret = key->callback(data, size, key->callback_key); + if(ret >= 0) { + key->computed_size += size; + } + + return ret; +} + +struct overrun_encoder_key { + void *buffer; + size_t buffer_size; + size_t computed_size; +}; + +struct dynamic_encoder_key { + void *buffer; + size_t buffer_size; + size_t computed_size; +}; + +struct callback_failure_catch_key { + asn_app_consume_bytes_f *callback; + void *callback_key; + int callback_failed; +}; + +/* + * Encoder which doesn't stop counting bytes + * even if it reaches the end of the buffer. + */ +static int +overrun_encoder_cb(const void *data, size_t size, void *keyp) { + struct overrun_encoder_key *key = keyp; + + if(key->computed_size + size > key->buffer_size) { + /* + * Avoid accident on the next call: + * stop adding bytes to the buffer. + */ + key->buffer_size = 0; + } else { + memcpy((char *)key->buffer + key->computed_size, data, size); + } + key->computed_size += size; + + return 0; +} + +/* + * Encoder which dynamically allocates output, and continues + * to count even if allocation failed. + */ +static int +dynamic_encoder_cb(const void *data, size_t size, void *keyp) { + struct dynamic_encoder_key *key = keyp; + + if(key->buffer) { + if(key->computed_size + size >= key->buffer_size) { + void *p; + size_t new_size = key->buffer_size; + + do { + new_size *= 2; + } while(new_size <= key->computed_size + size); + + p = REALLOC(key->buffer, new_size); + if(p) { + key->buffer = p; + key->buffer_size = new_size; + } else { + FREEMEM(key->buffer); + key->buffer = 0; + key->buffer_size = 0; + key->computed_size += size; + return 0; + } + } + memcpy((char *)key->buffer + key->computed_size, data, size); + } + + key->computed_size += size; + + return 0; +} + +/* + * Encoder which help convert the application level encoder failure into EIO. + */ +static int +callback_failure_catch_cb(const void *data, size_t size, void *keyp) { + struct callback_failure_catch_key *key = keyp; + int ret; + + ret = key->callback(data, size, key->callback_key); + if(ret < 0) { + key->callback_failed = 1; + } + + return ret; +} + +asn_enc_rval_t +asn_encode(const asn_codec_ctx_t *opt_codec_ctx, + enum asn_transfer_syntax syntax, const asn_TYPE_descriptor_t *td, + const void *sptr, asn_app_consume_bytes_f *callback, void *callback_key) { + struct callback_failure_catch_key cb_key; + asn_enc_rval_t er = {0,0,0}; + + if(!callback) { + errno = EINVAL; + ASN__ENCODE_FAILED; + } + + cb_key.callback = callback; + cb_key.callback_key = callback_key; + cb_key.callback_failed = 0; + + er = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, + callback_failure_catch_cb, &cb_key); + if(cb_key.callback_failed) { + assert(er.encoded == -1); + assert(errno == EBADF); + errno = EIO; + } + + return er; +} + +asn_enc_rval_t +asn_encode_to_buffer(const asn_codec_ctx_t *opt_codec_ctx, + enum asn_transfer_syntax syntax, + const asn_TYPE_descriptor_t *td, const void *sptr, + void *buffer, size_t buffer_size) { + struct overrun_encoder_key buf_key; + asn_enc_rval_t er = {0,0,0}; + + if(buffer_size > 0 && !buffer) { + errno = EINVAL; + ASN__ENCODE_FAILED; + } + + buf_key.buffer = buffer; + buf_key.buffer_size = buffer_size; + buf_key.computed_size = 0; + + er = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, + overrun_encoder_cb, &buf_key); + + if(er.encoded >= 0 && (size_t)er.encoded != buf_key.computed_size) { + ASN_DEBUG("asn_encode() returned %" ASN_PRI_SSIZE + " yet produced %" ASN_PRI_SIZE " bytes", + er.encoded, buf_key.computed_size); + assert(er.encoded < 0 || (size_t)er.encoded == buf_key.computed_size); + } + + return er; +} + +asn_encode_to_new_buffer_result_t +asn_encode_to_new_buffer(const asn_codec_ctx_t *opt_codec_ctx, + enum asn_transfer_syntax syntax, + const asn_TYPE_descriptor_t *td, const void *sptr) { + struct dynamic_encoder_key buf_key; + asn_encode_to_new_buffer_result_t res; + + buf_key.buffer_size = 16; + buf_key.buffer = MALLOC(buf_key.buffer_size); + buf_key.computed_size = 0; + + res.result = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, + dynamic_encoder_cb, &buf_key); + + if(res.result.encoded >= 0 + && (size_t)res.result.encoded != buf_key.computed_size) { + ASN_DEBUG("asn_encode() returned %" ASN_PRI_SSIZE + " yet produced %" ASN_PRI_SIZE " bytes", + res.result.encoded, buf_key.computed_size); + assert(res.result.encoded < 0 + || (size_t)res.result.encoded == buf_key.computed_size); + } + + res.buffer = buf_key.buffer; + + /* 0-terminate just in case. */ + if(res.buffer) { + assert(buf_key.computed_size < buf_key.buffer_size); + ((char *)res.buffer)[buf_key.computed_size] = '\0'; + } + + return res; +} + +static asn_enc_rval_t +asn_encode_internal(const asn_codec_ctx_t *opt_codec_ctx, + enum asn_transfer_syntax syntax, + const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *callback, void *callback_key) { + asn_enc_rval_t er = {0,0,0}; +#if !defined(ASN_DISABLE_XER_SUPPORT) + enum xer_encoder_flags_e xer_flags = XER_F_CANONICAL; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + + (void)opt_codec_ctx; /* Parameters are not checked on encode yet. */ + + if(!td || !sptr) { + errno = EINVAL; + ASN__ENCODE_FAILED; + } + + switch(syntax) { + case ATS_NONSTANDARD_PLAINTEXT: + if(td->op->print_struct) { + struct callback_count_bytes_key cb_key; + cb_key.callback = callback; + cb_key.callback_key = callback_key; + cb_key.computed_size = 0; + if(td->op->print_struct(td, sptr, 1, callback_count_bytes_cb, + &cb_key) + < 0 + || callback_count_bytes_cb("\n", 1, &cb_key) < 0) { + errno = EBADF; /* Structure has incorrect form. */ + er.encoded = -1; + er.failed_type = td; + er.structure_ptr = sptr; + } else { + er.encoded = cb_key.computed_size; + er.failed_type = 0; + er.structure_ptr = 0; + } + } else { + errno = ENOENT; /* Transfer syntax is not defined for this type. */ + ASN__ENCODE_FAILED; + } + break; + + case ATS_RANDOM: + errno = ENOENT; /* Randomization doesn't make sense on output. */ + ASN__ENCODE_FAILED; + +#if !defined(ASN_DISABLE_BER_SUPPORT) + case ATS_BER: + /* BER is a superset of DER. */ + /* Fall through. */ + case ATS_DER: + if(td->op->der_encoder) { + er = der_encode(td, sptr, callback, callback_key); + if(er.encoded == -1) { + if(er.failed_type && er.failed_type->op->der_encoder) { + errno = EBADF; /* Structure has incorrect form. */ + } else { + errno = ENOENT; /* DER is not defined for this type. */ + } + } + } else { + errno = ENOENT; /* Transfer syntax is not defined for this type. */ + ASN__ENCODE_FAILED; + } + break; + case ATS_CER: + errno = ENOENT; /* Transfer syntax is not defined for any type. */ + ASN__ENCODE_FAILED; +#else + case ATS_BER: + case ATS_DER: + case ATS_CER: + errno = ENOENT; /* BER is not defined. */ + ASN__ENCODE_FAILED; + +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) + case ATS_BASIC_OER: + /* CANONICAL-OER is a superset of BASIC-OER. */ + /* Fall through. */ + case ATS_CANONICAL_OER: + if(td->op->oer_encoder) { + er = oer_encode(td, sptr, callback, callback_key); + if(er.encoded == -1) { + if(er.failed_type && er.failed_type->op->oer_encoder) { + errno = EBADF; /* Structure has incorrect form. */ + } else { + errno = ENOENT; /* OER is not defined for this type. */ + } + } + } else { + errno = ENOENT; /* Transfer syntax is not defined for this type. */ + ASN__ENCODE_FAILED; + } + break; +#else + case ATS_BASIC_OER: + case ATS_CANONICAL_OER: + errno = ENOENT; /* OER is not defined. */ + ASN__ENCODE_FAILED; + break; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) + case ATS_UNALIGNED_BASIC_PER: + /* CANONICAL-UPER is a superset of BASIC-UPER. */ + /* Fall through. */ + case ATS_UNALIGNED_CANONICAL_PER: + if(td->op->uper_encoder) { + er = uper_encode(td, 0, sptr, callback, callback_key); + if(er.encoded == -1) { + if(er.failed_type && er.failed_type->op->uper_encoder) { + errno = EBADF; /* Structure has incorrect form. */ + } else { + errno = ENOENT; /* UPER is not defined for this type. */ + } + } else { + ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); + if(er.encoded == 0) { + /* Enforce "Complete Encoding" of X.691 #11.1 */ + if(callback("\0", 1, callback_key) < 0) { + errno = EBADF; + ASN__ENCODE_FAILED; + } + er.encoded = 8; /* Exactly 8 zero bits is added. */ + } + /* Convert bits into bytes */ + er.encoded = (er.encoded + 7) >> 3; + } + } else { + errno = ENOENT; /* Transfer syntax is not defined for this type. */ + ASN__ENCODE_FAILED; + } + break; +#else + case ATS_UNALIGNED_BASIC_PER: + case ATS_UNALIGNED_CANONICAL_PER: + errno = ENOENT; /* UPER is not defined. */ + ASN__ENCODE_FAILED; + break; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + case ATS_ALIGNED_BASIC_PER: + /* CANONICAL-APER is a superset of BASIC-APER. */ + /* Fall through. */ + case ATS_ALIGNED_CANONICAL_PER: + if(td->op->aper_encoder) { + er = aper_encode(td, 0, sptr, callback, callback_key); + if(er.encoded == -1) { + if(er.failed_type && er.failed_type->op->aper_encoder) { + errno = EBADF; /* Structure has incorrect form. */ + } else { + errno = ENOENT; /* APER is not defined for this type. */ + } + } else { + ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); + if(er.encoded == 0) { + /* Enforce "Complete Encoding" of X.691 #11.1 */ + if(callback("\0", 1, callback_key) < 0) { + errno = EBADF; + ASN__ENCODE_FAILED; + } + er.encoded = 8; /* Exactly 8 zero bits is added. */ + } + /* Convert bits into bytes */ + er.encoded = (er.encoded + 7) >> 3; + } + } else { + errno = ENOENT; /* Transfer syntax is not defined for this type. */ + ASN__ENCODE_FAILED; + } + break; +#else + case ATS_ALIGNED_BASIC_PER: + case ATS_ALIGNED_CANONICAL_PER: + errno = ENOENT; /* APER is not defined. */ + ASN__ENCODE_FAILED; + break; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) + case ATS_BASIC_XER: + /* CANONICAL-XER is a superset of BASIC-XER. */ + xer_flags &= ~XER_F_CANONICAL; + xer_flags |= XER_F_BASIC; + /* Fall through. */ + case ATS_CANONICAL_XER: + if(td->op->xer_encoder) { + er = xer_encode(td, sptr, xer_flags, callback, callback_key); + if(er.encoded == -1) { + if(er.failed_type && er.failed_type->op->xer_encoder) { + errno = EBADF; /* Structure has incorrect form. */ + } else { + errno = ENOENT; /* XER is not defined for this type. */ + } + } + } else { + errno = ENOENT; /* Transfer syntax is not defined for this type. */ + ASN__ENCODE_FAILED; + } + break; +#else + case ATS_BASIC_XER: + case ATS_CANONICAL_XER: + errno = ENOENT; /* XER is not defined. */ + ASN__ENCODE_FAILED; + break; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) + case ATS_JER: + if(td->op->jer_encoder) { + er = jer_encode(td, sptr, callback, callback_key); + if(er.encoded == -1) { + if(er.failed_type && er.failed_type->op->jer_encoder) { + errno = EBADF; /* Structure has incorrect form. */ + } else { + errno = ENOENT; /* JER is not defined for this type. */ + } + } + } else { + errno = ENOENT; /* Transfer syntax is not defined for this type. */ + ASN__ENCODE_FAILED; + } + break; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + default: + errno = ENOENT; + ASN__ENCODE_FAILED; + } + + return er; +} + +asn_dec_rval_t +asn_decode(const asn_codec_ctx_t *opt_codec_ctx, + enum asn_transfer_syntax syntax, const asn_TYPE_descriptor_t *td, + void **sptr, const void *buffer, size_t size) { + if(!td || !td->op || !sptr || (size && !buffer)) { + ASN__DECODE_FAILED; + } + + switch(syntax) { + case ATS_CER: + case ATS_NONSTANDARD_PLAINTEXT: + default: + errno = ENOENT; + ASN__DECODE_FAILED; + + case ATS_RANDOM: +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + if(!td->op->random_fill) { + ASN__DECODE_FAILED; + } else { + if(asn_random_fill(td, sptr, 16000) == 0) { + asn_dec_rval_t ret = {RC_OK, 0}; + return ret; + } else { + ASN__DECODE_FAILED; + } + } + break; +#else + errno = ENOENT; + ASN__DECODE_FAILED; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + + case ATS_DER: + case ATS_BER: +#if !defined(ASN_DISABLE_BER_SUPPORT) + return ber_decode(opt_codec_ctx, td, sptr, buffer, size); +#else + errno = ENOENT; + ASN__DECODE_FAILED; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + + case ATS_BASIC_OER: + case ATS_CANONICAL_OER: +#if !defined(ASN_DISABLE_OER_SUPPORT) + return oer_decode(opt_codec_ctx, td, sptr, buffer, size); +#else + errno = ENOENT; + ASN__DECODE_FAILED; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + + case ATS_UNALIGNED_BASIC_PER: + case ATS_UNALIGNED_CANONICAL_PER: +#if !defined(ASN_DISABLE_UPER_SUPPORT) + return uper_decode_complete(opt_codec_ctx, td, sptr, buffer, size); +#else + errno = ENOENT; + ASN__DECODE_FAILED; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ + + case ATS_ALIGNED_BASIC_PER: + case ATS_ALIGNED_CANONICAL_PER: +#if !defined(ASN_DISABLE_APER_SUPPORT) + return aper_decode_complete(opt_codec_ctx, td, sptr, buffer, size); +#else + errno = ENOENT; + ASN__DECODE_FAILED; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + + case ATS_BASIC_XER: + case ATS_CANONICAL_XER: +#if !defined(ASN_DISABLE_XER_SUPPORT) + return xer_decode(opt_codec_ctx, td, sptr, buffer, size); +#else + errno = ENOENT; + ASN__DECODE_FAILED; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + } +} + diff --git a/e2sim/asn1c/asn_application.h b/e2sim/asn1c/asn_application.h new file mode 100644 index 0000000..bf10cd3 --- /dev/null +++ b/e2sim/asn1c/asn_application.h @@ -0,0 +1,173 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * Application-level ASN.1 callbacks. + */ +#ifndef ASN_APPLICATION_H +#define ASN_APPLICATION_H + +#include "asn_system.h" /* for platform-dependent types */ +#include "asn_codecs.h" /* for ASN.1 codecs specifics */ +#include "asn_config.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * A selection of ASN.1 Transfer Syntaxes to use with generalized + * encoders and decoders declared further in this .h file. + */ +enum asn_transfer_syntax { + /* Avoid appearance of a default transfer syntax. */ + ATS_INVALID = 0, + /* Plaintext output (not conforming to any standard), for debugging. */ + ATS_NONSTANDARD_PLAINTEXT, + /* Returns a randomly generated structure. */ + ATS_RANDOM, + /* + * X.690: + * BER: Basic Encoding Rules. + * DER: Distinguished Encoding Rules. + * CER: Canonical Encoding Rules. + * DER and CER are more strict variants of BER. + */ + ATS_BER, + ATS_DER, + ATS_CER, /* Only decoding is supported */ + /* + * X.696: + * OER: Octet Encoding Rules. + * CANONICAL-OER is a more strict variant of BASIC-OER. + */ + ATS_BASIC_OER, + ATS_CANONICAL_OER, + /* + * X.691: + * PER: Packed Encoding Rules. + * CANONICAL-PER is a more strict variant of BASIC-PER. + * NOTE: Produces or consumes a complete encoding (X.691 (08/2015) #11.1). + */ + ATS_UNALIGNED_BASIC_PER, + ATS_UNALIGNED_CANONICAL_PER, + ATS_ALIGNED_BASIC_PER, + ATS_ALIGNED_CANONICAL_PER, + /* + * X.693: + * XER: XML Encoding Rules. + * CANONICAL-XER is a more strict variant of BASIC-XER. + */ + ATS_BASIC_XER, + ATS_CANONICAL_XER, + ATS_JER, +}; + +/* + * A generic encoder for any supported transfer syntax. + * RETURN VALUES: + * The (.encoded) field of the return value is REDEFINED to mean the following: + * >=0: The computed size of the encoded data. Can exceed the (buffer_size). + * -1: Error encoding the structure. See the error code in (errno): + * EINVAL: Incorrect parameters to the function, such as NULLs. + * ENOENT: Encoding transfer syntax is not defined (for this type). + * EBADF: The structure has invalid form or content constraint failed. + * The (.failed_type) and (.structure_ptr) MIGHT be set to the appropriate + * values at the place of failure, if at all possible. + * WARNING: The (.encoded) field of the return value can exceed the buffer_size. + * This is similar to snprintf(3) contract which might return values + * greater than the buffer size. + */ +asn_enc_rval_t asn_encode_to_buffer( + const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ + enum asn_transfer_syntax, + const struct asn_TYPE_descriptor_s *type_to_encode, + const void *structure_to_encode, void *buffer, size_t buffer_size); + +/* + * A variant of asn_encode_to_buffer() with automatically allocated buffer. + * RETURN VALUES: + * On success, returns a newly allocated (.buffer) containing the whole message. + * The message size is returned in (.result.encoded). + * On failure: + * (.buffer) is NULL, + * (.result.encoded) as in asn_encode_to_buffer(), + * The errno codes as in asn_encode_to_buffer(), plus the following: + * ENOMEM: Memory allocation failed due to system or internal limits. + * The user is responsible for freeing the (.buffer). + */ +typedef struct asn_encode_to_new_buffer_result_s { + void *buffer; /* NULL if failed to encode. */ + asn_enc_rval_t result; +} asn_encode_to_new_buffer_result_t; +asn_encode_to_new_buffer_result_t asn_encode_to_new_buffer( + const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ + enum asn_transfer_syntax, + const struct asn_TYPE_descriptor_s *type_to_encode, + const void *structure_to_encode); + + +/* + * Generic type of an application-defined callback to return various + * types of data to the application. + * EXPECTED RETURN VALUES: + * -1: Failed to consume bytes. Abort the mission. + * Non-negative return values indicate success, and ignored. + */ +typedef int(asn_app_consume_bytes_f)(const void *buffer, size_t size, + void *application_specific_key); + + +/* + * A generic encoder for any supported transfer syntax. + * Returns the comprehensive encoding result descriptor (see asn_codecs.h). + * RETURN VALUES: + * The negative (.encoded) field of the return values is accompanied with the + * following error codes (errno): + * EINVAL: Incorrect parameters to the function, such as NULLs. + * ENOENT: Encoding transfer syntax is not defined (for this type). + * EBADF: The structure has invalid form or content constraint failed. + * EIO: The (callback) has returned negative value during encoding. + */ +asn_enc_rval_t asn_encode( + const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ + enum asn_transfer_syntax, + const struct asn_TYPE_descriptor_s *type_to_encode, + const void *structure_to_encode, + asn_app_consume_bytes_f *callback, void *callback_key); + + +/* + * A generic decoder for any supported transfer syntax. + */ +asn_dec_rval_t asn_decode( + const asn_codec_ctx_t *opt_codec_parameters, enum asn_transfer_syntax, + const struct asn_TYPE_descriptor_s *type_to_decode, + void **structure_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size /* Size of that buffer */ +); + + +/* + * A callback of this type is called whenever constraint validation fails + * on some ASN.1 type. See "constraints.h" for more details on constraint + * validation. + * This callback specifies a descriptor of the ASN.1 type which failed + * the constraint check, as well as human readable message on what + * particular constraint has failed. + */ +typedef void (asn_app_constraint_failed_f)(void *application_specific_key, + const struct asn_TYPE_descriptor_s *type_descriptor_which_failed, + const void *structure_which_failed_ptr, + const char *error_message_format, ...) CC_PRINTFLIKE(4, 5); + + +#ifdef __cplusplus +} +#endif + +#include "constr_TYPE.h" /* for asn_TYPE_descriptor_t */ + +#endif /* ASN_APPLICATION_H */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_bit_data.c b/e2sim/asn1c/asn_bit_data.c similarity index 100% rename from e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_bit_data.c rename to e2sim/asn1c/asn_bit_data.c diff --git a/e2sim/asn1c/asn_bit_data.h b/e2sim/asn1c/asn_bit_data.h new file mode 100644 index 0000000..f14714b --- /dev/null +++ b/e2sim/asn1c/asn_bit_data.h @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_BIT_DATA +#define ASN_BIT_DATA + +#include /* Platform-specific types */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * This structure describes a position inside an incoming PER bit stream. + */ +typedef struct asn_bit_data_s { + const uint8_t *buffer; /* Pointer to the octet stream */ + size_t nboff; /* Bit offset to the meaningful bit */ + size_t nbits; /* Number of bits in the stream */ + size_t moved; /* Number of bits moved through this bit stream */ + int (*refill)(struct asn_bit_data_s *); + void *refill_key; +} asn_bit_data_t; + +/* + * Create a contiguous non-refillable bit data structure. + * Can be freed by FREEMEM(). + */ +asn_bit_data_t *asn_bit_data_new_contiguous(const void *data, size_t size_bits); + +/* + * Extract a small number of bits (<= 31) from the specified PER data pointer. + * This function returns -1 if the specified number of bits could not be + * extracted due to EOD or other conditions. + */ +int32_t asn_get_few_bits(asn_bit_data_t *, int get_nbits); + +/* Undo the immediately preceding "get_few_bits" operation */ +void asn_get_undo(asn_bit_data_t *, int get_nbits); + +/* + * Extract a large number of bits from the specified PER data pointer. + * This function returns -1 if the specified number of bits could not be + * extracted due to EOD or other conditions. + */ +int asn_get_many_bits(asn_bit_data_t *, uint8_t *dst, int right_align, + int get_nbits); + +/* Non-thread-safe debugging function, don't use it */ +char *asn_bit_data_string(asn_bit_data_t *); + +/* + * This structure supports forming bit output. + */ +typedef struct asn_bit_outp_s { + uint8_t *buffer; /* Pointer into the (tmpspace) */ + size_t nboff; /* Bit offset to the meaningful bit */ + size_t nbits; /* Number of bits left in (tmpspace) */ + uint8_t tmpspace[32]; /* Preliminary storage to hold data */ + int (*output)(const void *data, size_t size, void *op_key); + void *op_key; /* Key for (output) data callback */ + size_t flushed_bytes; /* Bytes already flushed through (output) */ +} asn_bit_outp_t; + +/* Output a small number of bits (<= 31) */ +int asn_put_few_bits(asn_bit_outp_t *, uint32_t bits, int obits); + +/* Output a large number of bits */ +int asn_put_many_bits(asn_bit_outp_t *, const uint8_t *src, int put_nbits); + +/* + * Flush whole bytes (0 or more) through (outper) member. + * The least significant bits which are not used are guaranteed to be set to 0. + * Returns -1 if callback returns -1. Otherwise, 0. + */ +int asn_put_aligned_flush(asn_bit_outp_t *); + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_BIT_DATA */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_codecs.h b/e2sim/asn1c/asn_codecs.h similarity index 100% rename from e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_codecs.h rename to e2sim/asn1c/asn_codecs.h diff --git a/e2sim/asn1c/asn_codecs_prim.c b/e2sim/asn1c/asn_codecs_prim.c new file mode 100644 index 0000000..f3fdbfd --- /dev/null +++ b/e2sim/asn1c/asn_codecs_prim.c @@ -0,0 +1,31 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +void +ASN__PRIMITIVE_TYPE_free(const asn_TYPE_descriptor_t *td, void *sptr, + enum asn_struct_free_method method) { + ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)sptr; + + if(!td || !sptr) + return; + + ASN_DEBUG("Freeing %s as a primitive type", td->name); + + if(st->buf) + FREEMEM(st->buf); + + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(sptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset(sptr, 0, sizeof(ASN__PRIMITIVE_TYPE_t)); + break; + } +} diff --git a/e2sim/asn1c/asn_codecs_prim.h b/e2sim/asn1c/asn_codecs_prim.h new file mode 100644 index 0000000..5bbd9cf --- /dev/null +++ b/e2sim/asn1c/asn_codecs_prim.h @@ -0,0 +1,56 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_CODECS_PRIM_H +#define ASN_CODECS_PRIM_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct ASN__PRIMITIVE_TYPE_s { + uint8_t *buf; /* Buffer with consecutive primitive encoding bytes */ + size_t size; /* Size of the buffer */ +} ASN__PRIMITIVE_TYPE_t; /* Do not use this type directly! */ + +asn_struct_free_f ASN__PRIMITIVE_TYPE_free; + +#if !defined(ASN_DISABLE_BER_SUPPORT) +ber_type_decoder_f ber_decode_primitive; +der_type_encoder_f der_encode_primitive; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +/* + * A callback specification for the xer_decode_primitive() function below. + */ +enum xer_pbd_rval { + XPBD_SYSTEM_FAILURE, /* System failure (memory shortage, etc) */ + XPBD_DECODER_LIMIT, /* Hit some decoder limitation or deficiency */ + XPBD_BROKEN_ENCODING, /* Encoding of a primitive body is broken */ + XPBD_NOT_BODY_IGNORE, /* Not a body format, but safe to ignore */ + XPBD_BODY_CONSUMED /* Body is recognized and consumed */ +}; +typedef enum xer_pbd_rval(xer_primitive_body_decoder_f)( + const asn_TYPE_descriptor_t *td, void *struct_ptr, const void *chunk_buf, + size_t chunk_size); + +/* + * Specific function to decode simple primitive types. + * Also see xer_decode_general() in xer_decoder.h + */ +asn_dec_rval_t xer_decode_primitive( + const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, + size_t struct_size, const char *opt_mname, const void *buf_ptr, size_t size, + xer_primitive_body_decoder_f *prim_body_decoder); +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_CODECS_PRIM_H */ diff --git a/e2sim/asn1c/asn_codecs_prim_ber.c b/e2sim/asn1c/asn_codecs_prim_ber.c new file mode 100644 index 0000000..c5c2cef --- /dev/null +++ b/e2sim/asn1c/asn_codecs_prim_ber.c @@ -0,0 +1,115 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * Decode an always-primitive type. + */ +asn_dec_rval_t +ber_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const void *buf_ptr, size_t size, int tag_mode) { + ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)*sptr; + asn_dec_rval_t rval; + ber_tlv_len_t length = 0; /* =0 to avoid [incorrect] warning. */ + + /* + * If the structure is not there, allocate it. + */ + if(st == NULL) { + st = (ASN__PRIMITIVE_TYPE_t *)CALLOC(1, sizeof(*st)); + if(st == NULL) ASN__DECODE_FAILED; + *sptr = (void *)st; + } + + ASN_DEBUG("Decoding %s as plain primitive (tm=%d)", + td->name, tag_mode); + + /* + * Check tags and extract value length. + */ + rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size, + tag_mode, 0, &length, 0); + if(rval.code != RC_OK) + return rval; + + ASN_DEBUG("%s length is %d bytes", td->name, (int)length); + + /* + * Make sure we have this length. + */ + buf_ptr = ((const char *)buf_ptr) + rval.consumed; + size -= rval.consumed; + if(length > (ber_tlv_len_t)size) { + rval.code = RC_WMORE; + rval.consumed = 0; + return rval; + } + + st->size = (int)length; + /* The following better be optimized away. */ + if(sizeof(st->size) != sizeof(length) + && (ber_tlv_len_t)st->size != length) { + st->size = 0; + ASN__DECODE_FAILED; + } + + st->buf = (uint8_t *)MALLOC(length + 1); + if(!st->buf) { + st->size = 0; + ASN__DECODE_FAILED; + } + + memcpy(st->buf, buf_ptr, length); + st->buf[length] = '\0'; /* Just in case */ + + rval.code = RC_OK; + rval.consumed += length; + + ASN_DEBUG("Took %ld/%ld bytes to encode %s", + (long)rval.consumed, + (long)length, td->name); + + return rval; +} + +/* + * Encode an always-primitive type using DER. + */ +asn_enc_rval_t +der_encode_primitive(const asn_TYPE_descriptor_t *td, const void *sptr, + int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_enc_rval_t erval = {0,0,0}; + const ASN__PRIMITIVE_TYPE_t *st = (const ASN__PRIMITIVE_TYPE_t *)sptr; + + ASN_DEBUG("%s %s as a primitive type (tm=%d)", + cb?"Encoding":"Estimating", td->name, tag_mode); + + erval.encoded = der_write_tags(td, st->size, tag_mode, 0, tag, + cb, app_key); + ASN_DEBUG("%s wrote tags %d", td->name, (int)erval.encoded); + if(erval.encoded == -1) { + erval.failed_type = td; + erval.structure_ptr = sptr; + return erval; + } + + if(cb && st->buf) { + if(cb(st->buf, st->size, app_key) < 0) { + erval.encoded = -1; + erval.failed_type = td; + erval.structure_ptr = sptr; + return erval; + } + } else { + assert(st->buf || st->size == 0); + } + + erval.encoded += st->size; + ASN__ENCODED_OK(erval); +} diff --git a/e2sim/asn1c/asn_codecs_prim_xer.c b/e2sim/asn1c/asn_codecs_prim_xer.c new file mode 100644 index 0000000..70c91bc --- /dev/null +++ b/e2sim/asn1c/asn_codecs_prim_xer.c @@ -0,0 +1,184 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * Local internal type passed around as an argument. + */ +struct xdp_arg_s { + const asn_TYPE_descriptor_t *type_descriptor; + void *struct_key; + xer_primitive_body_decoder_f *prim_body_decoder; + int decoded_something; + int want_more; +}; + +/* + * Since some kinds of primitive values can be encoded using value-specific + * tags (, , etc), the primitive decoder must + * be supplied with such tags to parse them as needed. + */ +static int +xer_decode__unexpected_tag(void *key, const void *chunk_buf, size_t chunk_size) { + struct xdp_arg_s *arg = (struct xdp_arg_s *)key; + enum xer_pbd_rval bret; + + /* + * The chunk_buf is guaranteed to start at '<'. + */ + assert(chunk_size && ((const char *)chunk_buf)[0] == 0x3c); + + /* + * Decoding was performed once already. Prohibit doing it again. + */ + if(arg->decoded_something) + return -1; + + bret = arg->prim_body_decoder(arg->type_descriptor, + arg->struct_key, chunk_buf, + chunk_size); + switch(bret) { + case XPBD_SYSTEM_FAILURE: + case XPBD_DECODER_LIMIT: + case XPBD_BROKEN_ENCODING: + break; + case XPBD_BODY_CONSUMED: + /* Tag decoded successfully */ + arg->decoded_something = 1; + /* Fall through */ + case XPBD_NOT_BODY_IGNORE: /* Safe to proceed further */ + return 0; + } + + return -1; +} + +static ssize_t +xer_decode__primitive_body(void *key, const void *chunk_buf, size_t chunk_size, int have_more) { + struct xdp_arg_s *arg = (struct xdp_arg_s *)key; + enum xer_pbd_rval bret; + size_t lead_wsp_size; + + if(arg->decoded_something) { + if(xer_whitespace_span(chunk_buf, chunk_size) == chunk_size) { + /* + * Example: + * "123 " + * ^- chunk_buf position. + */ + return chunk_size; + } + /* + * Decoding was done once already. Prohibit doing it again. + */ + return -1; + } + + if(!have_more) { + /* + * If we've received something like "1", we can't really + * tell whether it is really `1` or `123`, until we know + * that there is no more data coming. + * The have_more argument will be set to 1 once something + * like this is available to the caller of this callback: + * "1want_more = 1; + return -1; + } + + lead_wsp_size = xer_whitespace_span(chunk_buf, chunk_size); + chunk_buf = (chunk_buf == NULL)? NULL : ((const char *)chunk_buf + lead_wsp_size); + chunk_size -= lead_wsp_size; + + bret = arg->prim_body_decoder(arg->type_descriptor, + arg->struct_key, chunk_buf, + chunk_size); + switch(bret) { + case XPBD_SYSTEM_FAILURE: + case XPBD_DECODER_LIMIT: + case XPBD_BROKEN_ENCODING: + break; + case XPBD_BODY_CONSUMED: + /* Tag decoded successfully */ + arg->decoded_something = 1; + /* Fall through */ + case XPBD_NOT_BODY_IGNORE: /* Safe to proceed further */ + return lead_wsp_size + chunk_size; + } + + return -1; +} + +asn_dec_rval_t +xer_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + size_t struct_size, const char *opt_mname, + const void *buf_ptr, size_t size, + xer_primitive_body_decoder_f *prim_body_decoder) { + const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; + asn_struct_ctx_t s_ctx; + struct xdp_arg_s s_arg; + asn_dec_rval_t rc; + + /* + * Create the structure if does not exist. + */ + if(!*sptr) { + *sptr = CALLOC(1, struct_size); + if(!*sptr) ASN__DECODE_FAILED; + } + + memset(&s_ctx, 0, sizeof(s_ctx)); + s_arg.type_descriptor = td; + s_arg.struct_key = *sptr; + s_arg.prim_body_decoder = prim_body_decoder; + s_arg.decoded_something = 0; + s_arg.want_more = 0; + + rc = xer_decode_general(opt_codec_ctx, &s_ctx, &s_arg, + xml_tag, buf_ptr, size, + xer_decode__unexpected_tag, + xer_decode__primitive_body); + switch(rc.code) { + case RC_OK: + if(!s_arg.decoded_something) { + char ch; + ASN_DEBUG("Primitive body is not recognized, " + "supplying empty one"); + /* + * Decoding opportunity has come and gone. + * Where's the result? + * Try to feed with empty body, see if it eats it. + */ + if(prim_body_decoder(s_arg.type_descriptor, + s_arg.struct_key, &ch, 0) + != XPBD_BODY_CONSUMED) { + /* + * This decoder does not like empty stuff. + */ + ASN__DECODE_FAILED; + } + } + break; + case RC_WMORE: + /* + * Redo the whole thing later. + * We don't have a context to save intermediate parsing state. + */ + rc.consumed = 0; + break; + case RC_FAIL: + rc.consumed = 0; + if(s_arg.want_more) + rc.code = RC_WMORE; + else + ASN__DECODE_FAILED; + break; + } + return rc; +} diff --git a/e2sim/asn1c/asn_config.h b/e2sim/asn1c/asn_config.h new file mode 100644 index 0000000..9e38708 --- /dev/null +++ b/e2sim/asn1c/asn_config.h @@ -0,0 +1,3 @@ +// Generated automatically. Don't edit manually! + +#define ASN_DISABLE_OER_SUPPORT 1 diff --git a/e2sim/asn1c/asn_constant.h b/e2sim/asn1c/asn_constant.h new file mode 100644 index 0000000..0162b7a --- /dev/null +++ b/e2sim/asn1c/asn_constant.h @@ -0,0 +1,90 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + */ + +#ifndef _ASN_CONSTANT_H +#define _ASN_CONSTANT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define min_val_ProcedureCode (0) +#define max_val_ProcedureCode (255) +#define min_val_ProtocolIE_ID (0) +#define max_val_ProtocolIE_ID (65535) +#define maxProtocolIEs (65535) +#define maxnoofErrors (256) +#define maxofE2nodeComponents (1024) +#define maxofRANfunctionID (256) +#define maxofRICactionID (16) +#define maxofTNLA (32) +#define maxofRICrequestID (1024) +#define min_val_E2AP_IEs_GNB_CU_UP_ID (0) +#define max_val_E2AP_IEs_GNB_CU_UP_ID (68719476735) +#define min_val_E2AP_IEs_GNB_DU_ID (0) +#define max_val_E2AP_IEs_GNB_DU_ID (68719476735) +#define min_val_E2AP_IEs_NGENB_DU_ID (0) +#define max_val_E2AP_IEs_NGENB_DU_ID (68719476735) +#define min_val_RANfunctionID (0) +#define max_val_RANfunctionID (4095) +#define min_val_RANfunctionRevision (0) +#define max_val_RANfunctionRevision (4095) +#define min_val_RICactionID (0) +#define max_val_RICactionID (255) +#define min_val_RICindicationSN (0) +#define max_val_RICindicationSN (65535) +#define min_val_GranularityPeriod (1) +#define max_val_GranularityPeriod (4294967295) +#define maxnoofCells (16384) +#define maxnoofRICStyles (63) +#define maxnoofMeasurementInfo (65535) +#define maxnoofLabelInfo (2147483647) +#define maxnoofMeasurementRecord (65535) +#define maxnoofMeasurementValue (2147483647) +#define maxnoofConditionInfo (32768) +#define maxnoofUEID (65535) +#define maxnoofConditionInfoPerSub (32768) +#define maxnoofUEIDPerSub (65535) +#define maxnoofUEMeasReport (65535) +#define maxnoofBin (65535) +#define maxE1APid (65535) +#define maxF1APid (4) +#define maxEARFCN (65535) +#define maxNRARFCN (3279165) +#define maxnoofNrCellBands (32) +#define min_val_MME_UE_S1AP_ID (0) +#define max_val_MME_UE_S1AP_ID (4294967295) +#define min_val_QCI (0) +#define max_val_QCI (255) +#define min_val_SubscriberProfileIDforRFP (1) +#define max_val_SubscriberProfileIDforRFP (256) +#define min_val_ENB_UE_X2AP_ID (0) +#define max_val_ENB_UE_X2AP_ID (4095) +#define min_val_E_UTRA_ARFCN (0) +#define max_val_E_UTRA_ARFCN (65535) +#define min_val_NGENB_CU_UE_W1AP_ID (0) +#define max_val_NGENB_CU_UE_W1AP_ID (4294967295) +#define min_val_E2SM_COMMON_IEs_NGENB_DU_ID (0) +#define max_val_E2SM_COMMON_IEs_NGENB_DU_ID (68719476735) +#define min_val_AMF_UE_NGAP_ID (0) +#define max_val_AMF_UE_NGAP_ID (1099511627775) +#define min_val_NG_RANnodeUEXnAPID (0) +#define max_val_NG_RANnodeUEXnAPID (4294967295) +#define min_val_GNB_CU_CP_UE_E1AP_ID (0) +#define max_val_GNB_CU_CP_UE_E1AP_ID (4294967295) +#define min_val_E2SM_COMMON_IEs_GNB_CU_UP_ID (0) +#define max_val_E2SM_COMMON_IEs_GNB_CU_UP_ID (68719476735) +#define min_val_GNB_CU_UE_F1AP_ID (0) +#define max_val_GNB_CU_UE_F1AP_ID (4294967295) +#define min_val_E2SM_COMMON_IEs_GNB_DU_ID (0) +#define max_val_E2SM_COMMON_IEs_GNB_DU_ID (68719476735) +#define min_val_NR_PCI (0) +#define max_val_NR_PCI (1007) + + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_CONSTANT_H */ diff --git a/e2sim/asn1c/asn_internal.c b/e2sim/asn1c/asn_internal.c new file mode 100644 index 0000000..c2a8108 --- /dev/null +++ b/e2sim/asn1c/asn_internal.c @@ -0,0 +1,48 @@ +#include + +ssize_t +asn__format_to_callback(int (*cb)(const void *, size_t, void *key), void *key, + const char *fmt, ...) { + char scratch[64]; + char *buf = scratch; + size_t buf_size = sizeof(scratch); + int wrote; + int cb_ret; + + do { + va_list args; + va_start(args, fmt); + + wrote = vsnprintf(buf, buf_size, fmt, args); + va_end(args); + if(wrote < (ssize_t)buf_size) { + if(wrote < 0) { + if(buf != scratch) FREEMEM(buf); + return -1; + } + break; + } + + buf_size <<= 1; + if(buf == scratch) { + buf = MALLOC(buf_size); + if(!buf) return -1; + } else { + void *p = REALLOC(buf, buf_size); + if(!p) { + FREEMEM(buf); + return -1; + } + buf = p; + } + } while(1); + + cb_ret = cb(buf, wrote, key); + if(buf != scratch) FREEMEM(buf); + if(cb_ret < 0) { + return -1; + } + + return wrote; +} + diff --git a/e2sim/asn1c/asn_internal.h b/e2sim/asn1c/asn_internal.h new file mode 100644 index 0000000..d6ce619 --- /dev/null +++ b/e2sim/asn1c/asn_internal.h @@ -0,0 +1,187 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * Declarations internally useful for the ASN.1 support code. + */ +#ifndef ASN_INTERNAL_H +#define ASN_INTERNAL_H +#ifndef __EXTENSIONS__ +#define __EXTENSIONS__ /* for Sun */ +#endif + +#include "asn_application.h" /* Application-visible API */ + +#ifndef __NO_ASSERT_H__ /* Include assert.h only for internal use. */ +#include /* for assert() macro */ +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +#include +#include +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +#include +#include +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +/* Environment version might be used to avoid running with the old library */ +#define ASN1C_ENVIRONMENT_VERSION 923 /* Compile-time version */ +int get_asn1c_environment_version(void); /* Run-time version */ + +#define CALLOC(nmemb, size) calloc(nmemb, size) +#define MALLOC(size) malloc(size) +#define REALLOC(oldptr, size) realloc(oldptr, size) +#define FREEMEM(ptr) free(ptr) + +#define asn_debug_indent 0 +#define ASN_DEBUG_INDENT_ADD(i) do{}while(0) + +#ifdef EMIT_ASN_DEBUG +#warning "Use ASN_EMIT_DEBUG instead of EMIT_ASN_DEBUG" +#define ASN_EMIT_DEBUG EMIT_ASN_DEBUG +#endif + +/* + * A macro for debugging the ASN.1 internals. + * You may enable or override it. + */ +#ifndef ASN_DEBUG /* If debugging code is not defined elsewhere... */ +#if ASN_EMIT_DEBUG == 1 /* And it was asked to emit this code... */ +#if __STDC_VERSION__ >= 199901L +#ifdef ASN_THREAD_SAFE +/* Thread safety requires sacrifice in output indentation: + * Retain empty definition of ASN_DEBUG_INDENT_ADD. */ +#else /* !ASN_THREAD_SAFE */ +#undef ASN_DEBUG_INDENT_ADD +#undef asn_debug_indent +int asn_debug_indent; +#define ASN_DEBUG_INDENT_ADD(i) do { asn_debug_indent += i; } while(0) +#endif /* ASN_THREAD_SAFE */ +#define ASN_DEBUG(fmt, args...) do { \ + int adi = asn_debug_indent; \ + while(adi--) fprintf(stderr, " "); \ + fprintf(stderr, fmt, ##args); \ + fprintf(stderr, " (%s:%d)\n", \ + __FILE__, __LINE__); \ + } while(0) +#else /* !C99 */ +void CC_PRINTFLIKE(1, 2) ASN_DEBUG_f(const char *fmt, ...); +#define ASN_DEBUG ASN_DEBUG_f +#endif /* C99 */ +#else /* ASN_EMIT_DEBUG != 1 */ +#if __STDC_VERSION__ >= 199901L +#define ASN_DEBUG(...) do{}while(0) +#else /* not C99 */ +static void CC_PRINTFLIKE(1, 2) ASN_DEBUG(const char *fmt, ...) { (void)fmt; } +#endif /* C99 or better */ +#endif /* ASN_EMIT_DEBUG */ +#endif /* ASN_DEBUG */ + +/* + * Print to a callback. + * The callback is expected to return negative values on error. + * 0 and positive values are treated as success. + * RETURN VALUES: + * -1: Failed to format or invoke the callback. + * >0: Size of the data that got delivered to the callback. + */ +ssize_t CC_PRINTFLIKE(3, 4) +asn__format_to_callback( + int (*callback)(const void *, size_t, void *key), void *key, + const char *fmt, ...); + +/* + * Invoke the application-supplied callback and fail, if something is wrong. + */ +#define ASN__E_cbc(buf, size) (cb((buf), (size), app_key) < 0) +#define ASN__E_CALLBACK(size, foo) \ + do { \ + if(foo) goto cb_failed; \ + er.encoded += (size); \ + } while(0) +#define ASN__CALLBACK(buf, size) ASN__E_CALLBACK(size, ASN__E_cbc(buf, size)) +#define ASN__CALLBACK2(buf1, size1, buf2, size2) \ + ASN__E_CALLBACK((size1) + (size2), \ + ASN__E_cbc(buf1, size1) || ASN__E_cbc(buf2, size2)) +#define ASN__CALLBACK3(buf1, size1, buf2, size2, buf3, size3) \ + ASN__E_CALLBACK((size1) + (size2) + (size3), \ + ASN__E_cbc(buf1, size1) || ASN__E_cbc(buf2, size2) \ + || ASN__E_cbc(buf3, size3)) + +#define ASN__TEXT_INDENT(nl, level) \ + do { \ + int tmp_level = (level); \ + int tmp_nl = ((nl) != 0); \ + int tmp_i; \ + if(tmp_nl) ASN__CALLBACK("\n", 1); \ + if(tmp_level < 0) tmp_level = 0; \ + for(tmp_i = 0; tmp_i < tmp_level; tmp_i++) ASN__CALLBACK(" ", 4); \ + } while(0) + +#define _i_INDENT(nl) do { \ + int tmp_i; \ + if((nl) && cb("\n", 1, app_key) < 0) \ + return -1; \ + for(tmp_i = 0; tmp_i < ilevel; tmp_i++) \ + if(cb(" ", 4, app_key) < 0) \ + return -1; \ + } while(0) + +/* + * Check stack against overflow, if limit is set. + */ + +/* Since GCC 13, AddressSanitizer started defaulting to +* ASAN_OPTIONS="detect_stack_use_after_return=1", which makes this check +* fail due to apparently jumping stack pointers. +* Hence, disable this check if building with ASan, as documented in: +* GCC: https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html +* Clang: https://clang.llvm.org/docs/AddressSanitizer.html#conditional-compilation-with-has-feature-address-sanitizer +*/ +#if defined(__SANITIZE_ADDRESS__) + #define ASN__SANITIZE_ENABLED 1 +#elif defined(__has_feature) +#if __has_feature(address_sanitizer) + #define ASN__SANITIZE_ENABLED 1 +#endif +#endif + +#define ASN__DEFAULT_STACK_MAX (30000) + +#if defined(ASN__SANITIZE_ENABLED) || defined(ASN_DISABLE_STACK_OVERFLOW_CHECK) +static int CC_NOTUSED +ASN__STACK_OVERFLOW_CHECK(const asn_codec_ctx_t *ctx) { + (void)ctx; + return 0; +} +#else +static int CC_NOTUSED +ASN__STACK_OVERFLOW_CHECK(const asn_codec_ctx_t *ctx) { + if(ctx && ctx->max_stack_size) { + + /* ctx MUST be allocated on the stack */ + ptrdiff_t usedstack = ((const char *)ctx - (const char *)&ctx); + if(usedstack > 0) usedstack = -usedstack; /* grows up! */ + + /* double negative required to avoid int wrap-around */ + if(usedstack < -(ptrdiff_t)ctx->max_stack_size) { + ASN_DEBUG("Stack limit %ld reached", + (long)ctx->max_stack_size); + return -1; + } + } + return 0; +} +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_INTERNAL_H */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_ioc.h b/e2sim/asn1c/asn_ioc.h similarity index 100% rename from e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_ioc.h rename to e2sim/asn1c/asn_ioc.h diff --git a/e2sim/asn1c/asn_random_fill.c b/e2sim/asn1c/asn_random_fill.c new file mode 100644 index 0000000..15771b6 --- /dev/null +++ b/e2sim/asn1c/asn_random_fill.c @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +int +asn_random_fill(const struct asn_TYPE_descriptor_s *td, void **struct_ptr, + size_t length) { + + if(td && td->op->random_fill) { + asn_random_fill_result_t res = + td->op->random_fill(td, struct_ptr, 0, length); + return (res.code == ARFILL_OK) ? 0 : -1; + } else { + return -1; + } +} + +static uintmax_t +asn__intmax_range(intmax_t lb, intmax_t ub) { + assert(lb <= ub); + if((ub < 0) == (lb < 0)) { + return ub - lb; + } else if(lb < 0) { + return 1 + ((uintmax_t)ub + (uintmax_t)-(lb + 1)); + } else { + assert(!"Unreachable"); + return 0; + } +} + +intmax_t +asn_random_between(intmax_t lb, intmax_t rb) { + if(lb == rb) { + return lb; + } else { + const uintmax_t intmax_max = ((~(uintmax_t)0) >> 1); + uintmax_t range = asn__intmax_range(lb, rb); + uintmax_t value = 0; + uintmax_t got_entropy = 0; + (void)intmax_max; + int max = 0xffffff; + +#ifdef __WIN32__ + max = RAND_MAX-1; +#endif + + assert(RAND_MAX > max); /* Seen 7ffffffd! */ + assert(range < intmax_max); + + for(; got_entropy < range;) { + got_entropy = (got_entropy << 24) | max; +#ifdef HAVE_RANDOM + value = (value << 24) | (random() % max); +#else + value = (value << 24) | (rand() % max); +#endif + } + + return lb + (intmax_t)(value % (range + 1)); + } +} diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_random_fill.h b/e2sim/asn1c/asn_random_fill.h similarity index 100% rename from e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_random_fill.h rename to e2sim/asn1c/asn_random_fill.h diff --git a/e2sim/asn1c/asn_system.h b/e2sim/asn1c/asn_system.h new file mode 100644 index 0000000..0f0d495 --- /dev/null +++ b/e2sim/asn1c/asn_system.h @@ -0,0 +1,169 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * Miscellaneous system-dependent types. + */ +#ifndef ASN_SYSTEM_H +#define ASN_SYSTEM_H + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifndef _DEFAULT_SOURCE +#define _DEFAULT_SOURCE 1 +#endif + +#ifndef _BSD_SOURCE +#define _BSD_SOURCE /* for snprintf() on some linux systems */ +#endif + +#include /* For snprintf(3) */ +#include /* For *alloc(3) */ +#include /* For memcpy(3) */ +#include /* For size_t */ +#include /* For LONG_MAX */ +#include /* For va_start */ +#include /* for offsetof and ptrdiff_t */ +#include /* for PRIdMAX */ + +#ifdef _WIN32 + +#include +#ifndef __MINGW32__ +#define snprintf _snprintf +#define vsnprintf _vsnprintf +#endif + +/* To avoid linking with ws2_32.lib, here's the definition of ntohl() */ +#define sys_ntohl(l) ((((l) << 24) & 0xff000000) \ + | (((l) << 8) & 0xff0000) \ + | (((l) >> 8) & 0xff00) \ + | ((l >> 24) & 0xff)) + +#ifdef _MSC_VER /* MSVS.Net */ +#ifndef __cplusplus +#define inline __inline +#endif +#ifndef ASSUMESTDTYPES /* Standard types have been defined elsewhere */ +#define ssize_t SSIZE_T +#if _MSC_VER < 1600 +typedef char int8_t; +typedef short int16_t; +typedef int int32_t; +typedef unsigned char uint8_t; +typedef unsigned short uint16_t; +typedef unsigned int uint32_t; +#else /* _MSC_VER >= 1600 */ +#include +#endif /* _MSC_VER < 1600 */ +#endif /* ASSUMESTDTYPES */ +#define WIN32_LEAN_AND_MEAN +#include +#include +#define isnan _isnan +#define finite _finite +#define copysign _copysign +#define ilogb _logb +#else /* !_MSC_VER */ +#include +#endif /* _MSC_VER */ + +#else /* !_WIN32 */ + +#if defined(__vxworks) +#include +#else /* !defined(__vxworks) */ + +#include /* C99 specifies this file */ +#ifdef HAVE_NETINET_IN_H +#include /* for ntohl() */ +#endif +#define sys_ntohl(foo) ntohl(foo) +#endif /* defined(__vxworks) */ + +#endif /* _WIN32 */ + +#if __GNUC__ >= 3 || defined(__clang__) +#define CC_ATTRIBUTE(attr) __attribute__((attr)) +#else +#define CC_ATTRIBUTE(attr) +#endif +#if defined(__GNUC__) && ((__GNUC__ == 4 && __GNUC_MINOR__>= 4) || __GNUC__ > 4) +#define CC_PRINTFLIKE(fmt, var) CC_ATTRIBUTE(format(gnu_printf, fmt, var)) +#elif defined(__GNUC__) +#if defined(ANDROID) +#define CC_PRINTFLIKE(fmt, var) CC_ATTRIBUTE(__format__(__printf__, fmt, var)) +#else +#define CC_PRINTFLIKE(fmt, var) CC_ATTRIBUTE(format(printf, fmt, var)) +#endif +#else +#define CC_PRINTFLIKE(fmt, var) +#endif +#define CC_NOTUSED CC_ATTRIBUTE(unused) +#ifndef CC_ATTR_NO_SANITIZE +#if __GNUC__ < 8 +#define CC_ATTR_NO_SANITIZE(what) +#else +#define CC_ATTR_NO_SANITIZE(what) CC_ATTRIBUTE(no_sanitize(what)) +#endif +#endif + +/* Figure out if thread safety is requested */ +#if !defined(ASN_THREAD_SAFE) && (defined(THREAD_SAFE) || defined(_REENTRANT)) +#define ASN_THREAD_SAFE +#endif /* Thread safety */ + +#ifndef offsetof /* If not defined by */ +#define offsetof(s, m) ((ptrdiff_t)&(((s *)0)->m) - (ptrdiff_t)((s *)0)) +#endif /* offsetof */ + +#ifndef MIN /* Suitable for comparing primitive types (integers) */ +#if defined(__GNUC__) +#define MIN(a,b) ({ __typeof a _a = a; __typeof b _b = b; \ + ((_a)<(_b)?(_a):(_b)); }) +#else /* !__GNUC__ */ +#define MIN(a,b) ((a)<(b)?(a):(b)) /* Unsafe variant */ +#endif /* __GNUC__ */ +#endif /* MIN */ + +#if __STDC_VERSION__ >= 199901L +#ifndef SIZE_MAX +#define SIZE_MAX ((~((size_t)0)) >> 1) +#endif + +#ifndef RSIZE_MAX /* C11, Annex K */ +#define RSIZE_MAX (SIZE_MAX >> 1) +#endif +#ifndef RSSIZE_MAX /* Halve signed size even further than unsigned */ +#define RSSIZE_MAX ((ssize_t)(RSIZE_MAX >> 1)) +#endif +#else /* Old compiler */ +#undef SIZE_MAX +#undef RSIZE_MAX +#undef RSSIZE_MAX +#define SIZE_MAX ((~((size_t)0)) >> 1) +#define RSIZE_MAX (SIZE_MAX >> 1) +#define RSSIZE_MAX ((ssize_t)(RSIZE_MAX >> 1)) +#endif + +#if __STDC_VERSION__ >= 199901L +#define ASN_PRI_SIZE "zu" +#define ASN_PRI_SSIZE "zd" +#define ASN_PRIuMAX PRIuMAX +#define ASN_PRIdMAX PRIdMAX +#else +#define ASN_PRI_SIZE "lu" +#define ASN_PRI_SSIZE "ld" +#if LLONG_MAX > LONG_MAX +#define ASN_PRIuMAX "llu" +#define ASN_PRIdMAX "lld" +#else +#define ASN_PRIuMAX "lu" +#define ASN_PRIdMAX "ld" +#endif +#endif + +#endif /* ASN_SYSTEM_H */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ber_decoder.c b/e2sim/asn1c/ber_decoder.c similarity index 100% rename from e2sim/e2sm_examples/kpm_e2sm/ASN1c/ber_decoder.c rename to e2sim/asn1c/ber_decoder.c diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ber_decoder.h b/e2sim/asn1c/ber_decoder.h similarity index 100% rename from e2sim/e2sm_examples/kpm_e2sm/ASN1c/ber_decoder.h rename to e2sim/asn1c/ber_decoder.h diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ber_tlv_length.c b/e2sim/asn1c/ber_tlv_length.c similarity index 100% rename from e2sim/e2sm_examples/kpm_e2sm/ASN1c/ber_tlv_length.c rename to e2sim/asn1c/ber_tlv_length.c diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ber_tlv_length.h b/e2sim/asn1c/ber_tlv_length.h similarity index 100% rename from e2sim/e2sm_examples/kpm_e2sm/ASN1c/ber_tlv_length.h rename to e2sim/asn1c/ber_tlv_length.h diff --git a/e2sim/asn1c/ber_tlv_tag.c b/e2sim/asn1c/ber_tlv_tag.c new file mode 100644 index 0000000..64ec14f --- /dev/null +++ b/e2sim/asn1c/ber_tlv_tag.c @@ -0,0 +1,144 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +ssize_t +ber_fetch_tag(const void *ptr, size_t size, ber_tlv_tag_t *tag_r) { + ber_tlv_tag_t val; + ber_tlv_tag_t tclass; + size_t skipped; + + if(size == 0) + return 0; + + val = *(const uint8_t *)ptr; + tclass = (val >> 6); + if((val &= 0x1F) != 0x1F) { + /* + * Simple form: everything encoded in a single octet. + * Tag Class is encoded using two least significant bits. + */ + *tag_r = (val << 2) | tclass; + return 1; + } + + /* + * Each octet contains 7 bits of useful information. + * The MSB is 0 if it is the last octet of the tag. + */ + for(val = 0, ptr = ((const char *)ptr) + 1, skipped = 2; + skipped <= size; + ptr = ((const char *)ptr) + 1, skipped++) { + unsigned int oct = *(const uint8_t *)ptr; + if(oct & 0x80) { + val = (val << 7) | (oct & 0x7F); + /* + * Make sure there are at least 9 bits spare + * at the MS side of a value. + */ + if(val >> ((8 * sizeof(val)) - 9)) { + /* + * We would not be able to accommodate + * any more tag bits. + */ + return -1; + } + } else { + val = (val << 7) | oct; + *tag_r = (val << 2) | tclass; + return skipped; + } + } + + return 0; /* Want more */ +} + + +ssize_t +ber_tlv_tag_fwrite(ber_tlv_tag_t tag, FILE *f) { + char buf[sizeof("[APPLICATION ]") + 32]; + ssize_t ret; + + ret = ber_tlv_tag_snprint(tag, buf, sizeof(buf)); + if(ret >= (ssize_t)sizeof(buf) || ret < 2) { + errno = EPERM; + return -1; + } + + return fwrite(buf, 1, ret, f); +} + +ssize_t +ber_tlv_tag_snprint(ber_tlv_tag_t tag, char *buf, size_t size) { + const char *type = 0; + int ret; + + switch(tag & 0x3) { + case ASN_TAG_CLASS_UNIVERSAL: type = "UNIVERSAL "; break; + case ASN_TAG_CLASS_APPLICATION: type = "APPLICATION "; break; + case ASN_TAG_CLASS_CONTEXT: type = ""; break; + case ASN_TAG_CLASS_PRIVATE: type = "PRIVATE "; break; + } + + ret = snprintf(buf, size, "[%s%u]", type, ((unsigned)tag) >> 2); + if(ret <= 0 && size) buf[0] = '\0'; /* against broken libc's */ + + return ret; +} + +char * +ber_tlv_tag_string(ber_tlv_tag_t tag) { + static char buf[sizeof("[APPLICATION ]") + 32]; + + (void)ber_tlv_tag_snprint(tag, buf, sizeof(buf)); + + return buf; +} + + +size_t +ber_tlv_tag_serialize(ber_tlv_tag_t tag, void *bufp, size_t size) { + int tclass = BER_TAG_CLASS(tag); + ber_tlv_tag_t tval = BER_TAG_VALUE(tag); + uint8_t *buf = (uint8_t *)bufp; + uint8_t *end; + size_t required_size; + size_t i; + + if(tval <= 30) { + /* Encoded in 1 octet */ + if(size) buf[0] = (tclass << 6) | tval; + return 1; + } else if(size) { + *buf++ = (tclass << 6) | 0x1F; + size--; + } + + /* + * Compute the size of the subsequent bytes. + */ + for(required_size = 1, i = 7; i < 8 * sizeof(tval); i += 7) { + if(tval >> i) + required_size++; + else + break; + } + + if(size < required_size) + return required_size + 1; + + /* + * Fill in the buffer, space permitting. + */ + end = buf + required_size - 1; + for(i -= 7; buf < end; i -= 7, buf++) + *buf = 0x80 | ((tval >> i) & 0x7F); + *buf = (tval & 0x7F); /* Last octet without high bit */ + + return required_size + 1; +} + diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ber_tlv_tag.h b/e2sim/asn1c/ber_tlv_tag.h similarity index 100% rename from e2sim/e2sm_examples/kpm_e2sm/ASN1c/ber_tlv_tag.h rename to e2sim/asn1c/ber_tlv_tag.h diff --git a/e2sim/asn1c/constr_CHOICE.c b/e2sim/asn1c/constr_CHOICE.c new file mode 100644 index 0000000..5f52e3d --- /dev/null +++ b/e2sim/asn1c/constr_CHOICE.c @@ -0,0 +1,358 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_TYPE_operation_t asn_OP_CHOICE = { + CHOICE_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + CHOICE_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + CHOICE_compare, +#if !defined(ASN_DISABLE_BER_SUPPORT) + CHOICE_decode_ber, + CHOICE_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + CHOICE_decode_xer, + CHOICE_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + CHOICE_encode_jer, +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + CHOICE_decode_oer, + CHOICE_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + CHOICE_decode_uper, + CHOICE_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + CHOICE_decode_aper, + CHOICE_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + CHOICE_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + CHOICE_outmost_tag +}; + +ber_tlv_tag_t +CHOICE_outmost_tag(const asn_TYPE_descriptor_t *td, const void *ptr, int tag_mode, ber_tlv_tag_t tag) { + const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; + unsigned present; + + assert(tag_mode == 0); (void)tag_mode; + assert(tag == 0); (void)tag; + + /* + * Figure out which CHOICE element is encoded. + */ + present = _fetch_present_idx(ptr, specs->pres_offset, specs->pres_size); + + if(present > 0 && present <= td->elements_count) { + const asn_TYPE_member_t *elm = &td->elements[present-1]; + const void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = *(const void * const *) + ((const char *)ptr + elm->memb_offset); + } else { + memb_ptr = (const void *) + ((const char *)ptr + elm->memb_offset); + } + + return asn_TYPE_outmost_tag(elm->type, memb_ptr, + elm->tag_mode, elm->tag); + } else { + return (ber_tlv_tag_t)-1; + } +} + +/* + * See the definitions. + */ +static const void *_get_member_ptr(const asn_TYPE_descriptor_t *, + const void *sptr, asn_TYPE_member_t **elm, + unsigned *present); + +int +CHOICE_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + unsigned present; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* + * Figure out which CHOICE element is encoded. + */ + present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); + if(present > 0 && present <= td->elements_count) { + asn_TYPE_member_t *elm = &td->elements[present-1]; + const void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) { + if(elm->optional) + return 0; + ASN__CTFAIL(app_key, td, sptr, + "%s: mandatory CHOICE element %s absent (%s:%d)", + td->name, elm->name, __FILE__, __LINE__); + return -1; + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + if(elm->encoding_constraints.general_constraints) { + return elm->encoding_constraints.general_constraints(elm->type, memb_ptr, + ctfailcb, app_key); + } else { + return elm->type->encoding_constraints.general_constraints(elm->type, + memb_ptr, ctfailcb, app_key); + } + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: no CHOICE element given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +void +CHOICE_free(const asn_TYPE_descriptor_t *td, void *ptr, + enum asn_struct_free_method method) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + unsigned present; + + if(!td || !ptr) + return; + + ASN_DEBUG("Freeing %s as CHOICE", td->name); + + /* + * Figure out which CHOICE element is encoded. + */ + present = _fetch_present_idx(ptr, specs->pres_offset, specs->pres_size); + + /* + * Free that element. + */ + if(present > 0 && present <= td->elements_count) { + asn_TYPE_member_t *elm = &td->elements[present-1]; + void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = *(void **)((char *)ptr + elm->memb_offset); + if(memb_ptr) + ASN_STRUCT_FREE(*elm->type, memb_ptr); + } else { + memb_ptr = (void *)((char *)ptr + elm->memb_offset); + ASN_STRUCT_FREE_CONTENTS_ONLY(*elm->type, memb_ptr); + } + } + + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(ptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset(ptr, 0, specs->struct_size); + break; + } +} + + +/* + * The following functions functions offer protection against -fshort-enums, + * compatible with little- and big-endian machines. + * If assertion is triggered, either disable -fshort-enums, or add an entry + * here with the ->pres_size of your target stracture. + * Unless the target structure is packed, the ".present" member + * is guaranteed to be aligned properly. ASN.1 compiler itself does not + * produce packed code. + */ +unsigned +_fetch_present_idx(const void *struct_ptr, unsigned pres_offset, + unsigned pres_size) { + const void *present_ptr; + unsigned present; + + present_ptr = ((const char *)struct_ptr) + pres_offset; + + switch(pres_size) { + case sizeof(int): present = *(const unsigned int *)present_ptr; break; + case sizeof(short): present = *(const unsigned short *)present_ptr; break; + case sizeof(char): present = *(const unsigned char *)present_ptr; break; + default: + /* ANSI C mandates enum to be equivalent to integer */ + assert(pres_size != sizeof(int)); + return 0; /* If not aborted, pass back safe value */ + } + + return present; +} + +void +_set_present_idx(void *struct_ptr, unsigned pres_offset, unsigned pres_size, + unsigned present) { + void *present_ptr; + present_ptr = ((char *)struct_ptr) + pres_offset; + + switch(pres_size) { + case sizeof(int): *(unsigned int *)present_ptr = present; break; + case sizeof(short): *(unsigned short *)present_ptr = present; break; + case sizeof(char): *(unsigned char *)present_ptr = present; break; + default: + /* ANSI C mandates enum to be equivalent to integer */ + assert(pres_size != sizeof(int)); + } +} + +static const void * +_get_member_ptr(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_TYPE_member_t **elm_ptr, unsigned *present_out) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + unsigned present; + + if(!sptr) { + *elm_ptr = NULL; + *present_out = 0; + return NULL; + } + + /* + * Figure out which CHOICE element is encoded. + */ + present = _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); + *present_out = present; + + /* + * The presence index is intentionally 1-based to avoid + * treating zeroed structure as a valid one. + */ + if(present > 0 && present <= td->elements_count) { + asn_TYPE_member_t *const elm = &td->elements[present - 1]; + const void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + *elm_ptr = elm; + return memb_ptr; + } else { + *elm_ptr = NULL; + return NULL; + } + +} + +int +CHOICE_compare(const asn_TYPE_descriptor_t *td, const void *aptr, const void *bptr) { + asn_TYPE_member_t *aelm; + asn_TYPE_member_t *belm; + unsigned apresent = 0; + unsigned bpresent = 0; + const void *amember = _get_member_ptr(td, aptr, &aelm, &apresent); + const void *bmember = _get_member_ptr(td, bptr, &belm, &bpresent); + + if(amember && bmember) { + if(apresent == bpresent) { + assert(aelm == belm); + return aelm->type->op->compare_struct(aelm->type, amember, bmember); + } else if(apresent < bpresent) { + return -1; + } else { + return 1; + } + } else if(!amember) { + return -1; + } else { + return 1; + } +} + +/* + * Return the 1-based choice variant presence index. + * Returns 0 in case of error. + */ +unsigned +CHOICE_variant_get_presence(const asn_TYPE_descriptor_t *td, const void *sptr) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + return _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); +} + +/* + * Sets or resets the 1-based choice variant presence index. + * In case a previous index is not zero, the currently selected structure + * member is freed and zeroed-out first. + * Returns 0 on success and -1 on error. + */ +int +CHOICE_variant_set_presence(const asn_TYPE_descriptor_t *td, void *sptr, + unsigned present) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + unsigned old_present; + + if(!sptr) { + return -1; + } + + if(present > td->elements_count) + return -1; + + old_present = + _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); + if(present == old_present) + return 0; + + if(old_present != 0) { + assert(old_present <= td->elements_count); + ASN_STRUCT_RESET(*td, sptr); + } + + _set_present_idx(sptr, specs->pres_offset, specs->pres_size, present); + + return 0; +} diff --git a/e2sim/asn1c/constr_CHOICE.h b/e2sim/asn1c/constr_CHOICE.h new file mode 100644 index 0000000..03d606c --- /dev/null +++ b/e2sim/asn1c/constr_CHOICE.h @@ -0,0 +1,119 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _CONSTR_CHOICE_H_ +#define _CONSTR_CHOICE_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct asn_CHOICE_specifics_s { + /* + * Target structure description. + */ + unsigned struct_size; /* Size of the target structure. */ + unsigned ctx_offset; /* Offset of the asn_codec_ctx_t member */ + unsigned pres_offset; /* Identifier of the present member */ + unsigned pres_size; /* Size of the identifier (enum) */ + + /* + * Tags to members mapping table. + */ + const asn_TYPE_tag2member_t *tag2el; + unsigned tag2el_count; + + /* Canonical ordering of CHOICE elements, for PER */ + const unsigned *to_canonical_order; + const unsigned *from_canonical_order; + + /* + * Extensions-related stuff. + */ + signed ext_start; /* First member of extensions, or -1 */ +} asn_CHOICE_specifics_t; + +/* + * A set specialized functions dealing with the CHOICE type. + */ +asn_struct_free_f CHOICE_free; + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +asn_struct_print_f CHOICE_print; +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +asn_struct_compare_f CHOICE_compare; + +asn_constr_check_f CHOICE_constraint; + +#if !defined(ASN_DISABLE_BER_SUPPORT) +ber_type_decoder_f CHOICE_decode_ber; +der_type_encoder_f CHOICE_encode_der; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +xer_type_decoder_f CHOICE_decode_xer; +xer_type_encoder_f CHOICE_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_encoder_f CHOICE_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +oer_type_decoder_f CHOICE_decode_oer; +oer_type_encoder_f CHOICE_encode_oer; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f CHOICE_decode_uper; +per_type_encoder_f CHOICE_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +per_type_decoder_f CHOICE_decode_aper; +per_type_encoder_f CHOICE_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +asn_random_fill_f CHOICE_random_fill; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +asn_outmost_tag_f CHOICE_outmost_tag; + +extern asn_TYPE_operation_t asn_OP_CHOICE; + +unsigned _fetch_present_idx( + const void *struct_ptr, + unsigned off, + unsigned size); + +void _set_present_idx( + void *sptr, + unsigned offset, + unsigned size, + unsigned present); + +/* + * Return the 1-based choice variant presence index. + * Returns 0 in case of error. + */ +unsigned CHOICE_variant_get_presence(const asn_TYPE_descriptor_t *td, + const void *structure_ptr); + +/* + * Sets or resets the 1-based choice variant presence index. + * In case a previous index is not zero, the currently selected structure + * member is freed and zeroed-out first. + * Returns 0 on success and -1 on error. + */ +int CHOICE_variant_set_presence(const asn_TYPE_descriptor_t *td, + void *structure_ptr, unsigned present); + +#ifdef __cplusplus +} +#endif + +#endif /* _CONSTR_CHOICE_H_ */ diff --git a/e2sim/asn1c/constr_CHOICE_aper.c b/e2sim/asn1c/constr_CHOICE_aper.c new file mode 100644 index 0000000..41040aa --- /dev/null +++ b/e2sim/asn1c/constr_CHOICE_aper.c @@ -0,0 +1,181 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_dec_rval_t +CHOICE_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; + asn_dec_rval_t rv; + const asn_per_constraint_t *ct = NULL; + asn_TYPE_member_t *elm = NULL; /* CHOICE's element */ + void *memb_ptr = NULL; + void **memb_ptr2 = NULL; + void *st = *sptr; + int value = 0; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + /* + * Create the target structure if it is not present already. + */ + if(!st) { + st = *sptr = CALLOC(1, specs->struct_size); + if(!st) ASN__DECODE_FAILED; + } + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ct = 0; + + if(ct && ct->flags & APC_EXTENSIBLE) { + value = per_get_few_bits(pd, 1); + if(value < 0) ASN__DECODE_STARVED; + if(value) ct = 0; /* Not restricted */ + } + + if(ct && ct->range_bits >= 0) { + value = per_get_few_bits(pd, ct->range_bits); + if(value < 0) ASN__DECODE_STARVED; + ASN_DEBUG("CHOICE %s got index %d in range %d", + td->name, value, ct->range_bits); + if(value > ct->upper_bound) + ASN__DECODE_FAILED; + } else { + if(specs->ext_start == -1) + ASN__DECODE_FAILED; + + if(specs && specs->tag2el_count > specs->ext_start) { + value = aper_get_nsnnwn(pd, specs->tag2el_count - specs->ext_start); /* extension elements range */ + if(value < 0) ASN__DECODE_STARVED; + value += specs->ext_start; + if((unsigned)value >= td->elements_count) + ASN__DECODE_FAILED; + } + } + + /* Adjust if canonical order is different from natural order */ + if(specs->from_canonical_order) + value = specs->from_canonical_order[value]; + + /* Set presence to be able to free it later */ + _set_present_idx(st, specs->pres_offset, specs->pres_size, value + 1); + + elm = &td->elements[value]; + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + ASN_DEBUG("Discovered CHOICE %s encodes %s", td->name, elm->name); + + if(ct && ct->range_bits >= 0) { + rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, memb_ptr2, pd); + } else { + rv = aper_open_type_get(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, memb_ptr2, pd); + } + + if(rv.code != RC_OK) + ASN_DEBUG("Failed to decode %s in %s (CHOICE) %d", + elm->name, td->name, rv.code); + return rv; +} + +asn_enc_rval_t +CHOICE_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; + const asn_TYPE_member_t *elm; /* CHOICE's element */ + const asn_per_constraint_t *ct; + const void *memb_ptr; + int present; + + if(!sptr) ASN__ENCODE_FAILED; + + ASN_DEBUG("Encoding %s as CHOICE using ALIGNED PER", td->name); + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ct = 0; + + present = _fetch_present_idx(sptr, + specs->pres_offset, specs->pres_size); + + /* + * If the structure was not initialized properly, it cannot be encoded: + * can't deduce what to encode in the choice type. + */ + if(present <= 0 || (unsigned)present > td->elements_count) + ASN__ENCODE_FAILED; + else + present--; + + /* Adjust if canonical order is different from natural order */ + if(specs->to_canonical_order) + present = specs->to_canonical_order[present]; + + ASN_DEBUG("Encoding %s CHOICE element %d", td->name, present); + + if(ct && ct->range_bits >= 0) { + if(present < ct->lower_bound + || present > ct->upper_bound) { + if(ct->flags & APC_EXTENSIBLE) { + if(per_put_few_bits(po, 1, 1)) + ASN__ENCODE_FAILED; + } else { + ASN__ENCODE_FAILED; + } + ct = 0; + } + } + if(ct && ct->flags & APC_EXTENSIBLE) { + if(per_put_few_bits(po, 0, 1)) + ASN__ENCODE_FAILED; + } + + elm = &td->elements[present]; + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr = *(const void *const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) ASN__ENCODE_FAILED; + } else { + memb_ptr = (const char *)sptr + elm->memb_offset; + } + + if(ct && ct->range_bits >= 0) { + if(per_put_few_bits(po, present, ct->range_bits)) + ASN__ENCODE_FAILED; + + return elm->type->op->aper_encoder(elm->type, elm->encoding_constraints.per_constraints, + memb_ptr, po); + } else { + asn_enc_rval_t rval = {0,0,0}; + if(specs->ext_start == -1) + ASN__ENCODE_FAILED; + int n = present - specs->ext_start; + if(n <= 63) { + if(n < 0) ASN__ENCODE_FAILED; + if(per_put_few_bits(po, n, 7)) ASN__ENCODE_FAILED; + } else + ASN__ENCODE_FAILED; + if(aper_open_type_put(elm->type, elm->encoding_constraints.per_constraints, + memb_ptr, po)) + ASN__ENCODE_FAILED; + rval.encoded = 0; + ASN__ENCODED_OK(rval); + } +} diff --git a/e2sim/asn1c/constr_CHOICE_ber.c b/e2sim/asn1c/constr_CHOICE_ber.c new file mode 100644 index 0000000..7ad42c7 --- /dev/null +++ b/e2sim/asn1c/constr_CHOICE_ber.c @@ -0,0 +1,447 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * Number of bytes left for this structure. + * (ctx->left) indicates the number of bytes _transferred_ for the structure. + * (size) contains the number of bytes in the buffer passed. + */ +#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) + +/* + * If the subprocessor function returns with an indication that it wants + * more data, it may well be a fatal decoding problem, because the + * size is constrained by the 's L, even if the buffer size allows + * reading more data. + * For example, consider the buffer containing the following TLVs: + * ... + * The TLV length clearly indicates that one byte is expected in V, but + * if the V processor returns with "want more data" even if the buffer + * contains way more data than the V processor have seen. + */ +#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) + +/* + * This macro "eats" the part of the buffer which is definitely "consumed", + * i.e. was correctly converted into local representation or rightfully skipped. + */ +#undef ADVANCE +#define ADVANCE(num_bytes) \ + do { \ + size_t num = num_bytes; \ + ptr = ((const char *)ptr) + num; \ + size -= num; \ + if(ctx->left >= 0) \ + ctx->left -= num; \ + consumed_myself += num; \ + } while(0) + +/* + * Switch to the next phase of parsing. + */ +#undef NEXT_PHASE +#define NEXT_PHASE(ctx) \ + do { \ + ctx->phase++; \ + ctx->step = 0; \ + } while(0) + +/* + * Return a standardized complex structure. + */ +#undef RETURN +#define RETURN(_code) \ + do { \ + rval.code = _code; \ + rval.consumed = consumed_myself; \ + return rval; \ + } while(0) + +/* + * Tags are canonically sorted in the tag to member table. + */ +static int +_search4tag(const void *ap, const void *bp) { + const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap; + const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp; + + int a_class = BER_TAG_CLASS(a->el_tag); + int b_class = BER_TAG_CLASS(b->el_tag); + + if(a_class == b_class) { + ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag); + ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag); + + if(a_value == b_value) + return 0; + else if(a_value < b_value) + return -1; + else + return 1; + } else if(a_class < b_class) { + return -1; + } else { + return 1; + } +} + +/* + * The decoder of the CHOICE type. + */ +asn_dec_rval_t +CHOICE_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **struct_ptr, + const void *ptr, size_t size, int tag_mode) { + /* + * Bring closer parts of structure description. + */ + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + asn_TYPE_member_t *elements = td->elements; + + /* + * Parts of the structure being constructed. + */ + void *st = *struct_ptr; /* Target structure. */ + asn_struct_ctx_t *ctx; /* Decoder context */ + + ber_tlv_tag_t tlv_tag; /* T from TLV */ + ssize_t tag_len; /* Length of TLV's T */ + asn_dec_rval_t rval; /* Return code from subparsers */ + + ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ + + ASN_DEBUG("Decoding %s as CHOICE", td->name); + + /* + * Create the target structure if it is not present already. + */ + if(st == 0) { + st = *struct_ptr = CALLOC(1, specs->struct_size); + if(st == 0) { + RETURN(RC_FAIL); + } + } + + /* + * Restore parsing context. + */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + /* + * Start to parse where left previously + */ + switch(ctx->phase) { + case 0: + /* + * PHASE 0. + * Check that the set of tags associated with given structure + * perfectly fits our expectations. + */ + + if(tag_mode || td->tags_count) { + rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, + tag_mode, -1, &ctx->left, 0); + if(rval.code != RC_OK) { + ASN_DEBUG("%s tagging check failed: %d", + td->name, rval.code); + return rval; + } + + if(ctx->left >= 0) { + /* ?Subtracted below! */ + ctx->left += rval.consumed; + } + ADVANCE(rval.consumed); + } else { + ctx->left = -1; + } + + NEXT_PHASE(ctx); + + ASN_DEBUG("Structure consumes %ld bytes, buffer %ld", + (long)ctx->left, (long)size); + + /* Fall through */ + case 1: + /* + * Fetch the T from TLV. + */ + tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); + ASN_DEBUG("In %s CHOICE tag length %d", td->name, (int)tag_len); + switch(tag_len) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + do { + const asn_TYPE_tag2member_t *t2m; + asn_TYPE_tag2member_t key; + + key.el_tag = tlv_tag; + t2m = (const asn_TYPE_tag2member_t *)bsearch(&key, + specs->tag2el, specs->tag2el_count, + sizeof(specs->tag2el[0]), _search4tag); + if(t2m) { + /* + * Found the element corresponding to the tag. + */ + NEXT_PHASE(ctx); + ctx->step = t2m->el_no; + break; + } else if(specs->ext_start == -1) { + ASN_DEBUG("Unexpected tag %s " + "in non-extensible CHOICE %s", + ber_tlv_tag_string(tlv_tag), td->name); + RETURN(RC_FAIL); + } else { + /* Skip this tag */ + ssize_t skip; + + ASN_DEBUG("Skipping unknown tag %s", + ber_tlv_tag_string(tlv_tag)); + + skip = ber_skip_length(opt_codec_ctx, + BER_TLV_CONSTRUCTED(ptr), + (const char *)ptr + tag_len, + LEFT - tag_len); + + switch(skip) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + ADVANCE(skip + tag_len); + RETURN(RC_OK); + } + } while(0); + + case 2: + /* + * PHASE 2. + * Read in the element. + */ + do { + asn_TYPE_member_t *elm;/* CHOICE's element */ + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + + elm = &elements[ctx->step]; + + /* + * Compute the position of the member inside a structure, + * and also a type of containment (it may be contained + * as pointer or using inline inclusion). + */ + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + /* + * A pointer to a pointer + * holding the start of the structure + */ + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + /* Set presence to be able to free it properly at any time */ + _set_present_idx(st, specs->pres_offset, + specs->pres_size, ctx->step + 1); + /* + * Invoke the member fetch routine according to member's type + */ + rval = elm->type->op->ber_decoder(opt_codec_ctx, elm->type, + memb_ptr2, ptr, LEFT, + elm->tag_mode); + switch(rval.code) { + case RC_OK: + break; + case RC_WMORE: /* More data expected */ + if(!SIZE_VIOLATION) { + ADVANCE(rval.consumed); + RETURN(RC_WMORE); + } + RETURN(RC_FAIL); + case RC_FAIL: /* Fatal error */ + RETURN(rval.code); + } /* switch(rval) */ + + ADVANCE(rval.consumed); + } while(0); + + NEXT_PHASE(ctx); + + /* Fall through */ + case 3: + ASN_DEBUG("CHOICE %s Leftover: %ld, size = %ld, tm=%d, tc=%d", + td->name, (long)ctx->left, (long)size, + tag_mode, td->tags_count); + + if(ctx->left > 0) { + /* + * The type must be fully decoded + * by the CHOICE member-specific decoder. + */ + RETURN(RC_FAIL); + } + + if(ctx->left == -1 + && !(tag_mode || td->tags_count)) { + /* + * This is an untagged CHOICE. + * It doesn't contain nothing + * except for the member itself, including all its tags. + * The decoding is completed. + */ + NEXT_PHASE(ctx); + break; + } + + /* + * Read in the "end of data chunks"'s. + */ + while(ctx->left < 0) { + ssize_t tl; + + tl = ber_fetch_tag(ptr, LEFT, &tlv_tag); + switch(tl) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + /* + * Expected <0><0>... + */ + if(((const uint8_t *)ptr)[0] == 0) { + if(LEFT < 2) { + if(SIZE_VIOLATION) + RETURN(RC_FAIL); + else + RETURN(RC_WMORE); + } else if(((const uint8_t *)ptr)[1] == 0) { + /* + * Correctly finished with <0><0>. + */ + ADVANCE(2); + ctx->left++; + continue; + } + } else { + ASN_DEBUG("Unexpected continuation in %s", + td->name); + RETURN(RC_FAIL); + } + + /* UNREACHABLE */ + } + + NEXT_PHASE(ctx); + case 4: + /* No meaningful work here */ + break; + } + + RETURN(RC_OK); +} + +asn_enc_rval_t +CHOICE_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, + int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, + void *app_key) { + const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; + asn_TYPE_member_t *elm; /* CHOICE element */ + asn_enc_rval_t erval = {0,0,0}; + const void *memb_ptr; + size_t computed_size = 0; + unsigned present; + + if(!sptr) ASN__ENCODE_FAILED; + + ASN_DEBUG("%s %s as CHOICE", + cb ? "Encoding" : "Estimating", td->name); + + present = _fetch_present_idx(sptr, + specs->pres_offset, specs->pres_size); + + /* + * If the structure was not initialized, it cannot be encoded: + * can't deduce what to encode in the choice type. + */ + if(present == 0 || present > td->elements_count) { + if(present == 0 && td->elements_count == 0) { + /* The CHOICE is empty?! */ + erval.encoded = 0; + ASN__ENCODED_OK(erval); + } + ASN__ENCODE_FAILED; + } + + /* + * Seek over the present member of the structure. + */ + elm = &td->elements[present-1]; + if(elm->flags & ATF_POINTER) { + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(memb_ptr == 0) { + if(elm->optional) { + erval.encoded = 0; + ASN__ENCODED_OK(erval); + } + /* Mandatory element absent */ + ASN__ENCODE_FAILED; + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + /* + * If the CHOICE itself is tagged EXPLICIT: + * T ::= [2] EXPLICIT CHOICE { ... } + * Then emit the appropriate tags. + */ + if(tag_mode == 1 || td->tags_count) { + /* + * For this, we need to pre-compute the member. + */ + ssize_t ret; + + /* Encode member with its tag */ + erval = elm->type->op->der_encoder(elm->type, memb_ptr, + elm->tag_mode, + elm->tag, 0, 0); + if(erval.encoded == -1) + return erval; + + /* Encode CHOICE with parent or my own tag */ + ret = der_write_tags(td, erval.encoded, tag_mode, 1, tag, + cb, app_key); + if(ret == -1) + ASN__ENCODE_FAILED; + computed_size += ret; + } + + /* + * Encode the single underlying member. + */ + erval = elm->type->op->der_encoder(elm->type, memb_ptr, + elm->tag_mode, elm->tag, + cb, app_key); + if(erval.encoded == -1) + return erval; + + ASN_DEBUG("Encoded CHOICE member in %ld bytes (+%ld)", + (long)erval.encoded, (long)computed_size); + + erval.encoded += computed_size; + + return erval; +} diff --git a/e2sim/asn1c/constr_CHOICE_jer.c b/e2sim/asn1c/constr_CHOICE_jer.c new file mode 100644 index 0000000..22d5090 --- /dev/null +++ b/e2sim/asn1c/constr_CHOICE_jer.c @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * Return a standardized complex structure. + */ +#undef RETURN +#define RETURN(_code) \ + do { \ + rval.code = _code; \ + rval.consumed = consumed_myself; \ + return rval; \ + } while(0) + +#undef JER_ADVANCE +#define JER_ADVANCE(num_bytes) \ + do { \ + size_t num = num_bytes; \ + buf_ptr = (const void *)(((const char *)buf_ptr) + num); \ + size -= num; \ + consumed_myself += num; \ + } while(0) + +asn_enc_rval_t +CHOICE_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + enum jer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, + void *app_key) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + unsigned present = 0; + + if(!sptr) + ASN__ENCODE_FAILED; + + /* + * Figure out which CHOICE element is encoded. + */ + present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); + + if(present == 0 || present > td->elements_count) { + ASN__ENCODE_FAILED; + } else { + asn_enc_rval_t tmper = {0,0,0}; + asn_TYPE_member_t *elm = &td->elements[present-1]; + const void *memb_ptr = NULL; + const char *mname = elm->name; + unsigned int mlen = strlen(mname); + + if(elm->flags & ATF_POINTER) { + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) ASN__ENCODE_FAILED; + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + er.encoded = 0; + + ASN__CALLBACK3("{\n\"", 3, mname, mlen, "\": ", 2); + + tmper = elm->type->op->jer_encoder(elm->type, memb_ptr, + ilevel + 1, flags, cb, app_key); + if(tmper.encoded == -1) return tmper; + er.encoded += tmper.encoded; + + ASN__CALLBACK("}", 1); + // ASN__CALLBACK3("", 1); + } + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} diff --git a/e2sim/asn1c/constr_CHOICE_print.c b/e2sim/asn1c/constr_CHOICE_print.c new file mode 100644 index 0000000..a97202f --- /dev/null +++ b/e2sim/asn1c/constr_CHOICE_print.c @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +int +CHOICE_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; + unsigned present; + + if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; + + /* + * Figure out which CHOICE element is encoded. + */ + present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); + + /* + * Print that element. + */ + if(present > 0 && present <= td->elements_count) { + asn_TYPE_member_t *elm = &td->elements[present-1]; + const void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) return (cb("", 8, app_key) < 0) ? -1 : 0; + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + /* Print member's name and stuff */ + if(0) { + if(cb(elm->name, strlen(elm->name), app_key) < 0 + || cb(": ", 2, app_key) < 0) + return -1; + } + + return elm->type->op->print_struct(elm->type, memb_ptr, ilevel, + cb, app_key); + } else { + return (cb("", 8, app_key) < 0) ? -1 : 0; + } +} diff --git a/e2sim/asn1c/constr_CHOICE_rfill.c b/e2sim/asn1c/constr_CHOICE_rfill.c new file mode 100644 index 0000000..fd0a101 --- /dev/null +++ b/e2sim/asn1c/constr_CHOICE_rfill.c @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_random_fill_result_t +CHOICE_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constr, + size_t max_length) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + asn_random_fill_result_t res; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + const asn_TYPE_member_t *elm; + unsigned present; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + void *st = *sptr; + + if(max_length == 0) return result_skipped; + + (void)constr; + + if(st == NULL) { + st = CALLOC(1, specs->struct_size); + if(st == NULL) { + return result_failed; + } + } + + present = asn_random_between(1, td->elements_count); + elm = &td->elements[present - 1]; + + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + + res = elm->type->op->random_fill(elm->type, memb_ptr2, + &elm->encoding_constraints, max_length); + _set_present_idx(st, specs->pres_offset, specs->pres_size, present); + if(res.code == ARFILL_OK) { + *sptr = st; + } else { + if(st == *sptr) { + ASN_STRUCT_RESET(*td, st); + } else { + ASN_STRUCT_FREE(*td, st); + } + } + + return res; +} diff --git a/e2sim/asn1c/constr_CHOICE_uper.c b/e2sim/asn1c/constr_CHOICE_uper.c new file mode 100644 index 0000000..77aab6d --- /dev/null +++ b/e2sim/asn1c/constr_CHOICE_uper.c @@ -0,0 +1,191 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_dec_rval_t +CHOICE_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + asn_dec_rval_t rv; + const asn_per_constraint_t *ct; + asn_TYPE_member_t *elm; /* CHOICE's element */ + void *memb_ptr; + void **memb_ptr2; + void *st = *sptr; + int value; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + /* + * Create the target structure if it is not present already. + */ + if(!st) { + st = *sptr = CALLOC(1, specs->struct_size); + if(!st) ASN__DECODE_FAILED; + } + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) ct = &td->encoding_constraints.per_constraints->value; + else ct = 0; + + if(ct && ct->flags & APC_EXTENSIBLE) { + value = per_get_few_bits(pd, 1); + if(value < 0) ASN__DECODE_STARVED; + if(value) ct = 0; /* Not restricted */ + } + + if(ct && ct->range_bits >= 0) { + value = per_get_few_bits(pd, ct->range_bits); + if(value < 0) ASN__DECODE_STARVED; + ASN_DEBUG("CHOICE %s got index %d in range %d", + td->name, value, ct->range_bits); + if(value > ct->upper_bound) + ASN__DECODE_FAILED; + } else { + if(specs->ext_start == -1) + ASN__DECODE_FAILED; + value = uper_get_nsnnwn(pd); + if(value < 0) ASN__DECODE_STARVED; + value += specs->ext_start; + if((unsigned)value >= td->elements_count) + ASN__DECODE_FAILED; + } + + /* Adjust if canonical order is different from natural order */ + if(specs->from_canonical_order) { + ASN_DEBUG("CHOICE presence from wire %d", value); + value = specs->from_canonical_order[value]; + ASN_DEBUG("CHOICE presence index effective %d", value); + } + + /* Set presence to be able to free it later */ + _set_present_idx(st, specs->pres_offset, specs->pres_size, value + 1); + + elm = &td->elements[value]; + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + ASN_DEBUG("Discovered CHOICE %s encodes %s", td->name, elm->name); + + if(ct && ct->range_bits >= 0) { + rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr2, pd); + } else { + rv = uper_open_type_get(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr2, pd); + } + + if(rv.code != RC_OK) + ASN_DEBUG("Failed to decode %s in %s (CHOICE) %d", + elm->name, td->name, rv.code); + return rv; +} + +asn_enc_rval_t +CHOICE_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; + asn_TYPE_member_t *elm; /* CHOICE's element */ + const asn_per_constraint_t *ct; + const void *memb_ptr; + unsigned present; + int present_enc; + + if(!sptr) ASN__ENCODE_FAILED; + + ASN_DEBUG("Encoding %s as CHOICE", td->name); + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ct = 0; + + present = _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); + + /* + * If the structure was not initialized properly, it cannot be encoded: + * can't deduce what to encode in the choice type. + */ + if(present == 0 || present > td->elements_count) + ASN__ENCODE_FAILED; + else + present--; + + ASN_DEBUG("Encoding %s CHOICE element %d", td->name, present); + + /* Adjust if canonical order is different from natural order */ + if(specs->to_canonical_order) + present_enc = specs->to_canonical_order[present]; + else + present_enc = present; + + if(ct && ct->range_bits >= 0) { + if(present_enc < ct->lower_bound + || present_enc > ct->upper_bound) { + if(ct->flags & APC_EXTENSIBLE) { + ASN_DEBUG( + "CHOICE member %d (enc %d) is an extension (%ld..%ld)", + present, present_enc, ct->lower_bound, ct->upper_bound); + if(per_put_few_bits(po, 1, 1)) + ASN__ENCODE_FAILED; + } else { + ASN__ENCODE_FAILED; + } + ct = 0; + } + } + if(ct && ct->flags & APC_EXTENSIBLE) { + ASN_DEBUG("CHOICE member %d (enc %d) is not an extension (%ld..%ld)", + present, present_enc, ct->lower_bound, ct->upper_bound); + if(per_put_few_bits(po, 0, 1)) + ASN__ENCODE_FAILED; + } + + + elm = &td->elements[present]; + ASN_DEBUG("CHOICE member \"%s\" %d (as %d)", elm->name, present, + present_enc); + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) ASN__ENCODE_FAILED; + } else { + memb_ptr = (const char *)sptr + elm->memb_offset; + } + + if(ct && ct->range_bits >= 0) { + if(per_put_few_bits(po, present_enc, ct->range_bits)) + ASN__ENCODE_FAILED; + + return elm->type->op->uper_encoder( + elm->type, elm->encoding_constraints.per_constraints, memb_ptr, po); + } else { + asn_enc_rval_t rval = {0,0,0}; + if(specs->ext_start == -1) ASN__ENCODE_FAILED; + if(uper_put_nsnnwn(po, present_enc - specs->ext_start)) + ASN__ENCODE_FAILED; + if(uper_open_type_put(elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr, po)) + ASN__ENCODE_FAILED; + rval.encoded = 0; + ASN__ENCODED_OK(rval); + } +} diff --git a/e2sim/asn1c/constr_CHOICE_xer.c b/e2sim/asn1c/constr_CHOICE_xer.c new file mode 100644 index 0000000..45b4290 --- /dev/null +++ b/e2sim/asn1c/constr_CHOICE_xer.c @@ -0,0 +1,316 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * Return a standardized complex structure. + */ +#undef RETURN +#define RETURN(_code) \ + do { \ + rval.code = _code; \ + rval.consumed = consumed_myself; \ + return rval; \ + } while(0) + +#undef XER_ADVANCE +#define XER_ADVANCE(num_bytes) \ + do { \ + size_t num = num_bytes; \ + buf_ptr = (const void *)(((const char *)buf_ptr) + num); \ + size -= num; \ + consumed_myself += num; \ + } while(0) + +/* + * Decode the XER (XML) data. + */ +asn_dec_rval_t +CHOICE_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **struct_ptr, + const char *opt_mname, const void *buf_ptr, size_t size) { + /* + * Bring closer parts of structure description. + */ + const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; + const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; + + /* + * Parts of the structure being constructed. + */ + void *st = *struct_ptr; /* Target structure. */ + asn_struct_ctx_t *ctx; /* Decoder context */ + + asn_dec_rval_t rval; /* Return value of a decoder */ + ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ + size_t edx; /* Element index */ + + /* + * Create the target structure if it is not present already. + */ + if(st == 0) { + st = *struct_ptr = CALLOC(1, specs->struct_size); + if(st == 0) RETURN(RC_FAIL); + } + + /* + * Restore parsing context. + */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + if(ctx->phase == 0 && !*xml_tag) + ctx->phase = 1; /* Skip the outer tag checking phase */ + + /* + * Phases of XER/XML processing: + * Phase 0: Check that the opening tag matches our expectations. + * Phase 1: Processing body and reacting on closing tag. + * Phase 2: Processing inner type. + * Phase 3: Only waiting for closing tag. + * Phase 4: Skipping unknown extensions. + * Phase 5: PHASED OUT + */ + for(edx = ctx->step; ctx->phase <= 4;) { + pxer_chunk_type_e ch_type; /* XER chunk type */ + ssize_t ch_size; /* Chunk size */ + xer_check_tag_e tcv; /* Tag check value */ + asn_TYPE_member_t *elm; + + /* + * Go inside the member. + */ + if(ctx->phase == 2) { + asn_dec_rval_t tmprval; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + unsigned old_present; + + elm = &td->elements[edx]; + + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + + /* Start/Continue decoding the inner member */ + tmprval = elm->type->op->xer_decoder(opt_codec_ctx, + elm->type, memb_ptr2, + elm->name, + buf_ptr, size); + XER_ADVANCE(tmprval.consumed); + ASN_DEBUG("XER/CHOICE: itdf: [%s] code=%d", + elm->type->name, tmprval.code); + old_present = _fetch_present_idx(st, + specs->pres_offset, + specs->pres_size); + assert(old_present == 0 || old_present == edx + 1); + /* Record what we've got */ + _set_present_idx(st, + specs->pres_offset, + specs->pres_size, edx + 1); + if(tmprval.code != RC_OK) + RETURN(tmprval.code); + ctx->phase = 3; + /* Fall through */ + } + + /* No need to wait for closing tag; special mode. */ + if(ctx->phase == 3 && !*xml_tag) { + ctx->phase = 5; /* Phase out */ + RETURN(RC_OK); + } + + /* + * Get the next part of the XML stream. + */ + ch_size = xer_next_token(&ctx->context, buf_ptr, size, &ch_type); + if(ch_size == -1) { + RETURN(RC_FAIL); + } else { + switch(ch_type) { + case PXER_WMORE: + RETURN(RC_WMORE); + case PXER_COMMENT: /* Got XML comment */ + case PXER_TEXT: /* Ignore free-standing text */ + XER_ADVANCE(ch_size); /* Skip silently */ + continue; + case PXER_TAG: + break; /* Check the rest down there */ + } + } + + tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); + ASN_DEBUG("XER/CHOICE checked [%c%c%c%c] vs [%s], tcv=%d", + ch_size>0?((const uint8_t *)buf_ptr)[0]:'?', + ch_size>1?((const uint8_t *)buf_ptr)[1]:'?', + ch_size>2?((const uint8_t *)buf_ptr)[2]:'?', + ch_size>3?((const uint8_t *)buf_ptr)[3]:'?', + xml_tag, tcv); + + /* Skip the extensions section */ + if(ctx->phase == 4) { + ASN_DEBUG("skip_unknown(%d, %ld)", + tcv, (long)ctx->left); + switch(xer_skip_unknown(tcv, &ctx->left)) { + case -1: + ctx->phase = 5; + RETURN(RC_FAIL); + case 1: + ctx->phase = 3; + /* Fall through */ + case 0: + XER_ADVANCE(ch_size); + continue; + case 2: + ctx->phase = 3; + break; + } + } + + switch(tcv) { + case XCT_BOTH: + break; /* No CHOICE? */ + case XCT_CLOSING: + if(ctx->phase != 3) + break; + XER_ADVANCE(ch_size); + ctx->phase = 5; /* Phase out */ + RETURN(RC_OK); + case XCT_OPENING: + if(ctx->phase == 0) { + XER_ADVANCE(ch_size); + ctx->phase = 1; /* Processing body phase */ + continue; + } + /* Fall through */ + case XCT_UNKNOWN_OP: + case XCT_UNKNOWN_BO: + + if(ctx->phase != 1) + break; /* Really unexpected */ + + /* + * Search which inner member corresponds to this tag. + */ + for(edx = 0; edx < td->elements_count; edx++) { + elm = &td->elements[edx]; + tcv = xer_check_tag(buf_ptr,ch_size,elm->name); + switch(tcv) { + case XCT_BOTH: + case XCT_OPENING: + /* + * Process this member. + */ + ctx->step = edx; + ctx->phase = 2; + break; + case XCT_UNKNOWN_OP: + case XCT_UNKNOWN_BO: + continue; + default: + edx = td->elements_count; + break; /* Phase out */ + } + break; + } + if(edx != td->elements_count) + continue; + + /* It is expected extension */ + if(specs->ext_start != -1) { + ASN_DEBUG("Got anticipated extension"); + /* + * Check for (XCT_BOTH or XCT_UNKNOWN_BO) + * By using a mask. Only record a pure + * tags. + */ + if(tcv & XCT_CLOSING) { + /* Found without body */ + ctx->phase = 3; /* Terminating */ + } else { + ctx->left = 1; + ctx->phase = 4; /* Skip ...'s */ + } + XER_ADVANCE(ch_size); + continue; + } + + /* Fall through */ + default: + break; + } + + ASN_DEBUG("Unexpected XML tag [%c%c%c%c] in CHOICE [%s]" + " (ph=%d, tag=%s)", + ch_size>0?((const uint8_t *)buf_ptr)[0]:'?', + ch_size>1?((const uint8_t *)buf_ptr)[1]:'?', + ch_size>2?((const uint8_t *)buf_ptr)[2]:'?', + ch_size>3?((const uint8_t *)buf_ptr)[3]:'?', + td->name, ctx->phase, xml_tag); + break; + } + + ctx->phase = 5; /* Phase out, just in case */ + RETURN(RC_FAIL); +} + +asn_enc_rval_t +CHOICE_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, + void *app_key) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + unsigned present = 0; + + if(!sptr) + ASN__ENCODE_FAILED; + + /* + * Figure out which CHOICE element is encoded. + */ + present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); + + if(present == 0 || present > td->elements_count) { + ASN__ENCODE_FAILED; + } else { + asn_enc_rval_t tmper = {0,0,0}; + asn_TYPE_member_t *elm = &td->elements[present-1]; + const void *memb_ptr = NULL; + const char *mname = elm->name; + unsigned int mlen = strlen(mname); + + if(elm->flags & ATF_POINTER) { + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) ASN__ENCODE_FAILED; + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + er.encoded = 0; + + if(!(flags & XER_F_CANONICAL)) ASN__TEXT_INDENT(1, ilevel); + ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); + + tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, + ilevel + 1, flags, cb, app_key); + if(tmper.encoded == -1) return tmper; + er.encoded += tmper.encoded; + + ASN__CALLBACK3("", 1); + } + + if(!(flags & XER_F_CANONICAL)) ASN__TEXT_INDENT(1, ilevel - 1); + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} diff --git a/e2sim/asn1c/constr_SEQUENCE.c b/e2sim/asn1c/constr_SEQUENCE.c new file mode 100644 index 0000000..8397d0c --- /dev/null +++ b/e2sim/asn1c/constr_SEQUENCE.c @@ -0,0 +1,197 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_TYPE_operation_t asn_OP_SEQUENCE = { + SEQUENCE_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + SEQUENCE_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + SEQUENCE_compare, +#if !defined(ASN_DISABLE_BER_SUPPORT) + SEQUENCE_decode_ber, + SEQUENCE_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + SEQUENCE_decode_xer, + SEQUENCE_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + SEQUENCE_encode_jer, +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + SEQUENCE_decode_oer, + SEQUENCE_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + SEQUENCE_decode_uper, + SEQUENCE_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + SEQUENCE_decode_aper, + SEQUENCE_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + SEQUENCE_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; + +void +SEQUENCE_free(const asn_TYPE_descriptor_t *td, void *sptr, + enum asn_struct_free_method method) { + size_t edx; + const asn_SEQUENCE_specifics_t *specs = + (const asn_SEQUENCE_specifics_t *)td->specifics; + asn_struct_ctx_t *ctx; /* Decoder context */ + + if(!td || !sptr) + return; + + ASN_DEBUG("Freeing %s as SEQUENCE", td->name); + + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; + if(elm->flags & ATF_POINTER) { + memb_ptr = *(void **)((char *)sptr + elm->memb_offset); + if(memb_ptr) + ASN_STRUCT_FREE(*elm->type, memb_ptr); + } else { + memb_ptr = (void *)((char *)sptr + elm->memb_offset); + ASN_STRUCT_FREE_CONTENTS_ONLY(*elm->type, memb_ptr); + } + } + + /* Clean parsing context */ + ctx = (asn_struct_ctx_t *)((char *)sptr + specs->ctx_offset); + FREEMEM(ctx->ptr); + + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(sptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset( + sptr, 0, + ((const asn_SEQUENCE_specifics_t *)(td->specifics))->struct_size); + break; + } +} + +int +SEQUENCE_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t edx; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* + * Iterate over structure members and check their validity. + */ + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; + asn_constr_check_f *constr; + int ret; + + if(elm->flags & ATF_POINTER) { + memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) { + if(elm->optional) + continue; + ASN__CTFAIL(app_key, td, sptr, + "%s: mandatory element %s absent (%s:%d)", + td->name, elm->name, __FILE__, __LINE__); + return -1; + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + constr = elm->encoding_constraints.general_constraints; + if(!constr) + constr = elm->type->encoding_constraints.general_constraints; + + ret = constr(elm->type, memb_ptr, ctfailcb, app_key); + if(ret) return ret; + } + + return 0; +} + +int +SEQUENCE_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + size_t edx; + + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *amemb; + const void *bmemb; + int ret; + + if(elm->flags & ATF_POINTER) { + amemb = + *(const void *const *)((const char *)aptr + elm->memb_offset); + bmemb = + *(const void *const *)((const char *)bptr + elm->memb_offset); + if(!amemb) { + if(!bmemb) continue; + if(elm->default_value_cmp + && elm->default_value_cmp(bmemb) == 0) { + /* A is absent, but B is present and equal to DEFAULT */ + continue; + } + return -1; + } else if(!bmemb) { + if(elm->default_value_cmp + && elm->default_value_cmp(amemb) == 0) { + /* B is absent, but A is present and equal to DEFAULT */ + continue; + } + return 1; + } + } else { + amemb = (const void *)((const char *)aptr + elm->memb_offset); + bmemb = (const void *)((const char *)bptr + elm->memb_offset); + } + + ret = elm->type->op->compare_struct(elm->type, amemb, bmemb); + if(ret != 0) return ret; + } + + return 0; +} diff --git a/e2sim/asn1c/constr_SEQUENCE.h b/e2sim/asn1c/constr_SEQUENCE.h new file mode 100644 index 0000000..5ecfd8f --- /dev/null +++ b/e2sim/asn1c/constr_SEQUENCE.h @@ -0,0 +1,95 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _CONSTR_SEQUENCE_H_ +#define _CONSTR_SEQUENCE_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct asn_SEQUENCE_specifics_s { + /* + * Target structure description. + */ + unsigned struct_size; /* Size of the target structure. */ + unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ + + /* + * Tags to members mapping table (sorted). + */ + const asn_TYPE_tag2member_t *tag2el; + unsigned tag2el_count; + + /* + * Optional members of the extensions root (roms) or additions (aoms). + * Meaningful for PER. + */ + const int *oms; /* Optional MemberS */ + unsigned roms_count; /* Root optional members count */ + unsigned aoms_count; /* Additions optional members count */ + + /* + * Description of an extensions group. + * Root components are clustered at the beginning of the structure, + * whereas extensions are clustered at the end. -1 means not extensible. + */ + signed first_extension; /* First extension addition */ +} asn_SEQUENCE_specifics_t; + + +/* + * A set specialized functions dealing with the SEQUENCE type. + */ +asn_struct_free_f SEQUENCE_free; + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +asn_struct_print_f SEQUENCE_print; +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +asn_struct_compare_f SEQUENCE_compare; + +asn_constr_check_f SEQUENCE_constraint; + +#if !defined(ASN_DISABLE_BER_SUPPORT) +ber_type_decoder_f SEQUENCE_decode_ber; +der_type_encoder_f SEQUENCE_encode_der; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +xer_type_decoder_f SEQUENCE_decode_xer; +xer_type_encoder_f SEQUENCE_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_encoder_f SEQUENCE_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +oer_type_decoder_f SEQUENCE_decode_oer; +oer_type_encoder_f SEQUENCE_encode_oer; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f SEQUENCE_decode_uper; +per_type_encoder_f SEQUENCE_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +per_type_decoder_f SEQUENCE_decode_aper; +per_type_encoder_f SEQUENCE_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +asn_random_fill_f SEQUENCE_random_fill; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +extern asn_TYPE_operation_t asn_OP_SEQUENCE; + +#ifdef __cplusplus +} +#endif + +#endif /* _CONSTR_SEQUENCE_H_ */ diff --git a/e2sim/asn1c/constr_SEQUENCE_OF.c b/e2sim/asn1c/constr_SEQUENCE_OF.c new file mode 100644 index 0000000..9c5d6cd --- /dev/null +++ b/e2sim/asn1c/constr_SEQUENCE_OF.c @@ -0,0 +1,92 @@ +/*- + * Copyright (c) 2003, 2004, 2006 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_TYPE_operation_t asn_OP_SEQUENCE_OF = { + SEQUENCE_OF_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + SEQUENCE_OF_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + SEQUENCE_OF_compare, +#if !defined(ASN_DISABLE_BER_SUPPORT) + SEQUENCE_OF_decode_ber, + SEQUENCE_OF_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + SEQUENCE_OF_decode_xer, + SEQUENCE_OF_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + SEQUENCE_OF_encode_jer, +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + SEQUENCE_OF_decode_oer, /* Same as SET OF decoder. */ + SEQUENCE_OF_encode_oer, /* Same as SET OF encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + SEQUENCE_OF_decode_uper, /* Same as SET OF decoder */ + SEQUENCE_OF_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + SEQUENCE_OF_decode_aper, + SEQUENCE_OF_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + SEQUENCE_OF_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; + +int +SEQUENCE_OF_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + const asn_anonymous_sequence_ *a = _A_CSEQUENCE_FROM_VOID(aptr); + const asn_anonymous_sequence_ *b = _A_CSEQUENCE_FROM_VOID(bptr); + ssize_t idx; + + if(a && b) { + ssize_t common_length = (a->count < b->count ? a->count : b->count); + for(idx = 0; idx < common_length; idx++) { + int ret = td->elements->type->op->compare_struct( + td->elements->type, a->array[idx], b->array[idx]); + if(ret) return ret; + } + + if(idx < b->count) /* more elements in b */ + return -1; /* a is shorter, so put it first */ + if(idx < a->count) return 1; + + } else if(!a) { + return -1; + } else if(!b) { + return 1; + } + + return 0; +} diff --git a/e2sim/asn1c/constr_SEQUENCE_OF.h b/e2sim/asn1c/constr_SEQUENCE_OF.h new file mode 100644 index 0000000..1768582 --- /dev/null +++ b/e2sim/asn1c/constr_SEQUENCE_OF.h @@ -0,0 +1,67 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _CONSTR_SEQUENCE_OF_H_ +#define _CONSTR_SEQUENCE_OF_H_ + +#include +#include /* Implemented using SET OF */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * A set specialized functions dealing with the SEQUENCE OF type. + * Generally implemented using SET OF. + */ +#define SEQUENCE_OF_free SET_OF_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +#define SEQUENCE_OF_print SET_OF_print +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +asn_struct_compare_f SEQUENCE_OF_compare; + +#define SEQUENCE_OF_constraint SET_OF_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#define SEQUENCE_OF_decode_ber SET_OF_decode_ber +der_type_encoder_f SEQUENCE_OF_encode_der; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +#define SEQUENCE_OF_decode_xer SET_OF_decode_xer +xer_type_encoder_f SEQUENCE_OF_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_encoder_f SEQUENCE_OF_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +#define SEQUENCE_OF_decode_oer SET_OF_decode_oer +#define SEQUENCE_OF_encode_oer SET_OF_encode_oer +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +#define SEQUENCE_OF_decode_uper SET_OF_decode_uper +per_type_encoder_f SEQUENCE_OF_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +#define SEQUENCE_OF_decode_aper SET_OF_decode_aper +per_type_encoder_f SEQUENCE_OF_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +#define SEQUENCE_OF_random_fill SET_OF_random_fill +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +extern asn_TYPE_operation_t asn_OP_SEQUENCE_OF; + +#ifdef __cplusplus +} +#endif + +#endif /* _CONSTR_SET_OF_H_ */ diff --git a/e2sim/asn1c/constr_SEQUENCE_OF_aper.c b/e2sim/asn1c/constr_SEQUENCE_OF_aper.c new file mode 100644 index 0000000..ff3ae8b --- /dev/null +++ b/e2sim/asn1c/constr_SEQUENCE_OF_aper.c @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_enc_rval_t +SEQUENCE_OF_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_anonymous_sequence_ *list; + const asn_per_constraint_t *ct; + asn_enc_rval_t er = {0,0,0}; + asn_TYPE_member_t *elm = td->elements; + int seq; + + if(!sptr) ASN__ENCODE_FAILED; + list = _A_CSEQUENCE_FROM_VOID(sptr); + + er.encoded = 0; + + ASN_DEBUG("Encoding %s as SEQUENCE OF size (%d) using ALIGNED PER", td->name, list->count); + + if(constraints) ct = &constraints->size; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->size; + else ct = 0; + + /* If extensible constraint, check if size is in root */ + if(ct) { + int not_in_root = (list->count < ct->lower_bound + || list->count > ct->upper_bound); + ASN_DEBUG("lb %lld ub %lld %s", + (long long int)ct->lower_bound, + (long long int)ct->upper_bound, + ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); + if(ct->flags & APC_EXTENSIBLE) { + /* Declare whether size is in extension root */ + if(per_put_few_bits(po, not_in_root, 1)) + ASN__ENCODE_FAILED; + if(not_in_root) ct = 0; + } else if(not_in_root && ct->effective_bits >= 0) + ASN__ENCODE_FAILED; + } + + if(ct && ct->effective_bits >= 0) { + /* X.691, #19.5: No length determinant */ +/* + if(per_put_few_bits(po, list->count - ct->lower_bound, + ct->effective_bits)) + ASN__ENCODE_FAILED; +*/ + if (ct->lower_bound == ct->upper_bound && ct->upper_bound < 65536) { + /* No length determinant */ + } else if (aper_put_length(po, ct->lower_bound, ct->upper_bound, list->count - ct->lower_bound, 0) < 0) + ASN__ENCODE_FAILED; + } + + for(seq = -1; seq < list->count;) { + ssize_t mayEncode; + int need_eom = 0; + if(seq < 0) seq = 0; + if(ct && ct->effective_bits >= 0) { + mayEncode = list->count; + } else { + mayEncode = aper_put_length(po, -1, -1, list->count - seq, &need_eom); + if(mayEncode < 0) ASN__ENCODE_FAILED; + } + + while(mayEncode--) { + void *memb_ptr = list->array[seq++]; + if(!memb_ptr) ASN__ENCODE_FAILED; + er = elm->type->op->aper_encoder(elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr, po); + if(er.encoded == -1) + ASN__ENCODE_FAILED; + } + + if(need_eom && (aper_put_length(po, -1, -1, 0, NULL) < 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + } + + ASN__ENCODED_OK(er); +} diff --git a/e2sim/asn1c/constr_SEQUENCE_OF_ber.c b/e2sim/asn1c/constr_SEQUENCE_OF_ber.c new file mode 100644 index 0000000..178f865 --- /dev/null +++ b/e2sim/asn1c/constr_SEQUENCE_OF_ber.c @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * The DER encoder of the SEQUENCE OF type. + */ +asn_enc_rval_t +SEQUENCE_OF_encode_der(const asn_TYPE_descriptor_t *td, const void *ptr, + int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_TYPE_member_t *elm = td->elements; + const asn_anonymous_sequence_ *list = _A_CSEQUENCE_FROM_VOID(ptr); + size_t computed_size = 0; + ssize_t encoding_size = 0; + asn_enc_rval_t erval = {0,0,0}; + int edx; + + ASN_DEBUG("Estimating size of SEQUENCE OF %s", td->name); + + /* + * Gather the length of the underlying members sequence. + */ + for(edx = 0; edx < list->count; edx++) { + void *memb_ptr = list->array[edx]; + if(!memb_ptr) continue; + erval = elm->type->op->der_encoder(elm->type, memb_ptr, + 0, elm->tag, + 0, 0); + if(erval.encoded == -1) + return erval; + computed_size += erval.encoded; + } + + /* + * Encode the TLV for the sequence itself. + */ + encoding_size = der_write_tags(td, computed_size, tag_mode, 1, tag, + cb, app_key); + if(encoding_size == -1) { + erval.encoded = -1; + erval.failed_type = td; + erval.structure_ptr = ptr; + return erval; + } + + computed_size += encoding_size; + if(!cb) { + erval.encoded = computed_size; + ASN__ENCODED_OK(erval); + } + + ASN_DEBUG("Encoding members of SEQUENCE OF %s", td->name); + + /* + * Encode all members. + */ + for(edx = 0; edx < list->count; edx++) { + void *memb_ptr = list->array[edx]; + if(!memb_ptr) continue; + erval = elm->type->op->der_encoder(elm->type, memb_ptr, + 0, elm->tag, + cb, app_key); + if(erval.encoded == -1) + return erval; + encoding_size += erval.encoded; + } + + if(computed_size != (size_t)encoding_size) { + /* + * Encoded size is not equal to the computed size. + */ + erval.encoded = -1; + erval.failed_type = td; + erval.structure_ptr = ptr; + } else { + erval.encoded = computed_size; + erval.structure_ptr = 0; + erval.failed_type = 0; + } + + return erval; +} diff --git a/e2sim/asn1c/constr_SEQUENCE_OF_jer.c b/e2sim/asn1c/constr_SEQUENCE_OF_jer.c new file mode 100644 index 0000000..4c366a6 --- /dev/null +++ b/e2sim/asn1c/constr_SEQUENCE_OF_jer.c @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_enc_rval_t +SEQUENCE_OF_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum jer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_enc_rval_t er = {0,0,0}; + const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; + const asn_TYPE_member_t *elm = td->elements; + const asn_anonymous_sequence_ *list = _A_CSEQUENCE_FROM_VOID(sptr); + const char *mname = specs->as_XMLValueList + ? 0 + : ((*elm->name) ? elm->name : elm->type->xml_tag); + size_t mlen = mname ? strlen(mname) : 0; + int xcan = 0; + int i; + + if(!sptr) ASN__ENCODE_FAILED; + + er.encoded = 0; + ASN__CALLBACK("[", 1); + + for(i = 0; i < list->count; i++) { + asn_enc_rval_t tmper = {0,0,0}; + void *memb_ptr = list->array[i]; + if(!memb_ptr) continue; + + if(mname) { + if(!xcan) ASN__TEXT_INDENT(1, ilevel); + ASN__CALLBACK3("{\"", 2, mname, mlen, "\":", 2); + } + + tmper = elm->type->op->jer_encoder(elm->type, memb_ptr, ilevel + 1, + flags, cb, app_key); + if(tmper.encoded == -1) return tmper; + er.encoded += tmper.encoded; + if(tmper.encoded == 0 && specs->as_XMLValueList) { + const char *name = elm->type->xml_tag; + size_t len = strlen(name); + if(!xcan) ASN__TEXT_INDENT(1, ilevel + 1); + ASN__CALLBACK3("\"", 1, name, len, "\"", 1); + } + + if(mname) { + ASN__CALLBACK("}", 1); + } + if (i != list->count - 1) { + ASN__CALLBACK(",", 1); + } + } + + if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); + ASN__CALLBACK("]", 1); + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} diff --git a/e2sim/asn1c/constr_SEQUENCE_OF_uper.c b/e2sim/asn1c/constr_SEQUENCE_OF_uper.c new file mode 100644 index 0000000..eb20a07 --- /dev/null +++ b/e2sim/asn1c/constr_SEQUENCE_OF_uper.c @@ -0,0 +1,92 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_enc_rval_t +SEQUENCE_OF_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_anonymous_sequence_ *list; + const asn_per_constraint_t *ct; + asn_enc_rval_t er = {0,0,0}; + const asn_TYPE_member_t *elm = td->elements; + size_t encoded_edx; + + if(!sptr) ASN__ENCODE_FAILED; + list = _A_CSEQUENCE_FROM_VOID(sptr); + + er.encoded = 0; + + ASN_DEBUG("Encoding %s as SEQUENCE OF (%d)", td->name, list->count); + + if(constraints) ct = &constraints->size; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->size; + else ct = 0; + + /* If extensible constraint, check if size is in root */ + if(ct) { + int not_in_root = + (list->count < ct->lower_bound || list->count > ct->upper_bound); + ASN_DEBUG("lb %ld ub %ld %s", ct->lower_bound, ct->upper_bound, + ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); + if(ct->flags & APC_EXTENSIBLE) { + /* Declare whether size is in extension root */ + if(per_put_few_bits(po, not_in_root, 1)) ASN__ENCODE_FAILED; + if(not_in_root) ct = 0; + } else if(not_in_root && ct->effective_bits >= 0) { + ASN__ENCODE_FAILED; + } + + } + + if(ct && ct->effective_bits >= 0) { + /* X.691, #19.5: No length determinant */ + if(per_put_few_bits(po, list->count - ct->lower_bound, + ct->effective_bits)) + ASN__ENCODE_FAILED; + } else if(list->count == 0) { + /* When the list is empty add only the length determinant + * X.691, #20.6 and #11.9.4.1 + */ + if (uper_put_length(po, 0, 0)) { + ASN__ENCODE_FAILED; + } + ASN__ENCODED_OK(er); + } + + for(encoded_edx = 0; (ssize_t)encoded_edx < list->count;) { + ssize_t may_encode; + size_t edx; + int need_eom = 0; + + if(ct && ct->effective_bits >= 0) { + may_encode = list->count; + } else { + may_encode = + uper_put_length(po, list->count - encoded_edx, &need_eom); + if(may_encode < 0) ASN__ENCODE_FAILED; + } + + for(edx = encoded_edx; edx < encoded_edx + may_encode; edx++) { + void *memb_ptr = list->array[edx]; + if(!memb_ptr) ASN__ENCODE_FAILED; + er = elm->type->op->uper_encoder( + elm->type, elm->encoding_constraints.per_constraints, memb_ptr, + po); + if(er.encoded == -1) ASN__ENCODE_FAILED; + } + + if(need_eom && uper_put_length(po, 0, 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + + encoded_edx += may_encode; + } + + ASN__ENCODED_OK(er); +} diff --git a/e2sim/asn1c/constr_SEQUENCE_OF_xer.c b/e2sim/asn1c/constr_SEQUENCE_OF_xer.c new file mode 100644 index 0000000..7bd3236 --- /dev/null +++ b/e2sim/asn1c/constr_SEQUENCE_OF_xer.c @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_enc_rval_t +SEQUENCE_OF_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_enc_rval_t er = {0,0,0}; + const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; + const asn_TYPE_member_t *elm = td->elements; + const asn_anonymous_sequence_ *list = _A_CSEQUENCE_FROM_VOID(sptr); + const char *mname = specs->as_XMLValueList + ? 0 + : ((*elm->name) ? elm->name : elm->type->xml_tag); + size_t mlen = mname ? strlen(mname) : 0; + int xcan = (flags & XER_F_CANONICAL); + int i; + + if(!sptr) ASN__ENCODE_FAILED; + + er.encoded = 0; + + for(i = 0; i < list->count; i++) { + asn_enc_rval_t tmper = {0,0,0}; + void *memb_ptr = list->array[i]; + if(!memb_ptr) continue; + + if(mname) { + if(!xcan) ASN__TEXT_INDENT(1, ilevel); + ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); + } + + tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, ilevel + 1, + flags, cb, app_key); + if(tmper.encoded == -1) return tmper; + er.encoded += tmper.encoded; + if(tmper.encoded == 0 && specs->as_XMLValueList) { + const char *name = elm->type->xml_tag; + size_t len = strlen(name); + if(!xcan) ASN__TEXT_INDENT(1, ilevel + 1); + ASN__CALLBACK3("<", 1, name, len, "/>", 2); + } + + if(mname) { + ASN__CALLBACK3("", 1); + } + } + + if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} diff --git a/e2sim/asn1c/constr_SEQUENCE_aper.c b/e2sim/asn1c/constr_SEQUENCE_aper.c new file mode 100644 index 0000000..895b6da --- /dev/null +++ b/e2sim/asn1c/constr_SEQUENCE_aper.c @@ -0,0 +1,457 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +/* + * Check whether we are inside the extensions group. + */ +#define IN_EXTENSION_GROUP(specs, memb_idx) \ + ((specs)->first_extension >= 0 \ + && (unsigned)(specs)->first_extension <= (memb_idx)) + +asn_dec_rval_t +SEQUENCE_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; + void *st = *sptr; /* Target structure. */ + int extpresent; /* Extension additions are present */ + uint8_t *opres; /* Presence of optional root members */ + asn_per_data_t opmd; + asn_dec_rval_t rv; + size_t edx; + + (void)constraints; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + if(!st) { + st = *sptr = CALLOC(1, specs->struct_size); + if(!st) ASN__DECODE_FAILED; + } + + ASN_DEBUG("Decoding %s as SEQUENCE (APER)", td->name); + + /* Handle extensions */ + if(specs->first_extension < 0) { + extpresent = 0; + } else { + extpresent = per_get_few_bits(pd, 1); + if(extpresent < 0) ASN__DECODE_STARVED; + } + + /* Prepare a place and read-in the presence bitmap */ + memset(&opmd, 0, sizeof(opmd)); + if(specs->roms_count) { + opres = (uint8_t *)MALLOC(((specs->roms_count + 7) >> 3) + 1); + if(!opres) ASN__DECODE_FAILED; + /* Get the presence map */ + if(per_get_many_bits(pd, opres, 0, specs->roms_count)) { + FREEMEM(opres); + ASN__DECODE_STARVED; + } + opmd.buffer = opres; + opmd.nbits = specs->roms_count; + ASN_DEBUG("Read in presence bitmap for %s of %d bits (%x..)", + td->name, specs->roms_count, *opres); + } else { + opres = 0; + } + + /* + * Get the sequence ROOT elements. + */ + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ +#if 0 + int padding; +#endif + + if(IN_EXTENSION_GROUP(specs, edx)) + continue; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } +#if 0 + /* Get Padding */ + padding = (8 - (pd->moved % 8)) % 8; + if(padding > 0) + ASN_DEBUG("For element %s,offset= %ld Padding bits = %d", td->name, pd->moved, padding); +#if 0 /* old way of removing padding */ + per_get_few_bits(pd, padding); +#else /* Experimental fix proposed by @mhanna123 */ + if(edx != (td->elements_count-1)) + per_get_few_bits(pd, padding); + else { + if(specs->roms_count && (padding > 0)) + ASN_DEBUG(">>>>> not skipping padding of %d bits for element:%ld out of %d", padding, edx, td->elements_count); + else + per_get_few_bits(pd, padding); + } +#endif /* dealing with padding */ +#endif + /* Deal with optionality */ + if(elm->optional) { + int present = per_get_few_bits(&opmd, 1); + ASN_DEBUG("Member %s->%s is optional, p=%d (%d->%d)", + td->name, elm->name, present, + (int)opmd.nboff, (int)opmd.nbits); + if(present == 0) { + /* This element is not present */ + if(elm->default_value_set) { + /* Fill-in DEFAULT */ + if(elm->default_value_set(memb_ptr2)) { + FREEMEM(opres); + ASN__DECODE_FAILED; + } + ASN_DEBUG("Filled-in default"); + } + /* The member is just not present */ + continue; + } + /* Fall through */ + } + + /* Fetch the member from the stream */ + ASN_DEBUG("Decoding member \"%s\" in %s", elm->name, td->name); + + if(elm->flags & ATF_OPEN_TYPE) { + if (OPEN_TYPE_aper_is_unknown_type(td, st, elm)) { + rv = OPEN_TYPE_aper_unknown_type_discard_bytes(pd); + FREEMEM(opres); + return rv; + } + rv = OPEN_TYPE_aper_get(opt_codec_ctx, td, st, elm, pd); + } else { + rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr2, pd); + } + if(rv.code != RC_OK) { + ASN_DEBUG("Failed decode %s in %s", + elm->name, td->name); + FREEMEM(opres); + return rv; + } + } + + /* Optionality map is not needed anymore */ + FREEMEM(opres); + + /* + * Deal with extensions. + */ + if(extpresent) { + ssize_t bmlength; + uint8_t *epres; /* Presence of extension members */ + asn_per_data_t epmd; + + bmlength = aper_get_nslength(pd); + if(bmlength < 0) ASN__DECODE_STARVED; + + ASN_DEBUG("Extensions %" ASN_PRI_SSIZE " present in %s", bmlength, td->name); + + epres = (uint8_t *)MALLOC((bmlength + 15) >> 3); + if(!epres) ASN__DECODE_STARVED; + + /* Get the extensions map */ + if(per_get_many_bits(pd, epres, 0, bmlength)) + ASN__DECODE_STARVED; + + memset(&epmd, 0, sizeof(epmd)); + epmd.buffer = epres; + epmd.nbits = bmlength; + ASN_DEBUG("Read in extensions bitmap for %s of %zd bits (%x..)", + td->name, bmlength, *epres); + + /* Deal with padding */ + if (aper_get_align(pd) < 0) + ASN__DECODE_STARVED; + + /* Go over extensions and read them in */ + for(edx = specs->first_extension; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + int present; + + if(!IN_EXTENSION_GROUP(specs, edx)) { + ASN_DEBUG("%zu is not extension", edx); + continue; + } + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (void *)((char *)st + elm->memb_offset); + memb_ptr2 = &memb_ptr; + } + + present = per_get_few_bits(&epmd, 1); + if(present <= 0) { + if(present < 0) break; /* No more extensions */ + continue; + } + + ASN_DEBUG("Decoding member %s in %s %p", elm->name, td->name, *memb_ptr2); + rv = aper_open_type_get(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr2, pd); + if(rv.code != RC_OK) { + FREEMEM(epres); + return rv; + } + } + + /* Skip over overflow extensions which aren't present + * in this system's version of the protocol */ + for(;;) { + ASN_DEBUG("Getting overflow extensions"); + switch(per_get_few_bits(&epmd, 1)) { + case -1: + break; + case 0: + continue; + default: + if(aper_open_type_skip(opt_codec_ctx, pd)) { + FREEMEM(epres); + ASN__DECODE_STARVED; + } + } + break; + } + + FREEMEM(epres); + } + + /* Fill DEFAULT members in extensions */ + for(edx = specs->roms_count; edx < specs->roms_count + + specs->aoms_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void **memb_ptr2; /* Pointer to member pointer */ + + if(!elm->default_value_set) continue; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + if(*memb_ptr2) continue; + } else { + continue; /* Extensions are all optionals */ + } + + /* Set default value */ + if(elm->default_value_set(memb_ptr2)) { + ASN__DECODE_FAILED; + } + } + + rv.consumed = 0; + rv.code = RC_OK; + return rv; +} + +static int +SEQUENCE_handle_extensions_aper(const asn_TYPE_descriptor_t *td, + const void *sptr, + asn_per_outp_t *po1, asn_per_outp_t *po2) { + const asn_SEQUENCE_specifics_t *specs + = (const asn_SEQUENCE_specifics_t *)td->specifics; + int exts_present = 0; + int exts_count = 0; + size_t edx; + + if(specs->first_extension < 0) { + return 0; + } + + /* Find out which extensions are present */ + for(edx = specs->first_extension; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; /* Pointer to the member */ + const void * const *memb_ptr2; /* Pointer to that pointer */ + int present; + + if(!IN_EXTENSION_GROUP(specs, edx)) { + ASN_DEBUG("%s (@%zu) is not extension", elm->type->name, edx); + continue; + } + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); + present = (*memb_ptr2 != 0); + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + present = 1; + } + + ASN_DEBUG("checking %s (@%zu) present => %d", + elm->type->name, edx, present); + exts_count++; + exts_present += present; + + /* Encode as presence marker */ + if(po1 && per_put_few_bits(po1, present, 1)) + return -1; + /* Encode as open type field */ + if(po2 && present && aper_open_type_put(elm->type, + elm->encoding_constraints.per_constraints, + *memb_ptr2, po2)) + return -1; + + } + + return exts_present ? exts_count : 0; +} + +asn_enc_rval_t +SEQUENCE_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_SEQUENCE_specifics_t *specs + = (const asn_SEQUENCE_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + int n_extensions; + size_t edx; + size_t i; + + (void)constraints; + + if(!sptr) + ASN__ENCODE_FAILED; + + er.encoded = 0; + + ASN_DEBUG("Encoding %s as SEQUENCE (APER)", td->name); + + /* + * X.691#18.1 Whether structure is extensible + * and whether to encode extensions + */ + if(specs->first_extension < 0) { + n_extensions = 0; /* There are no extensions to encode */ + } else { + n_extensions = SEQUENCE_handle_extensions_aper(td, sptr, 0, 0); + if(n_extensions < 0) ASN__ENCODE_FAILED; + if(per_put_few_bits(po, n_extensions ? 1 : 0, 1)) { + ASN__ENCODE_FAILED; + } + } + + /* Encode a presence bitmap */ + for(i = 0; i < specs->roms_count; i++) { + asn_TYPE_member_t *elm; + const void *memb_ptr; /* Pointer to the member */ + const void * const *memb_ptr2; /* Pointer to that pointer */ + int present; + + edx = specs->oms[i]; + elm = &td->elements[edx]; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); + present = (*memb_ptr2 != 0); + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + present = 1; + } + + /* Eliminate default values */ + if(present && elm->default_value_cmp + && elm->default_value_cmp(*memb_ptr2) == 0) + present = 0; + + ASN_DEBUG("Element %s %s %s->%s is %s", + elm->flags & ATF_POINTER ? "ptr" : "inline", + elm->default_value_cmp ? "def" : "wtv", + td->name, elm->name, present ? "present" : "absent"); + if(per_put_few_bits(po, present, 1)) + ASN__ENCODE_FAILED; + } + + /* + * Encode the sequence ROOT elements. + */ + ASN_DEBUG("first_extension = %d, elements = %d", specs->first_extension, + td->elements_count); + for(edx = 0; + edx < ((specs->first_extension < 0) ? td->elements_count + : (size_t)specs->first_extension); + edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; /* Pointer to the member */ + const void * const *memb_ptr2; /* Pointer to that pointer */ + + if(IN_EXTENSION_GROUP(specs, edx)) + continue; + + ASN_DEBUG("About to encode %s", elm->type->name); + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); + if(!*memb_ptr2) { + ASN_DEBUG("Element %s %zu not present", + elm->name, edx); + if(elm->optional) + continue; + /* Mandatory element is missing */ + ASN__ENCODE_FAILED; + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + } + + /* Eliminate default values */ + if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) + continue; + + ASN_DEBUG("Encoding %s->%s", td->name, elm->name); + er = elm->type->op->aper_encoder(elm->type, + elm->encoding_constraints.per_constraints, + *memb_ptr2, po); + if(er.encoded == -1) + return er; + } + + /* No extensions to encode */ + if(!n_extensions) ASN__ENCODED_OK(er); + + ASN_DEBUG("Length of %d bit-map", n_extensions); + /* #18.8. Write down the presence bit-map length. */ + if(aper_put_nslength(po, n_extensions)) + ASN__ENCODE_FAILED; + + ASN_DEBUG("Bit-map of %d elements", n_extensions); + /* #18.7. Encoding the extensions presence bit-map. */ + /* TODO: act upon NOTE in #18.7 for canonical PER */ + if(SEQUENCE_handle_extensions_aper(td, sptr, po, 0) != n_extensions) + ASN__ENCODE_FAILED; + + ASN_DEBUG("Writing %d extensions", n_extensions); + /* #18.9. Encode extensions as open type fields. */ + if(SEQUENCE_handle_extensions_aper(td, sptr, 0, po) != n_extensions) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/e2sim/asn1c/constr_SEQUENCE_ber.c b/e2sim/asn1c/constr_SEQUENCE_ber.c new file mode 100644 index 0000000..e982172 --- /dev/null +++ b/e2sim/asn1c/constr_SEQUENCE_ber.c @@ -0,0 +1,612 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * Number of bytes left for this structure. + * (ctx->left) indicates the number of bytes _transferred_ for the structure. + * (size) contains the number of bytes in the buffer passed. + */ +#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) + +/* + * If the subprocessor function returns with an indication that it wants + * more data, it may well be a fatal decoding problem, because the + * size is constrained by the 's L, even if the buffer size allows + * reading more data. + * For example, consider the buffer containing the following TLVs: + * ... + * The TLV length clearly indicates that one byte is expected in V, but + * if the V processor returns with "want more data" even if the buffer + * contains way more data than the V processor have seen. + */ +#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) + +/* + * This macro "eats" the part of the buffer which is definitely "consumed", + * i.e. was correctly converted into local representation or rightfully skipped. + */ +#undef ADVANCE +#define ADVANCE(num_bytes) \ + do { \ + size_t num = num_bytes; \ + ptr = ((const char *)ptr) + num; \ + size -= num; \ + if(ctx->left >= 0) \ + ctx->left -= num; \ + consumed_myself += num; \ + } while(0) + +/* + * Switch to the next phase of parsing. + */ +#undef NEXT_PHASE +#define NEXT_PHASE(ctx) \ + do { \ + ctx->phase++; \ + ctx->step = 0; \ + } while(0) +#undef PHASE_OUT +#define PHASE_OUT(ctx) \ + do { \ + ctx->phase = 10; \ + } while(0) + +/* + * Return a standardized complex structure. + */ +#undef RETURN +#define RETURN(_code) \ + do { \ + rval.code = _code; \ + rval.consumed = consumed_myself; \ + return rval; \ + } while(0) + +/* + * Check whether we are inside the extensions group. + */ +#define IN_EXTENSION_GROUP(specs, memb_idx) \ + ((specs)->first_extension >= 0 \ + && (unsigned)(specs)->first_extension <= (memb_idx)) + +/* + * Tags are canonically sorted in the tag2element map. + */ +static int +_t2e_cmp(const void *ap, const void *bp) { + const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap; + const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp; + + int a_class = BER_TAG_CLASS(a->el_tag); + int b_class = BER_TAG_CLASS(b->el_tag); + + if(a_class == b_class) { + ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag); + ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag); + + if(a_value == b_value) { + if(a->el_no > b->el_no) + return 1; + /* + * Important: we do not check + * for a->el_no <= b->el_no! + */ + return 0; + } else if(a_value < b_value) + return -1; + else + return 1; + } else if(a_class < b_class) { + return -1; + } else { + return 1; + } +} + +/* + * The decoder of the SEQUENCE type. + */ +asn_dec_rval_t +SEQUENCE_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **struct_ptr, + const void *ptr, size_t size, int tag_mode) { + /* + * Bring closer parts of structure description. + */ + const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; + const asn_TYPE_member_t *elements = td->elements; + + /* + * Parts of the structure being constructed. + */ + void *st = *struct_ptr; /* Target structure. */ + asn_struct_ctx_t *ctx; /* Decoder context */ + + ber_tlv_tag_t tlv_tag; /* T from TLV */ + asn_dec_rval_t rval; /* Return code from subparsers */ + + ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ + size_t edx; /* SEQUENCE element's index */ + + ASN_DEBUG("Decoding %s as SEQUENCE", td->name); + + /* + * Create the target structure if it is not present already. + */ + if(st == 0) { + st = *struct_ptr = CALLOC(1, specs->struct_size); + if(st == 0) { + RETURN(RC_FAIL); + } + } + + /* + * Restore parsing context. + */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + /* + * Start to parse where left previously + */ + switch(ctx->phase) { + case 0: + /* + * PHASE 0. + * Check that the set of tags associated with given structure + * perfectly fits our expectations. + */ + + rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, + tag_mode, 1, &ctx->left, 0); + if(rval.code != RC_OK) { + ASN_DEBUG("%s tagging check failed: %d", + td->name, rval.code); + return rval; + } + + if(ctx->left >= 0) + ctx->left += rval.consumed; /* ?Subtracted below! */ + ADVANCE(rval.consumed); + + NEXT_PHASE(ctx); + + ASN_DEBUG("Structure consumes %ld bytes, buffer %ld", + (long)ctx->left, (long)size); + + /* Fall through */ + case 1: + /* + * PHASE 1. + * From the place where we've left it previously, + * try to decode the next member from the list of + * this structure's elements. + * (ctx->step) stores the member being processed + * between invocations and the microphase {0,1} of parsing + * that member: + * step = ( * 2 + ). + */ + for(edx = ((size_t)ctx->step >> 1); edx < td->elements_count; + edx++, ctx->step = (ctx->step & ~1) + 2) { + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + ssize_t tag_len; /* Length of TLV's T */ + size_t opt_edx_end; /* Next non-optional element */ + size_t n; + int use_bsearch; + + if(ctx->step & 1) + goto microphase2; + + /* + * MICROPHASE 1: Synchronize decoding. + */ + ASN_DEBUG("In %s SEQUENCE left %d, edx=%" ASN_PRI_SIZE " flags=%d" + " opt=%d ec=%d", + td->name, (int)ctx->left, edx, + elements[edx].flags, elements[edx].optional, + td->elements_count); + + if(ctx->left == 0 /* No more stuff is expected */ + && ( + /* Explicit OPTIONAL specification reaches the end */ + (edx + elements[edx].optional == td->elements_count) || + /* All extensions are optional */ + IN_EXTENSION_GROUP(specs, edx))) { + ASN_DEBUG("End of SEQUENCE %s", td->name); + /* + * Found the legitimate end of the structure. + */ + PHASE_OUT(ctx); + RETURN(RC_OK); + } + + /* + * Fetch the T from TLV. + */ + tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); + ASN_DEBUG("Current tag in %s SEQUENCE for element %" ASN_PRI_SIZE " " + "(%s) is %s encoded in %d bytes, of frame %ld", + td->name, edx, elements[edx].name, + ber_tlv_tag_string(tlv_tag), (int)tag_len, (long)LEFT); + switch(tag_len) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + if(ctx->left < 0 && ((const uint8_t *)ptr)[0] == 0) { + if(LEFT < 2) { + if(SIZE_VIOLATION) { + RETURN(RC_FAIL); + } else { + RETURN(RC_WMORE); + } + } else if(((const uint8_t *)ptr)[1] == 0) { + ASN_DEBUG("edx = %" ASN_PRI_SIZE ", opt = %d, ec=%d", edx, + elements[edx].optional, td->elements_count); + if((edx + elements[edx].optional == td->elements_count) + || IN_EXTENSION_GROUP(specs, edx)) { + /* + * Yeah, baby! Found the terminator + * of the indefinite length structure. + */ + /* + * Proceed to the canonical + * finalization function. + * No advancing is necessary. + */ + goto phase3; + } + } + } + + /* + * Find the next available type with this tag. + */ + use_bsearch = 0; + opt_edx_end = edx + elements[edx].optional + 1; + if(opt_edx_end > td->elements_count) + opt_edx_end = td->elements_count; /* Cap */ + else if(opt_edx_end - edx > 8) { + /* Limit the scope of linear search... */ + opt_edx_end = edx + 8; + use_bsearch = 1; + /* ... and resort to bsearch() */ + } + for(n = edx; n < opt_edx_end; n++) { + if(BER_TAGS_EQUAL(tlv_tag, elements[n].tag)) { + /* + * Found element corresponding to the tag + * being looked at. + * Reposition over the right element. + */ + edx = n; + ctx->step = 1 + 2 * edx; /* Remember! */ + goto microphase2; + } else if(elements[n].flags & ATF_ANY_TYPE) { + /* + * This is the ANY type, which may bear + * any flag whatsoever. + */ + edx = n; + ctx->step = 1 + 2 * edx; /* Remember! */ + goto microphase2; + } else if(elements[n].tag == (ber_tlv_tag_t)-1) { + use_bsearch = 1; + break; + } + } + if(use_bsearch) { + /* + * Resort to a binary search over + * sorted array of tags. + */ + const asn_TYPE_tag2member_t *t2m; + asn_TYPE_tag2member_t key = {0, 0, 0, 0}; + key.el_tag = tlv_tag; + key.el_no = edx; + t2m = (const asn_TYPE_tag2member_t *)bsearch(&key, + specs->tag2el, specs->tag2el_count, + sizeof(specs->tag2el[0]), _t2e_cmp); + if(t2m) { + const asn_TYPE_tag2member_t *best = 0; + const asn_TYPE_tag2member_t *t2m_f, *t2m_l; + size_t edx_max = edx + elements[edx].optional; + /* + * Rewind to the first element with that tag, + * `cause bsearch() does not guarantee order. + */ + t2m_f = t2m + t2m->toff_first; + t2m_l = t2m + t2m->toff_last; + for(t2m = t2m_f; t2m <= t2m_l; t2m++) { + if(t2m->el_no > edx_max) break; + if(t2m->el_no < edx) continue; + best = t2m; + } + if(best) { + edx = best->el_no; + ctx->step = 1 + 2 * edx; + goto microphase2; + } + } + n = opt_edx_end; + } + if(n == opt_edx_end) { + /* + * If tag is unknown, it may be either + * an unknown (thus, incorrect) tag, + * or an extension (...), + * or an end of the indefinite-length structure. + */ + if(!IN_EXTENSION_GROUP(specs, + edx + elements[edx].optional)) { + ASN_DEBUG("Unexpected tag %s (at %" ASN_PRI_SIZE ")", + ber_tlv_tag_string(tlv_tag), edx); + ASN_DEBUG("Expected tag %s (%s)%s", + ber_tlv_tag_string(elements[edx].tag), + elements[edx].name, + elements[edx].optional ?" or alternatives":""); + RETURN(RC_FAIL); + } else { + /* Skip this tag */ + ssize_t skip; + edx += elements[edx].optional; + + ASN_DEBUG("Skipping unexpected %s (at %" ASN_PRI_SIZE ")", + ber_tlv_tag_string(tlv_tag), edx); + skip = ber_skip_length(opt_codec_ctx, + BER_TLV_CONSTRUCTED(ptr), + (const char *)ptr + tag_len, + LEFT - tag_len); + ASN_DEBUG("Skip length %d in %s", + (int)skip, td->name); + switch(skip) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + ADVANCE(skip + tag_len); + ctx->step -= 2; + edx--; + continue; /* Try again with the next tag */ + } + } + + /* + * MICROPHASE 2: Invoke the member-specific decoder. + */ + ctx->step |= 1; /* Confirm entering next microphase */ + microphase2: + ASN_DEBUG("Inside SEQUENCE %s MF2", td->name); + + /* + * Compute the position of the member inside a structure, + * and also a type of containment (it may be contained + * as pointer or using inline inclusion). + */ + if(elements[edx].flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elements[edx].memb_offset); + } else { + /* + * A pointer to a pointer + * holding the start of the structure + */ + memb_ptr = (char *)st + elements[edx].memb_offset; + memb_ptr2 = &memb_ptr; + } + /* + * Invoke the member fetch routine according to member's type + */ + if(elements[edx].flags & ATF_OPEN_TYPE) { + rval = OPEN_TYPE_ber_get(opt_codec_ctx, td, st, &elements[edx], ptr, LEFT); + } else { + rval = elements[edx].type->op->ber_decoder(opt_codec_ctx, + elements[edx].type, + memb_ptr2, ptr, LEFT, + elements[edx].tag_mode); + } + ASN_DEBUG("In %s SEQUENCE decoded %" ASN_PRI_SIZE " %s of %d " + "in %d bytes rval.code %d, size=%d", + td->name, edx, elements[edx].type->name, + (int)LEFT, (int)rval.consumed, rval.code, (int)size); + switch(rval.code) { + case RC_OK: + break; + case RC_WMORE: /* More data expected */ + if(!SIZE_VIOLATION) { + ADVANCE(rval.consumed); + RETURN(RC_WMORE); + } + ASN_DEBUG("Size violation (c->l=%ld <= s=%ld)", + (long)ctx->left, (long)size); + /* Fall through */ + case RC_FAIL: /* Fatal error */ + RETURN(RC_FAIL); + } /* switch(rval) */ + + ADVANCE(rval.consumed); + } /* for(all structure members) */ + + phase3: + ctx->phase = 3; + /* Fall through */ + case 3: /* 00 and other tags expected */ + case 4: /* only 00's expected */ + + ASN_DEBUG("SEQUENCE %s Leftover: %ld, size = %ld", + td->name, (long)ctx->left, (long)size); + + /* + * Skip everything until the end of the SEQUENCE. + */ + while(ctx->left) { + ssize_t tl, ll; + + tl = ber_fetch_tag(ptr, LEFT, &tlv_tag); + switch(tl) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + /* + * If expected <0><0>... + */ + if(ctx->left < 0 && ((const uint8_t *)ptr)[0] == 0) { + if(LEFT < 2) { + if(SIZE_VIOLATION) + RETURN(RC_FAIL); + else + RETURN(RC_WMORE); + } else if(((const uint8_t *)ptr)[1] == 0) { + /* + * Correctly finished with <0><0>. + */ + ADVANCE(2); + ctx->left++; + ctx->phase = 4; + continue; + } + } + + if(!IN_EXTENSION_GROUP(specs, td->elements_count) + || ctx->phase == 4) { + ASN_DEBUG("Unexpected continuation " + "of a non-extensible type " + "%s (SEQUENCE): %s", + td->name, + ber_tlv_tag_string(tlv_tag)); + RETURN(RC_FAIL); + } + + ll = ber_skip_length(opt_codec_ctx, + BER_TLV_CONSTRUCTED(ptr), + (const char *)ptr + tl, LEFT - tl); + switch(ll) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + ADVANCE(tl + ll); + } + + PHASE_OUT(ctx); + } + + RETURN(RC_OK); +} + + +/* + * The DER encoder of the SEQUENCE type. + */ +asn_enc_rval_t +SEQUENCE_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, + int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + size_t computed_size = 0; + asn_enc_rval_t erval = {0,0,0}; + ssize_t ret; + size_t edx; + + ASN_DEBUG("%s %s as SEQUENCE", + cb?"Encoding":"Estimating", td->name); + + /* + * Gather the length of the underlying members sequence. + */ + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + + const void *memb_ptr; /* Pointer to the member */ + const void *const *memb_ptr2; /* Pointer to that pointer */ + + if(elm->flags & ATF_POINTER) { + memb_ptr2 = + (const void *const *)((const char *)sptr + elm->memb_offset); + if(!*memb_ptr2) { + ASN_DEBUG("Element %s %" ASN_PRI_SIZE " not present", + elm->name, edx); + if(elm->optional) + continue; + /* Mandatory element is missing */ + ASN__ENCODE_FAILED; + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + } + + /* Eliminate default values */ + if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) + continue; + + erval = elm->type->op->der_encoder(elm->type, *memb_ptr2, + elm->tag_mode, elm->tag, + 0, 0); + if(erval.encoded == -1) + return erval; + computed_size += erval.encoded; + ASN_DEBUG("Member %" ASN_PRI_SIZE " %s estimated %ld bytes", + edx, elm->name, (long)erval.encoded); + } + + /* + * Encode the TLV for the sequence itself. + */ + ret = der_write_tags(td, computed_size, tag_mode, 1, tag, cb, app_key); + ASN_DEBUG("Wrote tags: %ld (+%ld)", (long)ret, (long)computed_size); + if(ret == -1) + ASN__ENCODE_FAILED; + erval.encoded = computed_size + ret; + + if(!cb) ASN__ENCODED_OK(erval); + + /* + * Encode all members. + */ + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + asn_enc_rval_t tmperval = {0,0,0}; + const void *memb_ptr; /* Pointer to the member */ + const void *const *memb_ptr2; /* Pointer to that pointer */ + + if(elm->flags & ATF_POINTER) { + memb_ptr2 = + (const void *const *)((const char *)sptr + elm->memb_offset); + if(!*memb_ptr2) continue; + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + } + + /* Eliminate default values */ + if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) + continue; + + tmperval = elm->type->op->der_encoder(elm->type, *memb_ptr2, + elm->tag_mode, elm->tag, cb, app_key); + if(tmperval.encoded == -1) + return tmperval; + computed_size -= tmperval.encoded; + ASN_DEBUG("Member %" ASN_PRI_SIZE " %s of SEQUENCE %s encoded in %ld bytes", + edx, elm->name, td->name, (long)tmperval.encoded); + } + + if(computed_size != 0) + /* + * Encoded size is not equal to the computed size. + */ + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(erval); +} diff --git a/e2sim/asn1c/constr_SEQUENCE_jer.c b/e2sim/asn1c/constr_SEQUENCE_jer.c new file mode 100644 index 0000000..6451f0c --- /dev/null +++ b/e2sim/asn1c/constr_SEQUENCE_jer.c @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_enc_rval_t SEQUENCE_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum jer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_enc_rval_t er = {0,0,0}; + int xcan = 0; + asn_TYPE_descriptor_t *tmp_def_val_td = 0; + void *tmp_def_val = 0; + size_t edx; + + if(!sptr) ASN__ENCODE_FAILED; + + er.encoded = 0; + + int bAddComma = 0; + ASN__CALLBACK("{\n", 2); + for(edx = 0; edx < td->elements_count; edx++) { + asn_enc_rval_t tmper = {0,0,0}; + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; + const char *mname = elm->name; + unsigned int mlen = strlen(mname); + + if(elm->flags & ATF_POINTER) { + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) { + assert(tmp_def_val == 0); + if(elm->default_value_set) { + if(elm->default_value_set(&tmp_def_val)) { + ASN__ENCODE_FAILED; + } else { + memb_ptr = tmp_def_val; + tmp_def_val_td = elm->type; + } + } else if(elm->optional) { + continue; + } else { + /* Mandatory element is missing */ + ASN__ENCODE_FAILED; + } + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + if (bAddComma == 1) { + ASN__CALLBACK(",", 1); + bAddComma = 0; + } + + if(!xcan) ASN__TEXT_INDENT(1, ilevel); + ASN__CALLBACK3("\"", 1, mname, mlen, "\": ", 3); + + /* Print the member itself */ + tmper = elm->type->op->jer_encoder(elm->type, memb_ptr, ilevel + 1, + flags, cb, app_key); + if(tmp_def_val) { + ASN_STRUCT_FREE(*tmp_def_val_td, tmp_def_val); + tmp_def_val = 0; + } + if(tmper.encoded == -1) return tmper; + er.encoded += tmper.encoded; + if (edx != td->elements_count - 1) { + bAddComma = 1; + } + } + ASN__CALLBACK("}", 1); + + if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); + + ASN__ENCODED_OK(er); +cb_failed: + if(tmp_def_val) ASN_STRUCT_FREE(*tmp_def_val_td, tmp_def_val); + ASN__ENCODE_FAILED; +} diff --git a/e2sim/asn1c/constr_SEQUENCE_print.c b/e2sim/asn1c/constr_SEQUENCE_print.c new file mode 100644 index 0000000..7f9e231 --- /dev/null +++ b/e2sim/asn1c/constr_SEQUENCE_print.c @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +int +SEQUENCE_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + size_t edx; + int ret; + + if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; + + /* Dump preamble */ + if(cb(td->name, strlen(td->name), app_key) < 0 + || cb(" ::= {", 6, app_key) < 0) + return -1; + + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) { + if(elm->optional) continue; + /* Print line */ + /* Fall through */ + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + /* Indentation */ + _i_INDENT(1); + + /* Print the member's name and stuff */ + if(cb(elm->name, strlen(elm->name), app_key) < 0 + || cb(": ", 2, app_key) < 0) + return -1; + + /* Print the member itself */ + ret = elm->type->op->print_struct(elm->type, memb_ptr, ilevel + 1, + cb, app_key); + if(ret) return ret; + } + + ilevel--; + _i_INDENT(1); + + return (cb("}", 1, app_key) < 0) ? -1 : 0; +} diff --git a/e2sim/asn1c/constr_SEQUENCE_rfill.c b/e2sim/asn1c/constr_SEQUENCE_rfill.c new file mode 100644 index 0000000..b464f57 --- /dev/null +++ b/e2sim/asn1c/constr_SEQUENCE_rfill.c @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_random_fill_result_t +SEQUENCE_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constr, + size_t max_length) { + const asn_SEQUENCE_specifics_t *specs = + (const asn_SEQUENCE_specifics_t *)td->specifics; + asn_random_fill_result_t result_ok = {ARFILL_OK, 0}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + void *st = *sptr; + size_t edx; + + if(max_length == 0) return result_skipped; + + (void)constr; + + if(st == NULL) { + st = CALLOC(1, specs->struct_size); + if(st == NULL) { + return result_failed; + } + } + + for(edx = 0; edx < td->elements_count; edx++) { + const asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + asn_random_fill_result_t tmpres; + + if(elm->optional && asn_random_between(0, 4) == 2) { + /* Sometimes decide not to fill the optional value */ + continue; + } + + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + + tmpres = elm->type->op->random_fill( + elm->type, memb_ptr2, &elm->encoding_constraints, + max_length > result_ok.length ? max_length - result_ok.length : 0); + switch(tmpres.code) { + case ARFILL_OK: + result_ok.length += tmpres.length; + continue; + case ARFILL_SKIPPED: + assert(!(elm->flags & ATF_POINTER) || *memb_ptr2 == NULL); + continue; + case ARFILL_FAILED: + if(st == *sptr) { + ASN_STRUCT_RESET(*td, st); + } else { + ASN_STRUCT_FREE(*td, st); + } + return tmpres; + } + } + + *sptr = st; + + return result_ok; +} diff --git a/e2sim/asn1c/constr_SEQUENCE_uper.c b/e2sim/asn1c/constr_SEQUENCE_uper.c new file mode 100644 index 0000000..b235f4d --- /dev/null +++ b/e2sim/asn1c/constr_SEQUENCE_uper.c @@ -0,0 +1,429 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +/* + * Check whether we are inside the extensions group. + */ +#define IN_EXTENSION_GROUP(specs, memb_idx) \ + ((specs)->first_extension >= 0 \ + && (unsigned)(specs)->first_extension <= (memb_idx)) + +asn_dec_rval_t +SEQUENCE_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; + void *st = *sptr; /* Target structure. */ + int extpresent; /* Extension additions are present */ + uint8_t *opres; /* Presence of optional root members */ + asn_per_data_t opmd; + asn_dec_rval_t rv; + size_t edx; + + (void)constraints; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + if(!st) { + st = *sptr = CALLOC(1, specs->struct_size); + if(!st) ASN__DECODE_FAILED; + } + + ASN_DEBUG("Decoding %s as SEQUENCE (UPER)", td->name); + + /* Handle extensions */ + if(specs->first_extension < 0) { + extpresent = 0; + } else { + extpresent = per_get_few_bits(pd, 1); + if(extpresent < 0) ASN__DECODE_STARVED; + } + + /* Prepare a place and read-in the presence bitmap */ + memset(&opmd, 0, sizeof(opmd)); + if(specs->roms_count) { + opres = (uint8_t *)MALLOC(((specs->roms_count + 7) >> 3) + 1); + if(!opres) ASN__DECODE_FAILED; + /* Get the presence map */ + if(per_get_many_bits(pd, opres, 0, specs->roms_count)) { + FREEMEM(opres); + ASN__DECODE_STARVED; + } + opmd.buffer = opres; + opmd.nbits = specs->roms_count; + ASN_DEBUG("Read in presence bitmap for %s of %d bits (%x..)", + td->name, specs->roms_count, *opres); + } else { + opres = 0; + } + + /* + * Get the sequence ROOT elements. + */ + for(edx = 0; + edx < (specs->first_extension < 0 ? td->elements_count + : (size_t)specs->first_extension); + edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + + assert(!IN_EXTENSION_GROUP(specs, edx)); + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + + /* Deal with optionality */ + if(elm->optional) { + int present = per_get_few_bits(&opmd, 1); + ASN_DEBUG("Member %s->%s is optional, p=%d (%d->%d)", + td->name, elm->name, present, + (int)opmd.nboff, (int)opmd.nbits); + if(present == 0) { + /* This element is not present */ + if(elm->default_value_set) { + /* Fill-in DEFAULT */ + if(elm->default_value_set(memb_ptr2)) { + FREEMEM(opres); + ASN__DECODE_FAILED; + } + ASN_DEBUG("Filled-in default"); + } + /* The member is just not present */ + continue; + } + /* Fall through */ + } + + /* Fetch the member from the stream */ + ASN_DEBUG("Decoding member \"%s\" in %s", elm->name, td->name); + + if(elm->flags & ATF_OPEN_TYPE) { + rv = OPEN_TYPE_uper_get(opt_codec_ctx, td, st, elm, pd); + } else { + rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr2, pd); + } + if(rv.code != RC_OK) { + ASN_DEBUG("Failed decode %s in %s", + elm->name, td->name); + FREEMEM(opres); + return rv; + } + } + + /* Optionality map is not needed anymore */ + FREEMEM(opres); + + /* + * Deal with extensions. + */ + if(extpresent) { + ssize_t bmlength; + uint8_t *epres; /* Presence of extension members */ + asn_per_data_t epmd; + + bmlength = uper_get_nslength(pd); + if(bmlength < 0) ASN__DECODE_STARVED; + + ASN_DEBUG("Extensions %" ASN_PRI_SSIZE " present in %s", bmlength, td->name); + + epres = (uint8_t *)MALLOC((bmlength + 15) >> 3); + if(!epres) ASN__DECODE_STARVED; + + /* Get the extensions map */ + if(per_get_many_bits(pd, epres, 0, bmlength)) { + FREEMEM(epres); + ASN__DECODE_STARVED; + } + + memset(&epmd, 0, sizeof(epmd)); + epmd.buffer = epres; + epmd.nbits = bmlength; + ASN_DEBUG("Read in extensions bitmap for %s of %ld bits (%x..)", + td->name, (long)bmlength, *epres); + + /* Go over extensions and read them in */ + for(edx = specs->first_extension; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + int present; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (void *)((char *)st + elm->memb_offset); + memb_ptr2 = &memb_ptr; + } + + present = per_get_few_bits(&epmd, 1); + if(present <= 0) { + if(present < 0) break; /* No more extensions */ + continue; + } + + ASN_DEBUG("Decoding member %s in %s %p", elm->name, td->name, + *memb_ptr2); + rv = uper_open_type_get(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr2, pd); + if(rv.code != RC_OK) { + FREEMEM(epres); + return rv; + } + } + + /* Skip over overflow extensions which aren't present + * in this system's version of the protocol */ + for(;;) { + ASN_DEBUG("Getting overflow extensions"); + switch(per_get_few_bits(&epmd, 1)) { + case -1: break; + case 0: continue; + default: + if(uper_open_type_skip(opt_codec_ctx, pd)) { + FREEMEM(epres); + ASN__DECODE_STARVED; + } + ASN_DEBUG("Skipped overflow extension"); + continue; + } + break; + } + + FREEMEM(epres); + } + + if(specs->first_extension >= 0) { + unsigned i; + /* Fill DEFAULT members in extensions */ + for(i = specs->roms_count; i < specs->roms_count + specs->aoms_count; + i++) { + asn_TYPE_member_t *elm; + void **memb_ptr2; /* Pointer to member pointer */ + + edx = specs->oms[i]; + elm = &td->elements[edx]; + + if(!elm->default_value_set) continue; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + if(*memb_ptr2) continue; + } else { + continue; /* Extensions are all optionals */ + } + + /* Set default value */ + if(elm->default_value_set(memb_ptr2)) { + ASN__DECODE_FAILED; + } + } + } + + rv.consumed = 0; + rv.code = RC_OK; + return rv; +} + +static int +SEQUENCE__handle_extensions(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_per_outp_t *po1, asn_per_outp_t *po2) { + const asn_SEQUENCE_specifics_t *specs = + (const asn_SEQUENCE_specifics_t *)td->specifics; + int exts_present = 0; + int exts_count = 0; + size_t edx; + + if(specs->first_extension < 0) { + return 0; + } + + /* Find out which extensions are present */ + for(edx = specs->first_extension; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; /* Pointer to the member */ + const void *const *memb_ptr2; /* Pointer to that pointer */ + int present; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = + (const void *const *)((const char *)sptr + elm->memb_offset); + present = (*memb_ptr2 != 0); + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + present = 1; + } + + ASN_DEBUG("checking %s:%s (@%" ASN_PRI_SIZE ") present => %d", elm->name, + elm->type->name, edx, present); + exts_count++; + exts_present += present; + + /* Encode as presence marker */ + if(po1 && per_put_few_bits(po1, present, 1)) { + return -1; + } + /* Encode as open type field */ + if(po2 && present + && uper_open_type_put(elm->type, + elm->encoding_constraints.per_constraints, + *memb_ptr2, po2)) + return -1; + } + + return exts_present ? exts_count : 0; +} + +asn_enc_rval_t +SEQUENCE_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const asn_SEQUENCE_specifics_t *specs + = (const asn_SEQUENCE_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + int n_extensions; + size_t edx; + size_t i; + + (void)constraints; + + if(!sptr) + ASN__ENCODE_FAILED; + + er.encoded = 0; + + ASN_DEBUG("Encoding %s as SEQUENCE (UPER)", td->name); + + /* + * X.691#18.1 Whether structure is extensible + * and whether to encode extensions + */ + if(specs->first_extension < 0) { + n_extensions = 0; /* There are no extensions to encode */ + } else { + n_extensions = SEQUENCE__handle_extensions(td, sptr, 0, 0); + if(n_extensions < 0) ASN__ENCODE_FAILED; + if(per_put_few_bits(po, n_extensions ? 1 : 0, 1)) { + ASN__ENCODE_FAILED; + } + } + + /* Encode a presence bitmap */ + for(i = 0; i < specs->roms_count; i++) { + asn_TYPE_member_t *elm; + const void *memb_ptr; /* Pointer to the member */ + const void *const *memb_ptr2; /* Pointer to that pointer */ + int present; + + edx = specs->oms[i]; + elm = &td->elements[edx]; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = + (const void *const *)((const char *)sptr + elm->memb_offset); + present = (*memb_ptr2 != 0); + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + present = 1; + } + + /* Eliminate default values */ + if(present && elm->default_value_cmp + && elm->default_value_cmp(*memb_ptr2) == 0) + present = 0; + + ASN_DEBUG("Element %s %s %s->%s is %s", + elm->flags & ATF_POINTER ? "ptr" : "inline", + elm->default_value_cmp ? "def" : "wtv", + td->name, elm->name, present ? "present" : "absent"); + if(per_put_few_bits(po, present, 1)) + ASN__ENCODE_FAILED; + } + + /* + * Encode the sequence ROOT elements. + */ + ASN_DEBUG("first_extension = %d, elements = %d", specs->first_extension, + td->elements_count); + for(edx = 0; + edx < ((specs->first_extension < 0) ? td->elements_count + : (size_t)specs->first_extension); + edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; /* Pointer to the member */ + const void *const *memb_ptr2; /* Pointer to that pointer */ + + ASN_DEBUG("About to encode %s", elm->type->name); + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = + (const void *const *)((const char *)sptr + elm->memb_offset); + if(!*memb_ptr2) { + ASN_DEBUG("Element %s %" ASN_PRI_SIZE " not present", + elm->name, edx); + if(elm->optional) + continue; + /* Mandatory element is missing */ + ASN__ENCODE_FAILED; + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + } + + /* Eliminate default values */ + if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) + continue; + + ASN_DEBUG("Encoding %s->%s:%s", td->name, elm->name, elm->type->name); + er = elm->type->op->uper_encoder( + elm->type, elm->encoding_constraints.per_constraints, *memb_ptr2, + po); + if(er.encoded == -1) return er; + } + + /* No extensions to encode */ + if(!n_extensions) ASN__ENCODED_OK(er); + + ASN_DEBUG("Length of extensions %d bit-map", n_extensions); + /* #18.8. Write down the presence bit-map length. */ + if(uper_put_nslength(po, n_extensions)) + ASN__ENCODE_FAILED; + + ASN_DEBUG("Bit-map of %d elements", n_extensions); + /* #18.7. Encoding the extensions presence bit-map. */ + /* TODO: act upon NOTE in #18.7 for canonical PER */ + if(SEQUENCE__handle_extensions(td, sptr, po, 0) != n_extensions) + ASN__ENCODE_FAILED; + + ASN_DEBUG("Writing %d extensions", n_extensions); + /* #18.9. Encode extensions as open type fields. */ + if(SEQUENCE__handle_extensions(td, sptr, 0, po) != n_extensions) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/e2sim/asn1c/constr_SEQUENCE_xer.c b/e2sim/asn1c/constr_SEQUENCE_xer.c new file mode 100644 index 0000000..c6475f7 --- /dev/null +++ b/e2sim/asn1c/constr_SEQUENCE_xer.c @@ -0,0 +1,348 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * Return a standardized complex structure. + */ +#undef RETURN +#define RETURN(_code) \ + do { \ + rval.code = _code; \ + rval.consumed = consumed_myself; \ + return rval; \ + } while(0) + +/* + * Check whether we are inside the extensions group. + */ +#define IN_EXTENSION_GROUP(specs, memb_idx) \ + ((specs)->first_extension >= 0 \ + && (unsigned)(specs)->first_extension <= (memb_idx)) + +#undef XER_ADVANCE +#define XER_ADVANCE(num_bytes) \ + do { \ + size_t num = (num_bytes); \ + ptr = ((const char *)ptr) + num; \ + size -= num; \ + consumed_myself += num; \ + } while(0) + +/* + * Decode the XER (XML) data. + */ +asn_dec_rval_t +SEQUENCE_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **struct_ptr, + const char *opt_mname, const void *ptr, size_t size) { + /* + * Bring closer parts of structure description. + */ + const asn_SEQUENCE_specifics_t *specs + = (const asn_SEQUENCE_specifics_t *)td->specifics; + asn_TYPE_member_t *elements = td->elements; + const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; + + /* + * ... and parts of the structure being constructed. + */ + void *st = *struct_ptr; /* Target structure. */ + asn_struct_ctx_t *ctx; /* Decoder context */ + + asn_dec_rval_t rval; /* Return value from a decoder */ + ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ + size_t edx; /* Element index */ + + /* + * Create the target structure if it is not present already. + */ + if(st == 0) { + st = *struct_ptr = CALLOC(1, specs->struct_size); + if(st == 0) RETURN(RC_FAIL); + } + + /* + * Restore parsing context. + */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + + /* + * Phases of XER/XML processing: + * Phase 0: Check that the opening tag matches our expectations. + * Phase 1: Processing body and reacting on closing tag. + * Phase 2: Processing inner type. + * Phase 3: Skipping unknown extensions. + * Phase 4: PHASED OUT + */ + for(edx = ctx->step; ctx->phase <= 3;) { + pxer_chunk_type_e ch_type; /* XER chunk type */ + ssize_t ch_size; /* Chunk size */ + xer_check_tag_e tcv; /* Tag check value */ + asn_TYPE_member_t *elm; + + /* + * Go inside the inner member of a sequence. + */ + if(ctx->phase == 2) { + asn_dec_rval_t tmprval; + void *memb_ptr_dontuse; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + + elm = &td->elements[edx]; + + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr_dontuse = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr_dontuse; /* Only use of memb_ptr_dontuse */ + } + + if(elm->flags & ATF_OPEN_TYPE) { + tmprval = OPEN_TYPE_xer_get(opt_codec_ctx, td, st, elm, ptr, size); + } else { + /* Invoke the inner type decoder, m.b. multiple times */ + tmprval = elm->type->op->xer_decoder(opt_codec_ctx, + elm->type, memb_ptr2, elm->name, + ptr, size); + } + XER_ADVANCE(tmprval.consumed); + if(tmprval.code != RC_OK) + RETURN(tmprval.code); + ctx->phase = 1; /* Back to body processing */ + ctx->step = ++edx; + ASN_DEBUG("XER/SEQUENCE phase => %d, step => %d", + ctx->phase, ctx->step); + /* Fall through */ + } + + /* + * Get the next part of the XML stream. + */ + ch_size = xer_next_token(&ctx->context, ptr, size, + &ch_type); + if(ch_size == -1) { + RETURN(RC_FAIL); + } else { + switch(ch_type) { + case PXER_WMORE: + RETURN(RC_WMORE); + case PXER_COMMENT: /* Got XML comment */ + case PXER_TEXT: /* Ignore free-standing text */ + XER_ADVANCE(ch_size); /* Skip silently */ + continue; + case PXER_TAG: + break; /* Check the rest down there */ + } + } + + tcv = xer_check_tag(ptr, ch_size, xml_tag); + ASN_DEBUG("XER/SEQUENCE: tcv = %d, ph=%d [%s]", + tcv, ctx->phase, xml_tag); + + /* Skip the extensions section */ + if(ctx->phase == 3) { + switch(xer_skip_unknown(tcv, &ctx->left)) { + case -1: + ctx->phase = 4; + RETURN(RC_FAIL); + case 0: + XER_ADVANCE(ch_size); + continue; + case 1: + XER_ADVANCE(ch_size); + ctx->phase = 1; + continue; + case 2: + ctx->phase = 1; + break; + } + } + + switch(tcv) { + case XCT_CLOSING: + if(ctx->phase == 0) break; + ctx->phase = 0; + /* Fall through */ + case XCT_BOTH: + if(ctx->phase == 0) { + if(edx >= td->elements_count || + /* Explicit OPTIONAL specs reaches the end */ + (edx + elements[edx].optional == td->elements_count) || + /* All extensions are optional */ + IN_EXTENSION_GROUP(specs, edx)) { + XER_ADVANCE(ch_size); + ctx->phase = 4; /* Phase out */ + RETURN(RC_OK); + } else { + ASN_DEBUG("Premature end of XER SEQUENCE"); + RETURN(RC_FAIL); + } + } + /* Fall through */ + case XCT_OPENING: + if(ctx->phase == 0) { + XER_ADVANCE(ch_size); + ctx->phase = 1; /* Processing body phase */ + continue; + } + /* Fall through */ + case XCT_UNKNOWN_OP: + case XCT_UNKNOWN_BO: + + ASN_DEBUG("XER/SEQUENCE: tcv=%d, ph=%d, edx=%" ASN_PRI_SIZE "", + tcv, ctx->phase, edx); + if(ctx->phase != 1) { + break; /* Really unexpected */ + } + + if(edx < td->elements_count) { + /* + * Search which member corresponds to this tag. + */ + size_t n; + size_t edx_end = edx + elements[edx].optional + 1; + if(edx_end > td->elements_count) + edx_end = td->elements_count; + for(n = edx; n < edx_end; n++) { + elm = &td->elements[n]; + tcv = xer_check_tag(ptr, ch_size, elm->name); + switch(tcv) { + case XCT_BOTH: + case XCT_OPENING: + /* + * Process this member. + */ + ctx->step = edx = n; + ctx->phase = 2; + break; + case XCT_UNKNOWN_OP: + case XCT_UNKNOWN_BO: + continue; + default: + n = edx_end; + break; /* Phase out */ + } + break; + } + if(n != edx_end) + continue; + } else { + ASN_DEBUG("Out of defined members: %" ASN_PRI_SIZE "/%u", + edx, td->elements_count); + } + + /* It is expected extension */ + if(IN_EXTENSION_GROUP(specs, + edx + (edx < td->elements_count + ? elements[edx].optional : 0))) { + ASN_DEBUG("Got anticipated extension at %" ASN_PRI_SIZE "", + edx); + /* + * Check for (XCT_BOTH or XCT_UNKNOWN_BO) + * By using a mask. Only record a pure + * tags. + */ + if(tcv & XCT_CLOSING) { + /* Found without body */ + } else { + ctx->left = 1; + ctx->phase = 3; /* Skip ...'s */ + } + XER_ADVANCE(ch_size); + continue; + } + + /* Fall through */ + default: + break; + } + + ASN_DEBUG("Unexpected XML tag in SEQUENCE [%c%c%c%c%c%c]", + size>0?((const char *)ptr)[0]:'.', + size>1?((const char *)ptr)[1]:'.', + size>2?((const char *)ptr)[2]:'.', + size>3?((const char *)ptr)[3]:'.', + size>4?((const char *)ptr)[4]:'.', + size>5?((const char *)ptr)[5]:'.'); + break; + } + + ctx->phase = 4; /* "Phase out" on hard failure */ + RETURN(RC_FAIL); +} + +asn_enc_rval_t +SEQUENCE_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_enc_rval_t er = {0,0,0}; + int xcan = (flags & XER_F_CANONICAL); + asn_TYPE_descriptor_t *tmp_def_val_td = 0; + void *tmp_def_val = 0; + size_t edx; + + if(!sptr) ASN__ENCODE_FAILED; + + er.encoded = 0; + + for(edx = 0; edx < td->elements_count; edx++) { + asn_enc_rval_t tmper = {0,0,0}; + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; + const char *mname = elm->name; + unsigned int mlen = strlen(mname); + + if(elm->flags & ATF_POINTER) { + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) { + assert(tmp_def_val == 0); + if(elm->default_value_set) { + if(elm->default_value_set(&tmp_def_val)) { + ASN__ENCODE_FAILED; + } else { + memb_ptr = tmp_def_val; + tmp_def_val_td = elm->type; + } + } else if(elm->optional) { + continue; + } else { + /* Mandatory element is missing */ + ASN__ENCODE_FAILED; + } + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + if(!xcan) ASN__TEXT_INDENT(1, ilevel); + ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); + + /* Print the member itself */ + tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, ilevel + 1, + flags, cb, app_key); + if(tmp_def_val) { + ASN_STRUCT_FREE(*tmp_def_val_td, tmp_def_val); + tmp_def_val = 0; + } + if(tmper.encoded == -1) return tmper; + er.encoded += tmper.encoded; + + ASN__CALLBACK3("", 1); + } + + if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); + + ASN__ENCODED_OK(er); +cb_failed: + if(tmp_def_val) ASN_STRUCT_FREE(*tmp_def_val_td, tmp_def_val); + ASN__ENCODE_FAILED; +} diff --git a/e2sim/asn1c/constr_SET_OF.c b/e2sim/asn1c/constr_SET_OF.c new file mode 100644 index 0000000..97a7cac --- /dev/null +++ b/e2sim/asn1c/constr_SET_OF.c @@ -0,0 +1,371 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_TYPE_operation_t asn_OP_SET_OF = { + SET_OF_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + SET_OF_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + SET_OF_compare, +#if !defined(ASN_DISABLE_BER_SUPPORT) + SET_OF_decode_ber, + SET_OF_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + SET_OF_decode_xer, + SET_OF_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + SET_OF_encode_jer, +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + SET_OF_decode_oer, + SET_OF_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + SET_OF_decode_uper, + SET_OF_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + SET_OF_decode_aper, + SET_OF_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + SET_OF_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; + +/* Append bytes to the above structure */ +static int _el_addbytes(const void *buffer, size_t size, void *el_buf_ptr) { + struct _el_buffer *el_buf = (struct _el_buffer *)el_buf_ptr; + + if(el_buf->length + size > el_buf->allocated_size) { + size_t new_size = el_buf->allocated_size ? el_buf->allocated_size : 8; + void *p; + + do { + new_size <<= 2; + } while(el_buf->length + size > new_size); + + p = REALLOC(el_buf->buf, new_size); + if(p) { + el_buf->buf = p; + el_buf->allocated_size = new_size; + } else { + return -1; + } + } + + memcpy(el_buf->buf + el_buf->length, buffer, size); + + el_buf->length += size; + return 0; +} + +static void assert_unused_bits(const struct _el_buffer* p) { + if(p->length) { + assert((p->buf[p->length-1] & ~(0xff << p->bits_unused)) == 0); + } else { + assert(p->bits_unused == 0); + } +} + +static int _el_buf_cmp(const void *ap, const void *bp) { + const struct _el_buffer *a = (const struct _el_buffer *)ap; + const struct _el_buffer *b = (const struct _el_buffer *)bp; + size_t common_len; + int ret = 0; + + if(a->length < b->length) + common_len = a->length; + else + common_len = b->length; + + if (a->buf && b->buf) { + ret = memcmp(a->buf, b->buf, common_len); + } + if(ret == 0) { + if(a->length < b->length) + ret = -1; + else if(a->length > b->length) + ret = 1; + /* Ignore unused bits. */ + assert_unused_bits(a); + assert_unused_bits(b); + } + + return ret; +} + +void +SET_OF__encode_sorted_free(struct _el_buffer *el_buf, size_t count) { + size_t i; + + for(i = 0; i < count; i++) { + FREEMEM(el_buf[i].buf); + } + + FREEMEM(el_buf); +} + +struct _el_buffer * +SET_OF__encode_sorted(const asn_TYPE_member_t *elm, + const asn_anonymous_set_ *list, + enum SET_OF__encode_method method) { + struct _el_buffer *encoded_els; + int edx; + + encoded_els = + (struct _el_buffer *)CALLOC(list->count, sizeof(encoded_els[0])); + if(encoded_els == NULL) { + return NULL; + } + + /* + * Encode all members. + */ + for(edx = 0; edx < list->count; edx++) { + const void *memb_ptr = list->array[edx]; + struct _el_buffer *encoding_el = &encoded_els[edx]; + asn_enc_rval_t erval = {0,0,0}; + + if(!memb_ptr) break; + + /* + * Encode the member into the prepared space. + */ + switch(method) { +#if !defined(ASN_DISABLE_BER_SUPPORT) + case SOES_DER: + erval = elm->type->op->der_encoder(elm->type, memb_ptr, 0, elm->tag, + _el_addbytes, encoding_el); + break; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + case SOES_CUPER: + erval = uper_encode(elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr, _el_addbytes, encoding_el); + if(erval.encoded != -1) { + size_t extra_bits = erval.encoded % 8; + assert(encoding_el->length == (size_t)(erval.encoded + 7) / 8); + encoding_el->bits_unused = (8 - extra_bits) & 0x7; + } + break; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + case SOES_CAPER: + erval = aper_encode(elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr, _el_addbytes, encoding_el); + if(erval.encoded != -1) { + size_t extra_bits = erval.encoded % 8; + assert(encoding_el->length == (size_t)(erval.encoded + 7) / 8); + encoding_el->bits_unused = (8 - extra_bits) & 0x7; + } + break; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + + default: + assert(!"Unreachable"); + break; + } + if(erval.encoded < 0) break; + } + + if(edx == list->count) { + /* + * Sort the encoded elements according to their encoding. + */ + qsort(encoded_els, list->count, sizeof(encoded_els[0]), _el_buf_cmp); + + return encoded_els; + } else { + SET_OF__encode_sorted_free(encoded_els, edx); + return NULL; + } +} + +void +SET_OF_free(const asn_TYPE_descriptor_t *td, void *ptr, + enum asn_struct_free_method method) { + if(td && ptr) { + const asn_SET_OF_specifics_t *specs; + asn_TYPE_member_t *elm = td->elements; + asn_anonymous_set_ *list = _A_SET_FROM_VOID(ptr); + asn_struct_ctx_t *ctx; /* Decoder context */ + int i; + + /* + * Could not use set_of_empty() because of (*free) + * incompatibility. + */ + for(i = 0; i < list->count; i++) { + void *memb_ptr = list->array[i]; + if(memb_ptr) + ASN_STRUCT_FREE(*elm->type, memb_ptr); + } + list->count = 0; /* No meaningful elements left */ + + asn_set_empty(list); /* Remove (list->array) */ + + specs = (const asn_SET_OF_specifics_t *)td->specifics; + ctx = (asn_struct_ctx_t *)((char *)ptr + specs->ctx_offset); + if(ctx->ptr) { + ASN_STRUCT_FREE(*elm->type, ctx->ptr); + ctx->ptr = 0; + } + + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(ptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset(ptr, 0, specs->struct_size); + break; + } + } +} + +int +SET_OF_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const asn_TYPE_member_t *elm = td->elements; + asn_constr_check_f *constr; + const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); + int i; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + constr = elm->encoding_constraints.general_constraints; + if(!constr) constr = elm->type->encoding_constraints.general_constraints; + + /* + * Iterate over the members of an array. + * Validate each in turn, until one fails. + */ + for(i = 0; i < list->count; i++) { + const void *memb_ptr = list->array[i]; + int ret; + + if(!memb_ptr) continue; + + ret = constr(elm->type, memb_ptr, ctfailcb, app_key); + if(ret) return ret; + } + + return 0; +} + +struct comparable_ptr { + const asn_TYPE_descriptor_t *td; + const void *sptr; +}; + +static int +SET_OF__compare_cb(const void *aptr, const void *bptr) { + const struct comparable_ptr *a = aptr; + const struct comparable_ptr *b = bptr; + assert(a->td == b->td); + return a->td->op->compare_struct(a->td, a->sptr, b->sptr); +} + +int +SET_OF_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + const asn_anonymous_set_ *a = _A_CSET_FROM_VOID(aptr); + const asn_anonymous_set_ *b = _A_CSET_FROM_VOID(bptr); + + if(a && b) { + struct comparable_ptr *asorted; + struct comparable_ptr *bsorted; + ssize_t common_length; + ssize_t idx; + + if(a->count == 0) { + if(b->count) return -1; + return 0; + } else if(b->count == 0) { + return 1; + } + + asorted = MALLOC(a->count * sizeof(asorted[0])); + bsorted = MALLOC(b->count * sizeof(bsorted[0])); + if(!asorted || !bsorted) { + FREEMEM(asorted); + FREEMEM(bsorted); + return -1; + } + + for(idx = 0; idx < a->count; idx++) { + asorted[idx].td = td->elements->type; + asorted[idx].sptr = a->array[idx]; + } + + for(idx = 0; idx < b->count; idx++) { + bsorted[idx].td = td->elements->type; + bsorted[idx].sptr = b->array[idx]; + } + + qsort(asorted, a->count, sizeof(asorted[0]), SET_OF__compare_cb); + qsort(bsorted, b->count, sizeof(bsorted[0]), SET_OF__compare_cb); + + common_length = (a->count < b->count ? a->count : b->count); + for(idx = 0; idx < common_length; idx++) { + int ret = td->elements->type->op->compare_struct( + td->elements->type, asorted[idx].sptr, bsorted[idx].sptr); + if(ret) { + FREEMEM(asorted); + FREEMEM(bsorted); + return ret; + } + } + + FREEMEM(asorted); + FREEMEM(bsorted); + + if(idx < b->count) /* more elements in b */ + return -1; /* a is shorter, so put it first */ + if(idx < a->count) return 1; + } else if(!a) { + return -1; + } else if(!b) { + return 1; + } + + return 0; +} diff --git a/e2sim/asn1c/constr_SET_OF.h b/e2sim/asn1c/constr_SET_OF.h new file mode 100644 index 0000000..0e9dd39 --- /dev/null +++ b/e2sim/asn1c/constr_SET_OF.h @@ -0,0 +1,102 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef CONSTR_SET_OF_H +#define CONSTR_SET_OF_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct asn_SET_OF_specifics_s { + /* + * Target structure description. + */ + unsigned struct_size; /* Size of the target structure. */ + unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ + + /* XER-specific stuff */ + int as_XMLValueList; /* The member type must be encoded like this */ +} asn_SET_OF_specifics_t; + +/* + * A set specialized functions dealing with the SET OF type. + */ +asn_struct_free_f SET_OF_free; + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +asn_struct_print_f SET_OF_print; +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +asn_struct_compare_f SET_OF_compare; + +asn_constr_check_f SET_OF_constraint; + +#if !defined(ASN_DISABLE_BER_SUPPORT) +ber_type_decoder_f SET_OF_decode_ber; +der_type_encoder_f SET_OF_encode_der; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +xer_type_decoder_f SET_OF_decode_xer; +xer_type_encoder_f SET_OF_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_encoder_f SET_OF_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +oer_type_decoder_f SET_OF_decode_oer; +oer_type_encoder_f SET_OF_encode_oer; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f SET_OF_decode_uper; +per_type_encoder_f SET_OF_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +per_type_decoder_f SET_OF_decode_aper; +per_type_encoder_f SET_OF_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +asn_random_fill_f SET_OF_random_fill; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +extern asn_TYPE_operation_t asn_OP_SET_OF; + +/* + * Internally visible buffer holding a single encoded element. + */ +struct _el_buffer { + uint8_t *buf; + size_t length; + size_t allocated_size; + unsigned bits_unused; +}; + +enum SET_OF__encode_method { + SOES_DER, /* Distinguished Encoding Rules */ + SOES_CUPER, /* Canonical Unaligned Packed Encoding Rules */ + SOES_CAPER /* Canonical Aligned Packed Encoding Rules */ +}; + +struct _el_buffer * SET_OF__encode_sorted( + const asn_TYPE_member_t *elm, + const asn_anonymous_set_ *list, + enum SET_OF__encode_method method); + +void SET_OF__encode_sorted_free( + struct _el_buffer *el_buf, + size_t count); + +#ifdef __cplusplus +} +#endif + +#endif /* CONSTR_SET_OF_H */ diff --git a/e2sim/asn1c/constr_SET_OF_aper.c b/e2sim/asn1c/constr_SET_OF_aper.c new file mode 100644 index 0000000..87c341e --- /dev/null +++ b/e2sim/asn1c/constr_SET_OF_aper.c @@ -0,0 +1,186 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_enc_rval_t +SET_OF_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const asn_anonymous_set_ *list; + const asn_per_constraint_t *ct; + const asn_TYPE_member_t *elm = td->elements; + struct _el_buffer *encoded_els; + asn_enc_rval_t er = {0,0,0}; + int seq; + + if(!sptr) ASN__ENCODE_FAILED; + + list = _A_CSET_FROM_VOID(sptr); + + er.encoded = 0; + + ASN_DEBUG("Encoding %s as SET OF (%d)", td->name, list->count); + + if(constraints) ct = &constraints->size; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->size; + else ct = 0; + + /* If extensible constraint, check if size is in root */ + if(ct) { + int not_in_root = + (list->count < ct->lower_bound || list->count > ct->upper_bound); + ASN_DEBUG("lb %lld ub %lld %s", + (long long int)ct->lower_bound, + (long long int)ct->upper_bound, + ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); + if(ct->flags & APC_EXTENSIBLE) { + /* Declare whether size is in extension root */ + if(per_put_few_bits(po, not_in_root, 1)) ASN__ENCODE_FAILED; + if(not_in_root) ct = 0; + } else if(not_in_root && ct->effective_bits >= 0) { + ASN__ENCODE_FAILED; + } + + } + + if(ct && ct->effective_bits >= 0) { + /* X.691, #19.5: No length determinant */ + /*if(per_put_few_bits(po, list->count - ct->lower_bound, + ct->effective_bits)) + ASN__ENCODE_FAILED;*/ + + if (aper_put_length(po, ct->lower_bound, ct->upper_bound, list->count - ct->lower_bound, 0) < 0) { + ASN__ENCODE_FAILED; + } + } + + /* + * Canonical PER #22.1 mandates dynamic sorting of the SET OF elements + * according to their encodings. Build an array of the encoded elements. + */ + encoded_els = SET_OF__encode_sorted(elm, list, SOES_CAPER); + + for(seq = 0; seq < list->count;) { + ssize_t may_encode; + int need_eom = 0; + if(ct && ct->effective_bits >= 0) { + may_encode = list->count; + } else { + may_encode = + aper_put_length(po, -1, -1, list->count - seq, &need_eom); + if(may_encode < 0) ASN__ENCODE_FAILED; + } + + while(may_encode--) { + const struct _el_buffer *el = &encoded_els[seq++]; + if(asn_put_many_bits(po, el->buf, + (8 * el->length) - el->bits_unused) < 0) { + break; + } + } + if(need_eom && (aper_put_length(po, -1, -1, 0, NULL) < 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + } + + SET_OF__encode_sorted_free(encoded_els, list->count); + + ASN__ENCODED_OK(er); +} + +asn_dec_rval_t +SET_OF_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + asn_dec_rval_t rv = {RC_OK, 0}; + const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; + const asn_TYPE_member_t *elm = td->elements; /* Single one */ + void *st = *sptr; + asn_anonymous_set_ *list; + const asn_per_constraint_t *ct; + int repeat = 0; + ssize_t nelems; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + /* + * Create the target structure if it is not present already. + */ + if(!st) { + st = *sptr = CALLOC(1, specs->struct_size); + if(!st) ASN__DECODE_FAILED; + } + list = _A_SET_FROM_VOID(st); + + /* Figure out which constraints to use */ + if(constraints) ct = &constraints->size; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->size; + else ct = 0; + + if(ct && ct->flags & APC_EXTENSIBLE) { + int value = per_get_few_bits(pd, 1); + if(value < 0) ASN__DECODE_STARVED; + if(value) ct = 0; /* Not restricted! */ + } + + if(ct && ct->effective_bits >= 0) { + /* X.691, #19.5: No length determinant */ + nelems = aper_get_nsnnwn(pd, ct->upper_bound - ct->lower_bound + 1); + ASN_DEBUG("Preparing to fetch %ld+%lld elements from %s", + (long)nelems, (long long int)ct->lower_bound, td->name); + if(nelems < 0) ASN__DECODE_STARVED; + nelems += ct->lower_bound; + } else { + nelems = -1; + } + + do { + int i; + if(nelems < 0) { + if (ct) + nelems = aper_get_length(pd, ct->lower_bound, ct->upper_bound, + ct->effective_bits, &repeat); + else + nelems = aper_get_length(pd, -1, -1, -1, &repeat); + ASN_DEBUG("Got to decode %d elements (eff %d)", + (int)nelems, (int)(ct ? ct->effective_bits : -1)); + if(nelems < 0) ASN__DECODE_STARVED; + } + + for(i = 0; i < nelems; i++) { + void *ptr = 0; + ASN_DEBUG("SET OF %s decoding", elm->type->name); + rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, &ptr, pd); + ASN_DEBUG("%s SET OF %s decoded %d, %p", + td->name, elm->type->name, rv.code, ptr); + if(rv.code == RC_OK) { + if(ASN_SET_ADD(list, ptr) == 0) + continue; + ASN_DEBUG("Failed to add element into %s", + td->name); + /* Fall through */ + rv.code = RC_FAIL; + } else { + ASN_DEBUG("Failed decoding %s of %s (SET OF)", + elm->type->name, td->name); + } + if(ptr) ASN_STRUCT_FREE(*elm->type, ptr); + return rv; + } + + nelems = -1; /* Allow uper_get_length() */ + } while(repeat); + + ASN_DEBUG("Decoded %s as SET OF", td->name); + + rv.code = RC_OK; + rv.consumed = 0; + return rv; +} diff --git a/e2sim/asn1c/constr_SET_OF_ber.c b/e2sim/asn1c/constr_SET_OF_ber.c new file mode 100644 index 0000000..4187e29 --- /dev/null +++ b/e2sim/asn1c/constr_SET_OF_ber.c @@ -0,0 +1,355 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * Number of bytes left for this structure. + * (ctx->left) indicates the number of bytes _transferred_ for the structure. + * (size) contains the number of bytes in the buffer passed. + */ +#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) + +/* + * If the subprocessor function returns with an indication that it wants + * more data, it may well be a fatal decoding problem, because the + * size is constrained by the 's L, even if the buffer size allows + * reading more data. + * For example, consider the buffer containing the following TLVs: + * ... + * The TLV length clearly indicates that one byte is expected in V, but + * if the V processor returns with "want more data" even if the buffer + * contains way more data than the V processor have seen. + */ +#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) + +/* + * This macro "eats" the part of the buffer which is definitely "consumed", + * i.e. was correctly converted into local representation or rightfully skipped. + */ +#undef ADVANCE +#define ADVANCE(num_bytes) \ + do { \ + size_t num = num_bytes; \ + ptr = ((const char *)ptr) + num; \ + size -= num; \ + if(ctx->left >= 0) \ + ctx->left -= num; \ + consumed_myself += num; \ + } while(0) + +/* + * Switch to the next phase of parsing. + */ +#undef NEXT_PHASE +#define NEXT_PHASE(ctx) \ + do { \ + ctx->phase++; \ + ctx->step = 0; \ + } while(0) +#undef PHASE_OUT +#define PHASE_OUT(ctx) \ + do { \ + ctx->phase = 10; \ + } while(0) + +/* + * Return a standardized complex structure. + */ +#undef RETURN +#define RETURN(_code) \ + do { \ + rval.code = _code; \ + rval.consumed = consumed_myself; \ + return rval; \ + } while(0) + +/* + * The decoder of the SET OF type. + */ +asn_dec_rval_t +SET_OF_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **struct_ptr, + const void *ptr, size_t size, int tag_mode) { + /* + * Bring closer parts of structure description. + */ + const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; + const asn_TYPE_member_t *elm = td->elements; /* Single one */ + + /* + * Parts of the structure being constructed. + */ + void *st = *struct_ptr; /* Target structure. */ + asn_struct_ctx_t *ctx; /* Decoder context */ + + ber_tlv_tag_t tlv_tag; /* T from TLV */ + asn_dec_rval_t rval; /* Return code from subparsers */ + + ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ + + ASN_DEBUG("Decoding %s as SET OF", td->name); + + /* + * Create the target structure if it is not present already. + */ + if(st == 0) { + st = *struct_ptr = CALLOC(1, specs->struct_size); + if(st == 0) { + RETURN(RC_FAIL); + } + } + + /* + * Restore parsing context. + */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + /* + * Start to parse where left previously + */ + switch(ctx->phase) { + case 0: + /* + * PHASE 0. + * Check that the set of tags associated with given structure + * perfectly fits our expectations. + */ + + rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, + tag_mode, 1, &ctx->left, 0); + if(rval.code != RC_OK) { + ASN_DEBUG("%s tagging check failed: %d", + td->name, rval.code); + return rval; + } + + if(ctx->left >= 0) + ctx->left += rval.consumed; /* ?Subtracted below! */ + ADVANCE(rval.consumed); + + ASN_DEBUG("Structure consumes %ld bytes, " + "buffer %ld", (long)ctx->left, (long)size); + + NEXT_PHASE(ctx); + /* Fall through */ + case 1: + /* + * PHASE 1. + * From the place where we've left it previously, + * try to decode the next item. + */ + for(;; ctx->step = 0) { + ssize_t tag_len; /* Length of TLV's T */ + + if(ctx->step & 1) + goto microphase2; + + /* + * MICROPHASE 1: Synchronize decoding. + */ + + if(ctx->left == 0) { + ASN_DEBUG("End of SET OF %s", td->name); + /* + * No more things to decode. + * Exit out of here. + */ + PHASE_OUT(ctx); + RETURN(RC_OK); + } + + /* + * Fetch the T from TLV. + */ + tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); + switch(tag_len) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + if(ctx->left < 0 && ((const uint8_t *)ptr)[0] == 0) { + if(LEFT < 2) { + if(SIZE_VIOLATION) + RETURN(RC_FAIL); + else + RETURN(RC_WMORE); + } else if(((const uint8_t *)ptr)[1] == 0) { + /* + * Found the terminator of the + * indefinite length structure. + */ + break; + } + } + + /* Outmost tag may be unknown and cannot be fetched/compared */ + if(elm->tag != (ber_tlv_tag_t)-1) { + if(BER_TAGS_EQUAL(tlv_tag, elm->tag)) { + /* + * The new list member of expected type has arrived. + */ + } else { + ASN_DEBUG("Unexpected tag %s fixed SET OF %s", + ber_tlv_tag_string(tlv_tag), td->name); + ASN_DEBUG("%s SET OF has tag %s", + td->name, ber_tlv_tag_string(elm->tag)); + RETURN(RC_FAIL); + } + } + + /* + * MICROPHASE 2: Invoke the member-specific decoder. + */ + ctx->step |= 1; /* Confirm entering next microphase */ + microphase2: + + /* + * Invoke the member fetch routine according to member's type + */ + rval = elm->type->op->ber_decoder(opt_codec_ctx, + elm->type, &ctx->ptr, + ptr, LEFT, 0); + ASN_DEBUG("In %s SET OF %s code %d consumed %d", + td->name, elm->type->name, + rval.code, (int)rval.consumed); + switch(rval.code) { + case RC_OK: + { + asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); + if(ASN_SET_ADD(list, ctx->ptr) != 0) + RETURN(RC_FAIL); + else + ctx->ptr = 0; + } + break; + case RC_WMORE: /* More data expected */ + if(!SIZE_VIOLATION) { + ADVANCE(rval.consumed); + RETURN(RC_WMORE); + } + /* Fall through */ + case RC_FAIL: /* Fatal error */ + ASN_STRUCT_FREE(*elm->type, ctx->ptr); + ctx->ptr = 0; + RETURN(RC_FAIL); + } /* switch(rval) */ + + ADVANCE(rval.consumed); + } /* for(all list members) */ + + NEXT_PHASE(ctx); + case 2: + /* + * Read in all "end of content" TLVs. + */ + while(ctx->left < 0) { + if(LEFT < 2) { + if(LEFT > 0 && ((const char *)ptr)[0] != 0) { + /* Unexpected tag */ + RETURN(RC_FAIL); + } else { + RETURN(RC_WMORE); + } + } + if(((const char *)ptr)[0] == 0 + && ((const char *)ptr)[1] == 0) { + ADVANCE(2); + ctx->left++; + } else { + RETURN(RC_FAIL); + } + } + + PHASE_OUT(ctx); + } + + RETURN(RC_OK); +} + +/* + * The DER encoder of the SET OF type. + */ +asn_enc_rval_t +SET_OF_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, + int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, + void *app_key) { + const asn_TYPE_member_t *elm = td->elements; + const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); + size_t computed_size = 0; + ssize_t encoding_size = 0; + struct _el_buffer *encoded_els; + int edx; + + ASN_DEBUG("Estimating size for SET OF %s", td->name); + + /* + * Gather the length of the underlying members sequence. + */ + for(edx = 0; edx < list->count; edx++) { + void *memb_ptr = list->array[edx]; + asn_enc_rval_t erval = {0,0,0}; + + if(!memb_ptr) ASN__ENCODE_FAILED; + + erval = + elm->type->op->der_encoder(elm->type, memb_ptr, 0, elm->tag, 0, 0); + if(erval.encoded == -1) return erval; + computed_size += erval.encoded; + } + + /* + * Encode the TLV for the sequence itself. + */ + encoding_size = + der_write_tags(td, computed_size, tag_mode, 1, tag, cb, app_key); + if(encoding_size < 0) { + ASN__ENCODE_FAILED; + } + computed_size += encoding_size; + + if(!cb || list->count == 0) { + asn_enc_rval_t erval = {0,0,0}; + erval.encoded = computed_size; + ASN__ENCODED_OK(erval); + } + + ASN_DEBUG("Encoding members of %s SET OF", td->name); + + /* + * DER mandates dynamic sorting of the SET OF elements + * according to their encodings. Build an array of the + * encoded elements. + */ + encoded_els = SET_OF__encode_sorted(elm, list, SOES_DER); + + /* + * Report encoded elements to the application. + * Dispose of temporary sorted members table. + */ + for(edx = 0; edx < list->count; edx++) { + struct _el_buffer *encoded_el = &encoded_els[edx]; + /* Report encoded chunks to the application */ + if(cb(encoded_el->buf, encoded_el->length, app_key) < 0) { + break; + } else { + encoding_size += encoded_el->length; + } + } + + SET_OF__encode_sorted_free(encoded_els, list->count); + + if(edx == list->count) { + asn_enc_rval_t erval = {0,0,0}; + assert(computed_size == (size_t)encoding_size); + erval.encoded = computed_size; + ASN__ENCODED_OK(erval); + } else { + ASN__ENCODE_FAILED; + } +} diff --git a/e2sim/asn1c/constr_SET_OF_jer.c b/e2sim/asn1c/constr_SET_OF_jer.c new file mode 100644 index 0000000..a0c2adc --- /dev/null +++ b/e2sim/asn1c/constr_SET_OF_jer.c @@ -0,0 +1,144 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +typedef struct jer_tmp_enc_s { + void *buffer; + size_t offset; + size_t size; +} jer_tmp_enc_t; + +static int +SET_OF_encode_jer_callback(const void *buffer, size_t size, void *key) { + jer_tmp_enc_t *t = (jer_tmp_enc_t *)key; + if(t->offset + size >= t->size) { + size_t newsize = (t->size << 2) + size; + void *p = REALLOC(t->buffer, newsize); + if(!p) return -1; + t->buffer = p; + t->size = newsize; + } + memcpy((char *)t->buffer + t->offset, buffer, size); + t->offset += size; + return 0; +} + +static int +SET_OF_jer_order(const void *aptr, const void *bptr) { + const jer_tmp_enc_t *a = (const jer_tmp_enc_t *)aptr; + const jer_tmp_enc_t *b = (const jer_tmp_enc_t *)bptr; + size_t minlen = a->offset; + int ret; + if(b->offset < minlen) minlen = b->offset; + /* Well-formed UTF-8 has this nice lexicographical property... */ + ret = memcmp(a->buffer, b->buffer, minlen); + if(ret != 0) return ret; + if(a->offset == b->offset) + return 0; + if(a->offset == minlen) + return -1; + return 1; +} + +asn_enc_rval_t +SET_OF_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + enum jer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, + void *app_key) { + asn_enc_rval_t er = {0,0,0}; + const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; + const asn_TYPE_member_t *elm = td->elements; + const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); + const char *mname = specs->as_XMLValueList + ? 0 : ((*elm->name) ? elm->name : elm->type->xml_tag); + size_t mlen = mname ? strlen(mname) : 0; + int xcan = 0; + jer_tmp_enc_t *encs = 0; + size_t encs_count = 0; + void *original_app_key = app_key; + asn_app_consume_bytes_f *original_cb = cb; + int i; + + if(!sptr) ASN__ENCODE_FAILED; + + if(xcan) { + encs = (jer_tmp_enc_t *)MALLOC(list->count * sizeof(encs[0])); + if(!encs) ASN__ENCODE_FAILED; + cb = SET_OF_encode_jer_callback; + } + + er.encoded = 0; + + for(i = 0; i < list->count; i++) { + asn_enc_rval_t tmper = {0,0,0}; + + void *memb_ptr = list->array[i]; + if(!memb_ptr) continue; + + if(encs) { + memset(&encs[encs_count], 0, sizeof(encs[0])); + app_key = &encs[encs_count]; + encs_count++; + } + + if(mname) { + if(!xcan) ASN__TEXT_INDENT(1, ilevel); + ASN__CALLBACK3("\"", 1, mname, mlen, "\": ", 3); + } + + if(!xcan && specs->as_XMLValueList == 1) + ASN__TEXT_INDENT(1, ilevel + 1); + tmper = elm->type->op->jer_encoder(elm->type, memb_ptr, + ilevel + (specs->as_XMLValueList != 2), + flags, cb, app_key); + if(tmper.encoded == -1) return tmper; + er.encoded += tmper.encoded; + if(tmper.encoded == 0 && specs->as_XMLValueList) { + const char *name = elm->type->xml_tag; + size_t len = strlen(name); + ASN__CALLBACK3("<", 1, name, len, "/>", 2); + } + + /* if(mname) { */ + /* ASN__CALLBACK3("", 1); */ + /* } */ + + } + + if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); + + if(encs) { + jer_tmp_enc_t *enc = encs; + jer_tmp_enc_t *end = encs + encs_count; + ssize_t control_size = 0; + + er.encoded = 0; + cb = original_cb; + app_key = original_app_key; + qsort(encs, encs_count, sizeof(encs[0]), SET_OF_jer_order); + + for(; enc < end; enc++) { + ASN__CALLBACK(enc->buffer, enc->offset); + FREEMEM(enc->buffer); + enc->buffer = 0; + control_size += enc->offset; + } + assert(control_size == er.encoded); + } + + goto cleanup; +cb_failed: + ASN__ENCODE_FAILED; +cleanup: + if(encs) { + size_t n; + for(n = 0; n < encs_count; n++) { + FREEMEM(encs[n].buffer); + } + FREEMEM(encs); + } + ASN__ENCODED_OK(er); +} diff --git a/e2sim/asn1c/constr_SET_OF_print.c b/e2sim/asn1c/constr_SET_OF_print.c new file mode 100644 index 0000000..748dba7 --- /dev/null +++ b/e2sim/asn1c/constr_SET_OF_print.c @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +int +SET_OF_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_TYPE_member_t *elm = td->elements; + const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); + int ret; + int i; + + if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; + + /* Dump preamble */ + if(cb(td->name, strlen(td->name), app_key) < 0 + || cb(" ::= {", 6, app_key) < 0) + return -1; + + for(i = 0; i < list->count; i++) { + const void *memb_ptr = list->array[i]; + if(!memb_ptr) continue; + + _i_INDENT(1); + + ret = elm->type->op->print_struct(elm->type, memb_ptr, + ilevel + 1, cb, app_key); + if(ret) return ret; + } + + ilevel--; + _i_INDENT(1); + + return (cb("}", 1, app_key) < 0) ? -1 : 0; +} diff --git a/e2sim/asn1c/constr_SET_OF_rfill.c b/e2sim/asn1c/constr_SET_OF_rfill.c new file mode 100644 index 0000000..9b2ac5e --- /dev/null +++ b/e2sim/asn1c/constr_SET_OF_rfill.c @@ -0,0 +1,152 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_random_fill_result_t +SET_OF_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + const asn_SET_OF_specifics_t *specs = + (const asn_SET_OF_specifics_t *)td->specifics; + asn_random_fill_result_t res_ok = {ARFILL_OK, 0}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + const asn_TYPE_member_t *elm = td->elements; + void *st = *sptr; + long max_elements = 5; + long slb = 0; /* Lower size bound */ + long sub = 0; /* Upper size bound */ + size_t rnd_len; + + if(max_length == 0) return result_skipped; + + if(st == NULL) { + st = (*sptr = CALLOC(1, specs->struct_size)); + if(st == NULL) { + return result_failed; + } + } + + switch(asn_random_between(0, 6)) { + case 0: max_elements = 0; break; + case 1: max_elements = 1; break; + case 2: max_elements = 5; break; + case 3: max_elements = max_length; break; + case 4: max_elements = max_length / 2; break; + case 5: max_elements = max_length / 4; break; + default: break; + } + sub = slb + max_elements; + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + if(!constraints || !constraints->per_constraints) + constraints = &td->encoding_constraints; + if(constraints->per_constraints) { + const asn_per_constraint_t *pc = &constraints->per_constraints->size; + if(pc->flags & APC_SEMI_CONSTRAINED) { + slb = pc->lower_bound; + sub = pc->lower_bound + max_elements; + } else if(pc->flags & APC_CONSTRAINED) { + slb = pc->lower_bound; + sub = pc->upper_bound; + if(sub - slb > max_elements) sub = slb + max_elements; + } + } +#else + if(!constraints) constraints = &td->encoding_constraints; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + + /* Bias towards edges of allowed space */ + switch(asn_random_between(-1, 4)) { + default: + case -1: +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + /* Prepare lengths somewhat outside of constrained range. */ + if(constraints->per_constraints + && (constraints->per_constraints->size.flags & APC_EXTENSIBLE)) { + switch(asn_random_between(0, 5)) { + default: + case 0: + rnd_len = 0; + break; + case 1: + if(slb > 0) { + rnd_len = slb - 1; + } else { + rnd_len = 0; + } + break; + case 2: + rnd_len = asn_random_between(0, slb); + break; + case 3: + if(sub < (ssize_t)max_length) { + rnd_len = sub + 1; + } else { + rnd_len = max_length; + } + break; + case 4: + if(sub < (ssize_t)max_length) { + rnd_len = asn_random_between(sub + 1, max_length); + } else { + rnd_len = max_length; + } + break; + case 5: + rnd_len = max_length; + break; + } + break; + } +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + /* Fall through */ + case 0: + rnd_len = asn_random_between(slb, sub); + break; + case 1: + if(slb < sub) { + rnd_len = asn_random_between(slb + 1, sub); + break; + } + /* Fall through */ + case 2: + rnd_len = asn_random_between(slb, slb); + break; + case 3: + if(slb < sub) { + rnd_len = asn_random_between(slb, sub - 1); + break; + } + /* Fall through */ + case 4: + rnd_len = asn_random_between(sub, sub); + break; + } + + for(; rnd_len > 0; rnd_len--) { + asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); + void *ptr = 0; + asn_random_fill_result_t tmpres = elm->type->op->random_fill( + elm->type, &ptr, &elm->encoding_constraints, + (max_length > res_ok.length ? max_length - res_ok.length : 0) + / rnd_len); + switch(tmpres.code) { + case ARFILL_OK: + ASN_SET_ADD(list, ptr); + res_ok.length += tmpres.length; + break; + case ARFILL_SKIPPED: + break; + case ARFILL_FAILED: + assert(ptr == 0); + return tmpres; + } + } + + return res_ok; +} diff --git a/e2sim/asn1c/constr_SET_OF_uper.c b/e2sim/asn1c/constr_SET_OF_uper.c new file mode 100644 index 0000000..b99a244 --- /dev/null +++ b/e2sim/asn1c/constr_SET_OF_uper.c @@ -0,0 +1,201 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +SET_OF_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + asn_dec_rval_t rv = {RC_OK, 0}; + const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; + const asn_TYPE_member_t *elm = td->elements; /* Single one */ + void *st = *sptr; + asn_anonymous_set_ *list; + const asn_per_constraint_t *ct; + int repeat = 0; + ssize_t nelems; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + /* + * Create the target structure if it is not present already. + */ + if(!st) { + st = *sptr = CALLOC(1, specs->struct_size); + if(!st) ASN__DECODE_FAILED; + } + list = _A_SET_FROM_VOID(st); + + /* Figure out which constraints to use */ + if(constraints) ct = &constraints->size; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->size; + else ct = 0; + + if(ct && ct->flags & APC_EXTENSIBLE) { + int value = per_get_few_bits(pd, 1); + if(value < 0) ASN__DECODE_STARVED; + if(value) ct = 0; /* Not restricted! */ + } + + if(ct && ct->effective_bits >= 0) { + /* X.691, #19.5: No length determinant */ + nelems = per_get_few_bits(pd, ct->effective_bits); + ASN_DEBUG("Preparing to fetch %ld+%ld elements from %s", + (long)nelems, ct->lower_bound, td->name); + if(nelems < 0) ASN__DECODE_STARVED; + nelems += ct->lower_bound; + } else { + nelems = -1; + } + + do { + int i; + if(nelems < 0) { + nelems = uper_get_length(pd, -1, 0, &repeat); + ASN_DEBUG("Got to decode %" ASN_PRI_SSIZE " elements (eff %d)", + nelems, (int)(ct ? ct->effective_bits : -1)); + if(nelems < 0) ASN__DECODE_STARVED; + } + + for(i = 0; i < nelems; i++) { + void *ptr = 0; + ASN_DEBUG("SET OF %s decoding", elm->type->name); + rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, + &ptr, pd); + ASN_DEBUG("%s SET OF %s decoded %d, %p", + td->name, elm->type->name, rv.code, ptr); + if(rv.code == RC_OK) { + if(ASN_SET_ADD(list, ptr) == 0) { + if(rv.consumed == 0 && nelems > 200) { + /* Protect from SET OF NULL compression bombs. */ + ASN__DECODE_FAILED; + } + continue; + } + ASN_DEBUG("Failed to add element into %s", + td->name); + /* Fall through */ + rv.code = RC_FAIL; + } else { + ASN_DEBUG("Failed decoding %s of %s (SET OF)", + elm->type->name, td->name); + } + if(ptr) ASN_STRUCT_FREE(*elm->type, ptr); + return rv; + } + + nelems = -1; /* Allow uper_get_length() */ + } while(repeat); + + ASN_DEBUG("Decoded %s as SET OF", td->name); + + rv.code = RC_OK; + rv.consumed = 0; + return rv; +} + +asn_enc_rval_t +SET_OF_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const asn_anonymous_set_ *list; + const asn_per_constraint_t *ct; + const asn_TYPE_member_t *elm = td->elements; + struct _el_buffer *encoded_els; + asn_enc_rval_t er = {0,0,0}; + size_t encoded_edx; + + if(!sptr) ASN__ENCODE_FAILED; + + list = _A_CSET_FROM_VOID(sptr); + + er.encoded = 0; + + ASN_DEBUG("Encoding %s as SEQUENCE OF (%d)", td->name, list->count); + + if(constraints) ct = &constraints->size; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->size; + else ct = 0; + + /* If extensible constraint, check if size is in root */ + if(ct) { + int not_in_root = + (list->count < ct->lower_bound || list->count > ct->upper_bound); + ASN_DEBUG("lb %ld ub %ld %s", ct->lower_bound, ct->upper_bound, + ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); + if(ct->flags & APC_EXTENSIBLE) { + /* Declare whether size is in extension root */ + if(per_put_few_bits(po, not_in_root, 1)) ASN__ENCODE_FAILED; + if(not_in_root) ct = 0; + } else if(not_in_root && ct->effective_bits >= 0) { + ASN__ENCODE_FAILED; + } + + } + + if(ct && ct->effective_bits >= 0) { + /* X.691, #19.5: No length determinant */ + if(per_put_few_bits(po, list->count - ct->lower_bound, + ct->effective_bits)) + ASN__ENCODE_FAILED; + } else if(list->count == 0) { + /* When the list is empty add only the length determinant + * X.691, #20.6 and #11.9.4.1 + */ + if (uper_put_length(po, 0, 0)) { + ASN__ENCODE_FAILED; + } + ASN__ENCODED_OK(er); + } + + + /* + * Canonical UPER #22.1 mandates dynamic sorting of the SET OF elements + * according to their encodings. Build an array of the encoded elements. + */ + encoded_els = SET_OF__encode_sorted(elm, list, SOES_CUPER); + + for(encoded_edx = 0; (ssize_t)encoded_edx < list->count;) { + ssize_t may_encode; + size_t edx; + int need_eom = 0; + + if(ct && ct->effective_bits >= 0) { + may_encode = list->count; + } else { + may_encode = + uper_put_length(po, list->count - encoded_edx, &need_eom); + if(may_encode < 0) ASN__ENCODE_FAILED; + } + + for(edx = encoded_edx; edx < encoded_edx + may_encode; edx++) { + const struct _el_buffer *el = &encoded_els[edx]; + if(asn_put_many_bits(po, el->buf, + (8 * el->length) - el->bits_unused) < 0) { + break; + } + } + + if(need_eom && uper_put_length(po, 0, 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + + encoded_edx += may_encode; + } + + SET_OF__encode_sorted_free(encoded_els, list->count); + + if((ssize_t)encoded_edx == list->count) { + ASN__ENCODED_OK(er); + } else { + ASN__ENCODE_FAILED; + } +} diff --git a/e2sim/asn1c/constr_SET_OF_xer.c b/e2sim/asn1c/constr_SET_OF_xer.c new file mode 100644 index 0000000..1d97e5b --- /dev/null +++ b/e2sim/asn1c/constr_SET_OF_xer.c @@ -0,0 +1,314 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * Return a standardized complex structure. + */ +#undef RETURN +#define RETURN(_code) \ + do { \ + rval.code = _code; \ + rval.consumed = consumed_myself; \ + return rval; \ + } while(0) + +#undef XER_ADVANCE +#define XER_ADVANCE(num_bytes) \ + do { \ + size_t num = num_bytes; \ + buf_ptr = ((const char *)buf_ptr) + num; \ + size -= num; \ + consumed_myself += num; \ + } while(0) + +/* + * Decode the XER (XML) data. + */ +asn_dec_rval_t +SET_OF_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **struct_ptr, + const char *opt_mname, const void *buf_ptr, size_t size) { + /* + * Bring closer parts of structure description. + */ + const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; + const asn_TYPE_member_t *element = td->elements; + const char *elm_tag; + const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; + + /* + * ... and parts of the structure being constructed. + */ + void *st = *struct_ptr; /* Target structure. */ + asn_struct_ctx_t *ctx; /* Decoder context */ + + asn_dec_rval_t rval = {RC_OK, 0}; /* Return value from a decoder */ + ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ + + /* + * Create the target structure if it is not present already. + */ + if(st == 0) { + st = *struct_ptr = CALLOC(1, specs->struct_size); + if(st == 0) RETURN(RC_FAIL); + } + + /* Which tag is expected for the downstream */ + if(specs->as_XMLValueList) { + elm_tag = (specs->as_XMLValueList == 1) ? 0 : ""; + } else { + elm_tag = (*element->name) + ? element->name : element->type->xml_tag; + } + + /* + * Restore parsing context. + */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + /* + * Phases of XER/XML processing: + * Phase 0: Check that the opening tag matches our expectations. + * Phase 1: Processing body and reacting on closing tag. + * Phase 2: Processing inner type. + */ + for(; ctx->phase <= 2;) { + pxer_chunk_type_e ch_type; /* XER chunk type */ + ssize_t ch_size; /* Chunk size */ + xer_check_tag_e tcv; /* Tag check value */ + + /* + * Go inside the inner member of a set. + */ + if(ctx->phase == 2) { + asn_dec_rval_t tmprval = {RC_OK, 0}; + + /* Invoke the inner type decoder, m.b. multiple times */ + ASN_DEBUG("XER/SET OF element [%s]", elm_tag); + tmprval = element->type->op->xer_decoder(opt_codec_ctx, + element->type, + &ctx->ptr, elm_tag, + buf_ptr, size); + if(tmprval.code == RC_OK) { + asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); + if(ASN_SET_ADD(list, ctx->ptr) != 0) + RETURN(RC_FAIL); + ctx->ptr = 0; + XER_ADVANCE(tmprval.consumed); + } else { + XER_ADVANCE(tmprval.consumed); + RETURN(tmprval.code); + } + ctx->phase = 1; /* Back to body processing */ + ASN_DEBUG("XER/SET OF phase => %d", ctx->phase); + /* Fall through */ + } + + /* + * Get the next part of the XML stream. + */ + ch_size = xer_next_token(&ctx->context, + buf_ptr, size, &ch_type); + if(ch_size == -1) { + RETURN(RC_FAIL); + } else { + switch(ch_type) { + case PXER_WMORE: + RETURN(RC_WMORE); + case PXER_COMMENT: /* Got XML comment */ + case PXER_TEXT: /* Ignore free-standing text */ + XER_ADVANCE(ch_size); /* Skip silently */ + continue; + case PXER_TAG: + break; /* Check the rest down there */ + } + } + + tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); + ASN_DEBUG("XER/SET OF: tcv = %d, ph=%d t=%s", + tcv, ctx->phase, xml_tag); + switch(tcv) { + case XCT_CLOSING: + if(ctx->phase == 0) break; + ctx->phase = 0; + /* Fall through */ + case XCT_BOTH: + if(ctx->phase == 0) { + /* No more things to decode */ + XER_ADVANCE(ch_size); + ctx->phase = 3; /* Phase out */ + RETURN(RC_OK); + } + /* Fall through */ + case XCT_OPENING: + if(ctx->phase == 0) { + XER_ADVANCE(ch_size); + ctx->phase = 1; /* Processing body phase */ + continue; + } + /* Fall through */ + case XCT_UNKNOWN_OP: + case XCT_UNKNOWN_BO: + + ASN_DEBUG("XER/SET OF: tcv=%d, ph=%d", tcv, ctx->phase); + if(ctx->phase == 1) { + /* + * Process a single possible member. + */ + ctx->phase = 2; + continue; + } + /* Fall through */ + default: + break; + } + + ASN_DEBUG("Unexpected XML tag in SET OF"); + break; + } + + ctx->phase = 3; /* "Phase out" on hard failure */ + RETURN(RC_FAIL); +} + +typedef struct xer_tmp_enc_s { + void *buffer; + size_t offset; + size_t size; +} xer_tmp_enc_t; + +static int +SET_OF_encode_xer_callback(const void *buffer, size_t size, void *key) { + xer_tmp_enc_t *t = (xer_tmp_enc_t *)key; + if(t->offset + size >= t->size) { + size_t newsize = (t->size << 2) + size; + void *p = REALLOC(t->buffer, newsize); + if(!p) return -1; + t->buffer = p; + t->size = newsize; + } + memcpy((char *)t->buffer + t->offset, buffer, size); + t->offset += size; + return 0; +} + +static int +SET_OF_xer_order(const void *aptr, const void *bptr) { + const xer_tmp_enc_t *a = (const xer_tmp_enc_t *)aptr; + const xer_tmp_enc_t *b = (const xer_tmp_enc_t *)bptr; + size_t minlen = a->offset; + int ret; + if(b->offset < minlen) minlen = b->offset; + /* Well-formed UTF-8 has this nice lexicographical property... */ + ret = memcmp(a->buffer, b->buffer, minlen); + if(ret != 0) return ret; + if(a->offset == b->offset) + return 0; + if(a->offset == minlen) + return -1; + return 1; +} + +asn_enc_rval_t +SET_OF_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, + void *app_key) { + asn_enc_rval_t er = {0,0,0}; + const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; + const asn_TYPE_member_t *elm = td->elements; + const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); + const char *mname = specs->as_XMLValueList + ? 0 : ((*elm->name) ? elm->name : elm->type->xml_tag); + size_t mlen = mname ? strlen(mname) : 0; + int xcan = (flags & XER_F_CANONICAL); + xer_tmp_enc_t *encs = 0; + size_t encs_count = 0; + void *original_app_key = app_key; + asn_app_consume_bytes_f *original_cb = cb; + int i; + + if(!sptr) ASN__ENCODE_FAILED; + + if(xcan) { + encs = (xer_tmp_enc_t *)MALLOC(list->count * sizeof(encs[0])); + if(!encs) ASN__ENCODE_FAILED; + cb = SET_OF_encode_xer_callback; + } + + er.encoded = 0; + + for(i = 0; i < list->count; i++) { + asn_enc_rval_t tmper = {0,0,0}; + + void *memb_ptr = list->array[i]; + if(!memb_ptr) continue; + + if(encs) { + memset(&encs[encs_count], 0, sizeof(encs[0])); + app_key = &encs[encs_count]; + encs_count++; + } + + if(mname) { + if(!xcan) ASN__TEXT_INDENT(1, ilevel); + ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); + } + + if(!xcan && specs->as_XMLValueList == 1) + ASN__TEXT_INDENT(1, ilevel + 1); + tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, + ilevel + (specs->as_XMLValueList != 2), + flags, cb, app_key); + if(tmper.encoded == -1) return tmper; + er.encoded += tmper.encoded; + if(tmper.encoded == 0 && specs->as_XMLValueList) { + const char *name = elm->type->xml_tag; + size_t len = strlen(name); + ASN__CALLBACK3("<", 1, name, len, "/>", 2); + } + + if(mname) { + ASN__CALLBACK3("", 1); + } + + } + + if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); + + if(encs) { + xer_tmp_enc_t *enc = encs; + xer_tmp_enc_t *end = encs + encs_count; + ssize_t control_size = 0; + + er.encoded = 0; + cb = original_cb; + app_key = original_app_key; + qsort(encs, encs_count, sizeof(encs[0]), SET_OF_xer_order); + + for(; enc < end; enc++) { + ASN__CALLBACK(enc->buffer, enc->offset); + FREEMEM(enc->buffer); + enc->buffer = 0; + control_size += enc->offset; + } + assert(control_size == er.encoded); + } + + goto cleanup; +cb_failed: + ASN__ENCODE_FAILED; +cleanup: + if(encs) { + size_t n; + for(n = 0; n < encs_count; n++) { + FREEMEM(encs[n].buffer); + } + FREEMEM(encs); + } + ASN__ENCODED_OK(er); +} diff --git a/e2sim/asn1c/constr_TYPE.c b/e2sim/asn1c/constr_TYPE.c new file mode 100644 index 0000000..e634e75 --- /dev/null +++ b/e2sim/asn1c/constr_TYPE.c @@ -0,0 +1,80 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * Version of the ASN.1 infrastructure shipped with compiler. + */ +int get_asn1c_environment_version() { return ASN1C_ENVIRONMENT_VERSION; } + +static asn_app_consume_bytes_f _print2fp; + +/* + * Return the outmost tag of the type. + */ +ber_tlv_tag_t +asn_TYPE_outmost_tag(const asn_TYPE_descriptor_t *type_descriptor, + const void *struct_ptr, int tag_mode, ber_tlv_tag_t tag) { + + if(tag_mode) + return tag; + + if(type_descriptor->tags_count) + return type_descriptor->tags[0]; + + return type_descriptor->op->outmost_tag(type_descriptor, struct_ptr, 0, 0); +} + +/* + * Print the target language's structure in human readable form. + */ +int +asn_fprint(FILE *stream, const asn_TYPE_descriptor_t *td, + const void *struct_ptr) { + if(!stream) stream = stdout; + if(!td || !struct_ptr) { + errno = EINVAL; + return -1; + } + + /* Invoke type-specific printer */ + if(td->op->print_struct(td, struct_ptr, 1, _print2fp, stream)) { + return -1; + } + + /* Terminate the output */ + if(_print2fp("\n", 1, stream)) { + return -1; + } + + return fflush(stream); +} + +/* Dump the data into the specified stdio stream */ +static int +_print2fp(const void *buffer, size_t size, void *app_key) { + FILE *stream = (FILE *)app_key; + + if(fwrite(buffer, 1, size, stream) != size) + return -1; + + return 0; +} + + +/* + * Some compilers do not support variable args macros. + * This function is a replacement of ASN_DEBUG() macro. + */ +void CC_PRINTFLIKE(1, 2) ASN_DEBUG_f(const char *fmt, ...); +void ASN_DEBUG_f(const char *fmt, ...) { + va_list ap; + va_start(ap, fmt); + vfprintf(stderr, fmt, ap); + fprintf(stderr, "\n"); + va_end(ap); +} diff --git a/e2sim/asn1c/constr_TYPE.h b/e2sim/asn1c/constr_TYPE.h new file mode 100644 index 0000000..55c2574 --- /dev/null +++ b/e2sim/asn1c/constr_TYPE.h @@ -0,0 +1,295 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * This file contains the declaration structure called "ASN.1 Type Definition", + * which holds all information necessary for encoding and decoding routines. + * This structure even contains pointer to these encoding and decoding routines + * for each defined ASN.1 type. + */ +#ifndef _CONSTR_TYPE_H_ +#define _CONSTR_TYPE_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ +struct asn_TYPE_member_s; /* Forward declaration */ + +/* + * This type provides the context information for various ASN.1 routines, + * primarily ones doing decoding. A member _asn_ctx of this type must be + * included into certain target language's structures, such as compound types. + */ +typedef struct asn_struct_ctx_s { + short phase; /* Decoding phase */ + short step; /* Elementary step of a phase */ + int context; /* Other context information */ + void *ptr; /* Decoder-specific stuff (stack elements) */ + ber_tlv_len_t left; /* Number of bytes left, -1 for indefinite */ +} asn_struct_ctx_t; + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#include /* Basic Encoding Rules decoder */ +#include /* Distinguished Encoding Rules encoder */ +#else +typedef void (ber_type_decoder_f)(void); +typedef void (der_type_encoder_f)(void); +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +#include /* Decoder of XER (XML, text) */ +#include /* Encoder into XER (XML, text) */ +#else +typedef void (xer_type_decoder_f)(void); +typedef void (xer_type_encoder_f)(void); +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +#include /* Encoder into JER (JSON, text) */ +#else +typedef void (jer_type_encoder_f)(void); +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +#include /* Packet Encoding Rules decoder */ +#include /* Packet Encoding Rules encoder */ +#else +typedef void (per_type_decoder_f)(void); +typedef void (per_type_encoder_f)(void); +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + +#include /* Subtype constraints support */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +#include /* Random structures support */ +#else +typedef void (asn_random_fill_f)(void); +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +#include /* Octet Encoding Rules encoder */ +#include /* Octet Encoding Rules encoder */ +#else +typedef void (oer_type_decoder_f)(void); +typedef void (oer_type_encoder_f)(void); +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +/* + * Free the structure according to its specification. + * Use one of ASN_STRUCT_{FREE,RESET,CONTENTS_ONLY} macros instead. + * Do not use directly. + */ +enum asn_struct_free_method { + ASFM_FREE_EVERYTHING, /* free(struct_ptr) and underlying members */ + ASFM_FREE_UNDERLYING, /* free underlying members */ + ASFM_FREE_UNDERLYING_AND_RESET /* FREE_UNDERLYING + memset(0) */ +}; +typedef void (asn_struct_free_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + void *struct_ptr, enum asn_struct_free_method); + +/* + * Free the structure including freeing the memory pointed to by ptr itself. + */ +#define ASN_STRUCT_FREE(asn_DEF, ptr) \ + (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_EVERYTHING) + +/* + * Free the memory used by the members of the structure without freeing the + * the structure pointer itself. + * ZERO-OUT the structure to the safe clean state. + * (Retaining the pointer may be useful in case the structure is allocated + * statically or arranged on the stack, yet its elements are dynamic.) + */ +#define ASN_STRUCT_RESET(asn_DEF, ptr) \ + (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_UNDERLYING_AND_RESET) + +/* + * Free memory used by the members of the structure without freeing + * the structure pointer itself. + * (Retaining the pointer may be useful in case the structure is allocated + * statically or arranged on the stack, yet its elements are dynamic.) + * AVOID using it in the application code; + * Use a safer ASN_STRUCT_RESET() instead. + */ +#define ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF, ptr) \ + (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_UNDERLYING) + +/* + * Print the structure according to its specification. + */ +typedef int(asn_struct_print_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, + int level, /* Indentation level */ + asn_app_consume_bytes_f *callback, void *app_key); + +/* + * Compare two structs between each other. + * Returns <0 if struct_A is "smaller" than struct_B, >0 if "greater", + * and =0 if "equal to", for some type-specific, stable definition of + * "smaller", "greater" and "equal to". + */ +typedef int (asn_struct_compare_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_A, + const void *struct_B); + +/* + * Return the outmost tag of the type. + * If the type is untagged CHOICE, the dynamic operation is performed. + * NOTE: This function pointer type is only useful internally. + * Do not use it in your application. + */ +typedef ber_tlv_tag_t (asn_outmost_tag_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, int tag_mode, ber_tlv_tag_t tag); +/* The instance of the above function type; used internally. */ +asn_outmost_tag_f asn_TYPE_outmost_tag; + +/* + * Fetch the desired type of the Open Type based on the + * Information Object Set driven constraints. + */ +typedef struct asn_type_selector_result_s { + const struct asn_TYPE_descriptor_s *type_descriptor; /* Type encoded. */ + unsigned presence_index; /* Associated choice variant. */ +} asn_type_selector_result_t; +typedef asn_type_selector_result_t(asn_type_selector_f)( + const struct asn_TYPE_descriptor_s *parent_type_descriptor, + const void *parent_structure_ptr); + +/* + * Generalized functions for dealing with the speciic type. + * May be directly invoked by applications. + */ +typedef struct asn_TYPE_operation_s { + asn_struct_free_f *free_struct; /* Free the structure */ + asn_struct_print_f *print_struct; /* Human readable output */ + asn_struct_compare_f *compare_struct; /* Compare two structures */ + ber_type_decoder_f *ber_decoder; /* Generic BER decoder */ + der_type_encoder_f *der_encoder; /* Canonical DER encoder */ + xer_type_decoder_f *xer_decoder; /* Generic XER decoder */ + xer_type_encoder_f *xer_encoder; /* [Canonical] XER encoder */ + jer_type_encoder_f *jer_encoder; /* Generic JER encoder */ + oer_type_decoder_f *oer_decoder; /* Generic OER decoder */ + oer_type_encoder_f *oer_encoder; /* Canonical OER encoder */ + per_type_decoder_f *uper_decoder; /* Unaligned PER decoder */ + per_type_encoder_f *uper_encoder; /* Unaligned PER encoder */ + per_type_decoder_f *aper_decoder; /* Aligned PER decoder */ + per_type_encoder_f *aper_encoder; /* Aligned PER encoder */ + asn_random_fill_f *random_fill; /* Initialize with a random value */ + asn_outmost_tag_f *outmost_tag; /* */ +} asn_TYPE_operation_t; + +/* + * A constraints tuple specifying both the OER and PER constraints. + */ +typedef struct asn_encoding_constraints_s { +#if !defined(ASN_DISABLE_OER_SUPPORT) + const struct asn_oer_constraints_s *oer_constraints; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + const struct asn_per_constraints_s *per_constraints; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + asn_constr_check_f *general_constraints; +} asn_encoding_constraints_t; + +/* + * The definitive description of the destination language's structure. + */ +typedef struct asn_TYPE_descriptor_s { + const char *name; /* A name of the ASN.1 type. "" in some cases. */ + const char *xml_tag; /* Name used in XML tag */ + + /* + * Generalized functions for dealing with the specific type. + * May be directly invoked by applications. + */ + asn_TYPE_operation_t *op; + + /*********************************************************************** + * Internally useful members. Not to be used by applications directly. * + **********************************************************************/ + + /* + * Tags that are expected to occur. + */ + const ber_tlv_tag_t *tags; /* Effective tags sequence for this type */ + unsigned tags_count; /* Number of tags which are expected */ + const ber_tlv_tag_t *all_tags; /* Every tag for BER/containment */ + unsigned all_tags_count; /* Number of tags */ + + /* OER, PER, and general constraints */ + asn_encoding_constraints_t encoding_constraints; + + /* + * An ASN.1 production type members (members of SEQUENCE, SET, CHOICE). + */ + struct asn_TYPE_member_s *elements; + unsigned elements_count; + + /* + * Additional information describing the type, used by appropriate + * functions above. + */ + const void *specifics; +} asn_TYPE_descriptor_t; + +/* + * This type describes an element of the constructed type, + * i.e. SEQUENCE, SET, CHOICE, etc. + */ + enum asn_TYPE_flags_e { + ATF_NOFLAGS, + ATF_POINTER = 0x01, /* Represented by the pointer */ + ATF_OPEN_TYPE = 0x02, /* Open Type */ + ATF_ANY_TYPE = 0x04 /* ANY type (deprecated!) */ + }; +typedef struct asn_TYPE_member_s { + enum asn_TYPE_flags_e flags; /* Element's presentation flags */ + unsigned optional; /* Following optional members, including current */ + unsigned memb_offset; /* Offset of the element */ + ber_tlv_tag_t tag; /* Outmost (most immediate) tag */ + int tag_mode; /* IMPLICIT/no/EXPLICIT tag at current level */ + asn_TYPE_descriptor_t *type; /* Member type descriptor */ + asn_type_selector_f *type_selector; /* IoS runtime type selector */ + asn_encoding_constraints_t encoding_constraints; + int (*default_value_cmp)(const void *sptr); /* Compare DEFAULT */ + int (*default_value_set)(void **sptr); /* Set DEFAULT */ + const char *name; /* ASN.1 identifier of the element */ +} asn_TYPE_member_t; + +/* + * BER tag to element number mapping. + */ +typedef struct asn_TYPE_tag2member_s { + ber_tlv_tag_t el_tag; /* Outmost tag of the member */ + unsigned el_no; /* Index of the associated member, base 0 */ + int toff_first; /* First occurrence of the el_tag, relative */ + int toff_last; /* Last occurrence of the el_tag, relative */ +} asn_TYPE_tag2member_t; + +/* + * This function prints out the contents of the target language's structure + * (struct_ptr) into the file pointer (stream) in human readable form. + * RETURN VALUES: + * 0: The structure is printed. + * -1: Problem dumping the structure. + * (See also xer_fprint() in xer_encoder.h) + */ +int asn_fprint(FILE *stream, /* Destination stream descriptor */ + const asn_TYPE_descriptor_t *td, /* ASN.1 type descriptor */ + const void *struct_ptr); /* Structure to be printed */ + +#ifdef __cplusplus +} +#endif + +#endif /* _CONSTR_TYPE_H_ */ diff --git a/e2sim/asn1c/constraints.c b/e2sim/asn1c/constraints.c new file mode 100644 index 0000000..72137cc --- /dev/null +++ b/e2sim/asn1c/constraints.c @@ -0,0 +1,94 @@ +#include +#include + +int +asn_generic_no_constraint(const asn_TYPE_descriptor_t *type_descriptor, + const void *struct_ptr, + asn_app_constraint_failed_f *cb, void *key) { + (void)type_descriptor; /* Unused argument */ + (void)struct_ptr; /* Unused argument */ + (void)cb; /* Unused argument */ + (void)key; /* Unused argument */ + + /* Nothing to check */ + return 0; +} + +int +asn_generic_unknown_constraint(const asn_TYPE_descriptor_t *type_descriptor, + const void *struct_ptr, + asn_app_constraint_failed_f *cb, void *key) { + (void)type_descriptor; /* Unused argument */ + (void)struct_ptr; /* Unused argument */ + (void)cb; /* Unused argument */ + (void)key; /* Unused argument */ + + /* Unknown how to check */ + return 0; +} + +struct errbufDesc { + const asn_TYPE_descriptor_t *failed_type; + const void *failed_struct_ptr; + char *errbuf; + size_t errlen; +}; + +static void +CC_PRINTFLIKE(4, 5) +_asn_i_ctfailcb(void *key, const asn_TYPE_descriptor_t *td, const void *sptr, + const char *fmt, ...) { + struct errbufDesc *arg = key; + va_list ap; + ssize_t vlen; + ssize_t maxlen; + + arg->failed_type = td; + arg->failed_struct_ptr = sptr; + + maxlen = arg->errlen; + if(maxlen <= 0) + return; + + va_start(ap, fmt); + vlen = vsnprintf(arg->errbuf, maxlen, fmt, ap); + va_end(ap); + if(vlen >= maxlen) { + arg->errbuf[maxlen-1] = '\0'; /* Ensuring libc correctness */ + arg->errlen = maxlen - 1; /* Not counting termination */ + return; + } else if(vlen >= 0) { + arg->errbuf[vlen] = '\0'; /* Ensuring libc correctness */ + arg->errlen = vlen; /* Not counting termination */ + } else { + /* + * The libc on this system is broken. + */ + vlen = sizeof("") - 1; + maxlen--; + arg->errlen = vlen < maxlen ? vlen : maxlen; + memcpy(arg->errbuf, "", arg->errlen); + arg->errbuf[arg->errlen] = 0; + } + + return; +} + +int +asn_check_constraints(const asn_TYPE_descriptor_t *type_descriptor, + const void *struct_ptr, char *errbuf, size_t *errlen) { + struct errbufDesc arg; + int ret; + + arg.failed_type = 0; + arg.failed_struct_ptr = 0; + arg.errbuf = errbuf; + arg.errlen = errlen ? *errlen : 0; + + ret = type_descriptor->encoding_constraints.general_constraints( + type_descriptor, struct_ptr, _asn_i_ctfailcb, &arg); + if(ret == -1 && errlen) *errlen = arg.errlen; + + return ret; +} + diff --git a/e2sim/asn1c/constraints.h b/e2sim/asn1c/constraints.h new file mode 100644 index 0000000..0c093fa --- /dev/null +++ b/e2sim/asn1c/constraints.h @@ -0,0 +1,63 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN1_CONSTRAINTS_VALIDATOR_H +#define ASN1_CONSTRAINTS_VALIDATOR_H + +#include /* Platform-dependent types */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * Validate the structure according to the ASN.1 constraints. + * If errbuf and errlen are given, they shall be pointing to the appropriate + * buffer space and its length before calling this function. Alternatively, + * they could be passed as NULL's. If constraints validation fails, + * errlen will contain the actual number of bytes taken from the errbuf + * to encode an error message (properly 0-terminated). + * + * RETURN VALUES: + * This function returns 0 in case all ASN.1 constraints are met + * and -1 if one or more constraints were failed. + */ +int asn_check_constraints( + const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, /* Target language's structure */ + char *errbuf, /* Returned error description */ + size_t *errlen /* Length of the error description */ +); + + +/* + * Generic type for constraint checking callback, + * associated with every type descriptor. + */ +typedef int(asn_constr_check_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, const void *struct_ptr, + asn_app_constraint_failed_f *optional_callback, /* Log the error */ + void *optional_app_key /* Opaque key passed to a callback */ +); + +/******************************* + * INTERNALLY USEFUL FUNCTIONS * + *******************************/ + +asn_constr_check_f asn_generic_no_constraint; /* No constraint whatsoever */ +asn_constr_check_f asn_generic_unknown_constraint; /* Not fully supported */ + +/* + * Invoke the callback with a complete error message. + */ +#define ASN__CTFAIL if(ctfailcb) ctfailcb + +#ifdef __cplusplus +} +#endif + +#endif /* ASN1_CONSTRAINTS_VALIDATOR_H */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/der_encoder.c b/e2sim/asn1c/der_encoder.c similarity index 100% rename from e2sim/e2sm_examples/kpm_e2sm/ASN1c/der_encoder.c rename to e2sim/asn1c/der_encoder.c diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/der_encoder.h b/e2sim/asn1c/der_encoder.h similarity index 100% rename from e2sim/e2sm_examples/kpm_e2sm/ASN1c/der_encoder.h rename to e2sim/asn1c/der_encoder.h diff --git a/e2sim/asn1c/jer_encoder.c b/e2sim/asn1c/jer_encoder.c new file mode 100644 index 0000000..4fe5ce3 --- /dev/null +++ b/e2sim/asn1c/jer_encoder.c @@ -0,0 +1,69 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * The JER encoder of any type. May be invoked by the application. + */ +asn_enc_rval_t +jer_encode(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *cb, + void *app_key) { + asn_enc_rval_t er = {0, 0, 0}; + asn_enc_rval_t tmper; + const char *mname; + size_t mlen; + + if(!td || !sptr) goto cb_failed; + + mname = td->xml_tag; + mlen = strlen(mname); + + ASN__CALLBACK3("{\n\"", 3, mname, mlen, "\":", 2); + + int xFlag = 0; + tmper = td->op->jer_encoder(td, sptr, 1, xFlag, cb, app_key); + if(tmper.encoded == -1) return tmper; + er.encoded += tmper.encoded; + + ASN__CALLBACK("}", 1); + // ASN__CALLBACK3("\n", xcan); + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} + +/* + * This is a helper function for jer_fprint, which directs all incoming data + * into the provided file descriptor. + */ +static int +jer__print2fp(const void *buffer, size_t size, void *app_key) { + FILE *stream = (FILE *)app_key; + + if(fwrite(buffer, 1, size, stream) != size) + return -1; + + return 0; +} + +int +jer_fprint(FILE *stream, const asn_TYPE_descriptor_t *td, const void *sptr) { + asn_enc_rval_t er = {0,0,0}; + + if(!stream) stream = stdout; + if(!td || !sptr) + return -1; + + er = jer_encode(td, sptr, jer__print2fp, stream); + if(er.encoded == -1) + return -1; + + return fflush(stream); +} + diff --git a/e2sim/asn1c/jer_encoder.h b/e2sim/asn1c/jer_encoder.h new file mode 100644 index 0000000..672976d --- /dev/null +++ b/e2sim/asn1c/jer_encoder.h @@ -0,0 +1,86 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _JER_ENCODER_H_ +#define _JER_ENCODER_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* Flags used by the jer_encode() and (*jer_type_encoder_f), defined below + * + * This isn't actually used, it might be used in the future to support + * both normal JSON and prettified JSON output or removed. + * It came from XER + */ +enum jer_encoder_flags_e { + /* Mode of encoding */ + JER_F = 0x01, /* JER (pretty-printing) */ +}; + +/* + * The JER encoder of any type. May be invoked by the application. + * Produces JER output. + */ +asn_enc_rval_t jer_encode(const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, /* Structure to be encoded */ + asn_app_consume_bytes_f *consume_bytes_cb, + void *app_key /* Arbitrary callback argument */ +); + +/* + * The variant of the above function which dumps the JER + * output into the chosen file pointer. + * RETURN VALUES: + * 0: The structure is printed. + * -1: Problem printing the structure. + * WARNING: No sensible errno value is returned. + */ +int jer_fprint(FILE *stream, const struct asn_TYPE_descriptor_s *td, + const void *struct_ptr); + +/* + * A helper function that uses JER encoding/decoding to verify that: + * - Both structures encode into the same JER. + * - Both resulting JER byte streams can be decoded back. + * - Both decoded structures encode into the same JER (round-trip). + * All of this verifies equivalence between structures and a round-trip. + * ARGUMENTS: + * (opt_debug_stream) - If specified, prints ongoing details. + */ +enum jer_equivalence_e { + JEQ_SUCCESS, /* The only completely positive return value */ + JEQ_FAILURE, /* General failure */ + JEQ_ENCODE1_FAILED, /* First structure JER encoding failed */ + JEQ_ENCODE2_FAILED, /* Second structure JER encoding failed */ + JEQ_DIFFERENT, /* Structures encoded into different JER */ + JEQ_DECODE_FAILED, /* Decode of the JER data failed */ + JEQ_ROUND_TRIP_FAILED /* Bad round-trip */ +}; +enum jer_equivalence_e jer_equivalent( + const struct asn_TYPE_descriptor_s *type_descriptor, const void *struct1, + const void *struct2, FILE *opt_debug_stream); + +/* + * Type of the generic JER encoder. + */ +typedef asn_enc_rval_t(jer_type_encoder_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, /* Structure to be encoded */ + int ilevel, /* Level of indentation */ + enum jer_encoder_flags_e jer_flags, + asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */ + void *app_key /* Arbitrary callback argument */ +); + +#ifdef __cplusplus +} +#endif + +#endif /* _JER_ENCODER_H_ */ diff --git a/e2sim/asn1c/per_decoder.c b/e2sim/asn1c/per_decoder.c new file mode 100644 index 0000000..42b92ca --- /dev/null +++ b/e2sim/asn1c/per_decoder.c @@ -0,0 +1,5 @@ +#include +#include +#include + +// Absolutely nothing diff --git a/e2sim/asn1c/per_decoder.h b/e2sim/asn1c/per_decoder.h new file mode 100644 index 0000000..3cc0c6b --- /dev/null +++ b/e2sim/asn1c/per_decoder.h @@ -0,0 +1,30 @@ +/*- + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _PER_DECODER_H_ +#define _PER_DECODER_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * Type of the type-specific PER decoder function. + */ +typedef asn_dec_rval_t(per_type_decoder_f)( + const asn_codec_ctx_t *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, void **struct_ptr, + asn_per_data_t *per_data); + +#ifdef __cplusplus +} +#endif + +#endif /* _PER_DECODER_H_ */ diff --git a/e2sim/asn1c/per_encoder.c b/e2sim/asn1c/per_encoder.c new file mode 100644 index 0000000..01ab70b --- /dev/null +++ b/e2sim/asn1c/per_encoder.c @@ -0,0 +1,35 @@ +#include +#include + +int +ignore_output(const void *data, size_t size, void *app_key) { + (void)data; + (void)size; + (void)app_key; + return 0; +} + +int +encode_dyn_cb(const void *buffer, size_t size, void *key) { + enc_dyn_arg *arg = key; + if(arg->length + size >= arg->allocated) { + size_t new_size = arg->allocated ? arg->allocated : 8; + void *p; + + do { + new_size <<= 2; + } while(arg->length + size >= new_size); + + p = REALLOC(arg->buffer, new_size); + if(!p) { + FREEMEM(arg->buffer); + memset(arg, 0, sizeof(*arg)); + return -1; + } + arg->buffer = p; + arg->allocated = new_size; + } + memcpy(((char *)arg->buffer) + arg->length, buffer, size); + arg->length += size; + return 0; +} diff --git a/e2sim/asn1c/per_encoder.h b/e2sim/asn1c/per_encoder.h new file mode 100644 index 0000000..8bb0771 --- /dev/null +++ b/e2sim/asn1c/per_encoder.h @@ -0,0 +1,38 @@ +/*- + * Copyright (c) 2006-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _PER_ENCODER_H_ +#define _PER_ENCODER_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * Type of the generic PER encoder function. + */ +typedef asn_enc_rval_t(per_type_encoder_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, const void *struct_ptr, + asn_per_outp_t *per_output); + +int ignore_output(const void *data, size_t size, void *app_key); + +typedef struct enc_dyn_arg { + void *buffer; + size_t length; + size_t allocated; +} enc_dyn_arg; +int encode_dyn_cb(const void *buffer, size_t size, void *key); + +#ifdef __cplusplus +} +#endif + +#endif /* _PER_ENCODER_H_ */ diff --git a/e2sim/asn1c/per_opentype.c b/e2sim/asn1c/per_opentype.c new file mode 100644 index 0000000..5620c5b --- /dev/null +++ b/e2sim/asn1c/per_opentype.c @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2007 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include + +/* + * Internal functions. + */ + +asn_dec_rval_t +uper_sot_suck(const asn_codec_ctx_t *ctx, const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + asn_dec_rval_t rv; + + (void)ctx; + (void)td; + (void)constraints; + (void)sptr; + + while(per_get_few_bits(pd, 1) >= 0); + + rv.code = RC_OK; + rv.consumed = pd->moved; + + return rv; +} diff --git a/e2sim/asn1c/per_opentype.h b/e2sim/asn1c/per_opentype.h new file mode 100644 index 0000000..fc37855 --- /dev/null +++ b/e2sim/asn1c/per_opentype.h @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2007-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _PER_OPENTYPE_H_ +#define _PER_OPENTYPE_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +asn_dec_rval_t uper_sot_suck( + const asn_codec_ctx_t *, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd); + +#ifdef __cplusplus +} +#endif + +#endif /* _PER_OPENTYPE_H_ */ diff --git a/e2sim/asn1c/per_support.c b/e2sim/asn1c/per_support.c new file mode 100644 index 0000000..62d343c --- /dev/null +++ b/e2sim/asn1c/per_support.c @@ -0,0 +1,9 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +// Absolutely nothing diff --git a/e2sim/asn1c/per_support.h b/e2sim/asn1c/per_support.h new file mode 100644 index 0000000..b3056a2 --- /dev/null +++ b/e2sim/asn1c/per_support.h @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _PER_SUPPORT_H_ +#define _PER_SUPPORT_H_ + +#include /* Platform-specific types */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Pre-computed PER constraints. + */ +typedef struct asn_per_constraint_s { + enum asn_per_constraint_flags { + APC_UNCONSTRAINED = 0x0, /* No PER visible constraints */ + APC_SEMI_CONSTRAINED = 0x1, /* Constrained at "lb" */ + APC_CONSTRAINED = 0x2, /* Fully constrained */ + APC_EXTENSIBLE = 0x4 /* May have extension */ + } flags; + int range_bits; /* Full number of bits in the range */ + int effective_bits; /* Effective bits */ + intmax_t lower_bound; /* "lb" value */ + intmax_t upper_bound; /* "ub" value */ +} asn_per_constraint_t; +typedef struct asn_per_constraints_s { + asn_per_constraint_t value; + asn_per_constraint_t size; + int (*value2code)(unsigned int value); + int (*code2value)(unsigned int code); +} asn_per_constraints_t; + +/* Temporary compatibility layer. Will get removed. */ +typedef struct asn_bit_data_s asn_per_data_t; +#define per_get_few_bits(data, bits) asn_get_few_bits(data, bits) +#define per_get_undo(data, bits) asn_get_undo(data, bits) +#define per_get_many_bits(data, dst, align, bits) \ + asn_get_many_bits(data, dst, align, bits) + +/* Temporary compatibility layer. Will get removed. */ +typedef struct asn_bit_outp_s asn_per_outp_t; +#define per_put_few_bits(out, bits, obits) asn_put_few_bits(out, bits, obits) +#define per_put_many_bits(out, src, nbits) asn_put_many_bits(out, src, nbits) +#define per_put_aligned_flush(out) asn_put_aligned_flush(out) + +#ifdef __cplusplus +} +#endif + +#endif /* _PER_SUPPORT_H_ */ diff --git a/e2sim/asn1c/uper_decoder.c b/e2sim/asn1c/uper_decoder.c new file mode 100644 index 0000000..a88e95c --- /dev/null +++ b/e2sim/asn1c/uper_decoder.c @@ -0,0 +1,96 @@ +#include +#include +#include + +/* + * Decode a "Production of a complete encoding", X.691#10.1. + * The complete encoding contains at least one byte, and is an integral + * multiple of 8 bytes. + */ +asn_dec_rval_t +uper_decode_complete(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const void *buffer, size_t size) { + asn_dec_rval_t rval; + + rval = uper_decode(opt_codec_ctx, td, sptr, buffer, size, 0, 0); + if(rval.consumed) { + /* + * We've always given 8-aligned data, + * so convert bits to integral bytes. + */ + rval.consumed += 7; + rval.consumed >>= 3; + } else if(rval.code == RC_OK) { + if(size) { + if(((const uint8_t *)buffer)[0] == 0) { + rval.consumed = 1; /* 1 byte */ + } else { + ASN_DEBUG("Expecting single zeroed byte"); + rval.code = RC_FAIL; + } + } else { + /* Must contain at least 8 bits. */ + rval.code = RC_WMORE; + } + } + + return rval; +} + +asn_dec_rval_t +uper_decode(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, const void *buffer, + size_t size, int skip_bits, int unused_bits) { + asn_codec_ctx_t s_codec_ctx; + asn_dec_rval_t rval; + asn_per_data_t pd; + + if(skip_bits < 0 || skip_bits > 7 + || unused_bits < 0 || unused_bits > 7 + || (unused_bits > 0 && !size)) + ASN__DECODE_FAILED; + + /* + * Stack checker requires that the codec context + * must be allocated on the stack. + */ + if(opt_codec_ctx) { + if(opt_codec_ctx->max_stack_size) { + s_codec_ctx = *opt_codec_ctx; + opt_codec_ctx = &s_codec_ctx; + } + } else { + /* If context is not given, be security-conscious anyway */ + memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); + s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; + opt_codec_ctx = &s_codec_ctx; + } + + /* Fill in the position indicator */ + memset(&pd, 0, sizeof(pd)); + pd.buffer = (const uint8_t *)buffer; + pd.nboff = skip_bits; + pd.nbits = 8 * size - unused_bits; /* 8 is CHAR_BIT from */ + if(pd.nboff > pd.nbits) + ASN__DECODE_FAILED; + + /* + * Invoke type-specific decoder. + */ + if(!td->op->uper_decoder) + ASN__DECODE_FAILED; /* PER is not compiled in */ + rval = td->op->uper_decoder(opt_codec_ctx, td, 0, sptr, &pd); + if(rval.code == RC_OK) { + /* Return the number of consumed bits */ + rval.consumed = ((pd.buffer - (const uint8_t *)buffer) << 3) + + pd.nboff - skip_bits; + ASN_DEBUG("PER decoding consumed %ld, counted %ld", + (long)rval.consumed, (long)pd.moved); + assert(rval.consumed == pd.moved); + } else { + /* PER codec is not a restartable */ + rval.consumed = 0; + } + return rval; +} diff --git a/e2sim/asn1c/uper_decoder.h b/e2sim/asn1c/uper_decoder.h new file mode 100644 index 0000000..ded8515 --- /dev/null +++ b/e2sim/asn1c/uper_decoder.h @@ -0,0 +1,47 @@ +/*- + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _UPER_DECODER_H_ +#define _UPER_DECODER_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * Unaligned PER decoder of a "complete encoding" as per X.691 (08/2015) #11.1. + * On success, this call always returns (.consumed >= 1), as per #11.1.3. + */ +asn_dec_rval_t uper_decode_complete( + const struct asn_codec_ctx_s *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ + void **struct_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size /* Size of data buffer */ +); + +/* + * Unaligned PER decoder of any ASN.1 type. May be invoked by the application. + * WARNING: This call returns the number of BITS read from the stream. Beware. + */ +asn_dec_rval_t uper_decode( + const struct asn_codec_ctx_s *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ + void **struct_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size, /* Size of the input data buffer, in bytes */ + int skip_bits, /* Number of unused leading bits, 0..7 */ + int unused_bits /* Number of unused tailing bits, 0..7 */ +); + +#ifdef __cplusplus +} +#endif + +#endif /* _UPER_DECODER_H_ */ diff --git a/e2sim/asn1c/uper_encoder.c b/e2sim/asn1c/uper_encoder.c new file mode 100644 index 0000000..4c1d24a --- /dev/null +++ b/e2sim/asn1c/uper_encoder.c @@ -0,0 +1,127 @@ +#include +#include +#include + +static int _uper_encode_flush_outp(asn_per_outp_t *po); + +asn_enc_rval_t +uper_encode(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_per_outp_t po; + asn_enc_rval_t er = {0,0,0}; + + /* + * Invoke type-specific encoder. + */ + if(!td || !td->op->uper_encoder) + ASN__ENCODE_FAILED; /* PER is not compiled in */ + + po.buffer = po.tmpspace; + po.nboff = 0; + po.nbits = 8 * sizeof(po.tmpspace); + po.output = cb ? cb : ignore_output; + po.op_key = app_key; + po.flushed_bytes = 0; + + er = td->op->uper_encoder(td, constraints, sptr, &po); + if(er.encoded != -1) { + size_t bits_to_flush; + + bits_to_flush = ((po.buffer - po.tmpspace) << 3) + po.nboff; + + /* Set number of bits encoded to a firm value */ + er.encoded = (po.flushed_bytes << 3) + bits_to_flush; + + if(_uper_encode_flush_outp(&po)) ASN__ENCODE_FAILED; + } + + return er; +} + +/* + * Argument type and callback necessary for uper_encode_to_buffer(). + */ +typedef struct enc_to_buf_arg { + void *buffer; + size_t left; +} enc_to_buf_arg; +static int encode_to_buffer_cb(const void *buffer, size_t size, void *key) { + enc_to_buf_arg *arg = (enc_to_buf_arg *)key; + + if(arg->left < size) + return -1; /* Data exceeds the available buffer size */ + + memcpy(arg->buffer, buffer, size); + arg->buffer = ((char *)arg->buffer) + size; + arg->left -= size; + + return 0; +} + +asn_enc_rval_t +uper_encode_to_buffer(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, void *buffer, size_t buffer_size) { + enc_to_buf_arg key; + + key.buffer = buffer; + key.left = buffer_size; + + if(td) ASN_DEBUG("Encoding \"%s\" using UNALIGNED PER", td->name); + + return uper_encode(td, constraints, sptr, encode_to_buffer_cb, &key); +} + +ssize_t +uper_encode_to_new_buffer(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, void **buffer_r) { + asn_enc_rval_t er = {0,0,0}; + enc_dyn_arg key; + + memset(&key, 0, sizeof(key)); + + er = uper_encode(td, constraints, sptr, encode_dyn_cb, &key); + switch(er.encoded) { + case -1: + FREEMEM(key.buffer); + return -1; + case 0: + FREEMEM(key.buffer); + key.buffer = MALLOC(1); + if(key.buffer) { + *(char *)key.buffer = '\0'; + *buffer_r = key.buffer; + return 1; + } else { + return -1; + } + default: + *buffer_r = key.buffer; + ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); + return ((er.encoded + 7) >> 3); + } +} + +/* + * Internally useful functions. + */ + +/* Flush partially filled buffer */ +static int +_uper_encode_flush_outp(asn_per_outp_t *po) { + uint8_t *buf; + + if(po->nboff == 0 && po->buffer == po->tmpspace) + return 0; + + buf = po->buffer + (po->nboff >> 3); + /* Make sure we account for the last, partially filled */ + if(po->nboff & 0x07) { + buf[0] &= 0xff << (8 - (po->nboff & 0x07)); + buf++; + } + + return po->output(po->tmpspace, buf - po->tmpspace, po->op_key); +} diff --git a/e2sim/asn1c/uper_encoder.h b/e2sim/asn1c/uper_encoder.h new file mode 100644 index 0000000..8f73980 --- /dev/null +++ b/e2sim/asn1c/uper_encoder.h @@ -0,0 +1,62 @@ +/*- + * Copyright (c) 2006-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _UPER_ENCODER_H_ +#define _UPER_ENCODER_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * Unaligned PER encoder of any ASN.1 type. May be invoked by the application. + * WARNING: This function returns the number of encoded bits in the .encoded + * field of the return value. Use the following formula to convert to bytes: + * bytes = ((.encoded + 7) / 8) + */ +asn_enc_rval_t uper_encode( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, + const void *struct_ptr, /* Structure to be encoded */ + asn_app_consume_bytes_f *consume_bytes_cb, /* Data collector */ + void *app_key /* Arbitrary callback argument */ +); + +/* + * A variant of uper_encode() which encodes data into the existing buffer + * WARNING: This function returns the number of encoded bits in the .encoded + * field of the return value. + */ +asn_enc_rval_t uper_encode_to_buffer( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, + const void *struct_ptr, /* Structure to be encoded */ + void *buffer, /* Pre-allocated buffer */ + size_t buffer_size /* Initial buffer size (max) */ +); + +/* + * A variant of uper_encode_to_buffer() which allocates buffer itself. + * Returns the number of bytes in the buffer or -1 in case of failure. + * WARNING: This function produces a "Production of the complete encoding", + * with length of at least one octet. Contrast this to precise bit-packing + * encoding of uper_encode() and uper_encode_to_buffer(). + */ +ssize_t uper_encode_to_new_buffer( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, + const void *struct_ptr, /* Structure to be encoded */ + void **buffer_r /* Buffer allocated and returned */ +); + +#ifdef __cplusplus +} +#endif + +#endif /* _UPER_ENCODER_H_ */ diff --git a/e2sim/asn1c/uper_opentype.c b/e2sim/asn1c/uper_opentype.c new file mode 100644 index 0000000..17ee064 --- /dev/null +++ b/e2sim/asn1c/uper_opentype.c @@ -0,0 +1,372 @@ +/* + * Copyright (c) 2007 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +typedef struct uper_ugot_key { + asn_per_data_t oldpd; /* Old per data source */ + size_t unclaimed; + size_t ot_moved; /* Number of bits moved by OT processing */ + int repeat; +} uper_ugot_key; + +static int uper_ugot_refill(asn_per_data_t *pd); +static int per_skip_bits(asn_per_data_t *pd, int skip_nbits); + +/* + * Encode an "open type field". + * #10.1, #10.2 + */ +int +uper_open_type_put(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + void *buf; + void *bptr; + ssize_t size; + + ASN_DEBUG("Open type put %s ...", td->name); + + size = uper_encode_to_new_buffer(td, constraints, sptr, &buf); + if(size <= 0) return -1; + + ASN_DEBUG("Open type put %s of length %" ASN_PRI_SSIZE " + overhead (1byte?)", td->name, + size); + + bptr = buf; + do { + int need_eom = 0; + ssize_t may_save = uper_put_length(po, size, &need_eom); + ASN_DEBUG("Prepending length %" ASN_PRI_SSIZE + " to %s and allowing to save %" ASN_PRI_SSIZE, + size, td->name, may_save); + if(may_save < 0) break; + if(per_put_many_bits(po, bptr, may_save * 8)) break; + bptr = (char *)bptr + may_save; + size -= may_save; + if(need_eom && uper_put_length(po, 0, 0)) { + FREEMEM(buf); + return -1; + } + } while(size); + + FREEMEM(buf); + if(size) return -1; + + return 0; +} + +static asn_dec_rval_t +uper_open_type_get_simple(const asn_codec_ctx_t *ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + asn_dec_rval_t rv; + ssize_t chunk_bytes; + int repeat; + uint8_t *buf = 0; + size_t bufLen = 0; + size_t bufSize = 0; + asn_per_data_t spd; + size_t padding; + + ASN__STACK_OVERFLOW_CHECK(ctx); + + ASN_DEBUG("Getting open type %s...", td->name); + + do { + chunk_bytes = uper_get_length(pd, -1, 0, &repeat); + if(chunk_bytes < 0) { + FREEMEM(buf); + ASN__DECODE_STARVED; + } + if(bufLen + chunk_bytes > bufSize) { + void *ptr; + bufSize = chunk_bytes + (bufSize << 2); + ptr = REALLOC(buf, bufSize); + if(!ptr) { + FREEMEM(buf); + ASN__DECODE_FAILED; + } + buf = ptr; + } + if(per_get_many_bits(pd, (buf == NULL)? NULL : buf + bufLen, 0, chunk_bytes << 3)) { + FREEMEM(buf); + ASN__DECODE_STARVED; + } + bufLen += chunk_bytes; + } while(repeat); + + ASN_DEBUG("Getting open type %s encoded in %ld bytes", td->name, + (long)bufLen); + + memset(&spd, 0, sizeof(spd)); + spd.buffer = buf; + spd.nbits = bufLen << 3; + + ASN_DEBUG_INDENT_ADD(+4); + rv = td->op->uper_decoder(ctx, td, constraints, sptr, &spd); + ASN_DEBUG_INDENT_ADD(-4); + + if(rv.code == RC_OK) { + /* Check padding validity */ + padding = spd.nbits - spd.nboff; + if (((padding > 0 && padding < 8) || + /* X.691#10.1.3 */ + (spd.nboff == 0 && spd.nbits == 8 && spd.buffer == buf)) && + per_get_few_bits(&spd, padding) == 0) { + /* Everything is cool */ + FREEMEM(buf); + return rv; + } + FREEMEM(buf); + if(padding >= 8) { + ASN_DEBUG("Too large padding %d in open type", (int)padding); + ASN__DECODE_FAILED; + } else { + ASN_DEBUG("No padding"); + } + } else { + FREEMEM(buf); + /* rv.code could be RC_WMORE, nonsense in this context */ + rv.code = RC_FAIL; /* No one would give us more */ + } + + return rv; +} + +static asn_dec_rval_t CC_NOTUSED +uper_open_type_get_complex(const asn_codec_ctx_t *ctx, + const asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + uper_ugot_key arg; + asn_dec_rval_t rv; + ssize_t padding; + + ASN__STACK_OVERFLOW_CHECK(ctx); + + ASN_DEBUG("Getting open type %s from %s", td->name, + asn_bit_data_string(pd)); + arg.oldpd = *pd; + arg.unclaimed = 0; + arg.ot_moved = 0; + arg.repeat = 1; + pd->refill = uper_ugot_refill; + pd->refill_key = &arg; + pd->nbits = pd->nboff; /* 0 good bits at this point, will refill */ + pd->moved = 0; /* This now counts the open type size in bits */ + + ASN_DEBUG_INDENT_ADD(+4); + rv = td->op->uper_decoder(ctx, td, constraints, sptr, pd); + ASN_DEBUG_INDENT_ADD(-4); + +#define UPDRESTOREPD do { \ + /* buffer and nboff are valid, preserve them. */ \ + pd->nbits = arg.oldpd.nbits - (pd->moved - arg.ot_moved); \ + pd->moved = arg.oldpd.moved + (pd->moved - arg.ot_moved); \ + pd->refill = arg.oldpd.refill; \ + pd->refill_key = arg.oldpd.refill_key; \ + } while(0) + + if(rv.code != RC_OK) { + UPDRESTOREPD; + return rv; + } + + ASN_DEBUG("OpenType %s pd%s old%s unclaimed=%d, repeat=%d", td->name, + asn_bit_data_string(pd), + asn_bit_data_string(&arg.oldpd), + (int)arg.unclaimed, (int)arg.repeat); + + padding = pd->moved % 8; + if(padding) { + int32_t pvalue; + if(padding > 7) { + ASN_DEBUG("Too large padding %d in open type", + (int)padding); + rv.code = RC_FAIL; + UPDRESTOREPD; + return rv; + } + padding = 8 - padding; + ASN_DEBUG("Getting padding of %d bits", (int)padding); + pvalue = per_get_few_bits(pd, padding); + switch(pvalue) { + case -1: + ASN_DEBUG("Padding skip failed"); + UPDRESTOREPD; + ASN__DECODE_STARVED; + case 0: break; + default: + ASN_DEBUG("Non-blank padding (%d bits 0x%02x)", + (int)padding, (int)pvalue); + UPDRESTOREPD; + ASN__DECODE_FAILED; + } + } + if(pd->nboff != pd->nbits) { + ASN_DEBUG("Open type %s overhead pd%s old%s", td->name, + asn_bit_data_string(pd), asn_bit_data_string(&arg.oldpd)); + if(1) { + UPDRESTOREPD; + ASN__DECODE_FAILED; + } else { + arg.unclaimed += pd->nbits - pd->nboff; + } + } + + /* Adjust pd back so it points to original data */ + UPDRESTOREPD; + + /* Skip data not consumed by the decoder */ + if(arg.unclaimed) { + ASN_DEBUG("Getting unclaimed %d", (int)arg.unclaimed); + switch(per_skip_bits(pd, arg.unclaimed)) { + case -1: + ASN_DEBUG("Claim of %d failed", (int)arg.unclaimed); + ASN__DECODE_STARVED; + case 0: + ASN_DEBUG("Got claim of %d", (int)arg.unclaimed); + break; + default: + /* Padding must be blank */ + ASN_DEBUG("Non-blank unconsumed padding"); + ASN__DECODE_FAILED; + } + arg.unclaimed = 0; + } + + if(arg.repeat) { + ASN_DEBUG("Not consumed the whole thing"); + rv.code = RC_FAIL; + return rv; + } + + return rv; +} + + +asn_dec_rval_t +uper_open_type_get(const asn_codec_ctx_t *ctx, const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + return uper_open_type_get_simple(ctx, td, constraints, sptr, pd); +} + +int +uper_open_type_skip(const asn_codec_ctx_t *ctx, asn_per_data_t *pd) { + asn_TYPE_descriptor_t s_td; + asn_TYPE_operation_t s_op; + asn_dec_rval_t rv; + + s_td.name = ""; + s_td.op = &s_op; + s_op.uper_decoder = uper_sot_suck; + + rv = uper_open_type_get(ctx, &s_td, 0, 0, pd); + if(rv.code != RC_OK) + return -1; + else + return 0; +} + +/* + * Internal functions. + */ + +static int +uper_ugot_refill(asn_per_data_t *pd) { + uper_ugot_key *arg = pd->refill_key; + ssize_t next_chunk_bytes, next_chunk_bits; + ssize_t avail; + + asn_per_data_t *oldpd = &arg->oldpd; + + ASN_DEBUG("REFILLING pd->moved=%ld, oldpd->moved=%ld", + (long)pd->moved, (long)oldpd->moved); + + /* Advance our position to where pd is */ + oldpd->buffer = pd->buffer; + oldpd->nboff = pd->nboff; + oldpd->nbits -= pd->moved - arg->ot_moved; + oldpd->moved += pd->moved - arg->ot_moved; + arg->ot_moved = pd->moved; + + if(arg->unclaimed) { + /* Refill the container */ + if(per_get_few_bits(oldpd, 1)) + return -1; + if(oldpd->nboff == 0) { + assert(0); + return -1; + } + pd->buffer = oldpd->buffer; + pd->nboff = oldpd->nboff - 1; + pd->nbits = oldpd->nbits; + ASN_DEBUG("UNCLAIMED <- return from (pd->moved=%ld)", + (long)pd->moved); + return 0; + } + + if(!arg->repeat) { + ASN_DEBUG("Want more but refill doesn't have it"); + return -1; + } + + next_chunk_bytes = uper_get_length(oldpd, -1, 0, &arg->repeat); + ASN_DEBUG("Open type LENGTH %ld bytes at off %ld, repeat %ld", + (long)next_chunk_bytes, (long)oldpd->moved, (long)arg->repeat); + if(next_chunk_bytes < 0) return -1; + if(next_chunk_bytes == 0) { + pd->refill = 0; /* No more refills, naturally */ + assert(!arg->repeat); /* Implementation guarantee */ + } + next_chunk_bits = next_chunk_bytes << 3; + avail = oldpd->nbits - oldpd->nboff; + if(avail >= next_chunk_bits) { + pd->nbits = oldpd->nboff + next_chunk_bits; + arg->unclaimed = 0; + ASN_DEBUG("!+Parent frame %ld bits, alloting %ld [%ld..%ld] (%ld)", + (long)next_chunk_bits, (long)oldpd->moved, + (long)oldpd->nboff, (long)oldpd->nbits, + (long)(oldpd->nbits - oldpd->nboff)); + } else { + pd->nbits = oldpd->nbits; + arg->unclaimed = next_chunk_bits - avail; + ASN_DEBUG("!-Parent frame %ld, require %ld, will claim %ld", + (long)avail, (long)next_chunk_bits, + (long)arg->unclaimed); + } + pd->buffer = oldpd->buffer; + pd->nboff = oldpd->nboff; + ASN_DEBUG("Refilled pd%s old%s", + asn_bit_data_string(pd), asn_bit_data_string(oldpd)); + return 0; +} + +static int +per_skip_bits(asn_per_data_t *pd, int skip_nbits) { + int hasNonZeroBits = 0; + while(skip_nbits > 0) { + int skip; + + /* per_get_few_bits() is more efficient when nbits <= 24 */ + if(skip_nbits < 24) + skip = skip_nbits; + else + skip = 24; + skip_nbits -= skip; + + switch(per_get_few_bits(pd, skip)) { + case -1: return -1; /* Starving */ + case 0: continue; /* Skipped empty space */ + default: hasNonZeroBits = 1; continue; + } + } + return hasNonZeroBits; +} diff --git a/e2sim/asn1c/uper_opentype.h b/e2sim/asn1c/uper_opentype.h new file mode 100644 index 0000000..3a24822 --- /dev/null +++ b/e2sim/asn1c/uper_opentype.h @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2007-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _UPER_OPENTYPE_H_ +#define _UPER_OPENTYPE_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +asn_dec_rval_t uper_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd); + +int uper_open_type_skip(const asn_codec_ctx_t *opt_codec_ctx, + asn_per_data_t *pd); + +/* + * X.691 (2015/08), #11.2 + * Returns -1 if error is encountered. 0 if all OK. + */ +int uper_open_type_put(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po); + +#ifdef __cplusplus +} +#endif + +#endif /* _UPER_OPENTYPE_H_ */ diff --git a/e2sim/asn1c/uper_support.c b/e2sim/asn1c/uper_support.c new file mode 100644 index 0000000..ce8adc5 --- /dev/null +++ b/e2sim/asn1c/uper_support.c @@ -0,0 +1,311 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * X.691-201508 #10.9 General rules for encoding a length determinant. + * Get the optionally constrained length "n" from the stream. + */ +ssize_t +uper_get_length(asn_per_data_t *pd, int ebits, size_t lower_bound, + int *repeat) { + ssize_t value; + + *repeat = 0; + + /* #11.9.4.1 Encoding if constrained (according to effective bits) */ + if(ebits >= 0 && ebits <= 16) { + value = per_get_few_bits(pd, ebits); + if(value >= 0) value += lower_bound; + return value; + } + + value = per_get_few_bits(pd, 8); + if((value & 0x80) == 0) { /* #11.9.3.6 */ + return (value & 0x7F); + } else if((value & 0x40) == 0) { /* #11.9.3.7 */ + /* bit 8 ... set to 1 and bit 7 ... set to zero */ + value = ((value & 0x3f) << 8) | per_get_few_bits(pd, 8); + return value; /* potential -1 from per_get_few_bits passes through. */ + } else if(value < 0) { + ASN_DEBUG("END of stream reached for PER"); + return -1; + } + value &= 0x3f; /* this is "m" from X.691, #11.9.3.8 */ + if(value < 1 || value > 4) { + return -1; /* Prohibited by #11.9.3.8 */ + } + *repeat = 1; + return (16384 * value); +} + +/* + * Get the normally small length "n". + * This procedure used to decode length of extensions bit-maps + * for SET and SEQUENCE types. + */ +ssize_t +uper_get_nslength(asn_per_data_t *pd) { + ssize_t length; + + ASN_DEBUG("Getting normally small length"); + + if(per_get_few_bits(pd, 1) == 0) { + length = per_get_few_bits(pd, 6) + 1; + if(length <= 0) return -1; + ASN_DEBUG("l=%d", (int)length); + return length; + } else { + int repeat; + length = uper_get_length(pd, -1, 0, &repeat); + if(length >= 0 && !repeat) return length; + return -1; /* Error, or do not support >16K extensions */ + } +} + +/* + * Get the normally small non-negative whole number. + * X.691, #10.6 + */ +ssize_t +uper_get_nsnnwn(asn_per_data_t *pd) { + ssize_t value; + + value = per_get_few_bits(pd, 7); + if(value & 64) { /* implicit (value < 0) */ + value &= 63; + value <<= 2; + value |= per_get_few_bits(pd, 2); + if(value & 128) /* implicit (value < 0) */ + return -1; + if(value == 0) + return 0; + if(value >= 3) + return -1; + value = per_get_few_bits(pd, 8 * value); + return value; + } + + return value; +} + +/* + * X.691-11/2008, #11.6 + * Encoding of a normally small non-negative whole number + */ +int +uper_put_nsnnwn(asn_per_outp_t *po, int n) { + int bytes; + + if(n <= 63) { + if(n < 0) return -1; + return per_put_few_bits(po, n, 7); + } + if(n < 256) + bytes = 1; + else if(n < 65536) + bytes = 2; + else if(n < 256 * 65536) + bytes = 3; + else + return -1; /* This is not a "normally small" value */ + if(per_put_few_bits(po, bytes, 8)) + return -1; + + return per_put_few_bits(po, n, 8 * bytes); +} + + +/* X.691-2008/11, #11.5.6 -> #11.3 */ +int uper_get_constrained_whole_number(asn_per_data_t *pd, uintmax_t *out_value, int nbits) { + uintmax_t lhalf; /* Lower half of the number*/ + intmax_t half; + + if(nbits <= 31) { + half = per_get_few_bits(pd, nbits); + if(half < 0) return -1; + *out_value = half; + return 0; + } + + if((size_t)nbits > 8 * sizeof(*out_value)) + return -1; /* RANGE */ + + half = per_get_few_bits(pd, 31); + if(half < 0) return -1; + + if(uper_get_constrained_whole_number(pd, &lhalf, nbits - 31)) + return -1; + + *out_value = ((uintmax_t)half << (nbits - 31)) | lhalf; + return 0; +} + + +/* X.691-2008/11, #11.5.6 -> #11.3 */ +int +uper_put_constrained_whole_number_u(asn_per_outp_t *po, uintmax_t v, + int nbits) { + if(nbits <= 31) { + return per_put_few_bits(po, v, nbits); + } else { + /* Put higher portion first, followed by lower 31-bit */ + if(uper_put_constrained_whole_number_u(po, v >> 31, nbits - 31)) + return -1; + return per_put_few_bits(po, v, 31); + } +} + +/* + * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" + * Put the length "n" (or part of it) into the stream. + */ +ssize_t +uper_put_length(asn_per_outp_t *po, size_t length, int *need_eom) { + int dummy = 0; + if(!need_eom) need_eom = &dummy; + + if(length <= 127) { /* #11.9.3.6 */ + *need_eom = 0; + return per_put_few_bits(po, length, 8) + ? -1 : (ssize_t)length; + } else if(length < 16384) { /* #10.9.3.7 */ + *need_eom = 0; + return per_put_few_bits(po, length|0x8000, 16) + ? -1 : (ssize_t)length; + } + + *need_eom = 0 == (length & 16383); + length >>= 14; + if(length > 4) { + *need_eom = 0; + length = 4; + } + + return per_put_few_bits(po, 0xC0 | length, 8) + ? -1 : (ssize_t)(length << 14); + +} + + +/* + * Put the normally small length "n" into the stream. + * This procedure used to encode length of extensions bit-maps + * for SET and SEQUENCE types. + */ +int +uper_put_nslength(asn_per_outp_t *po, size_t length) { + if(length <= 64) { + /* #11.9.3.4 */ + if(length == 0) return -1; + return per_put_few_bits(po, length - 1, 7) ? -1 : 0; + } else { + int need_eom = 0; + if(uper_put_length(po, length, &need_eom) != (ssize_t)length + || need_eom) { + /* This might happen in case of >16K extensions */ + return -1; + } + } + + return 0; +} + +static int +per__imax_range(intmax_t lb, intmax_t ub, uintmax_t *range_r) { + uintmax_t bounds_range; + if((ub < 0) == (lb < 0)) { + bounds_range = ub - lb; + } else if(lb < 0) { + assert(ub >= 0); + bounds_range = 1 + ((uintmax_t)ub + (uintmax_t)-(lb + 1)); + } else { + assert(!"Unreachable"); + return -1; + } + *range_r = bounds_range; + return 0; +} + +int +per_imax_range_rebase(intmax_t v, intmax_t lb, intmax_t ub, uintmax_t *output) { + uintmax_t range; + + assert(lb <= ub); + + if(v < lb || v > ub || per__imax_range(lb, ub, &range) < 0) { + /* Range error. */ + return -1; + } + + /* + * Fundamentally what we're doing is returning (v-lb). + * However, this triggers undefined behavior when the word width + * of signed (v) is the same as the size of unsigned (*output). + * In practice, it triggers the UndefinedSanitizer. Therefore we shall + * compute the ranges accurately to avoid C's undefined behavior. + */ + if((v < 0) == (lb < 0)) { + *output = v-lb; + return 0; + } else if(v < 0) { + uintmax_t rebased = 1 + (uintmax_t)-(v+1) + (uintmax_t)lb; + assert(rebased <= range); /* By construction */ + *output = rebased; + return 0; + } else if(lb < 0) { + uintmax_t rebased = 1 + (uintmax_t)-(lb+1) + (uintmax_t)v; + assert(rebased <= range); /* By construction */ + *output = rebased; + return 0; + } else { + assert(!"Unreachable"); + return -1; + } +} + +int +per_long_range_rebase(long v, intmax_t lb, intmax_t ub, unsigned long *output) { + uintmax_t tmp = *output; + int rc = per_imax_range_rebase((intmax_t)v, lb, ub, &tmp); + *output = tmp; + return rc; +} + +int +per_imax_range_unrebase(uintmax_t inp, intmax_t lb, intmax_t ub, intmax_t *outp) { + uintmax_t range; + + if(per__imax_range(lb, ub, &range) != 0) { + return -1; + } + + if(inp > range) { + /* + * We can encode something in the given number of bits that technically + * exceeds the range. This is an avenue for security errors, + * so we don't allow that. + */ + return -1; + } + + if(inp <= INTMAX_MAX) { + *outp = (intmax_t)inp + lb; + } else { + *outp = (lb + INTMAX_MAX + 1) + (intmax_t)((inp - INTMAX_MAX) - 1); + } + + return 0; +} + +int +per_long_range_unrebase(unsigned long inp, intmax_t lb, intmax_t ub, long *outp) { + intmax_t tmp = *outp; + int rc = per_imax_range_unrebase((uintmax_t)inp, lb, ub, &tmp); + *outp = tmp; + return rc; +} diff --git a/e2sim/asn1c/uper_support.h b/e2sim/asn1c/uper_support.h new file mode 100644 index 0000000..6c9d4ea --- /dev/null +++ b/e2sim/asn1c/uper_support.h @@ -0,0 +1,77 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _UPER_SUPPORT_H_ +#define _UPER_SUPPORT_H_ + +#include /* Platform-specific types */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" + * Get the length "n" from the Unaligned PER stream. + */ +ssize_t uper_get_length(asn_per_data_t *pd, int effective_bound_bits, + size_t lower_bound, int *repeat); + +/* + * Get the normally small length "n". + */ +ssize_t uper_get_nslength(asn_per_data_t *pd); + +/* + * Get the normally small non-negative whole number. + */ +ssize_t uper_get_nsnnwn(asn_per_data_t *pd); + +/* X.691-2008/11, #11.5.6 */ +int uper_get_constrained_whole_number(asn_per_data_t *pd, uintmax_t *v, int nbits); + +/* + * Rebase the given value as an offset into the range specified by the + * lower bound (lb) and upper bound (ub). + * RETURN VALUES: + * -1: Conversion failed due to range problems. + * 0: Conversion was successful. + */ +int per_long_range_rebase(long, intmax_t lb, intmax_t ub, unsigned long *output); +int per_imax_range_rebase(intmax_t v, intmax_t lb, intmax_t ub, uintmax_t *output); +/* The inverse operation: restores the value by the offset and its bounds. */ +int per_long_range_unrebase(unsigned long inp, intmax_t lb, intmax_t ub, long *outp); +int per_imax_range_unrebase(uintmax_t inp, intmax_t lb, intmax_t ub, intmax_t *outp); + +/* X.691-2008/11, #11.5 */ +int uper_put_constrained_whole_number_u(asn_per_outp_t *po, uintmax_t v, int nbits); + +/* + * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" + * Put the length "whole_length" to the Unaligned PER stream. + * If (opt_need_eom) is given, it will be set to 1 if final 0-length is needed. + * In that case, invoke uper_put_length(po, 0, 0) after encoding the last block. + * This function returns the number of units which may be flushed + * in the next units saving iteration. + */ +ssize_t uper_put_length(asn_per_outp_t *po, size_t whole_length, + int *opt_need_eom); + +/* + * Put the normally small length "n" to the Unaligned PER stream. + * Returns 0 or -1. + */ +int uper_put_nslength(asn_per_outp_t *po, size_t length); + +/* + * Put the normally small non-negative whole number. + */ +int uper_put_nsnnwn(asn_per_outp_t *po, int n); + +#ifdef __cplusplus +} +#endif + +#endif /* _UPER_SUPPORT_H_ */ diff --git a/e2sim/asn1c/xer_decoder.c b/e2sim/asn1c/xer_decoder.c new file mode 100644 index 0000000..2a14557 --- /dev/null +++ b/e2sim/asn1c/xer_decoder.c @@ -0,0 +1,369 @@ +/* + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include /* XER/XML parsing support */ + + +/* + * Decode the XER encoding of a given type. + */ +asn_dec_rval_t +xer_decode(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **struct_ptr, + const void *buffer, size_t size) { + asn_codec_ctx_t s_codec_ctx; + + /* + * Stack checker requires that the codec context + * must be allocated on the stack. + */ + if(opt_codec_ctx) { + if(opt_codec_ctx->max_stack_size) { + s_codec_ctx = *opt_codec_ctx; + opt_codec_ctx = &s_codec_ctx; + } + } else { + /* If context is not given, be security-conscious anyway */ + memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); + s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; + opt_codec_ctx = &s_codec_ctx; + } + + /* + * Invoke type-specific decoder. + */ + return td->op->xer_decoder(opt_codec_ctx, td, struct_ptr, 0, buffer, size); +} + + + +struct xer__cb_arg { + pxml_chunk_type_e chunk_type; + size_t chunk_size; + const void *chunk_buf; + int callback_not_invoked; +}; + +static int +xer__token_cb(pxml_chunk_type_e type, const void *_chunk_data, size_t _chunk_size, void *key) { + struct xer__cb_arg *arg = (struct xer__cb_arg *)key; + arg->chunk_type = type; + arg->chunk_size = _chunk_size; + arg->chunk_buf = _chunk_data; + arg->callback_not_invoked = 0; + return -1; /* Terminate the XML parsing */ +} + +/* + * Fetch the next token from the XER/XML stream. + */ +ssize_t +xer_next_token(int *stateContext, const void *buffer, size_t size, pxer_chunk_type_e *ch_type) { + struct xer__cb_arg arg; + int new_stateContext = *stateContext; + ssize_t ret; + + arg.callback_not_invoked = 1; + ret = pxml_parse(&new_stateContext, buffer, size, xer__token_cb, &arg); + if(ret < 0) return -1; + if(arg.callback_not_invoked) { + assert(ret == 0); /* No data was consumed */ + *ch_type = PXER_WMORE; + return 0; /* Try again with more data */ + } else { + assert(arg.chunk_size); + assert(arg.chunk_buf == buffer); + } + + /* + * Translate the XML chunk types into more convenient ones. + */ + switch(arg.chunk_type) { + case PXML_TEXT: + *ch_type = PXER_TEXT; + break; + case PXML_TAG: + *ch_type = PXER_WMORE; + return 0; /* Want more */ + case PXML_TAG_END: + *ch_type = PXER_TAG; + break; + case PXML_COMMENT: + case PXML_COMMENT_END: + *ch_type = PXER_COMMENT; + break; + } + + *stateContext = new_stateContext; + return arg.chunk_size; +} + +#define CSLASH 0x2f /* '/' */ +#define LANGLE 0x3c /* '<' */ +#define RANGLE 0x3e /* '>' */ + +xer_check_tag_e +xer_check_tag(const void *buf_ptr, int size, const char *need_tag) { + const char *buf = (const char *)buf_ptr; + const char *end; + xer_check_tag_e ct = XCT_OPENING; + + if(size < 2 || buf[0] != LANGLE || buf[size-1] != RANGLE) { + if(size >= 2) + ASN_DEBUG("Broken XML tag: \"%c...%c\"", + buf[0], buf[size - 1]); + return XCT_BROKEN; + } + + /* + * Determine the tag class. + */ + if(buf[1] == CSLASH) { + buf += 2; /* advance past "" */ + ct = XCT_CLOSING; + if(size > 0 && buf[size-1] == CSLASH) + return XCT_BROKEN; /* */ + } else { + buf++; /* advance past "<" */ + size -= 2; /* strip "<" and ">" */ + if(size > 0 && buf[size-1] == CSLASH) { + ct = XCT_BOTH; + size--; /* One more, for "/" */ + } + } + + /* Sometimes we don't care about the tag */ + if(!need_tag || !*need_tag) + return (xer_check_tag_e)(XCT__UNK__MASK | ct); + + /* + * Determine the tag name. + */ + for(end = buf + size; buf < end; buf++, need_tag++) { + int b = *buf, n = *need_tag; + if(b != n) { + if(n == 0) { + switch(b) { + case 0x09: case 0x0a: case 0x0c: case 0x0d: + case 0x20: + /* "": whitespace is normal */ + return ct; + } + } + return (xer_check_tag_e)(XCT__UNK__MASK | ct); + } + if(b == 0) + return XCT_BROKEN; /* Embedded 0 in buf?! */ + } + if(*need_tag) + return (xer_check_tag_e)(XCT__UNK__MASK | ct); + + return ct; +} + + +#undef ADVANCE +#define ADVANCE(num_bytes) do { \ + size_t num = (num_bytes); \ + buf_ptr = ((const char *)buf_ptr) + num; \ + size -= num; \ + consumed_myself += num; \ + } while(0) + +#undef RETURN +#define RETURN(_code) do { \ + rval.code = _code; \ + rval.consumed = consumed_myself; \ + if(rval.code != RC_OK) \ + ASN_DEBUG("Failed with %d", rval.code); \ + return rval; \ + } while(0) + +#define XER_GOT_BODY(chunk_buf, chunk_size, size) do { \ + ssize_t converted_size = body_receiver \ + (struct_key, chunk_buf, chunk_size, \ + (size_t)chunk_size < size); \ + if(converted_size == -1) RETURN(RC_FAIL); \ + if(converted_size == 0 \ + && size == (size_t)chunk_size) \ + RETURN(RC_WMORE); \ + chunk_size = converted_size; \ + } while(0) +#define XER_GOT_EMPTY() do { \ + if(body_receiver(struct_key, 0, 0, size > 0) == -1) \ + RETURN(RC_FAIL); \ + } while(0) + +/* + * Generalized function for decoding the primitive values. + */ +asn_dec_rval_t +xer_decode_general(const asn_codec_ctx_t *opt_codec_ctx, + asn_struct_ctx_t *ctx, /* Type decoder context */ + void *struct_key, + const char *xml_tag, /* Expected XML tag */ + const void *buf_ptr, size_t size, + int (*opt_unexpected_tag_decoder) + (void *struct_key, const void *chunk_buf, size_t chunk_size), + ssize_t (*body_receiver) + (void *struct_key, const void *chunk_buf, size_t chunk_size, + int have_more) + ) { + + asn_dec_rval_t rval; + ssize_t consumed_myself = 0; + + (void)opt_codec_ctx; + + /* + * Phases of XER/XML processing: + * Phase 0: Check that the opening tag matches our expectations. + * Phase 1: Processing body and reacting on closing tag. + */ + if(ctx->phase > 1) RETURN(RC_FAIL); + for(;;) { + pxer_chunk_type_e ch_type; /* XER chunk type */ + ssize_t ch_size; /* Chunk size */ + xer_check_tag_e tcv; /* Tag check value */ + + /* + * Get the next part of the XML stream. + */ + ch_size = xer_next_token(&ctx->context, buf_ptr, size, + &ch_type); + if(ch_size == -1) { + RETURN(RC_FAIL); + } else { + switch(ch_type) { + case PXER_WMORE: + RETURN(RC_WMORE); + case PXER_COMMENT: /* Got XML comment */ + ADVANCE(ch_size); /* Skip silently */ + continue; + case PXER_TEXT: + if(ctx->phase == 0) { + /* + * We have to ignore whitespace here, + * but in order to be forward compatible + * with EXTENDED-XER (EMBED-VALUES, #25) + * any text is just ignored here. + */ + } else { + XER_GOT_BODY(buf_ptr, ch_size, size); + } + ADVANCE(ch_size); + continue; + case PXER_TAG: + break; /* Check the rest down there */ + } + } + + assert(ch_type == PXER_TAG && size); + + tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); + /* + * Phase 0: + * Expecting the opening tag + * for the type being processed. + * Phase 1: + * Waiting for the closing XML tag. + */ + switch(tcv) { + case XCT_BOTH: + if(ctx->phase) break; + /* Finished decoding of an empty element */ + XER_GOT_EMPTY(); + ADVANCE(ch_size); + ctx->phase = 2; /* Phase out */ + RETURN(RC_OK); + case XCT_OPENING: + if(ctx->phase) break; + ADVANCE(ch_size); + ctx->phase = 1; /* Processing body phase */ + continue; + case XCT_CLOSING: + if(!ctx->phase) break; + ADVANCE(ch_size); + ctx->phase = 2; /* Phase out */ + RETURN(RC_OK); + case XCT_UNKNOWN_BO: + /* + * Certain tags in the body may be expected. + */ + if(opt_unexpected_tag_decoder + && opt_unexpected_tag_decoder(struct_key, + buf_ptr, ch_size) >= 0) { + /* Tag's processed fine */ + ADVANCE(ch_size); + if(!ctx->phase) { + /* We are not expecting + * the closing tag anymore. */ + ctx->phase = 2; /* Phase out */ + RETURN(RC_OK); + } + continue; + } + /* Fall through */ + default: + break; /* Unexpected tag */ + } + + ASN_DEBUG("Unexpected XML tag (expected \"%s\")", xml_tag); + break; /* Dark and mysterious things have just happened */ + } + + RETURN(RC_FAIL); +} + + +size_t +xer_whitespace_span(const void *chunk_buf, size_t chunk_size) { + const char *p = (const char *)chunk_buf; + const char *pend = (p == NULL)? NULL : p + chunk_size; + + for(; p < pend; p++) { + switch(*p) { + /* X.693, #8.1.4 + * HORISONTAL TAB (9) + * LINE FEED (10) + * CARRIAGE RETURN (13) + * SPACE (32) + */ + case 0x09: case 0x0a: case 0x0d: case 0x20: + continue; + default: + break; + } + break; + } + return (p - (const char *)chunk_buf); +} + +/* + * This is a vastly simplified, non-validating XML tree skipper. + */ +int +xer_skip_unknown(xer_check_tag_e tcv, ber_tlv_len_t *depth) { + assert(*depth > 0); + switch(tcv) { + case XCT_BOTH: + case XCT_UNKNOWN_BO: + /* These negate each other. */ + return 0; + case XCT_OPENING: + case XCT_UNKNOWN_OP: + ++(*depth); + return 0; + case XCT_CLOSING: + case XCT_UNKNOWN_CL: + if(--(*depth) == 0) + return (tcv == XCT_CLOSING) ? 2 : 1; + return 0; + default: + return -1; + } +} diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/xer_decoder.h b/e2sim/asn1c/xer_decoder.h similarity index 100% rename from e2sim/e2sm_examples/kpm_e2sm/ASN1c/xer_decoder.h rename to e2sim/asn1c/xer_decoder.h diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/xer_encoder.c b/e2sim/asn1c/xer_encoder.c similarity index 100% rename from e2sim/e2sm_examples/kpm_e2sm/ASN1c/xer_encoder.c rename to e2sim/asn1c/xer_encoder.c diff --git a/e2sim/asn1c/xer_encoder.h b/e2sim/asn1c/xer_encoder.h new file mode 100644 index 0000000..6cfc505 --- /dev/null +++ b/e2sim/asn1c/xer_encoder.h @@ -0,0 +1,83 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _XER_ENCODER_H_ +#define _XER_ENCODER_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* Flags used by the xer_encode() and (*xer_type_encoder_f), defined below */ +enum xer_encoder_flags_e { + /* Mode of encoding */ + XER_F_BASIC = 0x01, /* BASIC-XER (pretty-printing) */ + XER_F_CANONICAL = 0x02 /* Canonical XER (strict rules) */ +}; + +/* + * The XER encoder of any type. May be invoked by the application. + * Produces CANONICAL-XER and BASIC-XER depending on the (xer_flags). + */ +asn_enc_rval_t xer_encode(const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, /* Structure to be encoded */ + enum xer_encoder_flags_e xer_flags, + asn_app_consume_bytes_f *consume_bytes_cb, + void *app_key /* Arbitrary callback argument */ +); + +/* + * The variant of the above function which dumps the BASIC-XER (XER_F_BASIC) + * output into the chosen file pointer. + * RETURN VALUES: + * 0: The structure is printed. + * -1: Problem printing the structure. + * WARNING: No sensible errno value is returned. + */ +int xer_fprint(FILE *stream, const struct asn_TYPE_descriptor_s *td, + const void *struct_ptr); + +/* + * A helper function that uses XER encoding/decoding to verify that: + * - Both structures encode into the same BASIC XER. + * - Both resulting XER byte streams can be decoded back. + * - Both decoded structures encode into the same BASIC XER (round-trip). + * All of this verifies equivalence between structures and a round-trip. + * ARGUMENTS: + * (opt_debug_stream) - If specified, prints ongoing details. + */ +enum xer_equivalence_e { + XEQ_SUCCESS, /* The only completely positive return value */ + XEQ_FAILURE, /* General failure */ + XEQ_ENCODE1_FAILED, /* First structure XER encoding failed */ + XEQ_ENCODE2_FAILED, /* Second structure XER encoding failed */ + XEQ_DIFFERENT, /* Structures encoded into different XER */ + XEQ_DECODE_FAILED, /* Decode of the XER data failed */ + XEQ_ROUND_TRIP_FAILED /* Bad round-trip */ +}; +enum xer_equivalence_e xer_equivalent( + const struct asn_TYPE_descriptor_s *type_descriptor, const void *struct1, + const void *struct2, FILE *opt_debug_stream); + +/* + * Type of the generic XER encoder. + */ +typedef asn_enc_rval_t(xer_type_encoder_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, /* Structure to be encoded */ + int ilevel, /* Level of indentation */ + enum xer_encoder_flags_e xer_flags, + asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */ + void *app_key /* Arbitrary callback argument */ +); + +#ifdef __cplusplus +} +#endif + +#endif /* _XER_ENCODER_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/xer_support.c b/e2sim/asn1c/xer_support.c similarity index 100% rename from e2sim/e2sm_examples/kpm_e2sm/ASN1c/xer_support.c rename to e2sim/asn1c/xer_support.c diff --git a/e2sim/asn1c/xer_support.h b/e2sim/asn1c/xer_support.h new file mode 100644 index 0000000..2c3f369 --- /dev/null +++ b/e2sim/asn1c/xer_support.h @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2003, 2004 X/IO Labs, xiolabs.com. + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _XER_SUPPORT_H_ +#define _XER_SUPPORT_H_ + +#include /* Platform-specific types */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Types of data transferred to the application. + */ +typedef enum { + PXML_TEXT, /* Plain text between XML tags. */ + PXML_TAG, /* A tag, starting with '<'. */ + PXML_COMMENT, /* An XML comment, including "". */ + /* + * The following chunk types are reported if the chunk + * terminates the specified XML element. + */ + PXML_TAG_END, /* Tag ended */ + PXML_COMMENT_END /* Comment ended */ +} pxml_chunk_type_e; + +/* + * Callback function that is called by the parser when parsed data is + * available. The _opaque is the pointer to a field containing opaque user + * data specified in pxml_create() call. The chunk type is _type and the text + * data is the piece of buffer identified by _bufid (as supplied to + * pxml_feed() call) starting at offset _offset and of _size bytes size. + * The chunk is NOT '\0'-terminated. + */ +typedef int (pxml_callback_f)(pxml_chunk_type_e _type, + const void *_chunk_data, size_t _chunk_size, void *_key); + +/* + * Parse the given buffer as it were a chunk of XML data. + * Invoke the specified callback each time the meaningful data is found. + * This function returns number of bytes consumed from the buffer. + * It will always be lesser than or equal to the specified _size. + * The next invocation of this function must account the difference. + */ +ssize_t pxml_parse(int *_stateContext, const void *_buf, size_t _size, + pxml_callback_f *cb, void *_key); + +#ifdef __cplusplus +} +#endif + +#endif /* _XER_SUPPORT_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ANY.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ANY.c deleted file mode 100644 index 0b81557..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ANY.c +++ /dev/null @@ -1,450 +0,0 @@ -/* - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -asn_OCTET_STRING_specifics_t asn_SPC_ANY_specs = { - sizeof(ANY_t), - offsetof(ANY_t, _asn_ctx), - ASN_OSUBV_ANY -}; -asn_TYPE_operation_t asn_OP_ANY = { - OCTET_STRING_free, - OCTET_STRING_print, - OCTET_STRING_compare, - OCTET_STRING_decode_ber, - OCTET_STRING_encode_der, - OCTET_STRING_decode_xer_hex, - ANY_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - 0, - 0, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, 0, 0, 0, -#else - ANY_decode_uper, - ANY_encode_uper, - ANY_decode_aper, - ANY_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - 0, /* Random fill is not defined for ANY type */ - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_ANY = { - "ANY", - "ANY", - &asn_OP_ANY, - 0, 0, 0, 0, - { 0, 0, asn_generic_no_constraint }, /* No constraints */ - 0, 0, /* No members */ - &asn_SPC_ANY_specs, -}; - -#undef RETURN -#define RETURN(_code) \ - do { \ - asn_dec_rval_t tmprval; \ - tmprval.code = _code; \ - tmprval.consumed = consumed_myself; \ - return tmprval; \ - } while(0) - -asn_enc_rval_t -ANY_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, - void *app_key) { - if(flags & XER_F_CANONICAL) { - /* - * Canonical XER-encoding of ANY type is not supported. - */ - ASN__ENCODE_FAILED; - } - - /* Dump as binary */ - return OCTET_STRING_encode_xer(td, sptr, ilevel, flags, cb, app_key); -} - -struct _callback_arg { - uint8_t *buffer; - size_t offset; - size_t size; -}; - -static int ANY__consume_bytes(const void *buffer, size_t size, void *key); - -int -ANY_fromType(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr) { - struct _callback_arg arg; - asn_enc_rval_t erval = {0,0,0}; - - if(!st || !td) { - errno = EINVAL; - return -1; - } - - if(!sptr) { - if(st->buf) FREEMEM(st->buf); - st->size = 0; - return 0; - } - - arg.offset = arg.size = 0; - arg.buffer = 0; - - erval = der_encode(td, sptr, ANY__consume_bytes, &arg); - if(erval.encoded == -1) { - if(arg.buffer) FREEMEM(arg.buffer); - return -1; - } - assert((size_t)erval.encoded == arg.offset); - - if(st->buf) FREEMEM(st->buf); - st->buf = arg.buffer; - st->size = arg.offset; - - return 0; -} - -int -ANY_fromType_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr) { - uint8_t *buffer = NULL; - ssize_t erval; - - if(!st || !td) { - errno = EINVAL; - return -1; - } - - if(!sptr) { - if(st->buf) FREEMEM(st->buf); - st->size = 0; - return 0; - } - - erval = aper_encode_to_new_buffer(td, td->encoding_constraints.per_constraints, sptr, (void**)&buffer); - - if(erval == -1) { - if(buffer) FREEMEM(buffer); - return -1; - } - assert((size_t)erval > 0); - - if(st->buf) FREEMEM(st->buf); - st->buf = buffer; - st->size = erval; - - return 0; -} - -ANY_t * -ANY_new_fromType(asn_TYPE_descriptor_t *td, void *sptr) { - ANY_t tmp; - ANY_t *st; - - if(!td || !sptr) { - errno = EINVAL; - return 0; - } - - memset(&tmp, 0, sizeof(tmp)); - - if(ANY_fromType(&tmp, td, sptr)) return 0; - - st = (ANY_t *)CALLOC(1, sizeof(ANY_t)); - if(st) { - *st = tmp; - return st; - } else { - FREEMEM(tmp.buf); - return 0; - } -} - -ANY_t * -ANY_new_fromType_aper(asn_TYPE_descriptor_t *td, void *sptr) { - ANY_t tmp; - ANY_t *st; - - if(!td || !sptr) { - errno = EINVAL; - return 0; - } - - memset(&tmp, 0, sizeof(tmp)); - - if(ANY_fromType_aper(&tmp, td, sptr)) return 0; - - st = (ANY_t *)CALLOC(1, sizeof(ANY_t)); - if(st) { - *st = tmp; - return st; - } else { - FREEMEM(tmp.buf); - return 0; - } -} - -int -ANY_to_type(ANY_t *st, asn_TYPE_descriptor_t *td, void **struct_ptr) { - asn_dec_rval_t rval; - void *newst = 0; - - if(!st || !td || !struct_ptr) { - errno = EINVAL; - return -1; - } - - if(st->buf == 0) { - /* Nothing to convert, make it empty. */ - *struct_ptr = (void *)0; - return 0; - } - - rval = ber_decode(0, td, (void **)&newst, st->buf, st->size); - if(rval.code == RC_OK) { - *struct_ptr = newst; - return 0; - } else { - /* Remove possibly partially decoded data. */ - ASN_STRUCT_FREE(*td, newst); - return -1; - } -} - -int -ANY_to_type_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void **struct_ptr) { - asn_dec_rval_t rval; - void *newst = 0; - - if(!st || !td || !struct_ptr) { - errno = EINVAL; - return -1; - } - - if(st->buf == 0) { - /* Nothing to convert, make it empty. */ - *struct_ptr = (void *)0; - return 0; - } - - rval = aper_decode(0, td, (void **)&newst, st->buf, st->size, 0, 0); - if(rval.code == RC_OK) { - *struct_ptr = newst; - return 0; - } else { - /* Remove possibly partially decoded data. */ - ASN_STRUCT_FREE(*td, newst); - return -1; - } -} - -static int ANY__consume_bytes(const void *buffer, size_t size, void *key) { - struct _callback_arg *arg = (struct _callback_arg *)key; - - if((arg->offset + size) >= arg->size) { - size_t nsize = (arg->size ? arg->size << 2 : 16) + size; - void *p = REALLOC(arg->buffer, nsize); - if(!p) return -1; - arg->buffer = (uint8_t *)p; - arg->size = nsize; - } - - memcpy(arg->buffer + arg->offset, buffer, size); - arg->offset += size; - assert(arg->offset < arg->size); - - return 0; -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -ANY_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_ANY_specs; - size_t consumed_myself = 0; - int repeat; - ANY_t *st = (ANY_t *)*sptr; - - (void)opt_codec_ctx; - (void)constraints; - - /* - * Allocate the structure. - */ - if(!st) { - st = (ANY_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("UPER Decoding ANY type"); - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - ssize_t len_bits; - void *p; - int ret; - - /* Get the PER length */ - raw_len = uper_get_length(pd, -1, 0, &repeat); - if(raw_len < 0) RETURN(RC_WMORE); - if(raw_len == 0 && st->buf) break; - - ASN_DEBUG("Got PER length len %" ASN_PRI_SIZE ", %s (%s)", raw_len, - repeat ? "repeat" : "once", td->name); - len_bytes = raw_len; - len_bits = len_bytes * 8; - - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += len_bits; - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - RETURN(RC_OK); -} - -asn_enc_rval_t -ANY_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const ANY_t *st = (const ANY_t *)sptr; - asn_enc_rval_t er = {0, 0, 0}; - const uint8_t *buf; - size_t size; - int ret; - - (void)constraints; - - if(!st || (!st->buf && st->size)) ASN__ENCODE_FAILED; - - buf = st->buf; - size = st->size; - do { - int need_eom = 0; - ssize_t may_save = uper_put_length(po, size, &need_eom); - if(may_save < 0) ASN__ENCODE_FAILED; - - ret = per_put_many_bits(po, buf, may_save * 8); - if(ret) ASN__ENCODE_FAILED; - - buf += may_save; - size -= may_save; - assert(!(may_save & 0x07) || !size); - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - } while(size); - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -ANY_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_ANY_specs; - size_t consumed_myself = 0; - int repeat; - ANY_t *st = (ANY_t *)*sptr; - - (void)opt_codec_ctx; - (void)constraints; - - /* - * Allocate the structure. - */ - if(!st) { - st = (ANY_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("APER Decoding ANY type"); - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - ssize_t len_bits; - void *p; - int ret; - - /* Get the PER length */ - raw_len = aper_get_length(pd, -1, 0, &repeat); - if(raw_len < 0) RETURN(RC_WMORE); - if(raw_len == 0 && st->buf) break; - - ASN_DEBUG("Got PER length len %" ASN_PRI_SIZE ", %s (%s)", raw_len, - repeat ? "repeat" : "once", td->name); - len_bytes = raw_len; - len_bits = len_bytes * 8; - - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += len_bits; - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - RETURN(RC_OK); -} - -asn_enc_rval_t -ANY_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const ANY_t *st = (const ANY_t *)sptr; - asn_enc_rval_t er = {0, 0, 0}; - const uint8_t *buf; - size_t size; - int ret; - - (void)constraints; - - if(!st || (!st->buf && st->size)) ASN__ENCODE_FAILED; - - buf = st->buf; - size = st->size; - do { - int need_eom = 0; - ssize_t may_save = uper_put_length(po, size, &need_eom); - if(may_save < 0) ASN__ENCODE_FAILED; - - ret = per_put_many_bits(po, buf, may_save * 8); - if(ret) ASN__ENCODE_FAILED; - - buf += may_save; - size -= may_save; - assert(!(may_save & 0x07) || !size); - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - } while(size); - - ASN__ENCODED_OK(er); -} -#endif /* ASN_DISABLE_PER_SUPPORT */ - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ANY.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ANY.h deleted file mode 100644 index b30381f..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ANY.h +++ /dev/null @@ -1,65 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_TYPE_ANY_H -#define ASN_TYPE_ANY_H - -#include /* Implemented via OCTET STRING type */ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct ANY { - uint8_t *buf; /* BER-encoded ANY contents */ - int size; /* Size of the above buffer */ - - asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ -} ANY_t; - -extern asn_TYPE_descriptor_t asn_DEF_ANY; -extern asn_TYPE_operation_t asn_OP_ANY; -extern asn_OCTET_STRING_specifics_t asn_SPC_ANY_specs; - -asn_struct_free_f ANY_free; -asn_struct_print_f ANY_print; -ber_type_decoder_f ANY_decode_ber; -der_type_encoder_f ANY_encode_der; -xer_type_encoder_f ANY_encode_xer; -per_type_decoder_f ANY_decode_uper; -per_type_encoder_f ANY_encode_uper; -per_type_decoder_f ANY_decode_aper; -per_type_encoder_f ANY_encode_aper; - -#define ANY_free OCTET_STRING_free -#define ANY_print OCTET_STRING_print -#define ANY_compare OCTET_STRING_compare -#define ANY_constraint asn_generic_no_constraint -#define ANY_decode_ber OCTET_STRING_decode_ber -#define ANY_encode_der OCTET_STRING_encode_der -#define ANY_decode_xer OCTET_STRING_decode_xer_hex - -/****************************** - * Handy conversion routines. * - ******************************/ - -/* Convert another ASN.1 type into the ANY. This implies DER encoding. */ -int ANY_fromType(ANY_t *, asn_TYPE_descriptor_t *td, void *struct_ptr); -int ANY_fromType_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr); -ANY_t *ANY_new_fromType(asn_TYPE_descriptor_t *td, void *struct_ptr); -ANY_t *ANY_new_fromType_aper(asn_TYPE_descriptor_t *td, void *sptr); - -/* Convert the contents of the ANY type into the specified type. */ -int ANY_to_type(ANY_t *, asn_TYPE_descriptor_t *td, void **struct_ptr); -int ANY_to_type_aper(ANY_t *, asn_TYPE_descriptor_t *td, void **struct_ptr); - -#define ANY_fromBuf(s, buf, size) OCTET_STRING_fromBuf((s), (buf), (size)) -#define ANY_new_fromBuf(buf, size) OCTET_STRING_new_fromBuf( \ - &asn_DEF_ANY, (buf), (size)) - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_TYPE_ANY_H */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/BIT_STRING.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/BIT_STRING.c deleted file mode 100644 index e8d7354..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/BIT_STRING.c +++ /dev/null @@ -1,656 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * BIT STRING basic type description. - */ -static const ber_tlv_tag_t asn_DEF_BIT_STRING_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_OCTET_STRING_specifics_t asn_SPC_BIT_STRING_specs = { - sizeof(BIT_STRING_t), - offsetof(BIT_STRING_t, _asn_ctx), - ASN_OSUBV_BIT -}; -asn_TYPE_operation_t asn_OP_BIT_STRING = { - OCTET_STRING_free, /* Implemented in terms of OCTET STRING */ - BIT_STRING_print, - BIT_STRING_compare, - OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ - OCTET_STRING_encode_der, /* Implemented in terms of OCTET STRING */ - OCTET_STRING_decode_xer_binary, - BIT_STRING_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - BIT_STRING_decode_oer, - BIT_STRING_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - BIT_STRING_decode_uper, /* Unaligned PER decoder */ - BIT_STRING_encode_uper, /* Unaligned PER encoder */ - OCTET_STRING_decode_aper, /* Aligned PER decoder */ - OCTET_STRING_encode_aper, /* Aligned PER encoder */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - BIT_STRING_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_BIT_STRING = { - "BIT STRING", - "BIT_STRING", - &asn_OP_BIT_STRING, - asn_DEF_BIT_STRING_tags, - sizeof(asn_DEF_BIT_STRING_tags) - / sizeof(asn_DEF_BIT_STRING_tags[0]), - asn_DEF_BIT_STRING_tags, /* Same as above */ - sizeof(asn_DEF_BIT_STRING_tags) - / sizeof(asn_DEF_BIT_STRING_tags[0]), - { 0, 0, BIT_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs -}; - -/* - * BIT STRING generic constraint. - */ -int -BIT_STRING_constraint(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; - - if(st && st->buf) { - if((st->size == 0 && st->bits_unused) - || st->bits_unused < 0 || st->bits_unused > 7) { - ASN__CTFAIL(app_key, td, sptr, - "%s: invalid padding byte (%s:%d)", - td->name, __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; -} - -static const char *_bit_pattern[16] = { - "0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", - "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111" -}; - -asn_enc_rval_t -BIT_STRING_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t er = {0, 0, 0}; - char scratch[128]; - char *p = scratch; - char *scend = scratch + (sizeof(scratch) - 10); - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - int xcan = (flags & XER_F_CANONICAL); - uint8_t *buf; - uint8_t *end; - - if(!st || !st->buf) - ASN__ENCODE_FAILED; - - er.encoded = 0; - - buf = st->buf; - end = buf + st->size - 1; /* Last byte is special */ - - /* - * Binary dump - */ - for(; buf < end; buf++) { - int v = *buf; - int nline = xcan?0:(((buf - st->buf) % 8) == 0); - if(p >= scend || nline) { - ASN__CALLBACK(scratch, p - scratch); - p = scratch; - if(nline) ASN__TEXT_INDENT(1, ilevel); - } - memcpy(p + 0, _bit_pattern[v >> 4], 4); - memcpy(p + 4, _bit_pattern[v & 0x0f], 4); - p += 8; - } - - if(!xcan && ((buf - st->buf) % 8) == 0) - ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK(scratch, p - scratch); - p = scratch; - - if(buf == end) { - int v = *buf; - int ubits = st->bits_unused; - int i; - for(i = 7; i >= ubits; i--) - *p++ = (v & (1 << i)) ? 0x31 : 0x30; - ASN__CALLBACK(scratch, p - scratch); - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - - -/* - * BIT STRING specific contents printer. - */ -int -BIT_STRING_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - const char * const h2c = "0123456789ABCDEF"; - char scratch[64]; - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - uint8_t *buf; - uint8_t *end; - char *p = scratch; - - (void)td; /* Unused argument */ - - if(!st || !st->buf) - return (cb("", 8, app_key) < 0) ? -1 : 0; - - ilevel++; - buf = st->buf; - end = buf + st->size; - - /* - * Hexadecimal dump. - */ - for(; buf < end; buf++) { - if((buf - st->buf) % 16 == 0 && (st->size > 16) - && buf != st->buf) { - _i_INDENT(1); - /* Dump the string */ - if(cb(scratch, p - scratch, app_key) < 0) return -1; - p = scratch; - } - *p++ = h2c[*buf >> 4]; - *p++ = h2c[*buf & 0x0F]; - *p++ = 0x20; - } - - if(p > scratch) { - p--; /* Eat the tailing space */ - - if((st->size > 16)) { - _i_INDENT(1); - } - - /* Dump the incomplete 16-bytes row */ - if(cb(scratch, p - scratch, app_key) < 0) - return -1; - } - - if(st->bits_unused) { - int ret = snprintf(scratch, sizeof(scratch), " (%d bit%s unused)", - st->bits_unused, st->bits_unused == 1 ? "" : "s"); - assert(ret > 0 && ret < (ssize_t)sizeof(scratch)); - if(ret > 0 && ret < (ssize_t)sizeof(scratch) - && cb(scratch, ret, app_key) < 0) - return -1; - } - - return 0; -} - -/* - * Non-destructively remove the trailing 0-bits from the given bit string. - */ -static const BIT_STRING_t * -BIT_STRING__compactify(const BIT_STRING_t *st, BIT_STRING_t *tmp) { - const uint8_t *b; - union { - const uint8_t *c_buf; - uint8_t *nc_buf; - } unconst; - - if(st->size == 0) { - assert(st->bits_unused == 0); - return st; - } else { - for(b = &st->buf[st->size - 1]; b > st->buf && *b == 0; b--) { - ; - } - /* b points to the last byte which may contain data */ - if(*b) { - int unused = 7; - uint8_t v = *b; - v &= -(int8_t)v; - if(v & 0x0F) unused -= 4; - if(v & 0x33) unused -= 2; - if(v & 0x55) unused -= 1; - tmp->size = b-st->buf + 1; - tmp->bits_unused = unused; - } else { - tmp->size = b-st->buf; - tmp->bits_unused = 0; - } - - assert(b >= st->buf); - } - - unconst.c_buf = st->buf; - tmp->buf = unconst.nc_buf; - return tmp; -} - -/* - * Lexicographically compare the common prefix of both strings, - * and if it is the same return -1 for the smallest string. - */ -int -BIT_STRING_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - /* - * Remove information about trailing bits, since - * X.680 (08/2015) #22.7 "ensure that different semantics are not" - * "associated with [values that differ only in] the trailing 0 bits." - */ - BIT_STRING_t compact_a, compact_b; - const BIT_STRING_t *a = BIT_STRING__compactify(aptr, &compact_a); - const BIT_STRING_t *b = BIT_STRING__compactify(bptr, &compact_b); - const asn_OCTET_STRING_specifics_t *specs = td->specifics; - - assert(specs && specs->subvariant == ASN_OSUBV_BIT); - - if(a && b) { - size_t common_prefix_size = a->size <= b->size ? a->size : b->size; - int ret = memcmp(a->buf, b->buf, common_prefix_size); - if(ret == 0) { - /* Figure out which string with equal prefixes is longer. */ - if(a->size < b->size) { - return -1; - } else if(a->size > b->size) { - return 1; - } else { - /* Figure out how many unused bits */ - if(a->bits_unused > b->bits_unused) { - return -1; - } else if(a->bits_unused < b->bits_unused) { - return 1; - } else { - return 0; - } - } - } else { - return ret; - } - } else if(!a && !b) { - return 0; - } else if(!a) { - return -1; - } else { - return 1; - } -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -#undef RETURN -#define RETURN(_code) \ - do { \ - asn_dec_rval_t tmprval; \ - tmprval.code = _code; \ - tmprval.consumed = consumed_myself; \ - return tmprval; \ - } while(0) - -static asn_per_constraint_t asn_DEF_BIT_STRING_constraint_size = { - APC_SEMI_CONSTRAINED, -1, -1, 0, 0}; - -asn_dec_rval_t -BIT_STRING_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_BIT_STRING_specs; - const asn_per_constraints_t *pc = - constraints ? constraints : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *csiz; - asn_dec_rval_t rval = { RC_OK, 0 }; - BIT_STRING_t *st = (BIT_STRING_t *)*sptr; - ssize_t consumed_myself = 0; - int repeat; - - (void)opt_codec_ctx; - - if(pc) { - csiz = &pc->size; - } else { - csiz = &asn_DEF_BIT_STRING_constraint_size; - } - - if(specs->subvariant != ASN_OSUBV_BIT) { - ASN_DEBUG("Subvariant %d is not BIT OSUBV_BIT", specs->subvariant); - RETURN(RC_FAIL); - } - - /* - * Allocate the string. - */ - if(!st) { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d", - csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", - csiz->lower_bound, csiz->upper_bound, csiz->effective_bits); - - if(csiz->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) RETURN(RC_WMORE); - if(inext) { - csiz = &asn_DEF_BIT_STRING_constraint_size; - } - } - - if(csiz->effective_bits >= 0) { - FREEMEM(st->buf); - st->size = (csiz->upper_bound + 7) >> 3; - st->buf = (uint8_t *)MALLOC(st->size + 1); - if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } - } - - /* X.691, #16.5: zero-length encoding */ - /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ - /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ - if(csiz->effective_bits == 0) { - int ret; - ASN_DEBUG("Encoding BIT STRING size %ld", csiz->upper_bound); - ret = per_get_many_bits(pd, st->buf, 0, csiz->upper_bound); - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += csiz->upper_bound; - st->buf[st->size] = 0; - st->bits_unused = (8 - (csiz->upper_bound & 0x7)) & 0x7; - RETURN(RC_OK); - } - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - ssize_t len_bits; - void *p; - int ret; - - /* Get the PER length */ - raw_len = uper_get_length(pd, csiz->effective_bits, csiz->lower_bound, - &repeat); - if(raw_len < 0) RETURN(RC_WMORE); - if(raw_len == 0 && st->buf) break; - - ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", - (long)csiz->effective_bits, (long)raw_len, - repeat ? "repeat" : "once", td->name); - len_bits = raw_len; - len_bytes = (len_bits + 7) >> 3; - if(len_bits & 0x7) st->bits_unused = 8 - (len_bits & 0x7); - /* len_bits be multiple of 16K if repeat is set */ - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); - if(ret < 0) RETURN(RC_WMORE); - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - return rval; -} - -asn_enc_rval_t -BIT_STRING_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_BIT_STRING_specs; - const asn_per_constraints_t *pc = - constraints ? constraints : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *csiz; - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - BIT_STRING_t compact_bstr; /* Do not modify this directly! */ - asn_enc_rval_t er = { 0, 0, 0 }; - int inext = 0; /* Lies not within extension root */ - size_t size_in_bits; - const uint8_t *buf; - int ret; - int ct_extensible; - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - if(specs->subvariant == ASN_OSUBV_BIT) { - if((st->size == 0 && st->bits_unused) || (st->bits_unused & ~7)) - ASN__ENCODE_FAILED; - } else { - ASN__ENCODE_FAILED; - } - - if(pc) { - csiz = &pc->size; - } else { - csiz = &asn_DEF_BIT_STRING_constraint_size; - } - ct_extensible = csiz->flags & APC_EXTENSIBLE; - - /* Figure out the size without the trailing bits */ - st = BIT_STRING__compactify(st, &compact_bstr); - size_in_bits = 8 * st->size - st->bits_unused; - - ASN_DEBUG( - "Encoding %s into %" ASN_PRI_SIZE " bits" - " (%ld..%ld, effective %d)%s", - td->name, size_in_bits, csiz->lower_bound, csiz->upper_bound, - csiz->effective_bits, ct_extensible ? " EXT" : ""); - - /* Figure out whether size lies within PER visible constraint */ - - if(csiz->effective_bits >= 0) { - if((ssize_t)size_in_bits > csiz->upper_bound) { - if(ct_extensible) { - csiz = &asn_DEF_BIT_STRING_constraint_size; - inext = 1; - } else { - ASN__ENCODE_FAILED; - } - } - } else { - inext = 0; - } - - if(ct_extensible) { - /* Declare whether length is [not] within extension root */ - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - } - - if(csiz->effective_bits >= 0 && !inext) { - int add_trailer = (ssize_t)size_in_bits < csiz->lower_bound; - ASN_DEBUG( - "Encoding %" ASN_PRI_SIZE " bytes (%ld), length (in %d bits) trailer %d; actual " - "value %" ASN_PRI_SSIZE "", - st->size, size_in_bits - csiz->lower_bound, csiz->effective_bits, - add_trailer, - add_trailer ? 0 : (ssize_t)size_in_bits - csiz->lower_bound); - ret = per_put_few_bits( - po, add_trailer ? 0 : (ssize_t)size_in_bits - csiz->lower_bound, - csiz->effective_bits); - if(ret) ASN__ENCODE_FAILED; - ret = per_put_many_bits(po, st->buf, size_in_bits); - if(ret) ASN__ENCODE_FAILED; - if(add_trailer) { - static const uint8_t zeros[16]; - size_t trailing_zero_bits = csiz->lower_bound - size_in_bits; - while(trailing_zero_bits > 0) { - if(trailing_zero_bits > 8 * sizeof(zeros)) { - ret = per_put_many_bits(po, zeros, 8 * sizeof(zeros)); - trailing_zero_bits -= 8 * sizeof(zeros); - } else { - ret = per_put_many_bits(po, zeros, trailing_zero_bits); - trailing_zero_bits = 0; - } - if(ret) ASN__ENCODE_FAILED; - } - } - ASN__ENCODED_OK(er); - } - - ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes", st->size); - - buf = st->buf; - do { - int need_eom = 0; - ssize_t maySave = uper_put_length(po, size_in_bits, &need_eom); - if(maySave < 0) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %" ASN_PRI_SSIZE " of %" ASN_PRI_SIZE "", maySave, size_in_bits); - - ret = per_put_many_bits(po, buf, maySave); - if(ret) ASN__ENCODE_FAILED; - - buf += maySave >> 3; - size_in_bits -= maySave; - assert(!(maySave & 0x07) || !size_in_bits); - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - } while(size_in_bits); - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -asn_random_fill_result_t -BIT_STRING_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_BIT_STRING_specs; - asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - static unsigned lengths[] = {0, 1, 2, 3, 4, 8, - 126, 127, 128, 16383, 16384, 16385, - 65534, 65535, 65536, 65537}; - uint8_t *buf; - uint8_t *bend; - uint8_t *b; - size_t rnd_bits, rnd_len; - BIT_STRING_t *st; - - if(max_length == 0) return result_skipped; - - switch(specs->subvariant) { - case ASN_OSUBV_ANY: - return result_failed; - case ASN_OSUBV_BIT: - break; - default: - break; - } - - /* Figure out how far we should go */ - rnd_bits = lengths[asn_random_between( - 0, sizeof(lengths) / sizeof(lengths[0]) - 1)]; - if(!constraints || !constraints->per_constraints) - constraints = &td->encoding_constraints; - if(constraints->per_constraints) { - const asn_per_constraint_t *pc = &constraints->per_constraints->size; - if(pc->flags & APC_CONSTRAINED) { - long suggested_upper_bound = pc->upper_bound < (ssize_t)max_length - ? pc->upper_bound - : (ssize_t)max_length; - if(max_length < (size_t)pc->lower_bound) { - return result_skipped; - } - if(pc->flags & APC_EXTENSIBLE) { - switch(asn_random_between(0, 5)) { - case 0: - if(pc->lower_bound > 0) { - rnd_bits = pc->lower_bound - 1; - break; - } - /* Fall through */ - case 1: - rnd_bits = pc->upper_bound + 1; - break; - case 2: - /* Keep rnd_bits from the table */ - if(rnd_bits < max_length) { - break; - } - /* Fall through */ - default: - rnd_bits = asn_random_between(pc->lower_bound, - suggested_upper_bound); - } - } else { - rnd_bits = - asn_random_between(pc->lower_bound, suggested_upper_bound); - } - } else { - rnd_bits = asn_random_between(0, max_length - 1); - } - } else if(rnd_bits >= max_length) { - rnd_bits = asn_random_between(0, max_length - 1); - } - - rnd_len = (rnd_bits + 7) / 8; - buf = CALLOC(1, rnd_len + 1); - if(!buf) return result_failed; - - bend = &buf[rnd_len]; - - for(b = buf; b < bend; b++) { - *(uint8_t *)b = asn_random_between(0, 255); - } - *b = 0; /* Zero-terminate just in case. */ - - if(*sptr) { - st = *sptr; - FREEMEM(st->buf); - } else { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) { - FREEMEM(buf); - return result_failed; - } - } - - st->buf = buf; - st->size = rnd_len; - st->bits_unused = (8 - (rnd_bits & 0x7)) & 0x7; - if(st->bits_unused) { - assert(st->size > 0); - st->buf[st->size-1] &= 0xff << st->bits_unused; - } - - result_ok.length = st->size; - return result_ok; -} diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/BIT_STRING.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/BIT_STRING.h deleted file mode 100644 index c1bdbbc..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/BIT_STRING.h +++ /dev/null @@ -1,48 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _BIT_STRING_H_ -#define _BIT_STRING_H_ - -#include /* Some help from OCTET STRING */ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct BIT_STRING_s { - uint8_t *buf; /* BIT STRING body */ - size_t size; /* Size of the above buffer */ - - int bits_unused;/* Unused trailing bits in the last octet (0..7) */ - - asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ -} BIT_STRING_t; - -extern asn_TYPE_descriptor_t asn_DEF_BIT_STRING; -extern asn_TYPE_operation_t asn_OP_BIT_STRING; -extern asn_OCTET_STRING_specifics_t asn_SPC_BIT_STRING_specs; - -asn_struct_print_f BIT_STRING_print; /* Human-readable output */ -asn_struct_compare_f BIT_STRING_compare; -asn_constr_check_f BIT_STRING_constraint; -xer_type_encoder_f BIT_STRING_encode_xer; -oer_type_decoder_f BIT_STRING_decode_oer; -oer_type_encoder_f BIT_STRING_encode_oer; -per_type_decoder_f BIT_STRING_decode_uper; -per_type_encoder_f BIT_STRING_encode_uper; -asn_random_fill_f BIT_STRING_random_fill; - -#define BIT_STRING_free OCTET_STRING_free -#define BIT_STRING_decode_ber OCTET_STRING_decode_ber -#define BIT_STRING_encode_der OCTET_STRING_encode_der -#define BIT_STRING_decode_xer OCTET_STRING_decode_xer_binary -#define BIT_STRING_decode_aper OCTET_STRING_decode_aper -#define BIT_STRING_encode_aper OCTET_STRING_encode_aper - -#ifdef __cplusplus -} -#endif - -#endif /* _BIT_STRING_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/BIT_STRING_oer.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/BIT_STRING_oer.c deleted file mode 100644 index aff5075..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/BIT_STRING_oer.c +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -asn_dec_rval_t -BIT_STRING_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **sptr, - const void *ptr, size_t size) { - BIT_STRING_t *st = (BIT_STRING_t *)*sptr; - const asn_oer_constraints_t *cts = - constraints ? constraints : td->encoding_constraints.oer_constraints; - ssize_t ct_size = cts ? cts->size : -1; - asn_dec_rval_t rval = {RC_OK, 0}; - size_t expected_length = 0; - - (void)opt_codec_ctx; - - if(!st) { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, sizeof(*st))); - if(!st) ASN__DECODE_FAILED; - } - - if(ct_size >= 0) { - expected_length = (ct_size + 7) >> 3; - st->bits_unused = (8 - (ct_size & 7)) & 7; - } else { - /* - * X.696 (08/2015) #13.3.1 - * Encode length determinant as _number of octets_, but only - * if upper bound is not equal to lower bound. - */ - ssize_t len_len = oer_fetch_length(ptr, size, &expected_length); - if(len_len > 0) { - ptr = (const char *)ptr + len_len; - size -= len_len; - } else if(len_len == 0) { - ASN__DECODE_STARVED; - } else if(len_len < 0) { - ASN__DECODE_FAILED; - } - - if(expected_length < 1) { - ASN__DECODE_FAILED; - } else if(expected_length > size) { - ASN__DECODE_STARVED; - } - - st->bits_unused = ((const uint8_t *)ptr)[0]; - if(st->bits_unused & ~7) { - ASN_DEBUG("%s: unused bits outside of 0..7 range", td->name); - ASN__DECODE_FAILED; - } - ptr = (const char *)ptr + 1; - size--; - expected_length--; - rval.consumed = len_len + 1; - } - - if(size < expected_length) { - ASN__DECODE_STARVED; - } else { - uint8_t *buf = MALLOC(expected_length + 1); - if(buf == NULL) { - ASN__DECODE_FAILED; - } else { - memcpy(buf, ptr, expected_length); - buf[expected_length] = '\0'; - } - FREEMEM(st->buf); - st->buf = buf; - st->size = expected_length; - if(expected_length > 0) { - buf[expected_length - 1] &= (0xff << st->bits_unused); - } - - rval.consumed += expected_length; - return rval; - } -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -BIT_STRING_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - const void *sptr, asn_app_consume_bytes_f *cb, - void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - asn_enc_rval_t erval = {0, 0, 0}; - const asn_oer_constraints_t *cts = - constraints ? constraints : td->encoding_constraints.oer_constraints; - ssize_t ct_size = cts ? cts->size : -1; - size_t trailing_zeros = 0; - int fix_last_byte = 0; - - if(!st) ASN__ENCODE_FAILED; - - if(st->bits_unused & ~7) { - ASN_DEBUG("BIT STRING unused bits %d out of 0..7 range", - st->bits_unused); - ASN__ENCODE_FAILED; - } - if(st->bits_unused && !(st->size && st->buf)) { - ASN_DEBUG("BIT STRING %s size 0 can't support unused bits %d", td->name, - st->bits_unused); - ASN__ENCODE_FAILED; - } - - if(ct_size >= 0) { - size_t ct_bytes = (ct_size + 7) >> 3; - if(st->size > ct_bytes) { - ASN_DEBUG("More bits in BIT STRING %s (%" ASN_PRI_SSIZE ") than constrained %" ASN_PRI_SSIZE "", - td->name, 8 * st->size - st->bits_unused, ct_size); - ASN__ENCODE_FAILED; - } - trailing_zeros = ct_bytes - st->size; /* Allow larger constraint */ - } else { - uint8_t ub = st->bits_unused & 7; - ssize_t len_len = oer_serialize_length(1 + st->size, cb, app_key); - if(len_len < 0) ASN__ENCODE_FAILED; - if(cb(&ub, 1, app_key) < 0) { - ASN__ENCODE_FAILED; - } - erval.encoded += len_len + 1; - } - - if(st->bits_unused) { - if(st->buf[st->size - 1] & (0xff << st->bits_unused)) { - fix_last_byte = 1; - } - } - - if(cb(st->buf, st->size - fix_last_byte, app_key) < 0) { - ASN__ENCODE_FAILED; - } - - if(fix_last_byte) { - uint8_t b = st->buf[st->size - 1] & (0xff << st->bits_unused); - if(cb(&b, 1, app_key) < 0) { - ASN__ENCODE_FAILED; - } - } - - erval.encoded += st->size; - - if(trailing_zeros) { - static uint8_t zeros[16]; - while(trailing_zeros > 0) { - int ret; - if(trailing_zeros < sizeof(zeros)) { - ret = cb(zeros, trailing_zeros, app_key); - erval.encoded += trailing_zeros; - } else { - ret = cb(zeros, sizeof(zeros), app_key); - erval.encoded += sizeof(zeros); - } - if(ret < 0) ASN__ENCODE_FAILED; - } - } - - return erval; -} - - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/C-RNTI.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/C-RNTI.c deleted file mode 100644 index e626083..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/C-RNTI.c +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "C-RNTI.h" - -int -C_RNTI_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; - - 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 == 2)) { - /* 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 OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_C_RNTI_constr_1 CC_NOTUSED = { - { 0, 0 }, - 2 /* (SIZE(2..2)) */}; -asn_per_constraints_t asn_PER_type_C_RNTI_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_C_RNTI_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_C_RNTI = { - "C-RNTI", - "C-RNTI", - &asn_OP_OCTET_STRING, - asn_DEF_C_RNTI_tags_1, - sizeof(asn_DEF_C_RNTI_tags_1) - /sizeof(asn_DEF_C_RNTI_tags_1[0]), /* 1 */ - asn_DEF_C_RNTI_tags_1, /* Same as above */ - sizeof(asn_DEF_C_RNTI_tags_1) - /sizeof(asn_DEF_C_RNTI_tags_1[0]), /* 1 */ - { &asn_OER_type_C_RNTI_constr_1, &asn_PER_type_C_RNTI_constr_1, C_RNTI_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/C-RNTI.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/C-RNTI.h deleted file mode 100644 index 7366109..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/C-RNTI.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _C_RNTI_H_ -#define _C_RNTI_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* C-RNTI */ -typedef OCTET_STRING_t C_RNTI_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_C_RNTI_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_C_RNTI; -asn_struct_free_f C_RNTI_free; -asn_struct_print_f C_RNTI_print; -asn_constr_check_f C_RNTI_constraint; -ber_type_decoder_f C_RNTI_decode_ber; -der_type_encoder_f C_RNTI_encode_der; -xer_type_decoder_f C_RNTI_decode_xer; -xer_type_encoder_f C_RNTI_encode_xer; -oer_type_decoder_f C_RNTI_decode_oer; -oer_type_encoder_f C_RNTI_encode_oer; -per_type_decoder_f C_RNTI_decode_uper; -per_type_encoder_f C_RNTI_encode_uper; -per_type_decoder_f C_RNTI_decode_aper; -per_type_encoder_f C_RNTI_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _C_RNTI_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.c deleted file mode 100644 index c0b6775..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CU-CP-Usage-Report-CellResourceReportItem.h" - -static int -memb_ueResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 32)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_ueResourceReportList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_type_ueResourceReportList_constr_3 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_oer_constraints_t asn_OER_memb_ueResourceReportList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_memb_ueResourceReportList_constr_3 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_ueResourceReportList_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CU_CP_Usage_Report_UeResourceReportItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ueResourceReportList_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ueResourceReportList_specs_3 = { - sizeof(struct CU_CP_Usage_Report_CellResourceReportItem__ueResourceReportList), - offsetof(struct CU_CP_Usage_Report_CellResourceReportItem__ueResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_ueResourceReportList_3 = { - "ueResourceReportList", - "ueResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_ueResourceReportList_tags_3, - sizeof(asn_DEF_ueResourceReportList_tags_3) - /sizeof(asn_DEF_ueResourceReportList_tags_3[0]) - 1, /* 1 */ - asn_DEF_ueResourceReportList_tags_3, /* Same as above */ - sizeof(asn_DEF_ueResourceReportList_tags_3) - /sizeof(asn_DEF_ueResourceReportList_tags_3[0]), /* 2 */ - { &asn_OER_type_ueResourceReportList_constr_3, &asn_PER_type_ueResourceReportList_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_ueResourceReportList_3, - 1, /* Single element */ - &asn_SPC_ueResourceReportList_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CU_CP_Usage_Report_CellResourceReportItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CU_CP_Usage_Report_CellResourceReportItem, nRCGI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRCGI" - }, - { ATF_NOFLAGS, 0, offsetof(struct CU_CP_Usage_Report_CellResourceReportItem, ueResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_ueResourceReportList_3, - 0, - { &asn_OER_memb_ueResourceReportList_constr_3, &asn_PER_memb_ueResourceReportList_constr_3, memb_ueResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "ueResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CU_CP_Usage_Report_CellResourceReportItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ueResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CU_CP_Usage_Report_CellResourceReportItem_specs_1 = { - sizeof(struct CU_CP_Usage_Report_CellResourceReportItem), - offsetof(struct CU_CP_Usage_Report_CellResourceReportItem, _asn_ctx), - asn_MAP_CU_CP_Usage_Report_CellResourceReportItem_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_CU_CP_Usage_Report_CellResourceReportItem = { - "CU-CP-Usage-Report-CellResourceReportItem", - "CU-CP-Usage-Report-CellResourceReportItem", - &asn_OP_SEQUENCE, - asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1, - sizeof(asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1[0]), /* 1 */ - asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1, /* Same as above */ - sizeof(asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CU_CP_Usage_Report_CellResourceReportItem_1, - 2, /* Elements count */ - &asn_SPC_CU_CP_Usage_Report_CellResourceReportItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.h deleted file mode 100644 index 9fb9dd9..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CU_CP_Usage_Report_CellResourceReportItem_H_ -#define _CU_CP_Usage_Report_CellResourceReportItem_H_ - - -#include - -/* Including external dependencies */ -#include "NRCGI.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CU_CP_Usage_Report_UeResourceReportItem; - -/* CU-CP-Usage-Report-CellResourceReportItem */ -typedef struct CU_CP_Usage_Report_CellResourceReportItem { - NRCGI_t nRCGI; - struct CU_CP_Usage_Report_CellResourceReportItem__ueResourceReportList { - A_SEQUENCE_OF(struct CU_CP_Usage_Report_UeResourceReportItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } ueResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CU_CP_Usage_Report_CellResourceReportItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CU_CP_Usage_Report_CellResourceReportItem; -extern asn_SEQUENCE_specifics_t asn_SPC_CU_CP_Usage_Report_CellResourceReportItem_specs_1; -extern asn_TYPE_member_t asn_MBR_CU_CP_Usage_Report_CellResourceReportItem_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "CU-CP-Usage-Report-UeResourceReportItem.h" - -#endif /* _CU_CP_Usage_Report_CellResourceReportItem_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-CP-Usage-Report-Per-UE.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-CP-Usage-Report-Per-UE.c deleted file mode 100644 index 22055b3..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-CP-Usage-Report-Per-UE.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CU-CP-Usage-Report-Per-UE.h" - -static int -memb_cellResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 16384)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..16384)) */}; -static asn_per_constraints_t asn_PER_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 14, 14, 1, 16384 } /* (SIZE(1..16384)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..16384)) */}; -static asn_per_constraints_t asn_PER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 14, 14, 1, 16384 } /* (SIZE(1..16384)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_cellResourceReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CU_CP_Usage_Report_CellResourceReportItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_cellResourceReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_cellResourceReportList_specs_2 = { - sizeof(struct CU_CP_Usage_Report_Per_UE__cellResourceReportList), - offsetof(struct CU_CP_Usage_Report_Per_UE__cellResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_cellResourceReportList_2 = { - "cellResourceReportList", - "cellResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_cellResourceReportList_tags_2, - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_cellResourceReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_cellResourceReportList_constr_2, &asn_PER_type_cellResourceReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_cellResourceReportList_2, - 1, /* Single element */ - &asn_SPC_cellResourceReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CU_CP_Usage_Report_Per_UE_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CU_CP_Usage_Report_Per_UE, cellResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_cellResourceReportList_2, - 0, - { &asn_OER_memb_cellResourceReportList_constr_2, &asn_PER_memb_cellResourceReportList_constr_2, memb_cellResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "cellResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CU_CP_Usage_Report_Per_UE_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cellResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CU_CP_Usage_Report_Per_UE_specs_1 = { - sizeof(struct CU_CP_Usage_Report_Per_UE), - offsetof(struct CU_CP_Usage_Report_Per_UE, _asn_ctx), - asn_MAP_CU_CP_Usage_Report_Per_UE_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_CU_CP_Usage_Report_Per_UE = { - "CU-CP-Usage-Report-Per-UE", - "CU-CP-Usage-Report-Per-UE", - &asn_OP_SEQUENCE, - asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1, - sizeof(asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1) - /sizeof(asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1[0]), /* 1 */ - asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1, /* Same as above */ - sizeof(asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1) - /sizeof(asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CU_CP_Usage_Report_Per_UE_1, - 1, /* Elements count */ - &asn_SPC_CU_CP_Usage_Report_Per_UE_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-CP-Usage-Report-Per-UE.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-CP-Usage-Report-Per-UE.h deleted file mode 100644 index dad74ca..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-CP-Usage-Report-Per-UE.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CU_CP_Usage_Report_Per_UE_H_ -#define _CU_CP_Usage_Report_Per_UE_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CU_CP_Usage_Report_CellResourceReportItem; - -/* CU-CP-Usage-Report-Per-UE */ -typedef struct CU_CP_Usage_Report_Per_UE { - struct CU_CP_Usage_Report_Per_UE__cellResourceReportList { - A_SEQUENCE_OF(struct CU_CP_Usage_Report_CellResourceReportItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } cellResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CU_CP_Usage_Report_Per_UE_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CU_CP_Usage_Report_Per_UE; -extern asn_SEQUENCE_specifics_t asn_SPC_CU_CP_Usage_Report_Per_UE_specs_1; -extern asn_TYPE_member_t asn_MBR_CU_CP_Usage_Report_Per_UE_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "CU-CP-Usage-Report-CellResourceReportItem.h" - -#endif /* _CU_CP_Usage_Report_Per_UE_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.c deleted file mode 100644 index de4d8de..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CU-CP-Usage-Report-UeResourceReportItem.h" - -asn_TYPE_member_t asn_MBR_CU_CP_Usage_Report_UeResourceReportItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CU_CP_Usage_Report_UeResourceReportItem, c_RNTI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_C_RNTI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "c-RNTI" - }, - { ATF_POINTER, 2, offsetof(struct CU_CP_Usage_Report_UeResourceReportItem, serving_Cell_RF_Type), - (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 */ - "serving-Cell-RF-Type" - }, - { ATF_POINTER, 1, offsetof(struct CU_CP_Usage_Report_UeResourceReportItem, neighbor_Cell_RF), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "neighbor-Cell-RF" - }, -}; -static const int asn_MAP_CU_CP_Usage_Report_UeResourceReportItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CU_CP_Usage_Report_UeResourceReportItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* c-RNTI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* serving-Cell-RF-Type */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* neighbor-Cell-RF */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CU_CP_Usage_Report_UeResourceReportItem_specs_1 = { - sizeof(struct CU_CP_Usage_Report_UeResourceReportItem), - offsetof(struct CU_CP_Usage_Report_UeResourceReportItem, _asn_ctx), - asn_MAP_CU_CP_Usage_Report_UeResourceReportItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_CU_CP_Usage_Report_UeResourceReportItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CU_CP_Usage_Report_UeResourceReportItem = { - "CU-CP-Usage-Report-UeResourceReportItem", - "CU-CP-Usage-Report-UeResourceReportItem", - &asn_OP_SEQUENCE, - asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1, - sizeof(asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1[0]), /* 1 */ - asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1, /* Same as above */ - sizeof(asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CU_CP_Usage_Report_UeResourceReportItem_1, - 3, /* Elements count */ - &asn_SPC_CU_CP_Usage_Report_UeResourceReportItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.h deleted file mode 100644 index 11edd99..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CU_CP_Usage_Report_UeResourceReportItem_H_ -#define _CU_CP_Usage_Report_UeResourceReportItem_H_ - - -#include - -/* Including external dependencies */ -#include "C-RNTI.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* CU-CP-Usage-Report-UeResourceReportItem */ -typedef struct CU_CP_Usage_Report_UeResourceReportItem { - C_RNTI_t c_RNTI; - OCTET_STRING_t *serving_Cell_RF_Type; /* OPTIONAL */ - OCTET_STRING_t *neighbor_Cell_RF; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CU_CP_Usage_Report_UeResourceReportItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CU_CP_Usage_Report_UeResourceReportItem; -extern asn_SEQUENCE_specifics_t asn_SPC_CU_CP_Usage_Report_UeResourceReportItem_specs_1; -extern asn_TYPE_member_t asn_MBR_CU_CP_Usage_Report_UeResourceReportItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _CU_CP_Usage_Report_UeResourceReportItem_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.c deleted file mode 100644 index 4781c55..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CU-UP-Usage-Report-CellResourceReportItem.h" - -static int -memb_ueResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 32)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_ueResourceReportList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_type_ueResourceReportList_constr_3 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_oer_constraints_t asn_OER_memb_ueResourceReportList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_memb_ueResourceReportList_constr_3 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_ueResourceReportList_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CU_UP_Usage_Report_UeResourceReportItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ueResourceReportList_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ueResourceReportList_specs_3 = { - sizeof(struct CU_UP_Usage_Report_CellResourceReportItem__ueResourceReportList), - offsetof(struct CU_UP_Usage_Report_CellResourceReportItem__ueResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_ueResourceReportList_3 = { - "ueResourceReportList", - "ueResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_ueResourceReportList_tags_3, - sizeof(asn_DEF_ueResourceReportList_tags_3) - /sizeof(asn_DEF_ueResourceReportList_tags_3[0]) - 1, /* 1 */ - asn_DEF_ueResourceReportList_tags_3, /* Same as above */ - sizeof(asn_DEF_ueResourceReportList_tags_3) - /sizeof(asn_DEF_ueResourceReportList_tags_3[0]), /* 2 */ - { &asn_OER_type_ueResourceReportList_constr_3, &asn_PER_type_ueResourceReportList_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_ueResourceReportList_3, - 1, /* Single element */ - &asn_SPC_ueResourceReportList_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CU_UP_Usage_Report_CellResourceReportItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CU_UP_Usage_Report_CellResourceReportItem, nRCGI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRCGI" - }, - { ATF_NOFLAGS, 0, offsetof(struct CU_UP_Usage_Report_CellResourceReportItem, ueResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_ueResourceReportList_3, - 0, - { &asn_OER_memb_ueResourceReportList_constr_3, &asn_PER_memb_ueResourceReportList_constr_3, memb_ueResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "ueResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CU_UP_Usage_Report_CellResourceReportItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ueResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CU_UP_Usage_Report_CellResourceReportItem_specs_1 = { - sizeof(struct CU_UP_Usage_Report_CellResourceReportItem), - offsetof(struct CU_UP_Usage_Report_CellResourceReportItem, _asn_ctx), - asn_MAP_CU_UP_Usage_Report_CellResourceReportItem_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_CU_UP_Usage_Report_CellResourceReportItem = { - "CU-UP-Usage-Report-CellResourceReportItem", - "CU-UP-Usage-Report-CellResourceReportItem", - &asn_OP_SEQUENCE, - asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1, - sizeof(asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1[0]), /* 1 */ - asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1, /* Same as above */ - sizeof(asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CU_UP_Usage_Report_CellResourceReportItem_1, - 2, /* Elements count */ - &asn_SPC_CU_UP_Usage_Report_CellResourceReportItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.h deleted file mode 100644 index f313f40..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CU_UP_Usage_Report_CellResourceReportItem_H_ -#define _CU_UP_Usage_Report_CellResourceReportItem_H_ - - -#include - -/* Including external dependencies */ -#include "NRCGI.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CU_UP_Usage_Report_UeResourceReportItem; - -/* CU-UP-Usage-Report-CellResourceReportItem */ -typedef struct CU_UP_Usage_Report_CellResourceReportItem { - NRCGI_t nRCGI; - struct CU_UP_Usage_Report_CellResourceReportItem__ueResourceReportList { - A_SEQUENCE_OF(struct CU_UP_Usage_Report_UeResourceReportItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } ueResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CU_UP_Usage_Report_CellResourceReportItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CU_UP_Usage_Report_CellResourceReportItem; -extern asn_SEQUENCE_specifics_t asn_SPC_CU_UP_Usage_Report_CellResourceReportItem_specs_1; -extern asn_TYPE_member_t asn_MBR_CU_UP_Usage_Report_CellResourceReportItem_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "CU-UP-Usage-Report-UeResourceReportItem.h" - -#endif /* _CU_UP_Usage_Report_CellResourceReportItem_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-UP-Usage-Report-Per-UE.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-UP-Usage-Report-Per-UE.c deleted file mode 100644 index 5213281..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-UP-Usage-Report-Per-UE.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CU-UP-Usage-Report-Per-UE.h" - -static int -memb_cellResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 512)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..512)) */}; -static asn_per_constraints_t asn_PER_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 1, 512 } /* (SIZE(1..512)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..512)) */}; -static asn_per_constraints_t asn_PER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 1, 512 } /* (SIZE(1..512)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_cellResourceReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CU_UP_Usage_Report_CellResourceReportItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_cellResourceReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_cellResourceReportList_specs_2 = { - sizeof(struct CU_UP_Usage_Report_Per_UE__cellResourceReportList), - offsetof(struct CU_UP_Usage_Report_Per_UE__cellResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_cellResourceReportList_2 = { - "cellResourceReportList", - "cellResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_cellResourceReportList_tags_2, - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_cellResourceReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_cellResourceReportList_constr_2, &asn_PER_type_cellResourceReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_cellResourceReportList_2, - 1, /* Single element */ - &asn_SPC_cellResourceReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CU_UP_Usage_Report_Per_UE_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CU_UP_Usage_Report_Per_UE, cellResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_cellResourceReportList_2, - 0, - { &asn_OER_memb_cellResourceReportList_constr_2, &asn_PER_memb_cellResourceReportList_constr_2, memb_cellResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "cellResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CU_UP_Usage_Report_Per_UE_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cellResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CU_UP_Usage_Report_Per_UE_specs_1 = { - sizeof(struct CU_UP_Usage_Report_Per_UE), - offsetof(struct CU_UP_Usage_Report_Per_UE, _asn_ctx), - asn_MAP_CU_UP_Usage_Report_Per_UE_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_CU_UP_Usage_Report_Per_UE = { - "CU-UP-Usage-Report-Per-UE", - "CU-UP-Usage-Report-Per-UE", - &asn_OP_SEQUENCE, - asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1, - sizeof(asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1) - /sizeof(asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1[0]), /* 1 */ - asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1, /* Same as above */ - sizeof(asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1) - /sizeof(asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CU_UP_Usage_Report_Per_UE_1, - 1, /* Elements count */ - &asn_SPC_CU_UP_Usage_Report_Per_UE_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-UP-Usage-Report-Per-UE.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-UP-Usage-Report-Per-UE.h deleted file mode 100644 index 71e6ed9..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-UP-Usage-Report-Per-UE.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CU_UP_Usage_Report_Per_UE_H_ -#define _CU_UP_Usage_Report_Per_UE_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CU_UP_Usage_Report_CellResourceReportItem; - -/* CU-UP-Usage-Report-Per-UE */ -typedef struct CU_UP_Usage_Report_Per_UE { - struct CU_UP_Usage_Report_Per_UE__cellResourceReportList { - A_SEQUENCE_OF(struct CU_UP_Usage_Report_CellResourceReportItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } cellResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CU_UP_Usage_Report_Per_UE_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CU_UP_Usage_Report_Per_UE; -extern asn_SEQUENCE_specifics_t asn_SPC_CU_UP_Usage_Report_Per_UE_specs_1; -extern asn_TYPE_member_t asn_MBR_CU_UP_Usage_Report_Per_UE_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "CU-UP-Usage-Report-CellResourceReportItem.h" - -#endif /* _CU_UP_Usage_Report_Per_UE_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.c deleted file mode 100644 index 1867379..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.c +++ /dev/null @@ -1,150 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CU-UP-Usage-Report-UeResourceReportItem.h" - -static int -memb_pDCPBytesDL_constraint_1(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 <= 10000000000)) { - /* 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_pDCPBytesUL_constraint_1(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 <= 10000000000)) { - /* 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_pDCPBytesDL_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_pDCPBytesDL_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 34, -1, 0, 10000000000 } /* (0..10000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 34, -1, 0, 10000000000 } /* (0..10000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_CU_UP_Usage_Report_UeResourceReportItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CU_UP_Usage_Report_UeResourceReportItem, c_RNTI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_C_RNTI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "c-RNTI" - }, - { ATF_POINTER, 2, offsetof(struct CU_UP_Usage_Report_UeResourceReportItem, pDCPBytesDL), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_INTEGER, - 0, - { &asn_OER_memb_pDCPBytesDL_constr_3, &asn_PER_memb_pDCPBytesDL_constr_3, memb_pDCPBytesDL_constraint_1 }, - 0, 0, /* No default value */ - "pDCPBytesDL" - }, - { ATF_POINTER, 1, offsetof(struct CU_UP_Usage_Report_UeResourceReportItem, pDCPBytesUL), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_INTEGER, - 0, - { &asn_OER_memb_pDCPBytesUL_constr_4, &asn_PER_memb_pDCPBytesUL_constr_4, memb_pDCPBytesUL_constraint_1 }, - 0, 0, /* No default value */ - "pDCPBytesUL" - }, -}; -static const int asn_MAP_CU_UP_Usage_Report_UeResourceReportItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CU_UP_Usage_Report_UeResourceReportItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* c-RNTI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDCPBytesDL */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* pDCPBytesUL */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CU_UP_Usage_Report_UeResourceReportItem_specs_1 = { - sizeof(struct CU_UP_Usage_Report_UeResourceReportItem), - offsetof(struct CU_UP_Usage_Report_UeResourceReportItem, _asn_ctx), - asn_MAP_CU_UP_Usage_Report_UeResourceReportItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_CU_UP_Usage_Report_UeResourceReportItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CU_UP_Usage_Report_UeResourceReportItem = { - "CU-UP-Usage-Report-UeResourceReportItem", - "CU-UP-Usage-Report-UeResourceReportItem", - &asn_OP_SEQUENCE, - asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1, - sizeof(asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1[0]), /* 1 */ - asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1, /* Same as above */ - sizeof(asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CU_UP_Usage_Report_UeResourceReportItem_1, - 3, /* Elements count */ - &asn_SPC_CU_UP_Usage_Report_UeResourceReportItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.h deleted file mode 100644 index 3a3dec7..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CU_UP_Usage_Report_UeResourceReportItem_H_ -#define _CU_UP_Usage_Report_UeResourceReportItem_H_ - - -#include - -/* Including external dependencies */ -#include "C-RNTI.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* CU-UP-Usage-Report-UeResourceReportItem */ -typedef struct CU_UP_Usage_Report_UeResourceReportItem { - C_RNTI_t c_RNTI; - INTEGER_t *pDCPBytesDL; /* OPTIONAL */ - INTEGER_t *pDCPBytesUL; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CU_UP_Usage_Report_UeResourceReportItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CU_UP_Usage_Report_UeResourceReportItem; -extern asn_SEQUENCE_specifics_t asn_SPC_CU_UP_Usage_Report_UeResourceReportItem_specs_1; -extern asn_TYPE_member_t asn_MBR_CU_UP_Usage_Report_UeResourceReportItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _CU_UP_Usage_Report_UeResourceReportItem_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CUUPMeasurement-Container.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CUUPMeasurement-Container.c deleted file mode 100644 index bd27283..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CUUPMeasurement-Container.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CUUPMeasurement-Container.h" - -static int -memb_plmnList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 12)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_plmnList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..12)) */}; -static asn_per_constraints_t asn_PER_type_plmnList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 12 } /* (SIZE(1..12)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_plmnList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..12)) */}; -static asn_per_constraints_t asn_PER_memb_plmnList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 12 } /* (SIZE(1..12)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_plmnList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_PlmnID_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_plmnList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_plmnList_specs_2 = { - sizeof(struct CUUPMeasurement_Container__plmnList), - offsetof(struct CUUPMeasurement_Container__plmnList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_plmnList_2 = { - "plmnList", - "plmnList", - &asn_OP_SEQUENCE_OF, - asn_DEF_plmnList_tags_2, - sizeof(asn_DEF_plmnList_tags_2) - /sizeof(asn_DEF_plmnList_tags_2[0]) - 1, /* 1 */ - asn_DEF_plmnList_tags_2, /* Same as above */ - sizeof(asn_DEF_plmnList_tags_2) - /sizeof(asn_DEF_plmnList_tags_2[0]), /* 2 */ - { &asn_OER_type_plmnList_constr_2, &asn_PER_type_plmnList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_plmnList_2, - 1, /* Single element */ - &asn_SPC_plmnList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CUUPMeasurement_Container_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CUUPMeasurement_Container, plmnList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_plmnList_2, - 0, - { &asn_OER_memb_plmnList_constr_2, &asn_PER_memb_plmnList_constr_2, memb_plmnList_constraint_1 }, - 0, 0, /* No default value */ - "plmnList" - }, -}; -static const ber_tlv_tag_t asn_DEF_CUUPMeasurement_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CUUPMeasurement_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* plmnList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CUUPMeasurement_Container_specs_1 = { - sizeof(struct CUUPMeasurement_Container), - offsetof(struct CUUPMeasurement_Container, _asn_ctx), - asn_MAP_CUUPMeasurement_Container_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_CUUPMeasurement_Container = { - "CUUPMeasurement-Container", - "CUUPMeasurement-Container", - &asn_OP_SEQUENCE, - asn_DEF_CUUPMeasurement_Container_tags_1, - sizeof(asn_DEF_CUUPMeasurement_Container_tags_1) - /sizeof(asn_DEF_CUUPMeasurement_Container_tags_1[0]), /* 1 */ - asn_DEF_CUUPMeasurement_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_CUUPMeasurement_Container_tags_1) - /sizeof(asn_DEF_CUUPMeasurement_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CUUPMeasurement_Container_1, - 1, /* Elements count */ - &asn_SPC_CUUPMeasurement_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CUUPMeasurement-Container.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CUUPMeasurement-Container.h deleted file mode 100644 index 14aafc3..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CUUPMeasurement-Container.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CUUPMeasurement_Container_H_ -#define _CUUPMeasurement_Container_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PlmnID_List; - -/* CUUPMeasurement-Container */ -typedef struct CUUPMeasurement_Container { - struct CUUPMeasurement_Container__plmnList { - A_SEQUENCE_OF(struct PlmnID_List) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } plmnList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CUUPMeasurement_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CUUPMeasurement_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_CUUPMeasurement_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_CUUPMeasurement_Container_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "PlmnID-List.h" - -#endif /* _CUUPMeasurement_Container_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Cause.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Cause.c deleted file mode 100644 index 1027911..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Cause.c +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "Cause.h" - -asn_per_constraints_t asn_PER_type_Cause_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 4 } /* (0..4,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_Cause_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.ricRequest), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseRIC, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.ricService), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseRICservice, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricService" - }, - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.transport), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseTransport, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "transport" - }, - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.protocol), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseProtocol, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocol" - }, - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.misc), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseMisc, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "misc" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_Cause_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_CHOICE_specifics_t asn_SPC_Cause_specs_1 = { - sizeof(struct Cause), - offsetof(struct Cause, _asn_ctx), - offsetof(struct Cause, present), - sizeof(((struct Cause *)0)->present), - asn_MAP_Cause_tag2el_1, - 5, /* Count of tags in the map */ - 0, 0, - 5 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_Cause = { - "Cause", - "Cause", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_Cause_constr_1, CHOICE_constraint }, - asn_MBR_Cause_1, - 5, /* Elements count */ - &asn_SPC_Cause_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Cause.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Cause.h deleted file mode 100644 index 1b829a6..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Cause.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _Cause_H_ -#define _Cause_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "CauseRIC.h" -#include "CauseRICservice.h" -#include "CauseTransport.h" -#include "CauseProtocol.h" -#include "CauseMisc.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum Cause_PR { - Cause_PR_NOTHING, /* No components present */ - Cause_PR_ricRequest, - Cause_PR_ricService, - Cause_PR_transport, - Cause_PR_protocol, - Cause_PR_misc - /* Extensions may appear below */ - -} Cause_PR; - -/* Cause */ -typedef struct Cause { - Cause_PR present; - union Cause_u { - CauseRIC_t ricRequest; - CauseRICservice_t ricService; - CauseTransport_t transport; - CauseProtocol_t protocol; - CauseMisc_t misc; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} Cause_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_Cause; -extern asn_CHOICE_specifics_t asn_SPC_Cause_specs_1; -extern asn_TYPE_member_t asn_MBR_Cause_1[5]; -extern asn_per_constraints_t asn_PER_type_Cause_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _Cause_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CauseMisc.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CauseMisc.c deleted file mode 100644 index 1709929..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CauseMisc.c +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "CauseMisc.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CauseMisc_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CauseMisc_value2enum_1[] = { - { 0, 27, "control-processing-overload" }, - { 1, 16, "hardware-failure" }, - { 2, 15, "om-intervention" }, - { 3, 11, "unspecified" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CauseMisc_enum2value_1[] = { - 0, /* control-processing-overload(0) */ - 1, /* hardware-failure(1) */ - 2, /* om-intervention(2) */ - 3 /* unspecified(3) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseMisc_specs_1 = { - asn_MAP_CauseMisc_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseMisc_enum2value_1, /* N => "tag"; sorted by N */ - 4, /* Number of elements in the maps */ - 5, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_CauseMisc_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseMisc = { - "CauseMisc", - "CauseMisc", - &asn_OP_NativeEnumerated, - asn_DEF_CauseMisc_tags_1, - sizeof(asn_DEF_CauseMisc_tags_1) - /sizeof(asn_DEF_CauseMisc_tags_1[0]), /* 1 */ - asn_DEF_CauseMisc_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseMisc_tags_1) - /sizeof(asn_DEF_CauseMisc_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseMisc_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseMisc_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CauseMisc.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CauseMisc.h deleted file mode 100644 index d175009..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CauseMisc.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _CauseMisc_H_ -#define _CauseMisc_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseMisc { - CauseMisc_control_processing_overload = 0, - CauseMisc_hardware_failure = 1, - CauseMisc_om_intervention = 2, - CauseMisc_unspecified = 3 - /* - * Enumeration is extensible - */ -} e_CauseMisc; - -/* CauseMisc */ -typedef long CauseMisc_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseMisc_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseMisc; -extern const asn_INTEGER_specifics_t asn_SPC_CauseMisc_specs_1; -asn_struct_free_f CauseMisc_free; -asn_struct_print_f CauseMisc_print; -asn_constr_check_f CauseMisc_constraint; -ber_type_decoder_f CauseMisc_decode_ber; -der_type_encoder_f CauseMisc_encode_der; -xer_type_decoder_f CauseMisc_decode_xer; -xer_type_encoder_f CauseMisc_encode_xer; -per_type_decoder_f CauseMisc_decode_uper; -per_type_encoder_f CauseMisc_encode_uper; -per_type_decoder_f CauseMisc_decode_aper; -per_type_encoder_f CauseMisc_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseMisc_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CauseProtocol.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CauseProtocol.c deleted file mode 100644 index e5b11b0..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CauseProtocol.c +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "CauseProtocol.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CauseProtocol_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_CauseProtocol_value2enum_1[] = { - { 0, 21, "transfer-syntax-error" }, - { 1, 28, "abstract-syntax-error-reject" }, - { 2, 39, "abstract-syntax-error-ignore-and-notify" }, - { 3, 42, "message-not-compatible-with-receiver-state" }, - { 4, 14, "semantic-error" }, - { 5, 49, "abstract-syntax-error-falsely-constructed-message" }, - { 6, 11, "unspecified" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CauseProtocol_enum2value_1[] = { - 5, /* abstract-syntax-error-falsely-constructed-message(5) */ - 2, /* abstract-syntax-error-ignore-and-notify(2) */ - 1, /* abstract-syntax-error-reject(1) */ - 3, /* message-not-compatible-with-receiver-state(3) */ - 4, /* semantic-error(4) */ - 0, /* transfer-syntax-error(0) */ - 6 /* unspecified(6) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseProtocol_specs_1 = { - asn_MAP_CauseProtocol_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseProtocol_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_CauseProtocol_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseProtocol = { - "CauseProtocol", - "CauseProtocol", - &asn_OP_NativeEnumerated, - asn_DEF_CauseProtocol_tags_1, - sizeof(asn_DEF_CauseProtocol_tags_1) - /sizeof(asn_DEF_CauseProtocol_tags_1[0]), /* 1 */ - asn_DEF_CauseProtocol_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseProtocol_tags_1) - /sizeof(asn_DEF_CauseProtocol_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseProtocol_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseProtocol_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CauseProtocol.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CauseProtocol.h deleted file mode 100644 index 72329ac..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CauseProtocol.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _CauseProtocol_H_ -#define _CauseProtocol_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseProtocol { - CauseProtocol_transfer_syntax_error = 0, - CauseProtocol_abstract_syntax_error_reject = 1, - CauseProtocol_abstract_syntax_error_ignore_and_notify = 2, - CauseProtocol_message_not_compatible_with_receiver_state = 3, - CauseProtocol_semantic_error = 4, - CauseProtocol_abstract_syntax_error_falsely_constructed_message = 5, - CauseProtocol_unspecified = 6 - /* - * Enumeration is extensible - */ -} e_CauseProtocol; - -/* CauseProtocol */ -typedef long CauseProtocol_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseProtocol_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseProtocol; -extern const asn_INTEGER_specifics_t asn_SPC_CauseProtocol_specs_1; -asn_struct_free_f CauseProtocol_free; -asn_struct_print_f CauseProtocol_print; -asn_constr_check_f CauseProtocol_constraint; -ber_type_decoder_f CauseProtocol_decode_ber; -der_type_encoder_f CauseProtocol_encode_der; -xer_type_decoder_f CauseProtocol_decode_xer; -xer_type_encoder_f CauseProtocol_encode_xer; -per_type_decoder_f CauseProtocol_decode_uper; -per_type_encoder_f CauseProtocol_encode_uper; -per_type_decoder_f CauseProtocol_decode_aper; -per_type_encoder_f CauseProtocol_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseProtocol_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CauseRIC.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CauseRIC.c deleted file mode 100644 index 11d9e4e..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CauseRIC.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "CauseRIC.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -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 */ - { 0, &asn_PER_type_CauseRIC_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseRIC_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CauseRIC.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CauseRIC.h deleted file mode 100644 index 417532f..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CauseRIC.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _CauseRIC_H_ -#define _CauseRIC_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#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; -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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CauseRICservice.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CauseRICservice.c deleted file mode 100644 index 6773fd4..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CauseRICservice.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "CauseRICservice.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CauseRICservice_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_CauseRICservice_value2enum_1[] = { - { 0, 21, "function-not-required" }, - { 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) */ - 2 /* ric-resource-limit(2) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseRICservice_specs_1 = { - asn_MAP_CauseRICservice_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseRICservice_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_CauseRICservice_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseRICservice = { - "CauseRICservice", - "CauseRICservice", - &asn_OP_NativeEnumerated, - asn_DEF_CauseRICservice_tags_1, - sizeof(asn_DEF_CauseRICservice_tags_1) - /sizeof(asn_DEF_CauseRICservice_tags_1[0]), /* 1 */ - asn_DEF_CauseRICservice_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseRICservice_tags_1) - /sizeof(asn_DEF_CauseRICservice_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseRICservice_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseRICservice_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CauseRICservice.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CauseRICservice.h deleted file mode 100644 index 4270eb3..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CauseRICservice.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 "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _CauseRICservice_H_ -#define _CauseRICservice_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseRICservice { - CauseRICservice_function_not_required = 0, - CauseRICservice_excessive_functions = 1, - CauseRICservice_ric_resource_limit = 2 - /* - * Enumeration is extensible - */ -} e_CauseRICservice; - -/* CauseRICservice */ -typedef long CauseRICservice_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseRICservice_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseRICservice; -extern const asn_INTEGER_specifics_t asn_SPC_CauseRICservice_specs_1; -asn_struct_free_f CauseRICservice_free; -asn_struct_print_f CauseRICservice_print; -asn_constr_check_f CauseRICservice_constraint; -ber_type_decoder_f CauseRICservice_decode_ber; -der_type_encoder_f CauseRICservice_encode_der; -xer_type_decoder_f CauseRICservice_decode_xer; -xer_type_encoder_f CauseRICservice_encode_xer; -per_type_decoder_f CauseRICservice_decode_uper; -per_type_encoder_f CauseRICservice_encode_uper; -per_type_decoder_f CauseRICservice_decode_aper; -per_type_encoder_f CauseRICservice_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseRICservice_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CauseTransport.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CauseTransport.c deleted file mode 100644 index 08a317d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CauseTransport.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "CauseTransport.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CauseTransport_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 */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CauseTransport_value2enum_1[] = { - { 0, 11, "unspecified" }, - { 1, 30, "transport-resource-unavailable" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CauseTransport_enum2value_1[] = { - 1, /* transport-resource-unavailable(1) */ - 0 /* unspecified(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseTransport_specs_1 = { - asn_MAP_CauseTransport_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseTransport_enum2value_1, /* 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_CauseTransport_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseTransport = { - "CauseTransport", - "CauseTransport", - &asn_OP_NativeEnumerated, - asn_DEF_CauseTransport_tags_1, - sizeof(asn_DEF_CauseTransport_tags_1) - /sizeof(asn_DEF_CauseTransport_tags_1[0]), /* 1 */ - asn_DEF_CauseTransport_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseTransport_tags_1) - /sizeof(asn_DEF_CauseTransport_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseTransport_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseTransport_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CauseTransport.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CauseTransport.h deleted file mode 100644 index f3fe969..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CauseTransport.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _CauseTransport_H_ -#define _CauseTransport_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseTransport { - CauseTransport_unspecified = 0, - CauseTransport_transport_resource_unavailable = 1 - /* - * Enumeration is extensible - */ -} e_CauseTransport; - -/* CauseTransport */ -typedef long CauseTransport_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseTransport_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseTransport; -extern const asn_INTEGER_specifics_t asn_SPC_CauseTransport_specs_1; -asn_struct_free_f CauseTransport_free; -asn_struct_print_f CauseTransport_print; -asn_constr_check_f CauseTransport_constraint; -ber_type_decoder_f CauseTransport_decode_ber; -der_type_encoder_f CauseTransport_encode_der; -xer_type_decoder_f CauseTransport_decode_xer; -xer_type_encoder_f CauseTransport_encode_xer; -per_type_decoder_f CauseTransport_decode_uper; -per_type_encoder_f CauseTransport_encode_uper; -per_type_decoder_f CauseTransport_decode_aper; -per_type_encoder_f CauseTransport_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseTransport_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CellResourceReportListItem.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CellResourceReportListItem.c deleted file mode 100644 index 670d42a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CellResourceReportListItem.c +++ /dev/null @@ -1,227 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CellResourceReportListItem.h" - -static int -memb_dl_TotalofAvailablePRBs_constraint_1(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 <= 273)) { - /* 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_ul_TotalofAvailablePRBs_constraint_1(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 <= 273)) { - /* 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_servedPlmnPerCellList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 12)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_servedPlmnPerCellList_constr_5 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..12)) */}; -static asn_per_constraints_t asn_PER_type_servedPlmnPerCellList_constr_5 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 12 } /* (SIZE(1..12)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_dl_TotalofAvailablePRBs_constr_3 CC_NOTUSED = { - { 2, 1 } /* (0..273) */, - -1}; -static asn_per_constraints_t asn_PER_memb_dl_TotalofAvailablePRBs_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 9, 9, 0, 273 } /* (0..273) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ul_TotalofAvailablePRBs_constr_4 CC_NOTUSED = { - { 2, 1 } /* (0..273) */, - -1}; -static asn_per_constraints_t asn_PER_memb_ul_TotalofAvailablePRBs_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED, 9, 9, 0, 273 } /* (0..273) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_servedPlmnPerCellList_constr_5 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..12)) */}; -static asn_per_constraints_t asn_PER_memb_servedPlmnPerCellList_constr_5 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 12 } /* (SIZE(1..12)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_servedPlmnPerCellList_5[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedPlmnPerCellListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_servedPlmnPerCellList_tags_5[] = { - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_servedPlmnPerCellList_specs_5 = { - sizeof(struct CellResourceReportListItem__servedPlmnPerCellList), - offsetof(struct CellResourceReportListItem__servedPlmnPerCellList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_servedPlmnPerCellList_5 = { - "servedPlmnPerCellList", - "servedPlmnPerCellList", - &asn_OP_SEQUENCE_OF, - asn_DEF_servedPlmnPerCellList_tags_5, - sizeof(asn_DEF_servedPlmnPerCellList_tags_5) - /sizeof(asn_DEF_servedPlmnPerCellList_tags_5[0]) - 1, /* 1 */ - asn_DEF_servedPlmnPerCellList_tags_5, /* Same as above */ - sizeof(asn_DEF_servedPlmnPerCellList_tags_5) - /sizeof(asn_DEF_servedPlmnPerCellList_tags_5[0]), /* 2 */ - { &asn_OER_type_servedPlmnPerCellList_constr_5, &asn_PER_type_servedPlmnPerCellList_constr_5, SEQUENCE_OF_constraint }, - asn_MBR_servedPlmnPerCellList_5, - 1, /* Single element */ - &asn_SPC_servedPlmnPerCellList_specs_5 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CellResourceReportListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellResourceReportListItem, nRCGI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRCGI" - }, - { ATF_POINTER, 2, offsetof(struct CellResourceReportListItem, dl_TotalofAvailablePRBs), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_dl_TotalofAvailablePRBs_constr_3, &asn_PER_memb_dl_TotalofAvailablePRBs_constr_3, memb_dl_TotalofAvailablePRBs_constraint_1 }, - 0, 0, /* No default value */ - "dl-TotalofAvailablePRBs" - }, - { ATF_POINTER, 1, offsetof(struct CellResourceReportListItem, ul_TotalofAvailablePRBs), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_ul_TotalofAvailablePRBs_constr_4, &asn_PER_memb_ul_TotalofAvailablePRBs_constr_4, memb_ul_TotalofAvailablePRBs_constraint_1 }, - 0, 0, /* No default value */ - "ul-TotalofAvailablePRBs" - }, - { ATF_NOFLAGS, 0, offsetof(struct CellResourceReportListItem, servedPlmnPerCellList), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - 0, - &asn_DEF_servedPlmnPerCellList_5, - 0, - { &asn_OER_memb_servedPlmnPerCellList_constr_5, &asn_PER_memb_servedPlmnPerCellList_constr_5, memb_servedPlmnPerCellList_constraint_1 }, - 0, 0, /* No default value */ - "servedPlmnPerCellList" - }, -}; -static const int asn_MAP_CellResourceReportListItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_CellResourceReportListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CellResourceReportListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dl-TotalofAvailablePRBs */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ul-TotalofAvailablePRBs */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* servedPlmnPerCellList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CellResourceReportListItem_specs_1 = { - sizeof(struct CellResourceReportListItem), - offsetof(struct CellResourceReportListItem, _asn_ctx), - asn_MAP_CellResourceReportListItem_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_CellResourceReportListItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CellResourceReportListItem = { - "CellResourceReportListItem", - "CellResourceReportListItem", - &asn_OP_SEQUENCE, - asn_DEF_CellResourceReportListItem_tags_1, - sizeof(asn_DEF_CellResourceReportListItem_tags_1) - /sizeof(asn_DEF_CellResourceReportListItem_tags_1[0]), /* 1 */ - asn_DEF_CellResourceReportListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_CellResourceReportListItem_tags_1) - /sizeof(asn_DEF_CellResourceReportListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CellResourceReportListItem_1, - 4, /* Elements count */ - &asn_SPC_CellResourceReportListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CellResourceReportListItem.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CellResourceReportListItem.h deleted file mode 100644 index 91bbf71..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CellResourceReportListItem.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CellResourceReportListItem_H_ -#define _CellResourceReportListItem_H_ - - -#include - -/* Including external dependencies */ -#include "NRCGI.h" -#include -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ServedPlmnPerCellListItem; - -/* CellResourceReportListItem */ -typedef struct CellResourceReportListItem { - NRCGI_t nRCGI; - long *dl_TotalofAvailablePRBs; /* OPTIONAL */ - long *ul_TotalofAvailablePRBs; /* OPTIONAL */ - struct CellResourceReportListItem__servedPlmnPerCellList { - A_SEQUENCE_OF(struct ServedPlmnPerCellListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } servedPlmnPerCellList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellResourceReportListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CellResourceReportListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_CellResourceReportListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_CellResourceReportListItem_1[4]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "ServedPlmnPerCellListItem.h" - -#endif /* _CellResourceReportListItem_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Criticality.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Criticality.c deleted file mode 100644 index 217d8e5..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Criticality.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "Criticality.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_Criticality_constr_1 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_INTEGER_enum_map_t asn_MAP_Criticality_value2enum_1[] = { - { 0, 6, "reject" }, - { 1, 6, "ignore" }, - { 2, 6, "notify" } -}; -static const unsigned int asn_MAP_Criticality_enum2value_1[] = { - 1, /* ignore(1) */ - 2, /* notify(2) */ - 0 /* reject(0) */ -}; -const asn_INTEGER_specifics_t asn_SPC_Criticality_specs_1 = { - asn_MAP_Criticality_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_Criticality_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 0, /* Enumeration is not extensible */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_Criticality_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Criticality = { - "Criticality", - "Criticality", - &asn_OP_NativeEnumerated, - asn_DEF_Criticality_tags_1, - sizeof(asn_DEF_Criticality_tags_1) - /sizeof(asn_DEF_Criticality_tags_1[0]), /* 1 */ - asn_DEF_Criticality_tags_1, /* Same as above */ - sizeof(asn_DEF_Criticality_tags_1) - /sizeof(asn_DEF_Criticality_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Criticality_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_Criticality_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Criticality.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Criticality.h deleted file mode 100644 index ab1ecf2..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Criticality.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _Criticality_H_ -#define _Criticality_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum Criticality { - Criticality_reject = 0, - Criticality_ignore = 1, - Criticality_notify = 2 -} e_Criticality; - -/* Criticality */ -typedef long Criticality_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Criticality_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Criticality; -extern const asn_INTEGER_specifics_t asn_SPC_Criticality_specs_1; -asn_struct_free_f Criticality_free; -asn_struct_print_f Criticality_print; -asn_constr_check_f Criticality_constraint; -ber_type_decoder_f Criticality_decode_ber; -der_type_encoder_f Criticality_encode_der; -xer_type_decoder_f Criticality_decode_xer; -xer_type_encoder_f Criticality_encode_xer; -per_type_decoder_f Criticality_decode_uper; -per_type_encoder_f Criticality_encode_uper; -per_type_decoder_f Criticality_decode_aper; -per_type_encoder_f Criticality_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Criticality_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CriticalityDiagnostics-IE-Item.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CriticalityDiagnostics-IE-Item.c deleted file mode 100644 index 0306093..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CriticalityDiagnostics-IE-Item.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "CriticalityDiagnostics-IE-Item.h" - -asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_Item, iECriticality), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iECriticality" - }, - { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_Item, iE_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_Item, typeOfError), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TypeOfError, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "typeOfError" - }, -}; -static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_IE_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CriticalityDiagnostics_IE_Item_tag2el_1[] = { - { (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 */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_IE_Item_specs_1 = { - sizeof(struct CriticalityDiagnostics_IE_Item), - offsetof(struct CriticalityDiagnostics_IE_Item, _asn_ctx), - asn_MAP_CriticalityDiagnostics_IE_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_CriticalityDiagnostics_IE_Item = { - "CriticalityDiagnostics-IE-Item", - "CriticalityDiagnostics-IE-Item", - &asn_OP_SEQUENCE, - asn_DEF_CriticalityDiagnostics_IE_Item_tags_1, - sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_tags_1[0]), /* 1 */ - asn_DEF_CriticalityDiagnostics_IE_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CriticalityDiagnostics_IE_Item_1, - 3, /* Elements count */ - &asn_SPC_CriticalityDiagnostics_IE_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CriticalityDiagnostics-IE-Item.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CriticalityDiagnostics-IE-Item.h deleted file mode 100644 index 1222f03..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CriticalityDiagnostics-IE-Item.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _CriticalityDiagnostics_IE_Item_H_ -#define _CriticalityDiagnostics_IE_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "Criticality.h" -#include "ProtocolIE-ID.h" -#include "TypeOfError.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* CriticalityDiagnostics-IE-Item */ -typedef struct CriticalityDiagnostics_IE_Item { - Criticality_t iECriticality; - ProtocolIE_ID_t iE_ID; - TypeOfError_t typeOfError; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CriticalityDiagnostics_IE_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_IE_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_Item_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _CriticalityDiagnostics_IE_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CriticalityDiagnostics-IE-List.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CriticalityDiagnostics-IE-List.c deleted file mode 100644 index 502517f..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CriticalityDiagnostics-IE-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "CriticalityDiagnostics-IE-List.h" - -#include "CriticalityDiagnostics-IE-Item.h" -asn_per_constraints_t asn_PER_type_CriticalityDiagnostics_IE_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics_IE_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_IE_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_CriticalityDiagnostics_IE_List_specs_1 = { - sizeof(struct CriticalityDiagnostics_IE_List), - offsetof(struct CriticalityDiagnostics_IE_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_List = { - "CriticalityDiagnostics-IE-List", - "CriticalityDiagnostics-IE-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_CriticalityDiagnostics_IE_List_tags_1, - sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1[0]), /* 1 */ - asn_DEF_CriticalityDiagnostics_IE_List_tags_1, /* Same as above */ - sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CriticalityDiagnostics_IE_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_CriticalityDiagnostics_IE_List_1, - 1, /* Single element */ - &asn_SPC_CriticalityDiagnostics_IE_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CriticalityDiagnostics-IE-List.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CriticalityDiagnostics-IE-List.h deleted file mode 100644 index 3f0d07b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CriticalityDiagnostics-IE-List.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _CriticalityDiagnostics_IE_List_H_ -#define _CriticalityDiagnostics_IE_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CriticalityDiagnostics_IE_Item; - -/* CriticalityDiagnostics-IE-List */ -typedef struct CriticalityDiagnostics_IE_List { - A_SEQUENCE_OF(struct CriticalityDiagnostics_IE_Item) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CriticalityDiagnostics_IE_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_List; -extern asn_SET_OF_specifics_t asn_SPC_CriticalityDiagnostics_IE_List_specs_1; -extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_List_1[1]; -extern asn_per_constraints_t asn_PER_type_CriticalityDiagnostics_IE_List_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _CriticalityDiagnostics_IE_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CriticalityDiagnostics.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CriticalityDiagnostics.c deleted file mode 100644 index 825808b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CriticalityDiagnostics.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "CriticalityDiagnostics.h" - -#include "RICrequestID.h" -#include "CriticalityDiagnostics-IE-List.h" -static asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_1[] = { - { ATF_POINTER, 5, offsetof(struct CriticalityDiagnostics, procedureCode), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProcedureCode, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "procedureCode" - }, - { ATF_POINTER, 4, offsetof(struct CriticalityDiagnostics, triggeringMessage), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TriggeringMessage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "triggeringMessage" - }, - { ATF_POINTER, 3, offsetof(struct CriticalityDiagnostics, procedureCriticality), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "procedureCriticality" - }, - { ATF_POINTER, 2, offsetof(struct CriticalityDiagnostics, ricRequestorID), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricRequestorID" - }, - { ATF_POINTER, 1, offsetof(struct CriticalityDiagnostics, iEsCriticalityDiagnostics), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CriticalityDiagnostics_IE_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iEsCriticalityDiagnostics" - }, -}; -static const int asn_MAP_CriticalityDiagnostics_oms_1[] = { 0, 1, 2, 3, 4 }; -static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CriticalityDiagnostics_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* triggeringMessage */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* procedureCriticality */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ricRequestorID */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iEsCriticalityDiagnostics */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_specs_1 = { - sizeof(struct CriticalityDiagnostics), - offsetof(struct CriticalityDiagnostics, _asn_ctx), - asn_MAP_CriticalityDiagnostics_tag2el_1, - 5, /* Count of tags in the map */ - asn_MAP_CriticalityDiagnostics_oms_1, /* Optional members */ - 5, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics = { - "CriticalityDiagnostics", - "CriticalityDiagnostics", - &asn_OP_SEQUENCE, - asn_DEF_CriticalityDiagnostics_tags_1, - sizeof(asn_DEF_CriticalityDiagnostics_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_tags_1[0]), /* 1 */ - asn_DEF_CriticalityDiagnostics_tags_1, /* Same as above */ - sizeof(asn_DEF_CriticalityDiagnostics_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CriticalityDiagnostics_1, - 5, /* Elements count */ - &asn_SPC_CriticalityDiagnostics_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CriticalityDiagnostics.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CriticalityDiagnostics.h deleted file mode 100644 index 9cef6bf..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/CriticalityDiagnostics.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _CriticalityDiagnostics_H_ -#define _CriticalityDiagnostics_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProcedureCode.h" -#include "TriggeringMessage.h" -#include "Criticality.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct RICrequestID; -struct CriticalityDiagnostics_IE_List; - -/* CriticalityDiagnostics */ -typedef struct CriticalityDiagnostics { - ProcedureCode_t *procedureCode; /* OPTIONAL */ - TriggeringMessage_t *triggeringMessage; /* OPTIONAL */ - Criticality_t *procedureCriticality; /* OPTIONAL */ - struct RICrequestID *ricRequestorID; /* OPTIONAL */ - struct CriticalityDiagnostics_IE_List *iEsCriticalityDiagnostics; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CriticalityDiagnostics_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics; - -#ifdef __cplusplus -} -#endif - -#endif /* _CriticalityDiagnostics_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/DU-Usage-Report-CellResourceReportItem.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/DU-Usage-Report-CellResourceReportItem.c deleted file mode 100644 index eee9621..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/DU-Usage-Report-CellResourceReportItem.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "DU-Usage-Report-CellResourceReportItem.h" - -static int -memb_ueResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 32)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_ueResourceReportList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_type_ueResourceReportList_constr_3 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_oer_constraints_t asn_OER_memb_ueResourceReportList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_memb_ueResourceReportList_constr_3 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_ueResourceReportList_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_DU_Usage_Report_UeResourceReportItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ueResourceReportList_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ueResourceReportList_specs_3 = { - sizeof(struct DU_Usage_Report_CellResourceReportItem__ueResourceReportList), - offsetof(struct DU_Usage_Report_CellResourceReportItem__ueResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_ueResourceReportList_3 = { - "ueResourceReportList", - "ueResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_ueResourceReportList_tags_3, - sizeof(asn_DEF_ueResourceReportList_tags_3) - /sizeof(asn_DEF_ueResourceReportList_tags_3[0]) - 1, /* 1 */ - asn_DEF_ueResourceReportList_tags_3, /* Same as above */ - sizeof(asn_DEF_ueResourceReportList_tags_3) - /sizeof(asn_DEF_ueResourceReportList_tags_3[0]), /* 2 */ - { &asn_OER_type_ueResourceReportList_constr_3, &asn_PER_type_ueResourceReportList_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_ueResourceReportList_3, - 1, /* Single element */ - &asn_SPC_ueResourceReportList_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_DU_Usage_Report_CellResourceReportItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct DU_Usage_Report_CellResourceReportItem, nRCGI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRCGI" - }, - { ATF_NOFLAGS, 0, offsetof(struct DU_Usage_Report_CellResourceReportItem, ueResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_ueResourceReportList_3, - 0, - { &asn_OER_memb_ueResourceReportList_constr_3, &asn_PER_memb_ueResourceReportList_constr_3, memb_ueResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "ueResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_DU_Usage_Report_CellResourceReportItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ueResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_DU_Usage_Report_CellResourceReportItem_specs_1 = { - sizeof(struct DU_Usage_Report_CellResourceReportItem), - offsetof(struct DU_Usage_Report_CellResourceReportItem, _asn_ctx), - asn_MAP_DU_Usage_Report_CellResourceReportItem_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_DU_Usage_Report_CellResourceReportItem = { - "DU-Usage-Report-CellResourceReportItem", - "DU-Usage-Report-CellResourceReportItem", - &asn_OP_SEQUENCE, - asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1, - sizeof(asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1) - /sizeof(asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1[0]), /* 1 */ - asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1, /* Same as above */ - sizeof(asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1) - /sizeof(asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_DU_Usage_Report_CellResourceReportItem_1, - 2, /* Elements count */ - &asn_SPC_DU_Usage_Report_CellResourceReportItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/DU-Usage-Report-CellResourceReportItem.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/DU-Usage-Report-CellResourceReportItem.h deleted file mode 100644 index 4a72572..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/DU-Usage-Report-CellResourceReportItem.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _DU_Usage_Report_CellResourceReportItem_H_ -#define _DU_Usage_Report_CellResourceReportItem_H_ - - -#include - -/* Including external dependencies */ -#include "NRCGI.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct DU_Usage_Report_UeResourceReportItem; - -/* DU-Usage-Report-CellResourceReportItem */ -typedef struct DU_Usage_Report_CellResourceReportItem { - NRCGI_t nRCGI; - struct DU_Usage_Report_CellResourceReportItem__ueResourceReportList { - A_SEQUENCE_OF(struct DU_Usage_Report_UeResourceReportItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } ueResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} DU_Usage_Report_CellResourceReportItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_DU_Usage_Report_CellResourceReportItem; -extern asn_SEQUENCE_specifics_t asn_SPC_DU_Usage_Report_CellResourceReportItem_specs_1; -extern asn_TYPE_member_t asn_MBR_DU_Usage_Report_CellResourceReportItem_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "DU-Usage-Report-UeResourceReportItem.h" - -#endif /* _DU_Usage_Report_CellResourceReportItem_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/DU-Usage-Report-Per-UE.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/DU-Usage-Report-Per-UE.c deleted file mode 100644 index 9ba13af..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/DU-Usage-Report-Per-UE.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "DU-Usage-Report-Per-UE.h" - -static int -memb_cellResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 512)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..512)) */}; -static asn_per_constraints_t asn_PER_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 1, 512 } /* (SIZE(1..512)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..512)) */}; -static asn_per_constraints_t asn_PER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 1, 512 } /* (SIZE(1..512)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_cellResourceReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_DU_Usage_Report_CellResourceReportItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_cellResourceReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_cellResourceReportList_specs_2 = { - sizeof(struct DU_Usage_Report_Per_UE__cellResourceReportList), - offsetof(struct DU_Usage_Report_Per_UE__cellResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_cellResourceReportList_2 = { - "cellResourceReportList", - "cellResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_cellResourceReportList_tags_2, - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_cellResourceReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_cellResourceReportList_constr_2, &asn_PER_type_cellResourceReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_cellResourceReportList_2, - 1, /* Single element */ - &asn_SPC_cellResourceReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_DU_Usage_Report_Per_UE_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct DU_Usage_Report_Per_UE, cellResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_cellResourceReportList_2, - 0, - { &asn_OER_memb_cellResourceReportList_constr_2, &asn_PER_memb_cellResourceReportList_constr_2, memb_cellResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "cellResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_DU_Usage_Report_Per_UE_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_DU_Usage_Report_Per_UE_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cellResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_DU_Usage_Report_Per_UE_specs_1 = { - sizeof(struct DU_Usage_Report_Per_UE), - offsetof(struct DU_Usage_Report_Per_UE, _asn_ctx), - asn_MAP_DU_Usage_Report_Per_UE_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_DU_Usage_Report_Per_UE = { - "DU-Usage-Report-Per-UE", - "DU-Usage-Report-Per-UE", - &asn_OP_SEQUENCE, - asn_DEF_DU_Usage_Report_Per_UE_tags_1, - sizeof(asn_DEF_DU_Usage_Report_Per_UE_tags_1) - /sizeof(asn_DEF_DU_Usage_Report_Per_UE_tags_1[0]), /* 1 */ - asn_DEF_DU_Usage_Report_Per_UE_tags_1, /* Same as above */ - sizeof(asn_DEF_DU_Usage_Report_Per_UE_tags_1) - /sizeof(asn_DEF_DU_Usage_Report_Per_UE_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_DU_Usage_Report_Per_UE_1, - 1, /* Elements count */ - &asn_SPC_DU_Usage_Report_Per_UE_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/DU-Usage-Report-Per-UE.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/DU-Usage-Report-Per-UE.h deleted file mode 100644 index 2fc44d1..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/DU-Usage-Report-Per-UE.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _DU_Usage_Report_Per_UE_H_ -#define _DU_Usage_Report_Per_UE_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct DU_Usage_Report_CellResourceReportItem; - -/* DU-Usage-Report-Per-UE */ -typedef struct DU_Usage_Report_Per_UE { - struct DU_Usage_Report_Per_UE__cellResourceReportList { - A_SEQUENCE_OF(struct DU_Usage_Report_CellResourceReportItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } cellResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} DU_Usage_Report_Per_UE_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_DU_Usage_Report_Per_UE; -extern asn_SEQUENCE_specifics_t asn_SPC_DU_Usage_Report_Per_UE_specs_1; -extern asn_TYPE_member_t asn_MBR_DU_Usage_Report_Per_UE_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "DU-Usage-Report-CellResourceReportItem.h" - -#endif /* _DU_Usage_Report_Per_UE_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/DU-Usage-Report-UeResourceReportItem.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/DU-Usage-Report-UeResourceReportItem.c deleted file mode 100644 index 0bcafbe..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/DU-Usage-Report-UeResourceReportItem.c +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "DU-Usage-Report-UeResourceReportItem.h" - -static int -memb_dl_PRBUsage_constraint_1(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 <= 1000000000)) { - /* 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_ul_PRBUsage_constraint_1(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 <= 1000000000)) { - /* 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_dl_PRBUsage_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_dl_PRBUsage_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 30, -1, 0, 1000000000 } /* (0..1000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 30, -1, 0, 1000000000 } /* (0..1000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_DU_Usage_Report_UeResourceReportItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct DU_Usage_Report_UeResourceReportItem, c_RNTI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_C_RNTI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "c-RNTI" - }, - { ATF_POINTER, 2, offsetof(struct DU_Usage_Report_UeResourceReportItem, dl_PRBUsage), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_dl_PRBUsage_constr_3, &asn_PER_memb_dl_PRBUsage_constr_3, memb_dl_PRBUsage_constraint_1 }, - 0, 0, /* No default value */ - "dl-PRBUsage" - }, - { ATF_POINTER, 1, offsetof(struct DU_Usage_Report_UeResourceReportItem, ul_PRBUsage), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_ul_PRBUsage_constr_4, &asn_PER_memb_ul_PRBUsage_constr_4, memb_ul_PRBUsage_constraint_1 }, - 0, 0, /* No default value */ - "ul-PRBUsage" - }, -}; -static const int asn_MAP_DU_Usage_Report_UeResourceReportItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_DU_Usage_Report_UeResourceReportItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* c-RNTI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dl-PRBUsage */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ul-PRBUsage */ -}; -asn_SEQUENCE_specifics_t asn_SPC_DU_Usage_Report_UeResourceReportItem_specs_1 = { - sizeof(struct DU_Usage_Report_UeResourceReportItem), - offsetof(struct DU_Usage_Report_UeResourceReportItem, _asn_ctx), - asn_MAP_DU_Usage_Report_UeResourceReportItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_DU_Usage_Report_UeResourceReportItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_DU_Usage_Report_UeResourceReportItem = { - "DU-Usage-Report-UeResourceReportItem", - "DU-Usage-Report-UeResourceReportItem", - &asn_OP_SEQUENCE, - asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1, - sizeof(asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1) - /sizeof(asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1[0]), /* 1 */ - asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1, /* Same as above */ - sizeof(asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1) - /sizeof(asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_DU_Usage_Report_UeResourceReportItem_1, - 3, /* Elements count */ - &asn_SPC_DU_Usage_Report_UeResourceReportItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/DU-Usage-Report-UeResourceReportItem.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/DU-Usage-Report-UeResourceReportItem.h deleted file mode 100644 index e860272..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/DU-Usage-Report-UeResourceReportItem.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _DU_Usage_Report_UeResourceReportItem_H_ -#define _DU_Usage_Report_UeResourceReportItem_H_ - - -#include - -/* Including external dependencies */ -#include "C-RNTI.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* DU-Usage-Report-UeResourceReportItem */ -typedef struct DU_Usage_Report_UeResourceReportItem { - C_RNTI_t c_RNTI; - long *dl_PRBUsage; /* OPTIONAL */ - long *ul_PRBUsage; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} DU_Usage_Report_UeResourceReportItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_DU_Usage_Report_UeResourceReportItem; -extern asn_SEQUENCE_specifics_t asn_SPC_DU_Usage_Report_UeResourceReportItem_specs_1; -extern asn_TYPE_member_t asn_MBR_DU_Usage_Report_UeResourceReportItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _DU_Usage_Report_UeResourceReportItem_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2AP-PDU.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2AP-PDU.c deleted file mode 100644 index 94650be..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2AP-PDU.c +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "E2AP-PDU.h" - -#include "InitiatingMessage.h" -#include "SuccessfulOutcome.h" -#include "UnsuccessfulOutcome.h" -static asn_per_constraints_t asn_PER_type_E2AP_PDU_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 asn_TYPE_member_t asn_MBR_E2AP_PDU_1[] = { - { ATF_POINTER, 0, offsetof(struct E2AP_PDU, choice.initiatingMessage), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_InitiatingMessage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "initiatingMessage" - }, - { ATF_POINTER, 0, offsetof(struct E2AP_PDU, choice.successfulOutcome), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SuccessfulOutcome, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "successfulOutcome" - }, - { ATF_POINTER, 0, offsetof(struct E2AP_PDU, choice.unsuccessfulOutcome), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UnsuccessfulOutcome, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "unsuccessfulOutcome" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_E2AP_PDU_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* initiatingMessage */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* successfulOutcome */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* unsuccessfulOutcome */ -}; -static asn_CHOICE_specifics_t asn_SPC_E2AP_PDU_specs_1 = { - sizeof(struct E2AP_PDU), - offsetof(struct E2AP_PDU, _asn_ctx), - offsetof(struct E2AP_PDU, present), - sizeof(((struct E2AP_PDU *)0)->present), - asn_MAP_E2AP_PDU_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, - 3 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_E2AP_PDU = { - "E2AP-PDU", - "E2AP-PDU", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_E2AP_PDU_constr_1, CHOICE_constraint }, - asn_MBR_E2AP_PDU_1, - 3, /* Elements count */ - &asn_SPC_E2AP_PDU_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2AP-PDU.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2AP-PDU.h deleted file mode 100644 index 6f3f1c8..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2AP-PDU.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _E2AP_PDU_H_ -#define _E2AP_PDU_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E2AP_PDU_PR { - E2AP_PDU_PR_NOTHING, /* No components present */ - E2AP_PDU_PR_initiatingMessage, - E2AP_PDU_PR_successfulOutcome, - E2AP_PDU_PR_unsuccessfulOutcome - /* Extensions may appear below */ - -} E2AP_PDU_PR; - -/* Forward declarations */ -struct InitiatingMessage; -struct SuccessfulOutcome; -struct UnsuccessfulOutcome; - -/* E2AP-PDU */ -typedef struct E2AP_PDU { - E2AP_PDU_PR present; - union E2AP_PDU_u { - struct InitiatingMessage *initiatingMessage; - struct SuccessfulOutcome *successfulOutcome; - struct UnsuccessfulOutcome *unsuccessfulOutcome; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2AP_PDU_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2AP_PDU; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2AP_PDU_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-ActionDefinition.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-ActionDefinition.c deleted file mode 100644 index abdf25d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-ActionDefinition.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-ActionDefinition.h" - -static asn_TYPE_member_t asn_MBR_E2SM_KPM_ActionDefinition_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_ActionDefinition, ric_Style_Type), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Style_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-Style-Type" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2SM_KPM_ActionDefinition_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_ActionDefinition_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ric-Style-Type */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_ActionDefinition_specs_1 = { - sizeof(struct E2SM_KPM_ActionDefinition), - offsetof(struct E2SM_KPM_ActionDefinition, _asn_ctx), - asn_MAP_E2SM_KPM_ActionDefinition_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_E2SM_KPM_ActionDefinition = { - "E2SM-KPM-ActionDefinition", - "E2SM-KPM-ActionDefinition", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_KPM_ActionDefinition_tags_1, - sizeof(asn_DEF_E2SM_KPM_ActionDefinition_tags_1) - /sizeof(asn_DEF_E2SM_KPM_ActionDefinition_tags_1[0]), /* 1 */ - asn_DEF_E2SM_KPM_ActionDefinition_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_KPM_ActionDefinition_tags_1) - /sizeof(asn_DEF_E2SM_KPM_ActionDefinition_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_KPM_ActionDefinition_1, - 1, /* Elements count */ - &asn_SPC_E2SM_KPM_ActionDefinition_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-ActionDefinition.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-ActionDefinition.h deleted file mode 100644 index 70b81dd..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-ActionDefinition.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_ActionDefinition_H_ -#define _E2SM_KPM_ActionDefinition_H_ - - -#include - -/* Including external dependencies */ -#include "RIC-Style-Type.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2SM-KPM-ActionDefinition */ -typedef struct E2SM_KPM_ActionDefinition { - RIC_Style_Type_t ric_Style_Type; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_ActionDefinition_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_ActionDefinition; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2SM_KPM_ActionDefinition_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.c deleted file mode 100644 index e0b48f2..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.c +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-EventTriggerDefinition-Format1.h" - -static int -memb_policyTest_List_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 15)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_policyTest_List_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..15)) */}; -static asn_per_constraints_t asn_PER_type_policyTest_List_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 15 } /* (SIZE(1..15)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_policyTest_List_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..15)) */}; -static asn_per_constraints_t asn_PER_memb_policyTest_List_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 15 } /* (SIZE(1..15)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_policyTest_List_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_Trigger_ConditionIE_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_policyTest_List_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_policyTest_List_specs_2 = { - sizeof(struct E2SM_KPM_EventTriggerDefinition_Format1__policyTest_List), - offsetof(struct E2SM_KPM_EventTriggerDefinition_Format1__policyTest_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_policyTest_List_2 = { - "policyTest-List", - "policyTest-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_policyTest_List_tags_2, - sizeof(asn_DEF_policyTest_List_tags_2) - /sizeof(asn_DEF_policyTest_List_tags_2[0]) - 1, /* 1 */ - asn_DEF_policyTest_List_tags_2, /* Same as above */ - sizeof(asn_DEF_policyTest_List_tags_2) - /sizeof(asn_DEF_policyTest_List_tags_2[0]), /* 2 */ - { &asn_OER_type_policyTest_List_constr_2, &asn_PER_type_policyTest_List_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_policyTest_List_2, - 1, /* Single element */ - &asn_SPC_policyTest_List_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E2SM_KPM_EventTriggerDefinition_Format1_1[] = { - { ATF_POINTER, 1, offsetof(struct E2SM_KPM_EventTriggerDefinition_Format1, policyTest_List), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_policyTest_List_2, - 0, - { &asn_OER_memb_policyTest_List_constr_2, &asn_PER_memb_policyTest_List_constr_2, memb_policyTest_List_constraint_1 }, - 0, 0, /* No default value */ - "policyTest-List" - }, -}; -static const int asn_MAP_E2SM_KPM_EventTriggerDefinition_Format1_oms_1[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_EventTriggerDefinition_Format1_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* policyTest-List */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_EventTriggerDefinition_Format1_specs_1 = { - sizeof(struct E2SM_KPM_EventTriggerDefinition_Format1), - offsetof(struct E2SM_KPM_EventTriggerDefinition_Format1, _asn_ctx), - asn_MAP_E2SM_KPM_EventTriggerDefinition_Format1_tag2el_1, - 1, /* Count of tags in the map */ - asn_MAP_E2SM_KPM_EventTriggerDefinition_Format1_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1 = { - "E2SM-KPM-EventTriggerDefinition-Format1", - "E2SM-KPM-EventTriggerDefinition-Format1", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1, - sizeof(asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1) - /sizeof(asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1[0]), /* 1 */ - asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1) - /sizeof(asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_KPM_EventTriggerDefinition_Format1_1, - 1, /* Elements count */ - &asn_SPC_E2SM_KPM_EventTriggerDefinition_Format1_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.h deleted file mode 100644 index 44cbd92..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_EventTriggerDefinition_Format1_H_ -#define _E2SM_KPM_EventTriggerDefinition_Format1_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct Trigger_ConditionIE_Item; - -/* E2SM-KPM-EventTriggerDefinition-Format1 */ -typedef struct E2SM_KPM_EventTriggerDefinition_Format1 { - struct E2SM_KPM_EventTriggerDefinition_Format1__policyTest_List { - A_SEQUENCE_OF(struct Trigger_ConditionIE_Item) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } *policyTest_List; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_EventTriggerDefinition_Format1_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1; -extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_EventTriggerDefinition_Format1_specs_1; -extern asn_TYPE_member_t asn_MBR_E2SM_KPM_EventTriggerDefinition_Format1_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "Trigger-ConditionIE-Item.h" - -#endif /* _E2SM_KPM_EventTriggerDefinition_Format1_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-EventTriggerDefinition.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-EventTriggerDefinition.c deleted file mode 100644 index 482e42c..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-EventTriggerDefinition.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-EventTriggerDefinition.h" - -static asn_oer_constraints_t asn_OER_type_E2SM_KPM_EventTriggerDefinition_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_E2SM_KPM_EventTriggerDefinition_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 asn_TYPE_member_t asn_MBR_E2SM_KPM_EventTriggerDefinition_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_EventTriggerDefinition, choice.eventDefinition_Format1), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eventDefinition-Format1" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_EventTriggerDefinition_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* eventDefinition-Format1 */ -}; -static asn_CHOICE_specifics_t asn_SPC_E2SM_KPM_EventTriggerDefinition_specs_1 = { - sizeof(struct E2SM_KPM_EventTriggerDefinition), - offsetof(struct E2SM_KPM_EventTriggerDefinition, _asn_ctx), - offsetof(struct E2SM_KPM_EventTriggerDefinition, present), - sizeof(((struct E2SM_KPM_EventTriggerDefinition *)0)->present), - asn_MAP_E2SM_KPM_EventTriggerDefinition_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, - 1 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_EventTriggerDefinition = { - "E2SM-KPM-EventTriggerDefinition", - "E2SM-KPM-EventTriggerDefinition", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_E2SM_KPM_EventTriggerDefinition_constr_1, &asn_PER_type_E2SM_KPM_EventTriggerDefinition_constr_1, CHOICE_constraint }, - asn_MBR_E2SM_KPM_EventTriggerDefinition_1, - 1, /* Elements count */ - &asn_SPC_E2SM_KPM_EventTriggerDefinition_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-EventTriggerDefinition.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-EventTriggerDefinition.h deleted file mode 100644 index e96e600..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-EventTriggerDefinition.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_EventTriggerDefinition_H_ -#define _E2SM_KPM_EventTriggerDefinition_H_ - - -#include - -/* Including external dependencies */ -#include "E2SM-KPM-EventTriggerDefinition-Format1.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E2SM_KPM_EventTriggerDefinition_PR { - E2SM_KPM_EventTriggerDefinition_PR_NOTHING, /* No components present */ - E2SM_KPM_EventTriggerDefinition_PR_eventDefinition_Format1 - /* Extensions may appear below */ - -} E2SM_KPM_EventTriggerDefinition_PR; - -/* E2SM-KPM-EventTriggerDefinition */ -typedef struct E2SM_KPM_EventTriggerDefinition { - E2SM_KPM_EventTriggerDefinition_PR present; - union E2SM_KPM_EventTriggerDefinition_u { - E2SM_KPM_EventTriggerDefinition_Format1_t eventDefinition_Format1; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_EventTriggerDefinition_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_EventTriggerDefinition; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2SM_KPM_EventTriggerDefinition_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-IndicationHeader-Format1.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-IndicationHeader-Format1.c deleted file mode 100644 index 2cccf8b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-IndicationHeader-Format1.c +++ /dev/null @@ -1,208 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-IndicationHeader-Format1.h" - -static int -memb_fiveQI_constraint_1(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; - } -} - -static int -memb_qci_constraint_1(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; - } -} - -static asn_oer_constraints_t asn_OER_memb_fiveQI_constr_6 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_fiveQI_constr_6 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_qci_constr_7 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_qci_constr_7 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationHeader_Format1_1[] = { - { ATF_POINTER, 10, offsetof(struct E2SM_KPM_IndicationHeader_Format1, id_GlobalKPMnode_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_GlobalKPMnode_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "id-GlobalKPMnode-ID" - }, - { ATF_POINTER, 9, offsetof(struct E2SM_KPM_IndicationHeader_Format1, nRCGI), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRCGI" - }, - { ATF_POINTER, 8, offsetof(struct E2SM_KPM_IndicationHeader_Format1, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_POINTER, 7, offsetof(struct E2SM_KPM_IndicationHeader_Format1, sliceID), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SNSSAI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sliceID" - }, - { ATF_POINTER, 6, offsetof(struct E2SM_KPM_IndicationHeader_Format1, fiveQI), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_fiveQI_constr_6, &asn_PER_memb_fiveQI_constr_6, memb_fiveQI_constraint_1 }, - 0, 0, /* No default value */ - "fiveQI" - }, - { ATF_POINTER, 5, offsetof(struct E2SM_KPM_IndicationHeader_Format1, qci), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_qci_constr_7, &asn_PER_memb_qci_constr_7, memb_qci_constraint_1 }, - 0, 0, /* No default value */ - "qci" - }, - { ATF_POINTER, 4, offsetof(struct E2SM_KPM_IndicationHeader_Format1, message_Type), - (ASN_TAG_CLASS_CONTEXT | (6 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UE_Report_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "message-Type" - }, - { ATF_POINTER, 3, offsetof(struct E2SM_KPM_IndicationHeader_Format1, gNB_DU_ID), - (ASN_TAG_CLASS_CONTEXT | (7 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_DU_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-DU-ID" - }, - { ATF_POINTER, 2, offsetof(struct E2SM_KPM_IndicationHeader_Format1, gNB_Name), - (ASN_TAG_CLASS_CONTEXT | (8 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_GNB_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-Name" - }, - { ATF_POINTER, 1, offsetof(struct E2SM_KPM_IndicationHeader_Format1, global_GNB_ID), - (ASN_TAG_CLASS_CONTEXT | (9 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalgNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-GNB-ID" - }, -}; -static const int asn_MAP_E2SM_KPM_IndicationHeader_Format1_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; -static const ber_tlv_tag_t asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_IndicationHeader_Format1_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id-GlobalKPMnode-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nRCGI */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* sliceID */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* fiveQI */ - { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* qci */ - { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* message-Type */ - { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* gNB-DU-ID */ - { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* gNB-Name */ - { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* global-GNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationHeader_Format1_specs_1 = { - sizeof(struct E2SM_KPM_IndicationHeader_Format1), - offsetof(struct E2SM_KPM_IndicationHeader_Format1, _asn_ctx), - asn_MAP_E2SM_KPM_IndicationHeader_Format1_tag2el_1, - 10, /* Count of tags in the map */ - asn_MAP_E2SM_KPM_IndicationHeader_Format1_oms_1, /* Optional members */ - 10, 0, /* Root/Additions */ - 10, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationHeader_Format1 = { - "E2SM-KPM-IndicationHeader-Format1", - "E2SM-KPM-IndicationHeader-Format1", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1, - sizeof(asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1) - /sizeof(asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1[0]), /* 1 */ - asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1) - /sizeof(asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_KPM_IndicationHeader_Format1_1, - 10, /* Elements count */ - &asn_SPC_E2SM_KPM_IndicationHeader_Format1_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-IndicationHeader-Format1.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-IndicationHeader-Format1.h deleted file mode 100644 index c46b715..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-IndicationHeader-Format1.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_IndicationHeader_Format1_H_ -#define _E2SM_KPM_IndicationHeader_Format1_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include -#include "UE-Report-Type.h" -#include "GNB-DU-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GlobalKPMnode_ID; -struct NRCGI; -struct SNSSAI; -struct GNB_Name; -struct GlobalgNB_ID; - -/* E2SM-KPM-IndicationHeader-Format1 */ -typedef struct E2SM_KPM_IndicationHeader_Format1 { - struct GlobalKPMnode_ID *id_GlobalKPMnode_ID; /* OPTIONAL */ - struct NRCGI *nRCGI; /* OPTIONAL */ - PLMN_Identity_t *pLMN_Identity; /* OPTIONAL */ - struct SNSSAI *sliceID; /* OPTIONAL */ - long *fiveQI; /* OPTIONAL */ - long *qci; /* OPTIONAL */ - UE_Report_Type_t *message_Type; /* OPTIONAL */ - GNB_DU_ID_t *gNB_DU_ID; /* OPTIONAL */ - struct GNB_Name *gNB_Name; /* OPTIONAL */ - struct GlobalgNB_ID *global_GNB_ID; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_IndicationHeader_Format1_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationHeader_Format1; -extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationHeader_Format1_specs_1; -extern asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationHeader_Format1_1[10]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "GlobalKPMnode-ID.h" -#include "NRCGI.h" -#include "SNSSAI.h" -#include "GNB-Name.h" -#include "GlobalgNB-ID.h" - -#endif /* _E2SM_KPM_IndicationHeader_Format1_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-IndicationHeader.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-IndicationHeader.c deleted file mode 100644 index c4fe730..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-IndicationHeader.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-IndicationHeader.h" - -static asn_oer_constraints_t asn_OER_type_E2SM_KPM_IndicationHeader_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_E2SM_KPM_IndicationHeader_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 asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationHeader_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationHeader, choice.indicationHeader_Format1), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E2SM_KPM_IndicationHeader_Format1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "indicationHeader-Format1" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_IndicationHeader_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* indicationHeader-Format1 */ -}; -static asn_CHOICE_specifics_t asn_SPC_E2SM_KPM_IndicationHeader_specs_1 = { - sizeof(struct E2SM_KPM_IndicationHeader), - offsetof(struct E2SM_KPM_IndicationHeader, _asn_ctx), - offsetof(struct E2SM_KPM_IndicationHeader, present), - sizeof(((struct E2SM_KPM_IndicationHeader *)0)->present), - asn_MAP_E2SM_KPM_IndicationHeader_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, - 1 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationHeader = { - "E2SM-KPM-IndicationHeader", - "E2SM-KPM-IndicationHeader", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_E2SM_KPM_IndicationHeader_constr_1, &asn_PER_type_E2SM_KPM_IndicationHeader_constr_1, CHOICE_constraint }, - asn_MBR_E2SM_KPM_IndicationHeader_1, - 1, /* Elements count */ - &asn_SPC_E2SM_KPM_IndicationHeader_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-IndicationHeader.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-IndicationHeader.h deleted file mode 100644 index 67dc86d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-IndicationHeader.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_IndicationHeader_H_ -#define _E2SM_KPM_IndicationHeader_H_ - - -#include - -/* Including external dependencies */ -#include "E2SM-KPM-IndicationHeader-Format1.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E2SM_KPM_IndicationHeader_PR { - E2SM_KPM_IndicationHeader_PR_NOTHING, /* No components present */ - E2SM_KPM_IndicationHeader_PR_indicationHeader_Format1 - /* Extensions may appear below */ - -} E2SM_KPM_IndicationHeader_PR; - -/* E2SM-KPM-IndicationHeader */ -typedef struct E2SM_KPM_IndicationHeader { - E2SM_KPM_IndicationHeader_PR present; - union E2SM_KPM_IndicationHeader_u { - E2SM_KPM_IndicationHeader_Format1_t indicationHeader_Format1; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_IndicationHeader_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationHeader; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2SM_KPM_IndicationHeader_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-IndicationMessage-Format1.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-IndicationMessage-Format1.c deleted file mode 100644 index 7bdebb0..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-IndicationMessage-Format1.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-IndicationMessage-Format1.h" - -static int -memb_pm_Containers_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 8)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_pm_Containers_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..8)) */}; -static asn_per_constraints_t asn_PER_type_pm_Containers_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pm_Containers_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..8)) */}; -static asn_per_constraints_t asn_PER_memb_pm_Containers_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_pm_Containers_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_PM_Containers_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_pm_Containers_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_pm_Containers_specs_2 = { - sizeof(struct E2SM_KPM_IndicationMessage_Format1__pm_Containers), - offsetof(struct E2SM_KPM_IndicationMessage_Format1__pm_Containers, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_pm_Containers_2 = { - "pm-Containers", - "pm-Containers", - &asn_OP_SEQUENCE_OF, - asn_DEF_pm_Containers_tags_2, - sizeof(asn_DEF_pm_Containers_tags_2) - /sizeof(asn_DEF_pm_Containers_tags_2[0]) - 1, /* 1 */ - asn_DEF_pm_Containers_tags_2, /* Same as above */ - sizeof(asn_DEF_pm_Containers_tags_2) - /sizeof(asn_DEF_pm_Containers_tags_2[0]), /* 2 */ - { &asn_OER_type_pm_Containers_constr_2, &asn_PER_type_pm_Containers_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_pm_Containers_2, - 1, /* Single element */ - &asn_SPC_pm_Containers_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationMessage_Format1_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationMessage_Format1, pm_Containers), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_pm_Containers_2, - 0, - { &asn_OER_memb_pm_Containers_constr_2, &asn_PER_memb_pm_Containers_constr_2, memb_pm_Containers_constraint_1 }, - 0, 0, /* No default value */ - "pm-Containers" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_IndicationMessage_Format1_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* pm-Containers */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationMessage_Format1_specs_1 = { - sizeof(struct E2SM_KPM_IndicationMessage_Format1), - offsetof(struct E2SM_KPM_IndicationMessage_Format1, _asn_ctx), - asn_MAP_E2SM_KPM_IndicationMessage_Format1_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_E2SM_KPM_IndicationMessage_Format1 = { - "E2SM-KPM-IndicationMessage-Format1", - "E2SM-KPM-IndicationMessage-Format1", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1, - sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1) - /sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1[0]), /* 1 */ - asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1) - /sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_KPM_IndicationMessage_Format1_1, - 1, /* Elements count */ - &asn_SPC_E2SM_KPM_IndicationMessage_Format1_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-IndicationMessage-Format1.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-IndicationMessage-Format1.h deleted file mode 100644 index a05b652..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-IndicationMessage-Format1.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_IndicationMessage_Format1_H_ -#define _E2SM_KPM_IndicationMessage_Format1_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PM_Containers_List; - -/* E2SM-KPM-IndicationMessage-Format1 */ -typedef struct E2SM_KPM_IndicationMessage_Format1 { - struct E2SM_KPM_IndicationMessage_Format1__pm_Containers { - A_SEQUENCE_OF(struct PM_Containers_List) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } pm_Containers; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_IndicationMessage_Format1_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationMessage_Format1; -extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationMessage_Format1_specs_1; -extern asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationMessage_Format1_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "PM-Containers-List.h" - -#endif /* _E2SM_KPM_IndicationMessage_Format1_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-IndicationMessage.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-IndicationMessage.c deleted file mode 100644 index 2eb4018..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-IndicationMessage.c +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-IndicationMessage.h" - -static asn_oer_constraints_t asn_OER_type_indicationMessage_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_indicationMessage_constr_3 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 asn_TYPE_member_t asn_MBR_indicationMessage_3[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationMessage__indicationMessage, choice.indicationMessage_Format1), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E2SM_KPM_IndicationMessage_Format1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "indicationMessage-Format1" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_indicationMessage_tag2el_3[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* indicationMessage-Format1 */ -}; -static asn_CHOICE_specifics_t asn_SPC_indicationMessage_specs_3 = { - sizeof(struct E2SM_KPM_IndicationMessage__indicationMessage), - offsetof(struct E2SM_KPM_IndicationMessage__indicationMessage, _asn_ctx), - offsetof(struct E2SM_KPM_IndicationMessage__indicationMessage, present), - sizeof(((struct E2SM_KPM_IndicationMessage__indicationMessage *)0)->present), - asn_MAP_indicationMessage_tag2el_3, - 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_indicationMessage_3 = { - "indicationMessage", - "indicationMessage", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_indicationMessage_constr_3, &asn_PER_type_indicationMessage_constr_3, CHOICE_constraint }, - asn_MBR_indicationMessage_3, - 1, /* Elements count */ - &asn_SPC_indicationMessage_specs_3 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationMessage_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationMessage, ric_Style_Type), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Style_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-Style-Type" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationMessage, indicationMessage), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_indicationMessage_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "indicationMessage" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2SM_KPM_IndicationMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_IndicationMessage_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-Style-Type */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* indicationMessage */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationMessage_specs_1 = { - sizeof(struct E2SM_KPM_IndicationMessage), - offsetof(struct E2SM_KPM_IndicationMessage, _asn_ctx), - asn_MAP_E2SM_KPM_IndicationMessage_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_E2SM_KPM_IndicationMessage = { - "E2SM-KPM-IndicationMessage", - "E2SM-KPM-IndicationMessage", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_KPM_IndicationMessage_tags_1, - sizeof(asn_DEF_E2SM_KPM_IndicationMessage_tags_1) - /sizeof(asn_DEF_E2SM_KPM_IndicationMessage_tags_1[0]), /* 1 */ - asn_DEF_E2SM_KPM_IndicationMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_KPM_IndicationMessage_tags_1) - /sizeof(asn_DEF_E2SM_KPM_IndicationMessage_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_KPM_IndicationMessage_1, - 2, /* Elements count */ - &asn_SPC_E2SM_KPM_IndicationMessage_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-IndicationMessage.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-IndicationMessage.h deleted file mode 100644 index 77d4e3b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-IndicationMessage.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_IndicationMessage_H_ -#define _E2SM_KPM_IndicationMessage_H_ - - -#include - -/* Including external dependencies */ -#include "RIC-Style-Type.h" -#include "E2SM-KPM-IndicationMessage-Format1.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E2SM_KPM_IndicationMessage__indicationMessage_PR { - E2SM_KPM_IndicationMessage__indicationMessage_PR_NOTHING, /* No components present */ - E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1 - /* Extensions may appear below */ - -} E2SM_KPM_IndicationMessage__indicationMessage_PR; - -/* E2SM-KPM-IndicationMessage */ -typedef struct E2SM_KPM_IndicationMessage { - RIC_Style_Type_t ric_Style_Type; - struct E2SM_KPM_IndicationMessage__indicationMessage { - E2SM_KPM_IndicationMessage__indicationMessage_PR present; - union E2SM_KPM_IndicationMessage__indicationMessage_u { - E2SM_KPM_IndicationMessage_Format1_t indicationMessage_Format1; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } indicationMessage; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_IndicationMessage_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationMessage; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2SM_KPM_IndicationMessage_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-RANfunction-Description.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-RANfunction-Description.c deleted file mode 100644 index 226d0fb..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-RANfunction-Description.c +++ /dev/null @@ -1,273 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-RANfunction-Description.h" - -static int -memb_ric_EventTriggerStyle_List_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 63)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_ric_ReportStyle_List_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 63)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_ric_EventTriggerStyle_List_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..63)) */}; -static asn_per_constraints_t asn_PER_type_ric_EventTriggerStyle_List_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_type_ric_ReportStyle_List_constr_6 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..63)) */}; -static asn_per_constraints_t asn_PER_type_ric_ReportStyle_List_constr_6 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ric_EventTriggerStyle_List_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..63)) */}; -static asn_per_constraints_t asn_PER_memb_ric_EventTriggerStyle_List_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ric_ReportStyle_List_constr_6 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..63)) */}; -static asn_per_constraints_t asn_PER_memb_ric_ReportStyle_List_constr_6 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_ric_EventTriggerStyle_List_4[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RIC_EventTriggerStyle_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ric_EventTriggerStyle_List_tags_4[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ric_EventTriggerStyle_List_specs_4 = { - sizeof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_EventTriggerStyle_List), - offsetof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_EventTriggerStyle_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_ric_EventTriggerStyle_List_4 = { - "ric-EventTriggerStyle-List", - "ric-EventTriggerStyle-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_ric_EventTriggerStyle_List_tags_4, - sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_4) - /sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_4[0]) - 1, /* 1 */ - asn_DEF_ric_EventTriggerStyle_List_tags_4, /* Same as above */ - sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_4) - /sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_4[0]), /* 2 */ - { &asn_OER_type_ric_EventTriggerStyle_List_constr_4, &asn_PER_type_ric_EventTriggerStyle_List_constr_4, SEQUENCE_OF_constraint }, - asn_MBR_ric_EventTriggerStyle_List_4, - 1, /* Single element */ - &asn_SPC_ric_EventTriggerStyle_List_specs_4 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_ric_ReportStyle_List_6[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RIC_ReportStyle_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ric_ReportStyle_List_tags_6[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ric_ReportStyle_List_specs_6 = { - sizeof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_ReportStyle_List), - offsetof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_ReportStyle_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_ric_ReportStyle_List_6 = { - "ric-ReportStyle-List", - "ric-ReportStyle-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_ric_ReportStyle_List_tags_6, - sizeof(asn_DEF_ric_ReportStyle_List_tags_6) - /sizeof(asn_DEF_ric_ReportStyle_List_tags_6[0]) - 1, /* 1 */ - asn_DEF_ric_ReportStyle_List_tags_6, /* Same as above */ - sizeof(asn_DEF_ric_ReportStyle_List_tags_6) - /sizeof(asn_DEF_ric_ReportStyle_List_tags_6[0]), /* 2 */ - { &asn_OER_type_ric_ReportStyle_List_constr_6, &asn_PER_type_ric_ReportStyle_List_constr_6, SEQUENCE_OF_constraint }, - asn_MBR_ric_ReportStyle_List_6, - 1, /* Single element */ - &asn_SPC_ric_ReportStyle_List_specs_6 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_e2SM_KPM_RANfunction_Item_3[] = { - { ATF_POINTER, 2, offsetof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item, ric_EventTriggerStyle_List), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_ric_EventTriggerStyle_List_4, - 0, - { &asn_OER_memb_ric_EventTriggerStyle_List_constr_4, &asn_PER_memb_ric_EventTriggerStyle_List_constr_4, memb_ric_EventTriggerStyle_List_constraint_3 }, - 0, 0, /* No default value */ - "ric-EventTriggerStyle-List" - }, - { ATF_POINTER, 1, offsetof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item, ric_ReportStyle_List), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_ric_ReportStyle_List_6, - 0, - { &asn_OER_memb_ric_ReportStyle_List_constr_6, &asn_PER_memb_ric_ReportStyle_List_constr_6, memb_ric_ReportStyle_List_constraint_3 }, - 0, 0, /* No default value */ - "ric-ReportStyle-List" - }, -}; -static const int asn_MAP_e2SM_KPM_RANfunction_Item_oms_3[] = { 0, 1 }; -static const ber_tlv_tag_t asn_DEF_e2SM_KPM_RANfunction_Item_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_e2SM_KPM_RANfunction_Item_tag2el_3[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-EventTriggerStyle-List */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ric-ReportStyle-List */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_e2SM_KPM_RANfunction_Item_specs_3 = { - sizeof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item), - offsetof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item, _asn_ctx), - asn_MAP_e2SM_KPM_RANfunction_Item_tag2el_3, - 2, /* Count of tags in the map */ - asn_MAP_e2SM_KPM_RANfunction_Item_oms_3, /* Optional members */ - 2, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_e2SM_KPM_RANfunction_Item_3 = { - "e2SM-KPM-RANfunction-Item", - "e2SM-KPM-RANfunction-Item", - &asn_OP_SEQUENCE, - asn_DEF_e2SM_KPM_RANfunction_Item_tags_3, - sizeof(asn_DEF_e2SM_KPM_RANfunction_Item_tags_3) - /sizeof(asn_DEF_e2SM_KPM_RANfunction_Item_tags_3[0]) - 1, /* 1 */ - asn_DEF_e2SM_KPM_RANfunction_Item_tags_3, /* Same as above */ - sizeof(asn_DEF_e2SM_KPM_RANfunction_Item_tags_3) - /sizeof(asn_DEF_e2SM_KPM_RANfunction_Item_tags_3[0]), /* 2 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_e2SM_KPM_RANfunction_Item_3, - 2, /* Elements count */ - &asn_SPC_e2SM_KPM_RANfunction_Item_specs_3 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_E2SM_KPM_RANfunction_Description_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_RANfunction_Description, ranFunction_Name), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunction_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunction-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_RANfunction_Description, e2SM_KPM_RANfunction_Item), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_e2SM_KPM_RANfunction_Item_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e2SM-KPM-RANfunction-Item" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2SM_KPM_RANfunction_Description_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_RANfunction_Description_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunction-Name */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* e2SM-KPM-RANfunction-Item */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_RANfunction_Description_specs_1 = { - sizeof(struct E2SM_KPM_RANfunction_Description), - offsetof(struct E2SM_KPM_RANfunction_Description, _asn_ctx), - asn_MAP_E2SM_KPM_RANfunction_Description_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_E2SM_KPM_RANfunction_Description = { - "E2SM-KPM-RANfunction-Description", - "E2SM-KPM-RANfunction-Description", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_KPM_RANfunction_Description_tags_1, - sizeof(asn_DEF_E2SM_KPM_RANfunction_Description_tags_1) - /sizeof(asn_DEF_E2SM_KPM_RANfunction_Description_tags_1[0]), /* 1 */ - asn_DEF_E2SM_KPM_RANfunction_Description_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_KPM_RANfunction_Description_tags_1) - /sizeof(asn_DEF_E2SM_KPM_RANfunction_Description_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_KPM_RANfunction_Description_1, - 2, /* Elements count */ - &asn_SPC_E2SM_KPM_RANfunction_Description_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-RANfunction-Description.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-RANfunction-Description.h deleted file mode 100644 index 79d2dcf..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2SM-KPM-RANfunction-Description.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_RANfunction_Description_H_ -#define _E2SM_KPM_RANfunction_Description_H_ - - -#include - -/* Including external dependencies */ -#include "RANfunction-Name.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct RIC_EventTriggerStyle_List; -struct RIC_ReportStyle_List; - -/* E2SM-KPM-RANfunction-Description */ -typedef struct E2SM_KPM_RANfunction_Description { - RANfunction_Name_t ranFunction_Name; - struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item { - struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_EventTriggerStyle_List { - A_SEQUENCE_OF(struct RIC_EventTriggerStyle_List) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } *ric_EventTriggerStyle_List; - struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_ReportStyle_List { - A_SEQUENCE_OF(struct RIC_ReportStyle_List) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } *ric_ReportStyle_List; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } e2SM_KPM_RANfunction_Item; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_RANfunction_Description_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_RANfunction_Description; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "RIC-EventTriggerStyle-List.h" -#include "RIC-ReportStyle-List.h" - -#endif /* _E2SM_KPM_RANfunction_Description_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2setupFailure.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2setupFailure.c deleted file mode 100644 index 49cae9b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2setupFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "E2setupFailure.h" - -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_Container_1527P13, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2setupFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2setupFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2setupFailure_specs_1 = { - sizeof(struct E2setupFailure), - offsetof(struct E2setupFailure, _asn_ctx), - asn_MAP_E2setupFailure_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_E2setupFailure = { - "E2setupFailure", - "E2setupFailure", - &asn_OP_SEQUENCE, - asn_DEF_E2setupFailure_tags_1, - sizeof(asn_DEF_E2setupFailure_tags_1) - /sizeof(asn_DEF_E2setupFailure_tags_1[0]), /* 1 */ - asn_DEF_E2setupFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_E2setupFailure_tags_1) - /sizeof(asn_DEF_E2setupFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupFailure_1, - 1, /* Elements count */ - &asn_SPC_E2setupFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2setupFailure.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2setupFailure.h deleted file mode 100644 index 4dee64b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2setupFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _E2setupFailure_H_ -#define _E2setupFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2setupFailure */ -typedef struct E2setupFailure { - ProtocolIE_Container_1527P13_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2setupFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2setupFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_E2setupFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2setupFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2setupRequest.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2setupRequest.c deleted file mode 100644 index cefa91b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2setupRequest.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "E2setupRequest.h" - -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_Container_1527P11, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2setupRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2setupRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2setupRequest_specs_1 = { - sizeof(struct E2setupRequest), - offsetof(struct E2setupRequest, _asn_ctx), - asn_MAP_E2setupRequest_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_E2setupRequest = { - "E2setupRequest", - "E2setupRequest", - &asn_OP_SEQUENCE, - asn_DEF_E2setupRequest_tags_1, - sizeof(asn_DEF_E2setupRequest_tags_1) - /sizeof(asn_DEF_E2setupRequest_tags_1[0]), /* 1 */ - asn_DEF_E2setupRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_E2setupRequest_tags_1) - /sizeof(asn_DEF_E2setupRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupRequest_1, - 1, /* Elements count */ - &asn_SPC_E2setupRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2setupRequest.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2setupRequest.h deleted file mode 100644 index 2b8b070..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2setupRequest.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _E2setupRequest_H_ -#define _E2setupRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2setupRequest */ -typedef struct E2setupRequest { - ProtocolIE_Container_1527P11_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2setupRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2setupRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_E2setupRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2setupRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2setupResponse.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2setupResponse.c deleted file mode 100644 index b607aa1..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2setupResponse.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "E2setupResponse.h" - -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_Container_1527P12, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2setupResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2setupResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2setupResponse_specs_1 = { - sizeof(struct E2setupResponse), - offsetof(struct E2setupResponse, _asn_ctx), - asn_MAP_E2setupResponse_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_E2setupResponse = { - "E2setupResponse", - "E2setupResponse", - &asn_OP_SEQUENCE, - asn_DEF_E2setupResponse_tags_1, - sizeof(asn_DEF_E2setupResponse_tags_1) - /sizeof(asn_DEF_E2setupResponse_tags_1[0]), /* 1 */ - asn_DEF_E2setupResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_E2setupResponse_tags_1) - /sizeof(asn_DEF_E2setupResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupResponse_1, - 1, /* Elements count */ - &asn_SPC_E2setupResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2setupResponse.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2setupResponse.h deleted file mode 100644 index ccec4bc..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/E2setupResponse.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _E2setupResponse_H_ -#define _E2setupResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2setupResponse */ -typedef struct E2setupResponse { - ProtocolIE_Container_1527P12_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2setupResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2setupResponse; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupResponse_specs_1; -extern asn_TYPE_member_t asn_MBR_E2setupResponse_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2setupResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ENB-ID-Choice.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ENB-ID-Choice.c deleted file mode 100644 index 824871d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ENB-ID-Choice.c +++ /dev/null @@ -1,192 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "ENB-ID-Choice.h" - -static int -memb_enb_ID_macro_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 == 20)) { - /* 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_enb_ID_shortmacro_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 == 18)) { - /* 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_enb_ID_longmacro_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 == 21)) { - /* 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_enb_ID_macro_constr_2 CC_NOTUSED = { - { 0, 0 }, - 20 /* (SIZE(20..20)) */}; -static asn_per_constraints_t asn_PER_memb_enb_ID_macro_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_enb_ID_shortmacro_constr_3 CC_NOTUSED = { - { 0, 0 }, - 18 /* (SIZE(18..18)) */}; -static asn_per_constraints_t asn_PER_memb_enb_ID_shortmacro_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 18, 18 } /* (SIZE(18..18)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_enb_ID_longmacro_constr_4 CC_NOTUSED = { - { 0, 0 }, - 21 /* (SIZE(21..21)) */}; -static asn_per_constraints_t asn_PER_memb_enb_ID_longmacro_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 21, 21 } /* (SIZE(21..21)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_type_ENB_ID_Choice_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_ENB_ID_Choice_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 */ -}; -asn_TYPE_member_t asn_MBR_ENB_ID_Choice_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID_Choice, choice.enb_ID_macro), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_enb_ID_macro_constr_2, &asn_PER_memb_enb_ID_macro_constr_2, memb_enb_ID_macro_constraint_1 }, - 0, 0, /* No default value */ - "enb-ID-macro" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID_Choice, choice.enb_ID_shortmacro), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_enb_ID_shortmacro_constr_3, &asn_PER_memb_enb_ID_shortmacro_constr_3, memb_enb_ID_shortmacro_constraint_1 }, - 0, 0, /* No default value */ - "enb-ID-shortmacro" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID_Choice, choice.enb_ID_longmacro), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_enb_ID_longmacro_constr_4, &asn_PER_memb_enb_ID_longmacro_constr_4, memb_enb_ID_longmacro_constraint_1 }, - 0, 0, /* No default value */ - "enb-ID-longmacro" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_ENB_ID_Choice_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* enb-ID-macro */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* enb-ID-shortmacro */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* enb-ID-longmacro */ -}; -asn_CHOICE_specifics_t asn_SPC_ENB_ID_Choice_specs_1 = { - sizeof(struct ENB_ID_Choice), - offsetof(struct ENB_ID_Choice, _asn_ctx), - offsetof(struct ENB_ID_Choice, present), - sizeof(((struct ENB_ID_Choice *)0)->present), - asn_MAP_ENB_ID_Choice_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, - 3 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_ENB_ID_Choice = { - "ENB-ID-Choice", - "ENB-ID-Choice", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_ENB_ID_Choice_constr_1, &asn_PER_type_ENB_ID_Choice_constr_1, CHOICE_constraint }, - asn_MBR_ENB_ID_Choice_1, - 3, /* Elements count */ - &asn_SPC_ENB_ID_Choice_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ENB-ID-Choice.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ENB-ID-Choice.h deleted file mode 100644 index 7e142ae..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ENB-ID-Choice.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _ENB_ID_Choice_H_ -#define _ENB_ID_Choice_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ENB_ID_Choice_PR { - ENB_ID_Choice_PR_NOTHING, /* No components present */ - ENB_ID_Choice_PR_enb_ID_macro, - ENB_ID_Choice_PR_enb_ID_shortmacro, - ENB_ID_Choice_PR_enb_ID_longmacro - /* Extensions may appear below */ - -} ENB_ID_Choice_PR; - -/* ENB-ID-Choice */ -typedef struct ENB_ID_Choice { - ENB_ID_Choice_PR present; - union ENB_ID_Choice_u { - BIT_STRING_t enb_ID_macro; - BIT_STRING_t enb_ID_shortmacro; - BIT_STRING_t enb_ID_longmacro; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENB_ID_Choice_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENB_ID_Choice; -extern asn_CHOICE_specifics_t asn_SPC_ENB_ID_Choice_specs_1; -extern asn_TYPE_member_t asn_MBR_ENB_ID_Choice_1[3]; -extern asn_per_constraints_t asn_PER_type_ENB_ID_Choice_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENB_ID_Choice_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ENB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ENB-ID.c deleted file mode 100644 index 212c6fc..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ENB-ID.c +++ /dev/null @@ -1,241 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "ENB-ID.h" - -static int -memb_macro_eNB_ID_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 == 20)) { - /* 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_home_eNB_ID_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 == 28)) { - /* 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_short_Macro_eNB_ID_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 == 18)) { - /* 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_long_Macro_eNB_ID_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 == 21)) { - /* 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_macro_eNB_ID_constr_2 CC_NOTUSED = { - { 0, 0 }, - 20 /* (SIZE(20..20)) */}; -static asn_per_constraints_t asn_PER_memb_macro_eNB_ID_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_home_eNB_ID_constr_3 CC_NOTUSED = { - { 0, 0 }, - 28 /* (SIZE(28..28)) */}; -static asn_per_constraints_t asn_PER_memb_home_eNB_ID_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 28, 28 } /* (SIZE(28..28)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_short_Macro_eNB_ID_constr_5 CC_NOTUSED = { - { 0, 0 }, - 18 /* (SIZE(18..18)) */}; -static asn_per_constraints_t asn_PER_memb_short_Macro_eNB_ID_constr_5 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 18, 18 } /* (SIZE(18..18)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_long_Macro_eNB_ID_constr_6 CC_NOTUSED = { - { 0, 0 }, - 21 /* (SIZE(21..21)) */}; -static asn_per_constraints_t asn_PER_memb_long_Macro_eNB_ID_constr_6 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 21, 21 } /* (SIZE(21..21)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_type_ENB_ID_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_ENB_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_ENB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID, choice.macro_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_macro_eNB_ID_constr_2, &asn_PER_memb_macro_eNB_ID_constr_2, memb_macro_eNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "macro-eNB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID, choice.home_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_home_eNB_ID_constr_3, &asn_PER_memb_home_eNB_ID_constr_3, memb_home_eNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "home-eNB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID, choice.short_Macro_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_short_Macro_eNB_ID_constr_5, &asn_PER_memb_short_Macro_eNB_ID_constr_5, memb_short_Macro_eNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "short-Macro-eNB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID, choice.long_Macro_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_long_Macro_eNB_ID_constr_6, &asn_PER_memb_long_Macro_eNB_ID_constr_6, memb_long_Macro_eNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "long-Macro-eNB-ID" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_ENB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* macro-eNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* home-eNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* short-Macro-eNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* long-Macro-eNB-ID */ -}; -asn_CHOICE_specifics_t asn_SPC_ENB_ID_specs_1 = { - sizeof(struct ENB_ID), - offsetof(struct ENB_ID, _asn_ctx), - offsetof(struct ENB_ID, present), - sizeof(((struct ENB_ID *)0)->present), - asn_MAP_ENB_ID_tag2el_1, - 4, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_ENB_ID = { - "ENB-ID", - "ENB-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_ENB_ID_constr_1, &asn_PER_type_ENB_ID_constr_1, CHOICE_constraint }, - asn_MBR_ENB_ID_1, - 4, /* Elements count */ - &asn_SPC_ENB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ENB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ENB-ID.h deleted file mode 100644 index 8af6b41..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ENB-ID.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _ENB_ID_H_ -#define _ENB_ID_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ENB_ID_PR { - ENB_ID_PR_NOTHING, /* No components present */ - ENB_ID_PR_macro_eNB_ID, - ENB_ID_PR_home_eNB_ID, - /* Extensions may appear below */ - ENB_ID_PR_short_Macro_eNB_ID, - ENB_ID_PR_long_Macro_eNB_ID -} ENB_ID_PR; - -/* ENB-ID */ -typedef struct ENB_ID { - ENB_ID_PR present; - union ENB_ID_u { - BIT_STRING_t macro_eNB_ID; - BIT_STRING_t home_eNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - BIT_STRING_t short_Macro_eNB_ID; - BIT_STRING_t long_Macro_eNB_ID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENB_ID; -extern asn_CHOICE_specifics_t asn_SPC_ENB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_ENB_ID_1[4]; -extern asn_per_constraints_t asn_PER_type_ENB_ID_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENB_ID_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ENGNB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ENGNB-ID.c deleted file mode 100644 index e8fc32f..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ENGNB-ID.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "ENGNB-ID.h" - -static int -memb_gNB_ID_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 >= 22 && size <= 32)) { - /* 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_gNB_ID_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(22..32)) */}; -static asn_per_constraints_t asn_PER_memb_gNB_ID_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 22, 32 } /* (SIZE(22..32)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_type_ENGNB_ID_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_ENGNB_ID_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 */ -}; -asn_TYPE_member_t asn_MBR_ENGNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENGNB_ID, choice.gNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_gNB_ID_constr_2, &asn_PER_memb_gNB_ID_constr_2, memb_gNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "gNB-ID" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_ENGNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gNB-ID */ -}; -asn_CHOICE_specifics_t asn_SPC_ENGNB_ID_specs_1 = { - sizeof(struct ENGNB_ID), - offsetof(struct ENGNB_ID, _asn_ctx), - offsetof(struct ENGNB_ID, present), - sizeof(((struct ENGNB_ID *)0)->present), - asn_MAP_ENGNB_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, - 1 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_ENGNB_ID = { - "ENGNB-ID", - "ENGNB-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_ENGNB_ID_constr_1, &asn_PER_type_ENGNB_ID_constr_1, CHOICE_constraint }, - asn_MBR_ENGNB_ID_1, - 1, /* Elements count */ - &asn_SPC_ENGNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ENGNB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ENGNB-ID.h deleted file mode 100644 index f97a53c..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ENGNB-ID.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _ENGNB_ID_H_ -#define _ENGNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ENGNB_ID_PR { - ENGNB_ID_PR_NOTHING, /* No components present */ - ENGNB_ID_PR_gNB_ID - /* Extensions may appear below */ - -} ENGNB_ID_PR; - -/* ENGNB-ID */ -typedef struct ENGNB_ID { - ENGNB_ID_PR present; - union ENGNB_ID_u { - BIT_STRING_t gNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENGNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENGNB_ID; -extern asn_CHOICE_specifics_t asn_SPC_ENGNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_ENGNB_ID_1[1]; -extern asn_per_constraints_t asn_PER_type_ENGNB_ID_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENGNB_ID_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/EPC-CUUP-PM-Format.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/EPC-CUUP-PM-Format.c deleted file mode 100644 index d8902f8..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/EPC-CUUP-PM-Format.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "EPC-CUUP-PM-Format.h" - -static int -memb_perQCIReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 256)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_perQCIReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..256)) */}; -static asn_per_constraints_t asn_PER_type_perQCIReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_perQCIReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..256)) */}; -static asn_per_constraints_t asn_PER_memb_perQCIReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_perQCIReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_PerQCIReportListItemFormat, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_perQCIReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_perQCIReportList_specs_2 = { - sizeof(struct EPC_CUUP_PM_Format__perQCIReportList), - offsetof(struct EPC_CUUP_PM_Format__perQCIReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_perQCIReportList_2 = { - "perQCIReportList", - "perQCIReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_perQCIReportList_tags_2, - sizeof(asn_DEF_perQCIReportList_tags_2) - /sizeof(asn_DEF_perQCIReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_perQCIReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_perQCIReportList_tags_2) - /sizeof(asn_DEF_perQCIReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_perQCIReportList_constr_2, &asn_PER_type_perQCIReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_perQCIReportList_2, - 1, /* Single element */ - &asn_SPC_perQCIReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_EPC_CUUP_PM_Format_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct EPC_CUUP_PM_Format, perQCIReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_perQCIReportList_2, - 0, - { &asn_OER_memb_perQCIReportList_constr_2, &asn_PER_memb_perQCIReportList_constr_2, memb_perQCIReportList_constraint_1 }, - 0, 0, /* No default value */ - "perQCIReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_EPC_CUUP_PM_Format_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_EPC_CUUP_PM_Format_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* perQCIReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_EPC_CUUP_PM_Format_specs_1 = { - sizeof(struct EPC_CUUP_PM_Format), - offsetof(struct EPC_CUUP_PM_Format, _asn_ctx), - asn_MAP_EPC_CUUP_PM_Format_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_EPC_CUUP_PM_Format = { - "EPC-CUUP-PM-Format", - "EPC-CUUP-PM-Format", - &asn_OP_SEQUENCE, - asn_DEF_EPC_CUUP_PM_Format_tags_1, - sizeof(asn_DEF_EPC_CUUP_PM_Format_tags_1) - /sizeof(asn_DEF_EPC_CUUP_PM_Format_tags_1[0]), /* 1 */ - asn_DEF_EPC_CUUP_PM_Format_tags_1, /* Same as above */ - sizeof(asn_DEF_EPC_CUUP_PM_Format_tags_1) - /sizeof(asn_DEF_EPC_CUUP_PM_Format_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_EPC_CUUP_PM_Format_1, - 1, /* Elements count */ - &asn_SPC_EPC_CUUP_PM_Format_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/EPC-CUUP-PM-Format.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/EPC-CUUP-PM-Format.h deleted file mode 100644 index b07125d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/EPC-CUUP-PM-Format.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _EPC_CUUP_PM_Format_H_ -#define _EPC_CUUP_PM_Format_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PerQCIReportListItemFormat; - -/* EPC-CUUP-PM-Format */ -typedef struct EPC_CUUP_PM_Format { - struct EPC_CUUP_PM_Format__perQCIReportList { - A_SEQUENCE_OF(struct PerQCIReportListItemFormat) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } perQCIReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} EPC_CUUP_PM_Format_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_EPC_CUUP_PM_Format; -extern asn_SEQUENCE_specifics_t asn_SPC_EPC_CUUP_PM_Format_specs_1; -extern asn_TYPE_member_t asn_MBR_EPC_CUUP_PM_Format_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "PerQCIReportListItemFormat.h" - -#endif /* _EPC_CUUP_PM_Format_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/EPC-DU-PM-Container.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/EPC-DU-PM-Container.c deleted file mode 100644 index 2ba5440..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/EPC-DU-PM-Container.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "EPC-DU-PM-Container.h" - -static int -memb_perQCIReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 256)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_perQCIReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..256)) */}; -static asn_per_constraints_t asn_PER_type_perQCIReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_perQCIReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..256)) */}; -static asn_per_constraints_t asn_PER_memb_perQCIReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_perQCIReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_PerQCIReportListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_perQCIReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_perQCIReportList_specs_2 = { - sizeof(struct EPC_DU_PM_Container__perQCIReportList), - offsetof(struct EPC_DU_PM_Container__perQCIReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_perQCIReportList_2 = { - "perQCIReportList", - "perQCIReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_perQCIReportList_tags_2, - sizeof(asn_DEF_perQCIReportList_tags_2) - /sizeof(asn_DEF_perQCIReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_perQCIReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_perQCIReportList_tags_2) - /sizeof(asn_DEF_perQCIReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_perQCIReportList_constr_2, &asn_PER_type_perQCIReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_perQCIReportList_2, - 1, /* Single element */ - &asn_SPC_perQCIReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_EPC_DU_PM_Container_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct EPC_DU_PM_Container, perQCIReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_perQCIReportList_2, - 0, - { &asn_OER_memb_perQCIReportList_constr_2, &asn_PER_memb_perQCIReportList_constr_2, memb_perQCIReportList_constraint_1 }, - 0, 0, /* No default value */ - "perQCIReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_EPC_DU_PM_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_EPC_DU_PM_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* perQCIReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_EPC_DU_PM_Container_specs_1 = { - sizeof(struct EPC_DU_PM_Container), - offsetof(struct EPC_DU_PM_Container, _asn_ctx), - asn_MAP_EPC_DU_PM_Container_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_EPC_DU_PM_Container = { - "EPC-DU-PM-Container", - "EPC-DU-PM-Container", - &asn_OP_SEQUENCE, - asn_DEF_EPC_DU_PM_Container_tags_1, - sizeof(asn_DEF_EPC_DU_PM_Container_tags_1) - /sizeof(asn_DEF_EPC_DU_PM_Container_tags_1[0]), /* 1 */ - asn_DEF_EPC_DU_PM_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_EPC_DU_PM_Container_tags_1) - /sizeof(asn_DEF_EPC_DU_PM_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_EPC_DU_PM_Container_1, - 1, /* Elements count */ - &asn_SPC_EPC_DU_PM_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/EPC-DU-PM-Container.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/EPC-DU-PM-Container.h deleted file mode 100644 index 198982e..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/EPC-DU-PM-Container.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _EPC_DU_PM_Container_H_ -#define _EPC_DU_PM_Container_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PerQCIReportListItem; - -/* EPC-DU-PM-Container */ -typedef struct EPC_DU_PM_Container { - struct EPC_DU_PM_Container__perQCIReportList { - A_SEQUENCE_OF(struct PerQCIReportListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } perQCIReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} EPC_DU_PM_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_EPC_DU_PM_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_EPC_DU_PM_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_EPC_DU_PM_Container_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "PerQCIReportListItem.h" - -#endif /* _EPC_DU_PM_Container_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ErrorIndication.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ErrorIndication.c deleted file mode 100644 index e971c4f..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ErrorIndication.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ErrorIndication.h" - -asn_TYPE_member_t asn_MBR_ErrorIndication_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P10, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ErrorIndication_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ErrorIndication_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_specs_1 = { - sizeof(struct ErrorIndication), - offsetof(struct ErrorIndication, _asn_ctx), - asn_MAP_ErrorIndication_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_ErrorIndication = { - "ErrorIndication", - "ErrorIndication", - &asn_OP_SEQUENCE, - asn_DEF_ErrorIndication_tags_1, - sizeof(asn_DEF_ErrorIndication_tags_1) - /sizeof(asn_DEF_ErrorIndication_tags_1[0]), /* 1 */ - asn_DEF_ErrorIndication_tags_1, /* Same as above */ - sizeof(asn_DEF_ErrorIndication_tags_1) - /sizeof(asn_DEF_ErrorIndication_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ErrorIndication_1, - 1, /* Elements count */ - &asn_SPC_ErrorIndication_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ErrorIndication.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ErrorIndication.h deleted file mode 100644 index a209847..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ErrorIndication.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ErrorIndication_H_ -#define _ErrorIndication_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ErrorIndication */ -typedef struct ErrorIndication { - ProtocolIE_Container_1527P10_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ErrorIndication_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ErrorIndication; -extern asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_specs_1; -extern asn_TYPE_member_t asn_MBR_ErrorIndication_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ErrorIndication_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/FGC-CUUP-PM-Format.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/FGC-CUUP-PM-Format.c deleted file mode 100644 index d8f7e44..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/FGC-CUUP-PM-Format.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "FGC-CUUP-PM-Format.h" - -static int -memb_sliceToReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 1024)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_sliceToReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..1024)) */}; -static asn_per_constraints_t asn_PER_type_sliceToReportList_constr_2 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_oer_constraints_t asn_OER_memb_sliceToReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..1024)) */}; -static asn_per_constraints_t asn_PER_memb_sliceToReportList_constr_2 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_sliceToReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SliceToReportListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_sliceToReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_sliceToReportList_specs_2 = { - sizeof(struct FGC_CUUP_PM_Format__sliceToReportList), - offsetof(struct FGC_CUUP_PM_Format__sliceToReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_sliceToReportList_2 = { - "sliceToReportList", - "sliceToReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_sliceToReportList_tags_2, - sizeof(asn_DEF_sliceToReportList_tags_2) - /sizeof(asn_DEF_sliceToReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_sliceToReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_sliceToReportList_tags_2) - /sizeof(asn_DEF_sliceToReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_sliceToReportList_constr_2, &asn_PER_type_sliceToReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_sliceToReportList_2, - 1, /* Single element */ - &asn_SPC_sliceToReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_FGC_CUUP_PM_Format_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct FGC_CUUP_PM_Format, sliceToReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_sliceToReportList_2, - 0, - { &asn_OER_memb_sliceToReportList_constr_2, &asn_PER_memb_sliceToReportList_constr_2, memb_sliceToReportList_constraint_1 }, - 0, 0, /* No default value */ - "sliceToReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_FGC_CUUP_PM_Format_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_FGC_CUUP_PM_Format_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* sliceToReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_FGC_CUUP_PM_Format_specs_1 = { - sizeof(struct FGC_CUUP_PM_Format), - offsetof(struct FGC_CUUP_PM_Format, _asn_ctx), - asn_MAP_FGC_CUUP_PM_Format_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_FGC_CUUP_PM_Format = { - "FGC-CUUP-PM-Format", - "FGC-CUUP-PM-Format", - &asn_OP_SEQUENCE, - asn_DEF_FGC_CUUP_PM_Format_tags_1, - sizeof(asn_DEF_FGC_CUUP_PM_Format_tags_1) - /sizeof(asn_DEF_FGC_CUUP_PM_Format_tags_1[0]), /* 1 */ - asn_DEF_FGC_CUUP_PM_Format_tags_1, /* Same as above */ - sizeof(asn_DEF_FGC_CUUP_PM_Format_tags_1) - /sizeof(asn_DEF_FGC_CUUP_PM_Format_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_FGC_CUUP_PM_Format_1, - 1, /* Elements count */ - &asn_SPC_FGC_CUUP_PM_Format_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/FGC-CUUP-PM-Format.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/FGC-CUUP-PM-Format.h deleted file mode 100644 index a6e4aa8..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/FGC-CUUP-PM-Format.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _FGC_CUUP_PM_Format_H_ -#define _FGC_CUUP_PM_Format_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct SliceToReportListItem; - -/* FGC-CUUP-PM-Format */ -typedef struct FGC_CUUP_PM_Format { - struct FGC_CUUP_PM_Format__sliceToReportList { - A_SEQUENCE_OF(struct SliceToReportListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } sliceToReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} FGC_CUUP_PM_Format_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_FGC_CUUP_PM_Format; -extern asn_SEQUENCE_specifics_t asn_SPC_FGC_CUUP_PM_Format_specs_1; -extern asn_TYPE_member_t asn_MBR_FGC_CUUP_PM_Format_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "SliceToReportListItem.h" - -#endif /* _FGC_CUUP_PM_Format_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/FGC-DU-PM-Container.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/FGC-DU-PM-Container.c deleted file mode 100644 index c0429ab..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/FGC-DU-PM-Container.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "FGC-DU-PM-Container.h" - -static int -memb_slicePerPlmnPerCellList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 1024)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_slicePerPlmnPerCellList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..1024)) */}; -static asn_per_constraints_t asn_PER_type_slicePerPlmnPerCellList_constr_2 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_oer_constraints_t asn_OER_memb_slicePerPlmnPerCellList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..1024)) */}; -static asn_per_constraints_t asn_PER_memb_slicePerPlmnPerCellList_constr_2 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_slicePerPlmnPerCellList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SlicePerPlmnPerCellListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_slicePerPlmnPerCellList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_slicePerPlmnPerCellList_specs_2 = { - sizeof(struct FGC_DU_PM_Container__slicePerPlmnPerCellList), - offsetof(struct FGC_DU_PM_Container__slicePerPlmnPerCellList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_slicePerPlmnPerCellList_2 = { - "slicePerPlmnPerCellList", - "slicePerPlmnPerCellList", - &asn_OP_SEQUENCE_OF, - asn_DEF_slicePerPlmnPerCellList_tags_2, - sizeof(asn_DEF_slicePerPlmnPerCellList_tags_2) - /sizeof(asn_DEF_slicePerPlmnPerCellList_tags_2[0]) - 1, /* 1 */ - asn_DEF_slicePerPlmnPerCellList_tags_2, /* Same as above */ - sizeof(asn_DEF_slicePerPlmnPerCellList_tags_2) - /sizeof(asn_DEF_slicePerPlmnPerCellList_tags_2[0]), /* 2 */ - { &asn_OER_type_slicePerPlmnPerCellList_constr_2, &asn_PER_type_slicePerPlmnPerCellList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_slicePerPlmnPerCellList_2, - 1, /* Single element */ - &asn_SPC_slicePerPlmnPerCellList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_FGC_DU_PM_Container_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct FGC_DU_PM_Container, slicePerPlmnPerCellList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_slicePerPlmnPerCellList_2, - 0, - { &asn_OER_memb_slicePerPlmnPerCellList_constr_2, &asn_PER_memb_slicePerPlmnPerCellList_constr_2, memb_slicePerPlmnPerCellList_constraint_1 }, - 0, 0, /* No default value */ - "slicePerPlmnPerCellList" - }, -}; -static const ber_tlv_tag_t asn_DEF_FGC_DU_PM_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_FGC_DU_PM_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* slicePerPlmnPerCellList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_FGC_DU_PM_Container_specs_1 = { - sizeof(struct FGC_DU_PM_Container), - offsetof(struct FGC_DU_PM_Container, _asn_ctx), - asn_MAP_FGC_DU_PM_Container_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_FGC_DU_PM_Container = { - "FGC-DU-PM-Container", - "FGC-DU-PM-Container", - &asn_OP_SEQUENCE, - asn_DEF_FGC_DU_PM_Container_tags_1, - sizeof(asn_DEF_FGC_DU_PM_Container_tags_1) - /sizeof(asn_DEF_FGC_DU_PM_Container_tags_1[0]), /* 1 */ - asn_DEF_FGC_DU_PM_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_FGC_DU_PM_Container_tags_1) - /sizeof(asn_DEF_FGC_DU_PM_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_FGC_DU_PM_Container_1, - 1, /* Elements count */ - &asn_SPC_FGC_DU_PM_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/FGC-DU-PM-Container.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/FGC-DU-PM-Container.h deleted file mode 100644 index 96debbb..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/FGC-DU-PM-Container.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _FGC_DU_PM_Container_H_ -#define _FGC_DU_PM_Container_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct SlicePerPlmnPerCellListItem; - -/* FGC-DU-PM-Container */ -typedef struct FGC_DU_PM_Container { - struct FGC_DU_PM_Container__slicePerPlmnPerCellList { - A_SEQUENCE_OF(struct SlicePerPlmnPerCellListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } slicePerPlmnPerCellList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} FGC_DU_PM_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_FGC_DU_PM_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_FGC_DU_PM_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_FGC_DU_PM_Container_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "SlicePerPlmnPerCellListItem.h" - -#endif /* _FGC_DU_PM_Container_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/FQIPERSlicesPerPlmnListItem.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/FQIPERSlicesPerPlmnListItem.c deleted file mode 100644 index 84d1741..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/FQIPERSlicesPerPlmnListItem.c +++ /dev/null @@ -1,183 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "FQIPERSlicesPerPlmnListItem.h" - -static int -memb_fiveQI_constraint_1(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; - } -} - -static int -memb_pDCPBytesDL_constraint_1(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 <= 10000000000)) { - /* 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_pDCPBytesUL_constraint_1(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 <= 10000000000)) { - /* 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_fiveQI_constr_2 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_fiveQI_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pDCPBytesDL_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_pDCPBytesDL_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 34, -1, 0, 10000000000 } /* (0..10000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 34, -1, 0, 10000000000 } /* (0..10000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_FQIPERSlicesPerPlmnListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct FQIPERSlicesPerPlmnListItem, fiveQI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_fiveQI_constr_2, &asn_PER_memb_fiveQI_constr_2, memb_fiveQI_constraint_1 }, - 0, 0, /* No default value */ - "fiveQI" - }, - { ATF_POINTER, 2, offsetof(struct FQIPERSlicesPerPlmnListItem, pDCPBytesDL), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_INTEGER, - 0, - { &asn_OER_memb_pDCPBytesDL_constr_3, &asn_PER_memb_pDCPBytesDL_constr_3, memb_pDCPBytesDL_constraint_1 }, - 0, 0, /* No default value */ - "pDCPBytesDL" - }, - { ATF_POINTER, 1, offsetof(struct FQIPERSlicesPerPlmnListItem, pDCPBytesUL), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_INTEGER, - 0, - { &asn_OER_memb_pDCPBytesUL_constr_4, &asn_PER_memb_pDCPBytesUL_constr_4, memb_pDCPBytesUL_constraint_1 }, - 0, 0, /* No default value */ - "pDCPBytesUL" - }, -}; -static const int asn_MAP_FQIPERSlicesPerPlmnListItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_FQIPERSlicesPerPlmnListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fiveQI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDCPBytesDL */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* pDCPBytesUL */ -}; -asn_SEQUENCE_specifics_t asn_SPC_FQIPERSlicesPerPlmnListItem_specs_1 = { - sizeof(struct FQIPERSlicesPerPlmnListItem), - offsetof(struct FQIPERSlicesPerPlmnListItem, _asn_ctx), - asn_MAP_FQIPERSlicesPerPlmnListItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_FQIPERSlicesPerPlmnListItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_FQIPERSlicesPerPlmnListItem = { - "FQIPERSlicesPerPlmnListItem", - "FQIPERSlicesPerPlmnListItem", - &asn_OP_SEQUENCE, - asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1, - sizeof(asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1) - /sizeof(asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1[0]), /* 1 */ - asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1) - /sizeof(asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_FQIPERSlicesPerPlmnListItem_1, - 3, /* Elements count */ - &asn_SPC_FQIPERSlicesPerPlmnListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/FQIPERSlicesPerPlmnListItem.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/FQIPERSlicesPerPlmnListItem.h deleted file mode 100644 index a87a0d7..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/FQIPERSlicesPerPlmnListItem.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _FQIPERSlicesPerPlmnListItem_H_ -#define _FQIPERSlicesPerPlmnListItem_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* FQIPERSlicesPerPlmnListItem */ -typedef struct FQIPERSlicesPerPlmnListItem { - long fiveQI; - INTEGER_t *pDCPBytesDL; /* OPTIONAL */ - INTEGER_t *pDCPBytesUL; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} FQIPERSlicesPerPlmnListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_FQIPERSlicesPerPlmnListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_FQIPERSlicesPerPlmnListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_FQIPERSlicesPerPlmnListItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _FQIPERSlicesPerPlmnListItem_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.c deleted file mode 100644 index d73d0db..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.c +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "FQIPERSlicesPerPlmnPerCellListItem.h" - -static int -memb_fiveQI_constraint_1(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; - } -} - -static int -memb_dl_PRBUsage_constraint_1(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 <= 273)) { - /* 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_ul_PRBUsage_constraint_1(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 <= 273)) { - /* 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_fiveQI_constr_2 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_fiveQI_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_dl_PRBUsage_constr_3 CC_NOTUSED = { - { 2, 1 } /* (0..273) */, - -1}; -static asn_per_constraints_t asn_PER_memb_dl_PRBUsage_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 9, 9, 0, 273 } /* (0..273) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = { - { 2, 1 } /* (0..273) */, - -1}; -static asn_per_constraints_t asn_PER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED, 9, 9, 0, 273 } /* (0..273) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_FQIPERSlicesPerPlmnPerCellListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct FQIPERSlicesPerPlmnPerCellListItem, fiveQI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_fiveQI_constr_2, &asn_PER_memb_fiveQI_constr_2, memb_fiveQI_constraint_1 }, - 0, 0, /* No default value */ - "fiveQI" - }, - { ATF_POINTER, 2, offsetof(struct FQIPERSlicesPerPlmnPerCellListItem, dl_PRBUsage), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_dl_PRBUsage_constr_3, &asn_PER_memb_dl_PRBUsage_constr_3, memb_dl_PRBUsage_constraint_1 }, - 0, 0, /* No default value */ - "dl-PRBUsage" - }, - { ATF_POINTER, 1, offsetof(struct FQIPERSlicesPerPlmnPerCellListItem, ul_PRBUsage), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_ul_PRBUsage_constr_4, &asn_PER_memb_ul_PRBUsage_constr_4, memb_ul_PRBUsage_constraint_1 }, - 0, 0, /* No default value */ - "ul-PRBUsage" - }, -}; -static const int asn_MAP_FQIPERSlicesPerPlmnPerCellListItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_FQIPERSlicesPerPlmnPerCellListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fiveQI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dl-PRBUsage */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ul-PRBUsage */ -}; -asn_SEQUENCE_specifics_t asn_SPC_FQIPERSlicesPerPlmnPerCellListItem_specs_1 = { - sizeof(struct FQIPERSlicesPerPlmnPerCellListItem), - offsetof(struct FQIPERSlicesPerPlmnPerCellListItem, _asn_ctx), - asn_MAP_FQIPERSlicesPerPlmnPerCellListItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_FQIPERSlicesPerPlmnPerCellListItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_FQIPERSlicesPerPlmnPerCellListItem = { - "FQIPERSlicesPerPlmnPerCellListItem", - "FQIPERSlicesPerPlmnPerCellListItem", - &asn_OP_SEQUENCE, - asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1, - sizeof(asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1) - /sizeof(asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1[0]), /* 1 */ - asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1) - /sizeof(asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_FQIPERSlicesPerPlmnPerCellListItem_1, - 3, /* Elements count */ - &asn_SPC_FQIPERSlicesPerPlmnPerCellListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.h deleted file mode 100644 index 1b22e34..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _FQIPERSlicesPerPlmnPerCellListItem_H_ -#define _FQIPERSlicesPerPlmnPerCellListItem_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* FQIPERSlicesPerPlmnPerCellListItem */ -typedef struct FQIPERSlicesPerPlmnPerCellListItem { - long fiveQI; - long *dl_PRBUsage; /* OPTIONAL */ - long *ul_PRBUsage; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} FQIPERSlicesPerPlmnPerCellListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_FQIPERSlicesPerPlmnPerCellListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_FQIPERSlicesPerPlmnPerCellListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_FQIPERSlicesPerPlmnPerCellListItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _FQIPERSlicesPerPlmnPerCellListItem_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-CU-CP-Name.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-CU-CP-Name.c deleted file mode 100644 index 029ca92..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-CU-CP-Name.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GNB-CU-CP-Name.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 -GNB_CU_CP_Name_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_GNB_CU_CP_Name_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_GNB_CU_CP_Name_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_GNB_CU_CP_Name_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -asn_per_constraints_t asn_PER_type_GNB_CU_CP_Name_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_GNB_CU_CP_Name_1_v2c, /* Value to PER code map */ - asn_PER_MAP_GNB_CU_CP_Name_1_c2v /* PER code to value map */ -}; -static const ber_tlv_tag_t asn_DEF_GNB_CU_CP_Name_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_GNB_CU_CP_Name = { - "GNB-CU-CP-Name", - "GNB-CU-CP-Name", - &asn_OP_PrintableString, - asn_DEF_GNB_CU_CP_Name_tags_1, - sizeof(asn_DEF_GNB_CU_CP_Name_tags_1) - /sizeof(asn_DEF_GNB_CU_CP_Name_tags_1[0]), /* 1 */ - asn_DEF_GNB_CU_CP_Name_tags_1, /* Same as above */ - sizeof(asn_DEF_GNB_CU_CP_Name_tags_1) - /sizeof(asn_DEF_GNB_CU_CP_Name_tags_1[0]), /* 1 */ - { &asn_OER_type_GNB_CU_CP_Name_constr_1, &asn_PER_type_GNB_CU_CP_Name_constr_1, GNB_CU_CP_Name_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-CU-CP-Name.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-CU-CP-Name.h deleted file mode 100644 index 1eb3404..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-CU-CP-Name.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GNB_CU_CP_Name_H_ -#define _GNB_CU_CP_Name_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GNB-CU-CP-Name */ -typedef PrintableString_t GNB_CU_CP_Name_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_GNB_CU_CP_Name_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_CP_Name; -asn_struct_free_f GNB_CU_CP_Name_free; -asn_struct_print_f GNB_CU_CP_Name_print; -asn_constr_check_f GNB_CU_CP_Name_constraint; -ber_type_decoder_f GNB_CU_CP_Name_decode_ber; -der_type_encoder_f GNB_CU_CP_Name_encode_der; -xer_type_decoder_f GNB_CU_CP_Name_decode_xer; -xer_type_encoder_f GNB_CU_CP_Name_encode_xer; -oer_type_decoder_f GNB_CU_CP_Name_decode_oer; -oer_type_encoder_f GNB_CU_CP_Name_encode_oer; -per_type_decoder_f GNB_CU_CP_Name_decode_uper; -per_type_encoder_f GNB_CU_CP_Name_encode_uper; -per_type_decoder_f GNB_CU_CP_Name_decode_aper; -per_type_encoder_f GNB_CU_CP_Name_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_CU_CP_Name_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-CU-UP-ID.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-CU-UP-ID.c deleted file mode 100644 index 737a4f3..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-CU-UP-ID.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GNB-CU-UP-ID.h" - -int -GNB_CU_UP_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_CU_UP_ID_constr_1 CC_NOTUSED = { - { 8, 1 } /* (0..68719476735) */, - -1}; -asn_per_constraints_t asn_PER_type_GNB_CU_UP_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_CU_UP_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_GNB_CU_UP_ID = { - "GNB-CU-UP-ID", - "GNB-CU-UP-ID", - &asn_OP_INTEGER, - asn_DEF_GNB_CU_UP_ID_tags_1, - sizeof(asn_DEF_GNB_CU_UP_ID_tags_1) - /sizeof(asn_DEF_GNB_CU_UP_ID_tags_1[0]), /* 1 */ - asn_DEF_GNB_CU_UP_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GNB_CU_UP_ID_tags_1) - /sizeof(asn_DEF_GNB_CU_UP_ID_tags_1[0]), /* 1 */ - { &asn_OER_type_GNB_CU_UP_ID_constr_1, &asn_PER_type_GNB_CU_UP_ID_constr_1, GNB_CU_UP_ID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-CU-UP-ID.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-CU-UP-ID.h deleted file mode 100644 index e6b9c43..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-CU-UP-ID.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GNB_CU_UP_ID_H_ -#define _GNB_CU_UP_ID_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GNB-CU-UP-ID */ -typedef INTEGER_t GNB_CU_UP_ID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_GNB_CU_UP_ID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_UP_ID; -asn_struct_free_f GNB_CU_UP_ID_free; -asn_struct_print_f GNB_CU_UP_ID_print; -asn_constr_check_f GNB_CU_UP_ID_constraint; -ber_type_decoder_f GNB_CU_UP_ID_decode_ber; -der_type_encoder_f GNB_CU_UP_ID_encode_der; -xer_type_decoder_f GNB_CU_UP_ID_decode_xer; -xer_type_encoder_f GNB_CU_UP_ID_encode_xer; -oer_type_decoder_f GNB_CU_UP_ID_decode_oer; -oer_type_encoder_f GNB_CU_UP_ID_encode_oer; -per_type_decoder_f GNB_CU_UP_ID_decode_uper; -per_type_encoder_f GNB_CU_UP_ID_encode_uper; -per_type_decoder_f GNB_CU_UP_ID_decode_aper; -per_type_encoder_f GNB_CU_UP_ID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_CU_UP_ID_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-CU-UP-Name.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-CU-UP-Name.c deleted file mode 100644 index b64d5b1..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-CU-UP-Name.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GNB-CU-UP-Name.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 -GNB_CU_UP_Name_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_GNB_CU_UP_Name_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_GNB_CU_UP_Name_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_GNB_CU_UP_Name_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -asn_per_constraints_t asn_PER_type_GNB_CU_UP_Name_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_GNB_CU_UP_Name_1_v2c, /* Value to PER code map */ - asn_PER_MAP_GNB_CU_UP_Name_1_c2v /* PER code to value map */ -}; -static const ber_tlv_tag_t asn_DEF_GNB_CU_UP_Name_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_GNB_CU_UP_Name = { - "GNB-CU-UP-Name", - "GNB-CU-UP-Name", - &asn_OP_PrintableString, - asn_DEF_GNB_CU_UP_Name_tags_1, - sizeof(asn_DEF_GNB_CU_UP_Name_tags_1) - /sizeof(asn_DEF_GNB_CU_UP_Name_tags_1[0]), /* 1 */ - asn_DEF_GNB_CU_UP_Name_tags_1, /* Same as above */ - sizeof(asn_DEF_GNB_CU_UP_Name_tags_1) - /sizeof(asn_DEF_GNB_CU_UP_Name_tags_1[0]), /* 1 */ - { &asn_OER_type_GNB_CU_UP_Name_constr_1, &asn_PER_type_GNB_CU_UP_Name_constr_1, GNB_CU_UP_Name_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-CU-UP-Name.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-CU-UP-Name.h deleted file mode 100644 index c1b9d7e..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-CU-UP-Name.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GNB_CU_UP_Name_H_ -#define _GNB_CU_UP_Name_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GNB-CU-UP-Name */ -typedef PrintableString_t GNB_CU_UP_Name_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_GNB_CU_UP_Name_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_UP_Name; -asn_struct_free_f GNB_CU_UP_Name_free; -asn_struct_print_f GNB_CU_UP_Name_print; -asn_constr_check_f GNB_CU_UP_Name_constraint; -ber_type_decoder_f GNB_CU_UP_Name_decode_ber; -der_type_encoder_f GNB_CU_UP_Name_encode_der; -xer_type_decoder_f GNB_CU_UP_Name_decode_xer; -xer_type_encoder_f GNB_CU_UP_Name_encode_xer; -oer_type_decoder_f GNB_CU_UP_Name_decode_oer; -oer_type_encoder_f GNB_CU_UP_Name_encode_oer; -per_type_decoder_f GNB_CU_UP_Name_decode_uper; -per_type_encoder_f GNB_CU_UP_Name_encode_uper; -per_type_decoder_f GNB_CU_UP_Name_decode_aper; -per_type_encoder_f GNB_CU_UP_Name_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_CU_UP_Name_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-DU-ID.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-DU-ID.c deleted file mode 100644 index b43653e..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-DU-ID.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#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/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-DU-ID.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-DU-ID.h deleted file mode 100644 index 65e23da..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-DU-ID.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#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/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-DU-Name.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-DU-Name.c deleted file mode 100644 index 8ac789d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-DU-Name.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GNB-DU-Name.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 -GNB_DU_Name_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_GNB_DU_Name_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_GNB_DU_Name_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_GNB_DU_Name_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -asn_per_constraints_t asn_PER_type_GNB_DU_Name_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_GNB_DU_Name_1_v2c, /* Value to PER code map */ - asn_PER_MAP_GNB_DU_Name_1_c2v /* PER code to value map */ -}; -static const ber_tlv_tag_t asn_DEF_GNB_DU_Name_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_GNB_DU_Name = { - "GNB-DU-Name", - "GNB-DU-Name", - &asn_OP_PrintableString, - asn_DEF_GNB_DU_Name_tags_1, - sizeof(asn_DEF_GNB_DU_Name_tags_1) - /sizeof(asn_DEF_GNB_DU_Name_tags_1[0]), /* 1 */ - asn_DEF_GNB_DU_Name_tags_1, /* Same as above */ - sizeof(asn_DEF_GNB_DU_Name_tags_1) - /sizeof(asn_DEF_GNB_DU_Name_tags_1[0]), /* 1 */ - { &asn_OER_type_GNB_DU_Name_constr_1, &asn_PER_type_GNB_DU_Name_constr_1, GNB_DU_Name_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-DU-Name.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-DU-Name.h deleted file mode 100644 index e4994e6..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-DU-Name.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GNB_DU_Name_H_ -#define _GNB_DU_Name_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GNB-DU-Name */ -typedef PrintableString_t GNB_DU_Name_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_GNB_DU_Name_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_GNB_DU_Name; -asn_struct_free_f GNB_DU_Name_free; -asn_struct_print_f GNB_DU_Name_print; -asn_constr_check_f GNB_DU_Name_constraint; -ber_type_decoder_f GNB_DU_Name_decode_ber; -der_type_encoder_f GNB_DU_Name_encode_der; -xer_type_decoder_f GNB_DU_Name_decode_xer; -xer_type_encoder_f GNB_DU_Name_encode_xer; -oer_type_decoder_f GNB_DU_Name_decode_oer; -oer_type_encoder_f GNB_DU_Name_encode_oer; -per_type_decoder_f GNB_DU_Name_decode_uper; -per_type_encoder_f GNB_DU_Name_encode_uper; -per_type_decoder_f GNB_DU_Name_decode_aper; -per_type_encoder_f GNB_DU_Name_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_DU_Name_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-ID-Choice.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-ID-Choice.c deleted file mode 100644 index 81bc2b0..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-ID-Choice.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GNB-ID-Choice.h" - -static int -memb_gnb_ID_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 >= 22 && size <= 32)) { - /* 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_gnb_ID_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(22..32)) */}; -static asn_per_constraints_t asn_PER_memb_gnb_ID_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 22, 32 } /* (SIZE(22..32)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_type_GNB_ID_Choice_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_GNB_ID_Choice_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 */ -}; -asn_TYPE_member_t asn_MBR_GNB_ID_Choice_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GNB_ID_Choice, choice.gnb_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_gnb_ID_constr_2, &asn_PER_memb_gnb_ID_constr_2, memb_gnb_ID_constraint_1 }, - 0, 0, /* No default value */ - "gnb-ID" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_GNB_ID_Choice_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gnb-ID */ -}; -asn_CHOICE_specifics_t asn_SPC_GNB_ID_Choice_specs_1 = { - sizeof(struct GNB_ID_Choice), - offsetof(struct GNB_ID_Choice, _asn_ctx), - offsetof(struct GNB_ID_Choice, present), - sizeof(((struct GNB_ID_Choice *)0)->present), - asn_MAP_GNB_ID_Choice_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, - 1 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_GNB_ID_Choice = { - "GNB-ID-Choice", - "GNB-ID-Choice", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_GNB_ID_Choice_constr_1, &asn_PER_type_GNB_ID_Choice_constr_1, CHOICE_constraint }, - asn_MBR_GNB_ID_Choice_1, - 1, /* Elements count */ - &asn_SPC_GNB_ID_Choice_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-ID-Choice.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-ID-Choice.h deleted file mode 100644 index cf5438c..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-ID-Choice.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GNB_ID_Choice_H_ -#define _GNB_ID_Choice_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum GNB_ID_Choice_PR { - GNB_ID_Choice_PR_NOTHING, /* No components present */ - GNB_ID_Choice_PR_gnb_ID - /* Extensions may appear below */ - -} GNB_ID_Choice_PR; - -/* GNB-ID-Choice */ -typedef struct GNB_ID_Choice { - GNB_ID_Choice_PR present; - union GNB_ID_Choice_u { - BIT_STRING_t gnb_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GNB_ID_Choice_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GNB_ID_Choice; -extern asn_CHOICE_specifics_t asn_SPC_GNB_ID_Choice_specs_1; -extern asn_TYPE_member_t asn_MBR_GNB_ID_Choice_1[1]; -extern asn_per_constraints_t asn_PER_type_GNB_ID_Choice_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_ID_Choice_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-Name.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-Name.c deleted file mode 100644 index aeee9d8..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-Name.c +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GNB-Name.h" - -static asn_oer_constraints_t asn_OER_type_GNB_Name_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_GNB_Name_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 */ -}; -asn_TYPE_member_t asn_MBR_GNB_Name_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GNB_Name, choice.gNB_DU_Name), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_DU_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-DU-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct GNB_Name, choice.gNB_CU_CP_Name), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_CU_CP_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-CU-CP-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct GNB_Name, choice.gNB_CU_UP_Name), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_CU_UP_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-CU-UP-Name" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_GNB_Name_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB-DU-Name */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* gNB-CU-CP-Name */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* gNB-CU-UP-Name */ -}; -asn_CHOICE_specifics_t asn_SPC_GNB_Name_specs_1 = { - sizeof(struct GNB_Name), - offsetof(struct GNB_Name, _asn_ctx), - offsetof(struct GNB_Name, present), - sizeof(((struct GNB_Name *)0)->present), - asn_MAP_GNB_Name_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, - 3 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_GNB_Name = { - "GNB-Name", - "GNB-Name", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_GNB_Name_constr_1, &asn_PER_type_GNB_Name_constr_1, CHOICE_constraint }, - asn_MBR_GNB_Name_1, - 3, /* Elements count */ - &asn_SPC_GNB_Name_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-Name.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-Name.h deleted file mode 100644 index 3c69172..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GNB-Name.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GNB_Name_H_ -#define _GNB_Name_H_ - - -#include - -/* Including external dependencies */ -#include "GNB-DU-Name.h" -#include "GNB-CU-CP-Name.h" -#include "GNB-CU-UP-Name.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum GNB_Name_PR { - GNB_Name_PR_NOTHING, /* No components present */ - GNB_Name_PR_gNB_DU_Name, - GNB_Name_PR_gNB_CU_CP_Name, - GNB_Name_PR_gNB_CU_UP_Name - /* Extensions may appear below */ - -} GNB_Name_PR; - -/* GNB-Name */ -typedef struct GNB_Name { - GNB_Name_PR present; - union GNB_Name_u { - GNB_DU_Name_t gNB_DU_Name; - GNB_CU_CP_Name_t gNB_CU_CP_Name; - GNB_CU_UP_Name_t gNB_CU_UP_Name; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GNB_Name_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GNB_Name; -extern asn_CHOICE_specifics_t asn_SPC_GNB_Name_specs_1; -extern asn_TYPE_member_t asn_MBR_GNB_Name_1[3]; -extern asn_per_constraints_t asn_PER_type_GNB_Name_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_Name_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalE2node-ID.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalE2node-ID.c deleted file mode 100644 index 0b194e6..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalE2node-ID.c +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "GlobalE2node-ID.h" - -#include "GlobalE2node-gNB-ID.h" -#include "GlobalE2node-en-gNB-ID.h" -#include "GlobalE2node-ng-eNB-ID.h" -#include "GlobalE2node-eNB-ID.h" -static asn_per_constraints_t asn_PER_type_GlobalE2node_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_GlobalE2node_ID_1[] = { - { ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.gNB), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalE2node_gNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB" - }, - { ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.en_gNB), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalE2node_en_gNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "en-gNB" - }, - { ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.ng_eNB), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalE2node_ng_eNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ng-eNB" - }, - { ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.eNB), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalE2node_eNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eNB" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-gNB */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ng-eNB */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* eNB */ -}; -static asn_CHOICE_specifics_t asn_SPC_GlobalE2node_ID_specs_1 = { - sizeof(struct GlobalE2node_ID), - offsetof(struct GlobalE2node_ID, _asn_ctx), - offsetof(struct GlobalE2node_ID, present), - sizeof(((struct GlobalE2node_ID *)0)->present), - asn_MAP_GlobalE2node_ID_tag2el_1, - 4, /* Count of tags in the map */ - 0, 0, - 4 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ID = { - "GlobalE2node-ID", - "GlobalE2node-ID", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_GlobalE2node_ID_constr_1, CHOICE_constraint }, - asn_MBR_GlobalE2node_ID_1, - 4, /* Elements count */ - &asn_SPC_GlobalE2node_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalE2node-ID.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalE2node-ID.h deleted file mode 100644 index 339797e..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalE2node-ID.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _GlobalE2node_ID_H_ -#define _GlobalE2node_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum GlobalE2node_ID_PR { - GlobalE2node_ID_PR_NOTHING, /* No components present */ - GlobalE2node_ID_PR_gNB, - GlobalE2node_ID_PR_en_gNB, - GlobalE2node_ID_PR_ng_eNB, - GlobalE2node_ID_PR_eNB - /* Extensions may appear below */ - -} GlobalE2node_ID_PR; - -/* Forward declarations */ -struct GlobalE2node_gNB_ID; -struct GlobalE2node_en_gNB_ID; -struct GlobalE2node_ng_eNB_ID; -struct GlobalE2node_eNB_ID; - -/* GlobalE2node-ID */ -typedef struct GlobalE2node_ID { - GlobalE2node_ID_PR present; - union GlobalE2node_ID_u { - struct GlobalE2node_gNB_ID *gNB; - struct GlobalE2node_en_gNB_ID *en_gNB; - struct GlobalE2node_ng_eNB_ID *ng_eNB; - struct GlobalE2node_eNB_ID *eNB; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalE2node_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ID; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalE2node_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalE2node-eNB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalE2node-eNB-ID.c deleted file mode 100644 index f31a018..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalE2node-eNB-ID.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "GlobalE2node-eNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalE2node_eNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_eNB_ID, 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" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalE2node_eNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_eNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-eNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_eNB_ID_specs_1 = { - sizeof(struct GlobalE2node_eNB_ID), - offsetof(struct GlobalE2node_eNB_ID, _asn_ctx), - asn_MAP_GlobalE2node_eNB_ID_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_GlobalE2node_eNB_ID = { - "GlobalE2node-eNB-ID", - "GlobalE2node-eNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalE2node_eNB_ID_tags_1, - sizeof(asn_DEF_GlobalE2node_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_eNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalE2node_eNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalE2node_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_eNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalE2node_eNB_ID_1, - 1, /* Elements count */ - &asn_SPC_GlobalE2node_eNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalE2node-eNB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalE2node-eNB-ID.h deleted file mode 100644 index 6047414..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalE2node-eNB-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _GlobalE2node_eNB_ID_H_ -#define _GlobalE2node_eNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GlobalENB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalE2node-eNB-ID */ -typedef struct GlobalE2node_eNB_ID { - GlobalENB_ID_t global_eNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalE2node_eNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_eNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_eNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalE2node_eNB_ID_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalE2node_eNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalE2node-en-gNB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalE2node-en-gNB-ID.c deleted file mode 100644 index 2728634..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalE2node-en-gNB-ID.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#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), - (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" - }, -}; -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_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 */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalE2node_en_gNB_ID = { - "GlobalE2node-en-gNB-ID", - "GlobalE2node-en-gNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalE2node_en_gNB_ID_tags_1, - sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalE2node_en_gNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1) - /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 */ - &asn_SPC_GlobalE2node_en_gNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalE2node-en-gNB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalE2node-en-gNB-ID.h deleted file mode 100644 index 0bae91d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalE2node-en-gNB-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _GlobalE2node_en_gNB_ID_H_ -#define _GlobalE2node_en_gNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GlobalenGNB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalE2node-en-gNB-ID */ -typedef struct GlobalE2node_en_gNB_ID { - GlobalenGNB_ID_t global_gNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalE2node_en_gNB_ID_t; - -/* 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]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalE2node_en_gNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalE2node-gNB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalE2node-gNB-ID.c deleted file mode 100644 index 25f0346..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalE2node-gNB-ID.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "GlobalE2node-gNB-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)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalgNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-gNB-ID" - }, - { ATF_POINTER, 2, offsetof(struct GlobalE2node_gNB_ID, 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 */ - "gNB-CU-UP-ID" - }, - { ATF_POINTER, 1, offsetof(struct GlobalE2node_gNB_ID, 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 */ - "gNB-DU-ID" - }, -}; -static const int asn_MAP_GlobalE2node_gNB_ID_oms_1[] = { 1, 2 }; -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_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 */ - asn_MAP_GlobalE2node_gNB_ID_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalE2node_gNB_ID = { - "GlobalE2node-gNB-ID", - "GlobalE2node-gNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalE2node_gNB_ID_tags_1, - sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalE2node_gNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalE2node_gNB_ID_1, - 3, /* Elements count */ - &asn_SPC_GlobalE2node_gNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalE2node-gNB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalE2node-gNB-ID.h deleted file mode 100644 index 2f36099..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalE2node-gNB-ID.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _GlobalE2node_gNB_ID_H_ -#define _GlobalE2node_gNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GlobalgNB-ID.h" -#include "GNB-CU-UP-ID.h" -#include "GNB-DU-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalE2node-gNB-ID */ -typedef struct GlobalE2node_gNB_ID { - GlobalgNB_ID_t global_gNB_ID; - GNB_CU_UP_ID_t *gNB_CU_UP_ID; /* OPTIONAL */ - GNB_DU_ID_t *gNB_DU_ID; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalE2node_gNB_ID_t; - -/* 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]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalE2node_gNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalE2node-ng-eNB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalE2node-ng-eNB-ID.c deleted file mode 100644 index 91e427b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalE2node-ng-eNB-ID.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "GlobalE2node-ng-eNB-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)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalngeNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-ng-eNB-ID" - }, -}; -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_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 */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ng_eNB_ID = { - "GlobalE2node-ng-eNB-ID", - "GlobalE2node-ng-eNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalE2node_ng_eNB_ID_tags_1, - sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalE2node_ng_eNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1) - /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 */ - &asn_SPC_GlobalE2node_ng_eNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalE2node-ng-eNB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalE2node-ng-eNB-ID.h deleted file mode 100644 index d6767bf..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalE2node-ng-eNB-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _GlobalE2node_ng_eNB_ID_H_ -#define _GlobalE2node_ng_eNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GlobalngeNB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalE2node-ng-eNB-ID */ -typedef struct GlobalE2node_ng_eNB_ID { - GlobalngeNB_ID_t global_ng_eNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalE2node_ng_eNB_ID_t; - -/* 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]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalE2node_ng_eNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalENB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalENB-ID.c deleted file mode 100644 index 58f3724..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalENB-ID.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalENB-ID.h" - -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_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalENB_ID, eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_ENB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eNB-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalENB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalENB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* eNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalENB_ID_specs_1 = { - sizeof(struct GlobalENB_ID), - offsetof(struct GlobalENB_ID, _asn_ctx), - asn_MAP_GlobalENB_ID_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_GlobalENB_ID = { - "GlobalENB-ID", - "GlobalENB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalENB_ID_tags_1, - sizeof(asn_DEF_GlobalENB_ID_tags_1) - /sizeof(asn_DEF_GlobalENB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalENB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalENB_ID_tags_1) - /sizeof(asn_DEF_GlobalENB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalENB_ID_1, - 2, /* Elements count */ - &asn_SPC_GlobalENB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalENB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalENB-ID.h deleted file mode 100644 index bd653ae..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalENB-ID.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalENB_ID_H_ -#define _GlobalENB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "ENB-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalENB-ID */ -typedef struct GlobalENB_ID { - PLMN_Identity_t pLMN_Identity; - ENB_ID_t eNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalENB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalENB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalENB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalENB_ID_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalENB_ID_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalKPMnode-ID.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalKPMnode-ID.c deleted file mode 100644 index 5202400..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalKPMnode-ID.c +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalKPMnode-ID.h" - -static asn_oer_constraints_t asn_OER_type_GlobalKPMnode_ID_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_GlobalKPMnode_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_GlobalKPMnode_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_ID, choice.gNB), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalKPMnode_gNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_ID, choice.en_gNB), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalKPMnode_en_gNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "en-gNB" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_ID, choice.ng_eNB), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalKPMnode_ng_eNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ng-eNB" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_ID, choice.eNB), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalKPMnode_eNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eNB" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalKPMnode_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-gNB */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ng-eNB */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* eNB */ -}; -asn_CHOICE_specifics_t asn_SPC_GlobalKPMnode_ID_specs_1 = { - sizeof(struct GlobalKPMnode_ID), - offsetof(struct GlobalKPMnode_ID, _asn_ctx), - offsetof(struct GlobalKPMnode_ID, present), - sizeof(((struct GlobalKPMnode_ID *)0)->present), - asn_MAP_GlobalKPMnode_ID_tag2el_1, - 4, /* Count of tags in the map */ - 0, 0, - 4 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_ID = { - "GlobalKPMnode-ID", - "GlobalKPMnode-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_GlobalKPMnode_ID_constr_1, &asn_PER_type_GlobalKPMnode_ID_constr_1, CHOICE_constraint }, - asn_MBR_GlobalKPMnode_ID_1, - 4, /* Elements count */ - &asn_SPC_GlobalKPMnode_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalKPMnode-ID.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalKPMnode-ID.h deleted file mode 100644 index a93e881..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalKPMnode-ID.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalKPMnode_ID_H_ -#define _GlobalKPMnode_ID_H_ - - -#include - -/* Including external dependencies */ -#include "GlobalKPMnode-gNB-ID.h" -#include "GlobalKPMnode-en-gNB-ID.h" -#include "GlobalKPMnode-ng-eNB-ID.h" -#include "GlobalKPMnode-eNB-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum GlobalKPMnode_ID_PR { - GlobalKPMnode_ID_PR_NOTHING, /* No components present */ - GlobalKPMnode_ID_PR_gNB, - GlobalKPMnode_ID_PR_en_gNB, - GlobalKPMnode_ID_PR_ng_eNB, - GlobalKPMnode_ID_PR_eNB - /* Extensions may appear below */ - -} GlobalKPMnode_ID_PR; - -/* GlobalKPMnode-ID */ -typedef struct GlobalKPMnode_ID { - GlobalKPMnode_ID_PR present; - union GlobalKPMnode_ID_u { - GlobalKPMnode_gNB_ID_t gNB; - GlobalKPMnode_en_gNB_ID_t en_gNB; - GlobalKPMnode_ng_eNB_ID_t ng_eNB; - GlobalKPMnode_eNB_ID_t eNB; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalKPMnode_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_ID; -extern asn_CHOICE_specifics_t asn_SPC_GlobalKPMnode_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_ID_1[4]; -extern asn_per_constraints_t asn_PER_type_GlobalKPMnode_ID_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalKPMnode_ID_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalKPMnode-eNB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalKPMnode-eNB-ID.c deleted file mode 100644 index e4039b9..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalKPMnode-eNB-ID.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalKPMnode-eNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalKPMnode_eNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_eNB_ID, 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" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalKPMnode_eNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalKPMnode_eNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-eNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_eNB_ID_specs_1 = { - sizeof(struct GlobalKPMnode_eNB_ID), - offsetof(struct GlobalKPMnode_eNB_ID, _asn_ctx), - asn_MAP_GlobalKPMnode_eNB_ID_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_GlobalKPMnode_eNB_ID = { - "GlobalKPMnode-eNB-ID", - "GlobalKPMnode-eNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalKPMnode_eNB_ID_tags_1, - sizeof(asn_DEF_GlobalKPMnode_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_eNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalKPMnode_eNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalKPMnode_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_eNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalKPMnode_eNB_ID_1, - 1, /* Elements count */ - &asn_SPC_GlobalKPMnode_eNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalKPMnode-eNB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalKPMnode-eNB-ID.h deleted file mode 100644 index 9941095..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalKPMnode-eNB-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalKPMnode_eNB_ID_H_ -#define _GlobalKPMnode_eNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "GlobalENB-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalKPMnode-eNB-ID */ -typedef struct GlobalKPMnode_eNB_ID { - GlobalENB_ID_t global_eNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalKPMnode_eNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_eNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_eNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_eNB_ID_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalKPMnode_eNB_ID_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalKPMnode-en-gNB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalKPMnode-en-gNB-ID.c deleted file mode 100644 index 68e34d7..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalKPMnode-en-gNB-ID.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalKPMnode-en-gNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalKPMnode_en_gNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_en_gNB_ID, global_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" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalKPMnode_en_gNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-gNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_en_gNB_ID_specs_1 = { - sizeof(struct GlobalKPMnode_en_gNB_ID), - offsetof(struct GlobalKPMnode_en_gNB_ID, _asn_ctx), - asn_MAP_GlobalKPMnode_en_gNB_ID_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_GlobalKPMnode_en_gNB_ID = { - "GlobalKPMnode-en-gNB-ID", - "GlobalKPMnode-en-gNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1, - sizeof(asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalKPMnode_en_gNB_ID_1, - 1, /* Elements count */ - &asn_SPC_GlobalKPMnode_en_gNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalKPMnode-en-gNB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalKPMnode-en-gNB-ID.h deleted file mode 100644 index 7994b62..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalKPMnode-en-gNB-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalKPMnode_en_gNB_ID_H_ -#define _GlobalKPMnode_en_gNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "GlobalenGNB-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalKPMnode-en-gNB-ID */ -typedef struct GlobalKPMnode_en_gNB_ID { - GlobalenGNB_ID_t global_gNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalKPMnode_en_gNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_en_gNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_en_gNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_en_gNB_ID_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalKPMnode_en_gNB_ID_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalKPMnode-gNB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalKPMnode-gNB-ID.c deleted file mode 100644 index 49e21ba..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalKPMnode-gNB-ID.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalKPMnode-gNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalKPMnode_gNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_gNB_ID, global_gNB_ID), - (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 */ - "global-gNB-ID" - }, - { ATF_POINTER, 2, offsetof(struct GlobalKPMnode_gNB_ID, 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 */ - "gNB-CU-UP-ID" - }, - { ATF_POINTER, 1, offsetof(struct GlobalKPMnode_gNB_ID, 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 */ - "gNB-DU-ID" - }, -}; -static const int asn_MAP_GlobalKPMnode_gNB_ID_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_GlobalKPMnode_gNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalKPMnode_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_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_gNB_ID_specs_1 = { - sizeof(struct GlobalKPMnode_gNB_ID), - offsetof(struct GlobalKPMnode_gNB_ID, _asn_ctx), - asn_MAP_GlobalKPMnode_gNB_ID_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_GlobalKPMnode_gNB_ID_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_gNB_ID = { - "GlobalKPMnode-gNB-ID", - "GlobalKPMnode-gNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalKPMnode_gNB_ID_tags_1, - sizeof(asn_DEF_GlobalKPMnode_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_gNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalKPMnode_gNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalKPMnode_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_gNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalKPMnode_gNB_ID_1, - 3, /* Elements count */ - &asn_SPC_GlobalKPMnode_gNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalKPMnode-gNB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalKPMnode-gNB-ID.h deleted file mode 100644 index facef92..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalKPMnode-gNB-ID.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalKPMnode_gNB_ID_H_ -#define _GlobalKPMnode_gNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "GlobalgNB-ID.h" -#include "GNB-CU-UP-ID.h" -#include "GNB-DU-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalKPMnode-gNB-ID */ -typedef struct GlobalKPMnode_gNB_ID { - GlobalgNB_ID_t global_gNB_ID; - GNB_CU_UP_ID_t *gNB_CU_UP_ID; /* OPTIONAL */ - GNB_DU_ID_t *gNB_DU_ID; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalKPMnode_gNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_gNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_gNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_gNB_ID_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalKPMnode_gNB_ID_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalKPMnode-ng-eNB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalKPMnode-ng-eNB-ID.c deleted file mode 100644 index 299fb25..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalKPMnode-ng-eNB-ID.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalKPMnode-ng-eNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalKPMnode_ng_eNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_ng_eNB_ID, global_ng_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalngeNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-ng-eNB-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalKPMnode_ng_eNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-ng-eNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_ng_eNB_ID_specs_1 = { - sizeof(struct GlobalKPMnode_ng_eNB_ID), - offsetof(struct GlobalKPMnode_ng_eNB_ID, _asn_ctx), - asn_MAP_GlobalKPMnode_ng_eNB_ID_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_GlobalKPMnode_ng_eNB_ID = { - "GlobalKPMnode-ng-eNB-ID", - "GlobalKPMnode-ng-eNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1, - sizeof(asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalKPMnode_ng_eNB_ID_1, - 1, /* Elements count */ - &asn_SPC_GlobalKPMnode_ng_eNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalKPMnode-ng-eNB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalKPMnode-ng-eNB-ID.h deleted file mode 100644 index 9ad8057..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalKPMnode-ng-eNB-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalKPMnode_ng_eNB_ID_H_ -#define _GlobalKPMnode_ng_eNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "GlobalngeNB-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalKPMnode-ng-eNB-ID */ -typedef struct GlobalKPMnode_ng_eNB_ID { - GlobalngeNB_ID_t global_ng_eNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalKPMnode_ng_eNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_ng_eNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_ng_eNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_ng_eNB_ID_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalKPMnode_ng_eNB_ID_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalRIC-ID.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalRIC-ID.c deleted file mode 100644 index f113921..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalRIC-ID.c +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "GlobalRIC-ID.h" - -static int -memb_ric_ID_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 == 20)) { - /* 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_per_constraints_t asn_PER_memb_ric_ID_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, - 0, 0 /* No PER value map */ -}; -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_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalRIC_ID, ric_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_ric_ID_constr_3, memb_ric_ID_constraint_1 }, - 0, 0, /* No default value */ - "ric-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalRIC_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalRIC_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ric-ID */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_GlobalRIC_ID_specs_1 = { - sizeof(struct GlobalRIC_ID), - offsetof(struct GlobalRIC_ID, _asn_ctx), - asn_MAP_GlobalRIC_ID_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_GlobalRIC_ID = { - "GlobalRIC-ID", - "GlobalRIC-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalRIC_ID_tags_1, - sizeof(asn_DEF_GlobalRIC_ID_tags_1) - /sizeof(asn_DEF_GlobalRIC_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalRIC_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalRIC_ID_tags_1) - /sizeof(asn_DEF_GlobalRIC_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalRIC_ID_1, - 2, /* Elements count */ - &asn_SPC_GlobalRIC_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalRIC-ID.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalRIC-ID.h deleted file mode 100644 index c1ab6be..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalRIC-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _GlobalRIC_ID_H_ -#define _GlobalRIC_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "BIT_STRING.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalRIC-ID */ -typedef struct GlobalRIC_ID { - PLMN_Identity_t pLMN_Identity; - BIT_STRING_t ric_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalRIC_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalRIC_ID; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalRIC_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalenGNB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalenGNB-ID.c deleted file mode 100644 index 07f8116..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalenGNB-ID.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalenGNB-ID.h" - -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_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalenGNB_ID, gNB_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_ENGNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalenGNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalenGNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* gNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalenGNB_ID_specs_1 = { - sizeof(struct GlobalenGNB_ID), - offsetof(struct GlobalenGNB_ID, _asn_ctx), - asn_MAP_GlobalenGNB_ID_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_GlobalenGNB_ID = { - "GlobalenGNB-ID", - "GlobalenGNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalenGNB_ID_tags_1, - sizeof(asn_DEF_GlobalenGNB_ID_tags_1) - /sizeof(asn_DEF_GlobalenGNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalenGNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalenGNB_ID_tags_1) - /sizeof(asn_DEF_GlobalenGNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalenGNB_ID_1, - 2, /* Elements count */ - &asn_SPC_GlobalenGNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalenGNB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalenGNB-ID.h deleted file mode 100644 index 1e254a7..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalenGNB-ID.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalenGNB_ID_H_ -#define _GlobalenGNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "ENGNB-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalenGNB-ID */ -typedef struct GlobalenGNB_ID { - PLMN_Identity_t pLMN_Identity; - ENGNB_ID_t gNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalenGNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalenGNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalenGNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalenGNB_ID_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalenGNB_ID_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalgNB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalgNB-ID.c deleted file mode 100644 index bfcc098..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalgNB-ID.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalgNB-ID.h" - -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_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "plmn-id" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalgNB_ID, gnb_id), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_GNB_ID_Choice, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gnb-id" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalgNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalgNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* plmn-id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* gnb-id */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalgNB_ID_specs_1 = { - sizeof(struct GlobalgNB_ID), - offsetof(struct GlobalgNB_ID, _asn_ctx), - asn_MAP_GlobalgNB_ID_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_GlobalgNB_ID = { - "GlobalgNB-ID", - "GlobalgNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalgNB_ID_tags_1, - sizeof(asn_DEF_GlobalgNB_ID_tags_1) - /sizeof(asn_DEF_GlobalgNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalgNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalgNB_ID_tags_1) - /sizeof(asn_DEF_GlobalgNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalgNB_ID_1, - 2, /* Elements count */ - &asn_SPC_GlobalgNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalgNB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalgNB-ID.h deleted file mode 100644 index e31846d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalgNB-ID.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalgNB_ID_H_ -#define _GlobalgNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "GNB-ID-Choice.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalgNB-ID */ -typedef struct GlobalgNB_ID { - PLMN_Identity_t plmn_id; - GNB_ID_Choice_t gnb_id; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalgNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalgNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalgNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalgNB_ID_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalgNB_ID_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalngeNB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalngeNB-ID.c deleted file mode 100644 index d220e9a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalngeNB-ID.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalngeNB-ID.h" - -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_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "plmn-id" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalngeNB_ID, enb_id), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_ENB_ID_Choice, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "enb-id" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalngeNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalngeNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* plmn-id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* enb-id */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalngeNB_ID_specs_1 = { - sizeof(struct GlobalngeNB_ID), - offsetof(struct GlobalngeNB_ID, _asn_ctx), - asn_MAP_GlobalngeNB_ID_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_GlobalngeNB_ID = { - "GlobalngeNB-ID", - "GlobalngeNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalngeNB_ID_tags_1, - sizeof(asn_DEF_GlobalngeNB_ID_tags_1) - /sizeof(asn_DEF_GlobalngeNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalngeNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalngeNB_ID_tags_1) - /sizeof(asn_DEF_GlobalngeNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalngeNB_ID_1, - 2, /* Elements count */ - &asn_SPC_GlobalngeNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalngeNB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalngeNB-ID.h deleted file mode 100644 index e8246ca..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/GlobalngeNB-ID.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalngeNB_ID_H_ -#define _GlobalngeNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "ENB-ID-Choice.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalngeNB-ID */ -typedef struct GlobalngeNB_ID { - PLMN_Identity_t plmn_id; - ENB_ID_Choice_t enb_id; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalngeNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalngeNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalngeNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalngeNB_ID_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalngeNB_ID_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/INTEGER.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/INTEGER.c deleted file mode 100644 index 2a2f4d7..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/INTEGER.c +++ /dev/null @@ -1,1735 +0,0 @@ -/*- - * Copyright (c) 2003-2014 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include /* Encoder and decoder of a primitive type */ -#include - -/* - * INTEGER basic type description. - */ -static const ber_tlv_tag_t asn_DEF_INTEGER_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_operation_t asn_OP_INTEGER = { - INTEGER_free, - INTEGER_print, - INTEGER_compare, - ber_decode_primitive, - INTEGER_encode_der, - INTEGER_decode_xer, - INTEGER_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - INTEGER_decode_oer, /* OER decoder */ - INTEGER_encode_oer, /* Canonical OER encoder */ -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - INTEGER_decode_uper, /* Unaligned PER decoder */ - INTEGER_encode_uper, /* Unaligned PER encoder */ - INTEGER_decode_aper, /* Aligned PER decoder */ - INTEGER_encode_aper, /* Aligned PER encoder */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - INTEGER_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_INTEGER = { - "INTEGER", - "INTEGER", - &asn_OP_INTEGER, - asn_DEF_INTEGER_tags, - sizeof(asn_DEF_INTEGER_tags) / sizeof(asn_DEF_INTEGER_tags[0]), - asn_DEF_INTEGER_tags, /* Same as above */ - sizeof(asn_DEF_INTEGER_tags) / sizeof(asn_DEF_INTEGER_tags[0]), - { 0, 0, asn_generic_no_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - -/* - * Encode INTEGER type using DER. - */ -asn_enc_rval_t -INTEGER_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, - void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - asn_enc_rval_t rval; - INTEGER_t effective_integer; - - ASN_DEBUG("%s %s as INTEGER (tm=%d)", - cb?"Encoding":"Estimating", td->name, tag_mode); - - /* - * Canonicalize integer in the buffer. - * (Remove too long sign extension, remove some first 0x00 bytes) - */ - if(st->buf) { - uint8_t *buf = st->buf; - uint8_t *end1 = buf + st->size - 1; - int shift; - - /* Compute the number of superfluous leading bytes */ - for(; buf < end1; buf++) { - /* - * If the contents octets of an integer value encoding - * consist of more than one octet, then the bits of the - * first octet and bit 8 of the second octet: - * a) shall not all be ones; and - * b) shall not all be zero. - */ - switch(*buf) { - case 0x00: if((buf[1] & 0x80) == 0) - continue; - break; - case 0xff: if((buf[1] & 0x80)) - continue; - break; - } - break; - } - - /* Remove leading superfluous bytes from the integer */ - shift = buf - st->buf; - if(shift) { - union { - const uint8_t *c_buf; - uint8_t *nc_buf; - } unconst; - unconst.c_buf = st->buf; - effective_integer.buf = unconst.nc_buf + shift; - effective_integer.size = st->size - shift; - - st = &effective_integer; - } - } - - rval = der_encode_primitive(td, st, tag_mode, tag, cb, app_key); - if(rval.structure_ptr == &effective_integer) { - rval.structure_ptr = sptr; - } - return rval; -} - -static const asn_INTEGER_enum_map_t *INTEGER_map_enum2value( - const asn_INTEGER_specifics_t *specs, const char *lstart, - const char *lstop); - -/* - * INTEGER specific human-readable output. - */ -static ssize_t -INTEGER__dump(const asn_TYPE_descriptor_t *td, const INTEGER_t *st, asn_app_consume_bytes_f *cb, void *app_key, int plainOrXER) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - char scratch[32]; - uint8_t *buf = st->buf; - uint8_t *buf_end = st->buf + st->size; - intmax_t value; - ssize_t wrote = 0; - char *p; - int ret; - - if(specs && specs->field_unsigned) - ret = asn_INTEGER2umax(st, (uintmax_t *)&value); - else - ret = asn_INTEGER2imax(st, &value); - - /* Simple case: the integer size is small */ - if(ret == 0) { - const asn_INTEGER_enum_map_t *el; - el = (value >= 0 || !specs || !specs->field_unsigned) - ? INTEGER_map_value2enum(specs, value) : 0; - if(el) { - if(plainOrXER == 0) - return asn__format_to_callback(cb, app_key, - "%" ASN_PRIdMAX " (%s)", value, el->enum_name); - else - return asn__format_to_callback(cb, app_key, - "<%s/>", el->enum_name); - } else if(plainOrXER && specs && specs->strict_enumeration) { - ASN_DEBUG("ASN.1 forbids dealing with " - "unknown value of ENUMERATED type"); - errno = EPERM; - return -1; - } else { - return asn__format_to_callback(cb, app_key, - (specs && specs->field_unsigned) - ? "%" ASN_PRIuMAX - : "%" ASN_PRIdMAX, - value); - } - } else if(plainOrXER && specs && specs->strict_enumeration) { - /* - * Here and earlier, we cannot encode the ENUMERATED values - * if there is no corresponding identifier. - */ - ASN_DEBUG("ASN.1 forbids dealing with " - "unknown value of ENUMERATED type"); - errno = EPERM; - return -1; - } - - /* Output in the long xx:yy:zz... format */ - /* TODO: replace with generic algorithm (Knuth TAOCP Vol 2, 4.3.1) */ - for(p = scratch; buf < buf_end; buf++) { - const char * const h2c = "0123456789ABCDEF"; - if((p - scratch) >= (ssize_t)(sizeof(scratch) - 4)) { - /* Flush buffer */ - if(cb(scratch, p - scratch, app_key) < 0) - return -1; - wrote += p - scratch; - p = scratch; - } - *p++ = h2c[*buf >> 4]; - *p++ = h2c[*buf & 0x0F]; - *p++ = 0x3a; /* ":" */ - } - if(p != scratch) - p--; /* Remove the last ":" */ - - wrote += p - scratch; - return (cb(scratch, p - scratch, app_key) < 0) ? -1 : wrote; -} - -/* - * INTEGER specific human-readable output. - */ -int -INTEGER_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - ssize_t ret; - - (void)ilevel; - - if(!st || !st->buf) - ret = cb("", 8, app_key); - else - ret = INTEGER__dump(td, st, cb, app_key, 0); - - return (ret < 0) ? -1 : 0; -} - -struct e2v_key { - const char *start; - const char *stop; - const asn_INTEGER_enum_map_t *vemap; - const unsigned int *evmap; -}; -static int -INTEGER__compar_enum2value(const void *kp, const void *am) { - const struct e2v_key *key = (const struct e2v_key *)kp; - const asn_INTEGER_enum_map_t *el = (const asn_INTEGER_enum_map_t *)am; - const char *ptr, *end, *name; - - /* Remap the element (sort by different criterion) */ - el = key->vemap + key->evmap[el - key->vemap]; - - /* Compare strings */ - for(ptr = key->start, end = key->stop, name = el->enum_name; - ptr < end; ptr++, name++) { - if(*ptr != *name || !*name) - return *(const unsigned char *)ptr - - *(const unsigned char *)name; - } - return name[0] ? -1 : 0; -} - -static const asn_INTEGER_enum_map_t * -INTEGER_map_enum2value(const asn_INTEGER_specifics_t *specs, const char *lstart, - const char *lstop) { - const asn_INTEGER_enum_map_t *el_found; - int count = specs ? specs->map_count : 0; - struct e2v_key key; - const char *lp; - - if(!count) return NULL; - - /* Guaranteed: assert(lstart < lstop); */ - /* Figure out the tag name */ - for(lstart++, lp = lstart; lp < lstop; lp++) { - switch(*lp) { - case 9: case 10: case 11: case 12: case 13: case 32: /* WSP */ - case 0x2f: /* '/' */ case 0x3e: /* '>' */ - break; - default: - continue; - } - break; - } - if(lp == lstop) return NULL; /* No tag found */ - lstop = lp; - - key.start = lstart; - key.stop = lstop; - key.vemap = specs->value2enum; - key.evmap = specs->enum2value; - el_found = (asn_INTEGER_enum_map_t *)bsearch(&key, - specs->value2enum, count, sizeof(specs->value2enum[0]), - INTEGER__compar_enum2value); - if(el_found) { - /* Remap enum2value into value2enum */ - el_found = key.vemap + key.evmap[el_found - key.vemap]; - } - return el_found; -} - -static int -INTEGER__compar_value2enum(const void *kp, const void *am) { - long a = *(const long *)kp; - const asn_INTEGER_enum_map_t *el = (const asn_INTEGER_enum_map_t *)am; - long b = el->nat_value; - if(a < b) return -1; - else if(a == b) return 0; - else return 1; -} - -const asn_INTEGER_enum_map_t * -INTEGER_map_value2enum(const asn_INTEGER_specifics_t *specs, long value) { - int count = specs ? specs->map_count : 0; - if(!count) return 0; - return (asn_INTEGER_enum_map_t *)bsearch(&value, specs->value2enum, - count, sizeof(specs->value2enum[0]), - INTEGER__compar_value2enum); -} - -static int -INTEGER_st_prealloc(INTEGER_t *st, int min_size) { - void *p = MALLOC(min_size + 1); - if(p) { - void *b = st->buf; - st->size = 0; - st->buf = p; - FREEMEM(b); - return 0; - } else { - return -1; - } -} - -/* - * Decode the chunk of XML text encoding INTEGER. - */ -static enum xer_pbd_rval -INTEGER__xer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr, - const void *chunk_buf, size_t chunk_size) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - INTEGER_t *st = (INTEGER_t *)sptr; - intmax_t dec_value; - intmax_t hex_value = 0; - const char *lp; - const char *lstart = (const char *)chunk_buf; - const char *lstop = lstart + chunk_size; - enum { - ST_LEADSPACE, - ST_SKIPSPHEX, - ST_WAITDIGITS, - ST_DIGITS, - ST_DIGITS_TRAILSPACE, - ST_HEXDIGIT1, - ST_HEXDIGIT2, - ST_HEXDIGITS_TRAILSPACE, - ST_HEXCOLON, - ST_END_ENUM, - ST_UNEXPECTED - } state = ST_LEADSPACE; - const char *dec_value_start = 0; /* INVARIANT: always !0 in ST_DIGITS */ - const char *dec_value_end = 0; - - if(chunk_size) - ASN_DEBUG("INTEGER body %ld 0x%2x..0x%2x", - (long)chunk_size, *lstart, lstop[-1]); - - if(INTEGER_st_prealloc(st, (chunk_size/3) + 1)) - return XPBD_SYSTEM_FAILURE; - - /* - * We may have received a tag here. It will be processed inline. - * Use strtoul()-like code and serialize the result. - */ - for(lp = lstart; lp < lstop; lp++) { - int lv = *lp; - switch(lv) { - case 0x09: case 0x0a: case 0x0d: case 0x20: - switch(state) { - case ST_LEADSPACE: - case ST_DIGITS_TRAILSPACE: - case ST_HEXDIGITS_TRAILSPACE: - case ST_SKIPSPHEX: - continue; - case ST_DIGITS: - dec_value_end = lp; - state = ST_DIGITS_TRAILSPACE; - continue; - case ST_HEXCOLON: - state = ST_HEXDIGITS_TRAILSPACE; - continue; - default: - break; - } - break; - case 0x2d: /* '-' */ - if(state == ST_LEADSPACE) { - dec_value = 0; - dec_value_start = lp; - state = ST_WAITDIGITS; - continue; - } - break; - case 0x2b: /* '+' */ - if(state == ST_LEADSPACE) { - dec_value = 0; - dec_value_start = lp; - state = ST_WAITDIGITS; - continue; - } - break; - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: - switch(state) { - case ST_DIGITS: continue; - case ST_SKIPSPHEX: /* Fall through */ - case ST_HEXDIGIT1: - hex_value = (lv - 0x30) << 4; - state = ST_HEXDIGIT2; - continue; - case ST_HEXDIGIT2: - hex_value += (lv - 0x30); - state = ST_HEXCOLON; - st->buf[st->size++] = (uint8_t)hex_value; - continue; - case ST_HEXCOLON: - return XPBD_BROKEN_ENCODING; - case ST_LEADSPACE: - dec_value = 0; - dec_value_start = lp; - /* FALL THROUGH */ - case ST_WAITDIGITS: - state = ST_DIGITS; - continue; - default: - break; - } - break; - case 0x3c: /* '<', start of XML encoded enumeration */ - if(state == ST_LEADSPACE) { - const asn_INTEGER_enum_map_t *el; - el = INTEGER_map_enum2value( - (const asn_INTEGER_specifics_t *) - td->specifics, lstart, lstop); - if(el) { - ASN_DEBUG("Found \"%s\" => %ld", - el->enum_name, el->nat_value); - dec_value = el->nat_value; - state = ST_END_ENUM; - lp = lstop - 1; - continue; - } - ASN_DEBUG("Unknown identifier for INTEGER"); - } - return XPBD_BROKEN_ENCODING; - case 0x3a: /* ':' */ - if(state == ST_HEXCOLON) { - /* This colon is expected */ - state = ST_HEXDIGIT1; - continue; - } else if(state == ST_DIGITS) { - /* The colon here means that we have - * decoded the first two hexadecimal - * places as a decimal value. - * Switch decoding mode. */ - ASN_DEBUG("INTEGER re-evaluate as hex form"); - state = ST_SKIPSPHEX; - dec_value_start = 0; - lp = lstart - 1; - continue; - } else { - ASN_DEBUG("state %d at %ld", state, (long)(lp - lstart)); - break; - } - /* [A-Fa-f] */ - case 0x41:case 0x42:case 0x43:case 0x44:case 0x45:case 0x46: - case 0x61:case 0x62:case 0x63:case 0x64:case 0x65:case 0x66: - switch(state) { - case ST_SKIPSPHEX: - case ST_LEADSPACE: /* Fall through */ - case ST_HEXDIGIT1: - hex_value = lv - ((lv < 0x61) ? 0x41 : 0x61); - hex_value += 10; - hex_value <<= 4; - state = ST_HEXDIGIT2; - continue; - case ST_HEXDIGIT2: - hex_value += lv - ((lv < 0x61) ? 0x41 : 0x61); - hex_value += 10; - st->buf[st->size++] = (uint8_t)hex_value; - state = ST_HEXCOLON; - continue; - case ST_DIGITS: - ASN_DEBUG("INTEGER re-evaluate as hex form"); - state = ST_SKIPSPHEX; - dec_value_start = 0; - lp = lstart - 1; - continue; - default: - break; - } - break; - } - - /* Found extra non-numeric stuff */ - ASN_DEBUG("INTEGER :: Found non-numeric 0x%2x at %ld", - lv, (long)(lp - lstart)); - state = ST_UNEXPECTED; - break; - } - - switch(state) { - case ST_END_ENUM: - /* Got a complete and valid enumeration encoded as a tag. */ - break; - case ST_DIGITS: - dec_value_end = lstop; - /* FALL THROUGH */ - case ST_DIGITS_TRAILSPACE: - /* The last symbol encountered was a digit. */ - switch(asn_strtoimax_lim(dec_value_start, &dec_value_end, &dec_value)) { - case ASN_STRTOX_OK: - if(specs && specs->field_unsigned && (uintmax_t) dec_value <= ULONG_MAX) { - break; - } else if(dec_value >= LONG_MIN && dec_value <= LONG_MAX) { - break; - } else { - /* - * We model INTEGER on long for XER, - * to avoid rewriting all the tests at once. - */ - ASN_DEBUG("INTEGER exceeds long range"); - } - /* Fall through */ - case ASN_STRTOX_ERROR_RANGE: - ASN_DEBUG("INTEGER decode %s hit range limit", td->name); - return XPBD_DECODER_LIMIT; - case ASN_STRTOX_ERROR_INVAL: - case ASN_STRTOX_EXPECT_MORE: - case ASN_STRTOX_EXTRA_DATA: - return XPBD_BROKEN_ENCODING; - } - break; - case ST_HEXCOLON: - case ST_HEXDIGITS_TRAILSPACE: - st->buf[st->size] = 0; /* Just in case termination */ - return XPBD_BODY_CONSUMED; - case ST_HEXDIGIT1: - case ST_HEXDIGIT2: - case ST_SKIPSPHEX: - return XPBD_BROKEN_ENCODING; - case ST_LEADSPACE: - /* Content not found */ - return XPBD_NOT_BODY_IGNORE; - case ST_WAITDIGITS: - case ST_UNEXPECTED: - ASN_DEBUG("INTEGER: No useful digits (state %d)", state); - return XPBD_BROKEN_ENCODING; /* No digits */ - } - - /* - * Convert the result of parsing of enumeration or a straight - * decimal value into a BER representation. - */ - if(asn_imax2INTEGER(st, dec_value)) { - ASN_DEBUG("INTEGER decode %s conversion failed", td->name); - return XPBD_SYSTEM_FAILURE; - } - - return XPBD_BODY_CONSUMED; -} - -asn_dec_rval_t -INTEGER_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, size_t size) { - return xer_decode_primitive(opt_codec_ctx, td, - sptr, sizeof(INTEGER_t), opt_mname, - buf_ptr, size, INTEGER__xer_body_decode); -} - -asn_enc_rval_t -INTEGER_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - asn_enc_rval_t er = {0,0,0}; - - (void)ilevel; - (void)flags; - - if(!st || !st->buf) - ASN__ENCODE_FAILED; - - er.encoded = INTEGER__dump(td, st, cb, app_key, 1); - if(er.encoded < 0) ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -INTEGER_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval = { RC_OK, 0 }; - INTEGER_t *st = (INTEGER_t *)*sptr; - const asn_per_constraint_t *ct; - int repeat; - - (void)opt_codec_ctx; - - if(!st) { - st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st))); - if(!st) ASN__DECODE_FAILED; - } - - if(!constraints) constraints = td->encoding_constraints.per_constraints; - ct = constraints ? &constraints->value : 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) ASN__DECODE_STARVED; - if(inext) ct = 0; - } - - FREEMEM(st->buf); - st->buf = 0; - st->size = 0; - if(ct) { - if(ct->flags & APC_SEMI_CONSTRAINED) { - st->buf = (uint8_t *)CALLOC(1, 2); - if(!st->buf) ASN__DECODE_FAILED; - st->size = 1; - } else if(ct->flags & APC_CONSTRAINED && ct->range_bits >= 0) { - size_t size = (ct->range_bits + 7) >> 3; - st->buf = (uint8_t *)MALLOC(1 + size + 1); - if(!st->buf) ASN__DECODE_FAILED; - st->size = size; - } - } - - /* X.691-2008/11, #13.2.2, constrained whole number */ - if(ct && ct->flags != APC_UNCONSTRAINED) { - /* #11.5.6 */ - ASN_DEBUG("Integer with range %d bits", ct->range_bits); - if(ct->range_bits >= 0) { - if((size_t)ct->range_bits > 8 * sizeof(unsigned long)) - ASN__DECODE_FAILED; - - if(specs && specs->field_unsigned) { - unsigned long uvalue = 0; - if(uper_get_constrained_whole_number(pd, - &uvalue, ct->range_bits)) - ASN__DECODE_STARVED; - ASN_DEBUG("Got value %lu + low %ld", - uvalue, ct->lower_bound); - uvalue += ct->lower_bound; - if(asn_ulong2INTEGER(st, uvalue)) - ASN__DECODE_FAILED; - } else { - unsigned long uvalue = 0; - long svalue; - if(uper_get_constrained_whole_number(pd, - &uvalue, ct->range_bits)) - ASN__DECODE_STARVED; - ASN_DEBUG("Got value %lu + low %ld", - uvalue, ct->lower_bound); - if(per_long_range_unrebase(uvalue, ct->lower_bound, - ct->upper_bound, &svalue) - || asn_long2INTEGER(st, svalue)) { - ASN__DECODE_FAILED; - } - } - return rval; - } - } else { - ASN_DEBUG("Decoding unconstrained integer %s", td->name); - } - - /* X.691, #12.2.3, #12.2.4 */ - do { - ssize_t len = 0; - void *p = NULL; - int ret = 0; - - /* Get the PER length */ - len = uper_get_length(pd, -1, 0, &repeat); - if(len < 0) ASN__DECODE_STARVED; - - p = REALLOC(st->buf, st->size + len + 1); - if(!p) ASN__DECODE_FAILED; - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, 8 * len); - if(ret < 0) ASN__DECODE_STARVED; - st->size += len; - } while(repeat); - st->buf[st->size] = 0; /* JIC */ - - /* #12.2.3 */ - if(ct && ct->lower_bound) { - /* - * TODO: replace by in-place arithmetics. - */ - long value = 0; - if(asn_INTEGER2long(st, &value)) - ASN__DECODE_FAILED; - if(asn_imax2INTEGER(st, value + ct->lower_bound)) - ASN__DECODE_FAILED; - } - - return rval; -} - -asn_enc_rval_t -INTEGER_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - const INTEGER_t *st = (const INTEGER_t *)sptr; - const uint8_t *buf; - const uint8_t *end; - const asn_per_constraint_t *ct; - long value = 0; - - if(!st || st->size == 0) ASN__ENCODE_FAILED; - - if(!constraints) constraints = td->encoding_constraints.per_constraints; - ct = constraints ? &constraints->value : 0; - - er.encoded = 0; - - if(ct) { - int inext = 0; - if(specs && specs->field_unsigned) { - unsigned long uval; - if(asn_INTEGER2ulong(st, &uval)) - ASN__ENCODE_FAILED; - /* Check proper range */ - if(ct->flags & APC_SEMI_CONSTRAINED) { - if(uval < (unsigned long)ct->lower_bound) - inext = 1; - } else if(ct->range_bits >= 0) { - if(uval < (unsigned long)ct->lower_bound - || uval > (unsigned long)ct->upper_bound) - inext = 1; - } - ASN_DEBUG("Value %lu (%02x/%" ASN_PRI_SIZE ") lb %lu ub %lu %s", - uval, st->buf[0], st->size, - ct->lower_bound, ct->upper_bound, - inext ? "ext" : "fix"); - value = uval; - } else { - if(asn_INTEGER2long(st, &value)) - ASN__ENCODE_FAILED; - /* Check proper range */ - if(ct->flags & APC_SEMI_CONSTRAINED) { - if(value < ct->lower_bound) - inext = 1; - } else if(ct->range_bits >= 0) { - if(value < ct->lower_bound - || value > ct->upper_bound) - inext = 1; - } - ASN_DEBUG("Value %ld (%02x/%" ASN_PRI_SIZE ") lb %ld ub %ld %s", - value, st->buf[0], st->size, - ct->lower_bound, ct->upper_bound, - inext ? "ext" : "fix"); - } - if(ct->flags & APC_EXTENSIBLE) { - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - if(inext) ct = 0; - } else if(inext) { - ASN__ENCODE_FAILED; - } - } - - - /* X.691-11/2008, #13.2.2, test if constrained whole number */ - if(ct && ct->range_bits >= 0) { - unsigned long v; - /* #11.5.6 -> #11.3 */ - ASN_DEBUG("Encoding integer %ld (%lu) with range %d bits", - value, value - ct->lower_bound, ct->range_bits); - if(specs && specs->field_unsigned) { - if ( ((unsigned long)ct->lower_bound > (unsigned long)(ct->upper_bound) - || ((unsigned long)value < (unsigned long)ct->lower_bound)) - || ((unsigned long)value > (unsigned long)ct->upper_bound) - ) { - ASN_DEBUG("Value %lu to-be-encoded is outside the bounds [%lu, %lu]!", - value, ct->lower_bound, ct->upper_bound); - ASN__ENCODE_FAILED; - } - v = (unsigned long)value - (unsigned long)ct->lower_bound; - } else { - if(per_long_range_rebase(value, ct->lower_bound, ct->upper_bound, &v)) { - ASN__ENCODE_FAILED; - } - } - if(uper_put_constrained_whole_number_u(po, v, ct->range_bits)) - ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - if(ct && ct->lower_bound) { - ASN_DEBUG("Adjust lower bound to %ld", ct->lower_bound); - /* TODO: adjust lower bound */ - ASN__ENCODE_FAILED; - } - - for(buf = st->buf, end = st->buf + st->size; buf < end;) { - int need_eom = 0; - ssize_t mayEncode = uper_put_length(po, end - buf, &need_eom); - if(mayEncode < 0) - ASN__ENCODE_FAILED; - if(per_put_many_bits(po, buf, 8 * mayEncode)) - ASN__ENCODE_FAILED; - buf += mayEncode; - if(need_eom && uper_put_length(po, 0, 0)) ASN__ENCODE_FAILED; - } - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -INTEGER_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval = { RC_OK, 0 }; - INTEGER_t *st = (INTEGER_t *)*sptr; - const asn_per_constraint_t *ct; - int repeat; - - (void)opt_codec_ctx; - - if(!st) { - st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st))); - if(!st) ASN__DECODE_FAILED; - } - - if(!constraints) constraints = td->encoding_constraints.per_constraints; - ct = constraints ? &constraints->value : 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) ASN__DECODE_STARVED; - if(inext) ct = 0; - } - - FREEMEM(st->buf); - st->buf = 0; - st->size = 0; - if(ct) { - if(ct->flags & APC_SEMI_CONSTRAINED) { - st->buf = (uint8_t *)CALLOC(1, 2); - if(!st->buf) ASN__DECODE_FAILED; - st->size = 1; - } else if(ct->flags & APC_CONSTRAINED && ct->range_bits >= 0) { - size_t size = (ct->range_bits + 7) >> 3; - st->buf = (uint8_t *)MALLOC(1 + size + 1); - if(!st->buf) ASN__DECODE_FAILED; - st->size = size; - } - } - - /* X.691, #12.2.2 */ - if(ct && ct->flags != APC_UNCONSTRAINED) { - /* #10.5.6 */ - ASN_DEBUG("Integer with range %d bits", ct->range_bits); - if(ct->range_bits >= 0) { - if (ct->range_bits > 16) { - int max_range_bytes = (ct->range_bits >> 3) + - (((ct->range_bits % 8) > 0) ? 1 : 0); - int length = 0, i; - long value = 0; - - for (i = 1; ; i++) { - int upper = 1 << i; - if (upper >= max_range_bytes) - break; - } - ASN_DEBUG("Can encode %d (%d bytes) in %d bits", ct->range_bits, - max_range_bytes, i); - - if ((length = per_get_few_bits(pd, i)) < 0) - ASN__DECODE_FAILED; - - /* X.691 #12.2.6 length determinant + lb (1) */ - length += 1; - ASN_DEBUG("Got length %d", length); - if (aper_get_align(pd) != 0) - ASN__DECODE_FAILED; - while (length--) { - int buf = per_get_few_bits(pd, 8); - if (buf < 0) - ASN__DECODE_FAILED; - value += (((long)buf) << (8 * length)); - } - - value += ct->lower_bound; - if((specs && specs->field_unsigned) - ? asn_uint642INTEGER(st, (unsigned long)value) - : asn_int642INTEGER(st, value)) - ASN__DECODE_FAILED; - ASN_DEBUG("Got value %ld + low %ld", - value, ct->lower_bound); - } else { - long value = 0; - if (ct->range_bits < 8) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - } else if (ct->range_bits == 8) { - if (aper_get_align(pd) < 0) - ASN__DECODE_FAILED; - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - } else { - /* Align */ - if (aper_get_align(pd) < 0) - ASN__DECODE_FAILED; - value = per_get_few_bits(pd, 16); - if(value < 0) ASN__DECODE_STARVED; - } - value += ct->lower_bound; - if((specs && specs->field_unsigned) - ? asn_ulong2INTEGER(st, value) - : asn_long2INTEGER(st, value)) - ASN__DECODE_FAILED; - ASN_DEBUG("Got value %ld + low %ld", - value, ct->lower_bound); - } - return rval; - } else { - ASN__DECODE_FAILED; - } - } else { - ASN_DEBUG("Decoding unconstrained integer %s", td->name); - } - - /* X.691, #12.2.3, #12.2.4 */ - do { - ssize_t len; - void *p; - int ret; - - /* Get the PER length */ - len = aper_get_length(pd, -1, -1, &repeat); - if(len < 0) ASN__DECODE_STARVED; - - p = REALLOC(st->buf, st->size + len + 1); - if(!p) ASN__DECODE_FAILED; - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, 8 * len); - if(ret < 0) ASN__DECODE_STARVED; - st->size += len; - } while(repeat); - st->buf[st->size] = 0; /* JIC */ - - /* #12.2.3 */ - if(ct && ct->lower_bound) { - /* - * TODO: replace by in-place arithmetics. - */ - long value; - if(asn_INTEGER2long(st, &value)) - ASN__DECODE_FAILED; - if(asn_long2INTEGER(st, value + ct->lower_bound)) - ASN__DECODE_FAILED; - } - - return rval; -} - -asn_enc_rval_t -INTEGER_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - const INTEGER_t *st = (const INTEGER_t *)sptr; - const uint8_t *buf; - const uint8_t *end; - const asn_per_constraint_t *ct; - long value = 0; - - if(!st || st->size == 0) ASN__ENCODE_FAILED; - - if(!constraints) constraints = td->encoding_constraints.per_constraints; - ct = constraints ? &constraints->value : 0; - - er.encoded = 0; - - if(ct) { - int inext = 0; - if(specs && specs->field_unsigned) { - unsigned long uval; - if(asn_INTEGER2ulong(st, &uval)) - ASN__ENCODE_FAILED; - /* Check proper range */ - if(ct->flags & APC_SEMI_CONSTRAINED) { - if(uval < (unsigned long)ct->lower_bound) - inext = 1; - } else if(ct->range_bits >= 0) { - if(uval < (unsigned long)ct->lower_bound - || uval > (unsigned long)ct->upper_bound) - inext = 1; - } - ASN_DEBUG("Value %lu (%02x/%lu) lb %ld ub %ld %s", - uval, st->buf[0], st->size, - ct->lower_bound, ct->upper_bound, - inext ? "ext" : "fix"); - value = uval; - } else { - if(asn_INTEGER2long(st, &value)) ASN__ENCODE_FAILED; - /* Check proper range */ - if(ct->flags & APC_SEMI_CONSTRAINED) { - if(value < ct->lower_bound) - inext = 1; - } else if(ct->range_bits >= 0) { - if(value < ct->lower_bound - || value > ct->upper_bound) - inext = 1; - } - ASN_DEBUG("Value %lu (%02x/%lu) lb %ld ub %ld %s", - value, st->buf[0], st->size, - ct->lower_bound, ct->upper_bound, - inext ? "ext" : "fix"); - } - if(ct->flags & APC_EXTENSIBLE) { - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - if(inext) ct = 0; - } else if(inext) { - ASN__ENCODE_FAILED; - } - } - - /* X.691, #12.2.2 */ - if(ct && ct->range_bits >= 0) { - unsigned long v; - - /* #10.5.6 */ - ASN_DEBUG("Encoding integer %ld (%lu) with range %d bits", - value, value - ct->lower_bound, ct->range_bits); - - v = value - ct->lower_bound; - - /* #12 <= 8 -> alignment ? */ - if (ct->range_bits < 8) { - if(per_put_few_bits(po, 0x00 | v, ct->range_bits)) - ASN__ENCODE_FAILED; - } else if (ct->range_bits == 8) { - if(aper_put_align(po) < 0) - ASN__ENCODE_FAILED; - if(per_put_few_bits(po, 0x00 | v, ct->range_bits)) - ASN__ENCODE_FAILED; - } else if (ct->range_bits <= 16) { - /* Consume the bytes to align on octet */ - if(aper_put_align(po) < 0) - ASN__ENCODE_FAILED; - if(per_put_few_bits(po, 0x0000 | v, - 16)) - ASN__ENCODE_FAILED; - } else { - /* TODO: extend to >64 bits */ - int64_t v64 = v; - int i, j; - int max_range_bytes = (ct->range_bits >> 3) + - (((ct->range_bits % 8) > 0) ? 1 : 0); - - for (i = 1; ; i++) { - int upper = 1 << i; - if (upper >= max_range_bytes) - break; - } - - for (j = sizeof(int64_t) -1; j != 0; j--) { - int64_t val; - val = v64 >> (j * 8); - if (val != 0) - break; - } - - /* Putting length in the minimum number of bits ex: 5 = 3bits */ - if (per_put_few_bits(po, j, i)) - ASN__ENCODE_FAILED; - - /* Consume the bits to align on octet */ - if (aper_put_align(po) < 0) - ASN__ENCODE_FAILED; - /* Put the value */ - for (i = 0; i <= j; i++) { - if(per_put_few_bits(po, (v64 >> (8 * (j - i))) & 0xff, 8)) - ASN__ENCODE_FAILED; - } - } - ASN__ENCODED_OK(er); - } - - if(ct && ct->lower_bound) { - ASN_DEBUG("Adjust lower bound to %ld", ct->lower_bound); - /* TODO: adjust lower bound */ - ASN__ENCODE_FAILED; - } - - for(buf = st->buf, end = st->buf + st->size; buf < end;) { - ssize_t mayEncode = aper_put_length(po, -1, end - buf); - if(mayEncode < 0) - ASN__ENCODE_FAILED; - if(per_put_many_bits(po, buf, 8 * mayEncode)) - ASN__ENCODE_FAILED; - buf += mayEncode; - } - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -static intmax_t -asn__integer_convert(const uint8_t *b, const uint8_t *end) { - uintmax_t value; - - /* Perform the sign initialization */ - /* Actually value = -(*b >> 7); gains nothing, yet unreadable! */ - if((*b >> 7)) { - value = (uintmax_t)(-1); - } else { - value = 0; - } - - /* Conversion engine */ - for(; b < end; b++) { - value = (value << 8) | *b; - } - - return value; -} - -int -asn_INTEGER2imax(const INTEGER_t *iptr, intmax_t *lptr) { - uint8_t *b, *end; - size_t size; - - /* Sanity checking */ - if(!iptr || !iptr->buf || !lptr) { - errno = EINVAL; - return -1; - } - - /* Cache the begin/end of the buffer */ - b = iptr->buf; /* Start of the INTEGER buffer */ - size = iptr->size; - end = b + size; /* Where to stop */ - - if(size > sizeof(intmax_t)) { - uint8_t *end1 = end - 1; - /* - * Slightly more advanced processing, - * able to process INTEGERs with >sizeof(intmax_t) bytes - * when the actual value is small, e.g. for intmax_t == int32_t - * (0x0000000000abcdef INTEGER would yield a fine 0x00abcdef int32_t) - */ - /* Skip out the insignificant leading bytes */ - for(; b < end1; b++) { - switch(*b) { - case 0x00: if((b[1] & 0x80) == 0) continue; break; - case 0xff: if((b[1] & 0x80) != 0) continue; break; - } - break; - } - - size = end - b; - if(size > sizeof(intmax_t)) { - /* Still cannot fit the sizeof(intmax_t) */ - errno = ERANGE; - return -1; - } - } - - /* Shortcut processing of a corner case */ - if(end == b) { - *lptr = 0; - return 0; - } - - *lptr = asn__integer_convert(b, end); - return 0; -} - -/* FIXME: negative INTEGER values are silently interpreted as large unsigned ones. */ -int -asn_INTEGER2umax(const INTEGER_t *iptr, uintmax_t *lptr) { - uint8_t *b, *end; - uintmax_t value; - size_t size; - - if(!iptr || !iptr->buf || !lptr) { - errno = EINVAL; - return -1; - } - - b = iptr->buf; - size = iptr->size; - end = b + size; - - /* If all extra leading bytes are zeroes, ignore them */ - for(; size > sizeof(value); b++, size--) { - if(*b) { - /* Value won't fit into uintmax_t */ - errno = ERANGE; - return -1; - } - } - - /* Conversion engine */ - for(value = 0; b < end; b++) - value = (value << 8) | *b; - - *lptr = value; - return 0; -} - -int -asn_umax2INTEGER(INTEGER_t *st, uintmax_t value) { - uint8_t *buf; - uint8_t *end; - uint8_t *b; - int shr; - - if(value <= ((~(uintmax_t)0) >> 1)) { - return asn_imax2INTEGER(st, value); - } - - buf = (uint8_t *)MALLOC(1 + sizeof(value)); - if(!buf) return -1; - - end = buf + (sizeof(value) + 1); - buf[0] = 0; /* INTEGERs are signed. 0-byte indicates positive. */ - for(b = buf + 1, shr = (sizeof(value) - 1) * 8; b < end; shr -= 8, b++) - *b = (uint8_t)(value >> shr); - - if(st->buf) FREEMEM(st->buf); - st->buf = buf; - st->size = 1 + sizeof(value); - - return 0; -} - -int -asn_imax2INTEGER(INTEGER_t *st, intmax_t value) { - uint8_t *buf, *bp; - uint8_t *p; - uint8_t *pstart; - uint8_t *pend1; - int littleEndian = 1; /* Run-time detection */ - int add; - - if(!st) { - errno = EINVAL; - return -1; - } - - buf = (uint8_t *)(long *)MALLOC(sizeof(value)); - if(!buf) return -1; - - if(*(char *)&littleEndian) { - pstart = (uint8_t *)&value + sizeof(value) - 1; - pend1 = (uint8_t *)&value; - add = -1; - } else { - pstart = (uint8_t *)&value; - pend1 = pstart + sizeof(value) - 1; - add = 1; - } - - /* - * If the contents octet consists of more than one octet, - * then bits of the first octet and bit 8 of the second octet: - * a) shall not all be ones; and - * b) shall not all be zero. - */ - for(p = pstart; p != pend1; p += add) { - switch(*p) { - case 0x00: if((*(p+add) & 0x80) == 0) - continue; - break; - case 0xff: if((*(p+add) & 0x80)) - continue; - break; - } - break; - } - /* Copy the integer body */ - for(bp = buf, pend1 += add; p != pend1; p += add) - *bp++ = *p; - - if(st->buf) FREEMEM(st->buf); - st->buf = buf; - st->size = bp - buf; - - return 0; -} - -int -asn_INTEGER2long(const INTEGER_t *iptr, long *l) { - intmax_t v; - if(asn_INTEGER2imax(iptr, &v) == 0) { - if(v < LONG_MIN || v > LONG_MAX) { - errno = ERANGE; - return -1; - } - *l = v; - return 0; - } else { - return -1; - } -} - -int -asn_INTEGER2ulong(const INTEGER_t *iptr, unsigned long *l) { - uintmax_t v; - if(asn_INTEGER2umax(iptr, &v) == 0) { - if(v > ULONG_MAX) { - errno = ERANGE; - return -1; - } - *l = v; - return 0; - } else { - return -1; - } -} - -int -asn_long2INTEGER(INTEGER_t *st, long value) { - return asn_imax2INTEGER(st, value); -} - -int -asn_ulong2INTEGER(INTEGER_t *st, unsigned long value) { - return asn_imax2INTEGER(st, value); -} - - -int -asn_uint642INTEGER(INTEGER_t *st, uint64_t value) { - uint8_t *buf; - uint8_t *end; - uint8_t *b; - int shr; - - if(value <= INT64_MAX) - return asn_int642INTEGER(st, value); - - buf = (uint8_t *)MALLOC(1 + sizeof(value)); - if(!buf) return -1; - - end = buf + (sizeof(value) + 1); - buf[0] = 0; - for(b = buf + 1, shr = (sizeof(value)-1)*8; b < end; shr -= 8, b++) - *b = (uint8_t)(value >> shr); - - if(st->buf) FREEMEM(st->buf); - st->buf = buf; - st->size = 1 + sizeof(value); - - return 0; -} - -int -asn_int642INTEGER(INTEGER_t *st, int64_t value) { - uint8_t *buf, *bp; - uint8_t *p; - uint8_t *pstart; - uint8_t *pend1; - int littleEndian = 1; /* Run-time detection */ - int add; - - if(!st) { - errno = EINVAL; - return -1; - } - - buf = (uint8_t *)MALLOC(sizeof(value)); - if(!buf) return -1; - - if(*(char *)&littleEndian) { - pstart = (uint8_t *)&value + sizeof(value) - 1; - pend1 = (uint8_t *)&value; - add = -1; - } else { - pstart = (uint8_t *)&value; - pend1 = pstart + sizeof(value) - 1; - add = 1; - } - - /* - * If the contents octet consists of more than one octet, - * then bits of the first octet and bit 8 of the second octet: - * a) shall not all be ones; and - * b) shall not all be zero. - */ - for(p = pstart; p != pend1; p += add) { - switch(*p) { - case 0x00: if((*(p+add) & 0x80) == 0) - continue; - break; - case 0xff: if((*(p+add) & 0x80)) - continue; - break; - } - break; - } - /* Copy the integer body */ - for(pstart = p, bp = buf, pend1 += add; p != pend1; p += add) - *bp++ = *p; - - if(st->buf) FREEMEM(st->buf); - st->buf = buf; - st->size = bp - buf; - - return 0; -} - -/* - * Parse the number in the given string until the given *end position, - * returning the position after the last parsed character back using the - * same (*end) pointer. - * WARNING: This behavior is different from the standard strtol/strtoimax(3). - */ -enum asn_strtox_result_e -asn_strtoimax_lim(const char *str, const char **end, intmax_t *intp) { - int sign = 1; - intmax_t value; - -#define ASN1_INTMAX_MAX ((~(uintmax_t)0) >> 1) - const intmax_t upper_boundary = ASN1_INTMAX_MAX / 10; - intmax_t last_digit_max = ASN1_INTMAX_MAX % 10; -#undef ASN1_INTMAX_MAX - - if(str >= *end) return ASN_STRTOX_ERROR_INVAL; - - switch(*str) { - case '-': - last_digit_max++; - sign = -1; - /* FALL THROUGH */ - case '+': - str++; - if(str >= *end) { - *end = str; - return ASN_STRTOX_EXPECT_MORE; - } - } - - for(value = 0; str < (*end); str++) { - switch(*str) { - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: { - int d = *str - '0'; - if(value < upper_boundary) { - value = value * 10 + d; - } else if(value == upper_boundary) { - if(d <= last_digit_max) { - if(sign > 0) { - value = value * 10 + d; - } else { - sign = 1; - value = -value * 10 - d; - } - } else { - *end = str; - return ASN_STRTOX_ERROR_RANGE; - } - } else { - *end = str; - return ASN_STRTOX_ERROR_RANGE; - } - } - continue; - default: - *end = str; - *intp = sign * value; - return ASN_STRTOX_EXTRA_DATA; - } - } - - *end = str; - *intp = sign * value; - return ASN_STRTOX_OK; -} - -/* - * Parse the number in the given string until the given *end position, - * returning the position after the last parsed character back using the - * same (*end) pointer. - * WARNING: This behavior is different from the standard strtoul/strtoumax(3). - */ -enum asn_strtox_result_e -asn_strtoumax_lim(const char *str, const char **end, uintmax_t *uintp) { - uintmax_t value; - -#define ASN1_UINTMAX_MAX ((~(uintmax_t)0)) - const uintmax_t upper_boundary = ASN1_UINTMAX_MAX / 10; - uintmax_t last_digit_max = ASN1_UINTMAX_MAX % 10; -#undef ASN1_UINTMAX_MAX - - if(str >= *end) return ASN_STRTOX_ERROR_INVAL; - - switch(*str) { - case '-': - return ASN_STRTOX_ERROR_INVAL; - case '+': - str++; - if(str >= *end) { - *end = str; - return ASN_STRTOX_EXPECT_MORE; - } - } - - for(value = 0; str < (*end); str++) { - switch(*str) { - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: { - unsigned int d = *str - '0'; - if(value < upper_boundary) { - value = value * 10 + d; - } else if(value == upper_boundary) { - if(d <= last_digit_max) { - value = value * 10 + d; - } else { - *end = str; - return ASN_STRTOX_ERROR_RANGE; - } - } else { - *end = str; - return ASN_STRTOX_ERROR_RANGE; - } - } - continue; - default: - *end = str; - *uintp = value; - return ASN_STRTOX_EXTRA_DATA; - } - } - - *end = str; - *uintp = value; - return ASN_STRTOX_OK; -} - -enum asn_strtox_result_e -asn_strtol_lim(const char *str, const char **end, long *lp) { - intmax_t value; - switch(asn_strtoimax_lim(str, end, &value)) { - case ASN_STRTOX_ERROR_RANGE: - return ASN_STRTOX_ERROR_RANGE; - case ASN_STRTOX_ERROR_INVAL: - return ASN_STRTOX_ERROR_INVAL; - case ASN_STRTOX_EXPECT_MORE: - return ASN_STRTOX_EXPECT_MORE; - case ASN_STRTOX_OK: - if(value >= LONG_MIN && value <= LONG_MAX) { - *lp = value; - return ASN_STRTOX_OK; - } else { - return ASN_STRTOX_ERROR_RANGE; - } - case ASN_STRTOX_EXTRA_DATA: - if(value >= LONG_MIN && value <= LONG_MAX) { - *lp = value; - return ASN_STRTOX_EXTRA_DATA; - } else { - return ASN_STRTOX_ERROR_RANGE; - } - } - - assert(!"Unreachable"); - return ASN_STRTOX_ERROR_INVAL; -} - -enum asn_strtox_result_e -asn_strtoul_lim(const char *str, const char **end, unsigned long *ulp) { - uintmax_t value; - switch(asn_strtoumax_lim(str, end, &value)) { - case ASN_STRTOX_ERROR_RANGE: - return ASN_STRTOX_ERROR_RANGE; - case ASN_STRTOX_ERROR_INVAL: - return ASN_STRTOX_ERROR_INVAL; - case ASN_STRTOX_EXPECT_MORE: - return ASN_STRTOX_EXPECT_MORE; - case ASN_STRTOX_OK: - if(value <= ULONG_MAX) { - *ulp = value; - return ASN_STRTOX_OK; - } else { - return ASN_STRTOX_ERROR_RANGE; - } - case ASN_STRTOX_EXTRA_DATA: - if(value <= ULONG_MAX) { - *ulp = value; - return ASN_STRTOX_EXTRA_DATA; - } else { - return ASN_STRTOX_ERROR_RANGE; - } - } - - assert(!"Unreachable"); - return ASN_STRTOX_ERROR_INVAL; -} - -int -INTEGER_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - const INTEGER_t *a = aptr; - const INTEGER_t *b = bptr; - - (void)td; - - if(a && b) { - if(a->size && b->size) { - int sign_a = (a->buf[0] & 0x80) ? -1 : 1; - int sign_b = (b->buf[0] & 0x80) ? -1 : 1; - - if(sign_a < sign_b) return -1; - if(sign_a > sign_b) return 1; - - /* The shortest integer wins, unless comparing negatives */ - if(a->size < b->size) { - return -1 * sign_a; - } else if(a->size > b->size) { - return 1 * sign_b; - } - - return sign_a * memcmp(a->buf, b->buf, a->size); - } else if(a->size) { - int sign = (a->buf[0] & 0x80) ? -1 : 1; - return (1) * sign; - } else if(b->size) { - int sign = (a->buf[0] & 0x80) ? -1 : 1; - return (-1) * sign; - } else { - return 0; - } - } else if(!a && !b) { - return 0; - } else if(!a) { - return -1; - } else { - return 1; - } - -} - -asn_random_fill_result_t -INTEGER_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - INTEGER_t *st = *sptr; - const asn_INTEGER_enum_map_t *emap; - size_t emap_len; - intmax_t value; - int find_inside_map; - - if(max_length == 0) return result_skipped; - - if(st == NULL) { - st = (INTEGER_t *)CALLOC(1, sizeof(*st)); - if(st == NULL) { - return result_failed; - } - } - - if(specs) { - emap = specs->value2enum; - emap_len = specs->map_count; - if(specs->strict_enumeration) { - find_inside_map = emap_len > 0; - } else { - find_inside_map = emap_len ? asn_random_between(0, 1) : 0; - } - } else { - emap = 0; - emap_len = 0; - find_inside_map = 0; - } - - if(find_inside_map) { - assert(emap_len > 0); - value = emap[asn_random_between(0, emap_len - 1)].nat_value; - } else { - const asn_per_constraints_t *ct; - - static const long variants[] = { - -65536, -65535, -65534, -32769, -32768, -32767, -16385, -16384, - -16383, -257, -256, -255, -254, -129, -128, -127, - -126, -1, 0, 1, 126, 127, 128, 129, - 254, 255, 256, 257, 16383, 16384, 16385, 32767, - 32768, 32769, 65534, 65535, 65536, 65537}; - if(specs && specs->field_unsigned) { - assert(variants[18] == 0); - value = variants[asn_random_between( - 18, sizeof(variants) / sizeof(variants[0]) - 1)]; - } else { - value = variants[asn_random_between( - 0, sizeof(variants) / sizeof(variants[0]) - 1)]; - } - - if(!constraints) constraints = &td->encoding_constraints; - ct = constraints ? constraints->per_constraints : 0; - if(ct && (ct->value.flags & APC_CONSTRAINED)) { - if(value < ct->value.lower_bound || value > ct->value.upper_bound) { - value = asn_random_between(ct->value.lower_bound, - ct->value.upper_bound); - } - } - } - - if(asn_imax2INTEGER(st, value)) { - if(st == *sptr) { - ASN_STRUCT_RESET(*td, st); - } else { - ASN_STRUCT_FREE(*td, st); - } - return result_failed; - } else { - *sptr = st; - result_ok.length = st->size; - return result_ok; - } -} diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/INTEGER.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/INTEGER.h deleted file mode 100644 index f776c07..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/INTEGER.h +++ /dev/null @@ -1,108 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _INTEGER_H_ -#define _INTEGER_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef ASN__PRIMITIVE_TYPE_t INTEGER_t; - -extern asn_TYPE_descriptor_t asn_DEF_INTEGER; -extern asn_TYPE_operation_t asn_OP_INTEGER; - -/* Map with to integer value association */ -typedef struct asn_INTEGER_enum_map_s { - long nat_value; /* associated native integer value */ - size_t enum_len; /* strlen("tag") */ - const char *enum_name; /* "tag" */ -} asn_INTEGER_enum_map_t; - -/* This type describes an enumeration for INTEGER and ENUMERATED types */ -typedef struct asn_INTEGER_specifics_s { - const asn_INTEGER_enum_map_t *value2enum; /* N -> "tag"; sorted by N */ - const unsigned int *enum2value; /* "tag" => N; sorted by tag */ - int map_count; /* Elements in either map */ - int extension; /* This map is extensible */ - int strict_enumeration; /* Enumeration set is fixed */ - int field_width; /* Size of native integer */ - int field_unsigned; /* Signed=0, unsigned=1 */ -} asn_INTEGER_specifics_t; - -#define INTEGER_free ASN__PRIMITIVE_TYPE_free -#define INTEGER_decode_ber ber_decode_primitive -#define INTEGER_constraint asn_generic_no_constraint -asn_struct_print_f INTEGER_print; -asn_struct_compare_f INTEGER_compare; -der_type_encoder_f INTEGER_encode_der; -xer_type_decoder_f INTEGER_decode_xer; -xer_type_encoder_f INTEGER_encode_xer; -oer_type_decoder_f INTEGER_decode_oer; -oer_type_encoder_f INTEGER_encode_oer; -per_type_decoder_f INTEGER_decode_uper; -per_type_encoder_f INTEGER_encode_uper; -per_type_decoder_f INTEGER_decode_aper; -per_type_encoder_f INTEGER_encode_aper; -asn_random_fill_f INTEGER_random_fill; - -/*********************************** - * Some handy conversion routines. * - ***********************************/ - -/* - * Natiwe size-independent conversion of native integers to/from INTEGER. - * (l_size) is in bytes. - * Returns 0 if it was possible to convert, -1 otherwise. - * -1/EINVAL: Mandatory argument missing - * -1/ERANGE: Value encoded is out of range for long representation - * -1/ENOMEM: Memory allocation failed (in asn_*2INTEGER()). - */ -int asn_INTEGER2imax(const INTEGER_t *i, intmax_t *l); -int asn_INTEGER2umax(const INTEGER_t *i, uintmax_t *l); -int asn_imax2INTEGER(INTEGER_t *i, intmax_t l); -int asn_umax2INTEGER(INTEGER_t *i, uintmax_t l); - -/* - * Size-specific conversion helpers. - */ -int asn_INTEGER2long(const INTEGER_t *i, long *l); -int asn_INTEGER2ulong(const INTEGER_t *i, unsigned long *l); -int asn_long2INTEGER(INTEGER_t *i, long l); -int asn_ulong2INTEGER(INTEGER_t *i, unsigned long l); -int asn_int642INTEGER(INTEGER_t *i, int64_t l); -int asn_uint642INTEGER(INTEGER_t *i, uint64_t l); - -/* A version of strtol/strtoimax(3) with nicer error reporting. */ -enum asn_strtox_result_e { - ASN_STRTOX_ERROR_RANGE = -3, /* Input outside of supported numeric range */ - ASN_STRTOX_ERROR_INVAL = -2, /* Invalid data encountered (e.g., "+-") */ - ASN_STRTOX_EXPECT_MORE = -1, /* More data expected (e.g. "+") */ - ASN_STRTOX_OK = 0, /* Conversion succeded, number ends at (*end) */ - ASN_STRTOX_EXTRA_DATA = 1 /* Conversion succeded, but the string has extra stuff */ -}; -enum asn_strtox_result_e asn_strtol_lim(const char *str, const char **end, - long *l); -enum asn_strtox_result_e asn_strtoul_lim(const char *str, const char **end, - unsigned long *l); -enum asn_strtox_result_e asn_strtoimax_lim(const char *str, const char **end, - intmax_t *l); -enum asn_strtox_result_e asn_strtoumax_lim(const char *str, const char **end, - uintmax_t *l); - -/* - * Convert the integer value into the corresponding enumeration map entry. - */ -const asn_INTEGER_enum_map_t *INTEGER_map_value2enum( - const asn_INTEGER_specifics_t *specs, long value); - -#ifdef __cplusplus -} -#endif - -#endif /* _INTEGER_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/INTEGER_oer.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/INTEGER_oer.c deleted file mode 100644 index 110689b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/INTEGER_oer.c +++ /dev/null @@ -1,179 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -asn_dec_rval_t -INTEGER_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **sptr, - const void *ptr, size_t size) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval = {RC_OK, 0}; - INTEGER_t *st = (INTEGER_t *)*sptr; - struct asn_oer_constraint_number_s ct = {0, 0}; - size_t req_bytes; - - (void)opt_codec_ctx; - (void)specs; - - if(!st) { - st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st))); - if(!st) ASN__DECODE_FAILED; - } - - FREEMEM(st->buf); - st->buf = 0; - st->size = 0; - - if(!constraints) constraints = td->encoding_constraints.oer_constraints; - if(constraints) ct = constraints->value; - - if(ct.width) { - req_bytes = ct.width; - } else { - /* No lower bound and no upper bound, effectively */ - - ssize_t consumed = oer_fetch_length(ptr, size, &req_bytes); - if(consumed == 0) { - ASN__DECODE_STARVED; - } else if(consumed == -1) { - ASN__DECODE_FAILED; - } - rval.consumed += consumed; - ptr = (const char *)ptr + consumed; - size -= consumed; - } - - if(req_bytes > size) { - ASN__DECODE_STARVED; - } - - if(ct.positive) { - /* X.969 08/2015 10.2(a) */ - unsigned msb; /* Most significant bit */ - size_t useful_size; - - /* Check most significant bit */ - msb = *(const uint8_t *)ptr >> 7; /* yields 0 or 1 */ - useful_size = msb + req_bytes; - st->buf = (uint8_t *)MALLOC(useful_size + 1); - if(!st->buf) { - ASN__DECODE_FAILED; - } - - /* - * Record a large unsigned in a way not to confuse it - * with signed value. - */ - st->buf[0] = '\0'; - memcpy(st->buf + msb, ptr, req_bytes); - st->buf[useful_size] = '\0'; /* Just in case, 0-terminate */ - st->size = useful_size; - - rval.consumed += req_bytes; - return rval; - } else { - /* X.969 08/2015 10.2(b) */ - st->buf = (uint8_t *)MALLOC(req_bytes + 1); - if(!st->buf) { - ASN__DECODE_FAILED; - } - - memcpy(st->buf, ptr, req_bytes); - st->buf[req_bytes] = '\0'; /* Just in case, 0-terminate */ - st->size = req_bytes; - - rval.consumed += req_bytes; - return rval; - } -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -INTEGER_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - const INTEGER_t *st = sptr; - asn_enc_rval_t er = {0,0,0}; - struct asn_oer_constraint_number_s ct = {0, 0}; - const uint8_t *buf; - const uint8_t *end; - size_t useful_bytes; - size_t req_bytes = 0; - int sign = 0; - - if(!st || st->size == 0) ASN__ENCODE_FAILED; - - if(!constraints) constraints = td->encoding_constraints.oer_constraints; - if(constraints) ct = constraints->value; - - er.encoded = 0; - - buf = st->buf; - end = buf + st->size; - - sign = (buf && buf < end) ? buf[0] & 0x80 : 0; - - /* Ignore 9 leading zeroes or ones */ - if(ct.positive) { - if(sign) { - /* The value given is a signed value. Can't proceed. */ - ASN__ENCODE_FAILED; - } - /* Remove leading zeros. */ - for(; buf + 1 < end; buf++) { - if(buf[0] != 0x0) break; - } - } else { - for(; buf + 1 < end; buf++) { - if(buf[0] == 0x0 && (buf[1] & 0x80) == 0) { - continue; - } else if(buf[0] == 0xff && (buf[1] & 0x80) != 0) { - continue; - } - break; - } - } - - useful_bytes = end - buf; - if(ct.width) { - req_bytes = ct.width; - } else { - ssize_t r = oer_serialize_length(useful_bytes, cb, app_key); - if(r < 0) { - ASN__ENCODE_FAILED; - } - er.encoded += r; - req_bytes = useful_bytes; - } - - if(req_bytes < useful_bytes) { - ASN__ENCODE_FAILED; - } - - er.encoded += req_bytes; - - for(; req_bytes > useful_bytes; req_bytes--) { - if(cb(sign?"\xff":"\0", 1, app_key) < 0) { - ASN__ENCODE_FAILED; - } - } - - if(cb(buf, useful_bytes, app_key) < 0) { - ASN__ENCODE_FAILED; - } - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/InitiatingMessage.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/InitiatingMessage.c deleted file mode 100644 index de67caf..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/InitiatingMessage.c +++ /dev/null @@ -1,389 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "InitiatingMessage.h" - -static const long asn_VAL_1_id_RICsubscription = 8; -static const long asn_VAL_1_reject = 0; -static const long asn_VAL_2_id_RICsubscriptionDelete = 9; -static const long asn_VAL_2_reject = 0; -static const long asn_VAL_3_id_RICserviceUpdate = 7; -static const long asn_VAL_3_reject = 0; -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_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_ErrorIndication = 2; -static const long asn_VAL_9_ignore = 1; -static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_RICsubscription }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_RICsubscriptionDelete }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_RICserviceUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICcontrolRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_RICcontrol }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_E2setupRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2setupResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2setupFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_E2setup }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ResetRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_Reset }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICindication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_RICindication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceQuery }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_RICserviceQuery }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_ErrorIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore } -}; -static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { - { 9, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } -}; -static int -memb_procedureCode_constraint_1(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; - } -} - -static asn_type_selector_result_t -select_InitiatingMessage_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_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 4; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct InitiatingMessage, procedureCode)); - - 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_1(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_InitiatingMessage_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_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 0; /* &InitiatingMessage */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct InitiatingMessage, procedureCode)); - - 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_1(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_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -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_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_TYPE_member_t asn_MBR_value_4[] = { - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICsubscriptionRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICsubscriptionDeleteRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionDeleteRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICserviceUpdate), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdate, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICserviceUpdate" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICcontrolRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.E2setupRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2setupRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.ResetRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResetRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ResetRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICindication), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICindication, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICindication" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICserviceQuery), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceQuery, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICserviceQuery" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.ErrorIndication), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ErrorIndication, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ErrorIndication" - }, -}; -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 } /* ErrorIndication */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { - sizeof(struct InitiatingMessage__value), - offsetof(struct InitiatingMessage__value, _asn_ctx), - offsetof(struct InitiatingMessage__value, present), - sizeof(((struct InitiatingMessage__value *)0)->present), - asn_MAP_value_tag2el_4, - 9, /* 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, - 9, /* Elements count */ - &asn_SPC_value_specs_4 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_InitiatingMessage_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage, procedureCode), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProcedureCode, - 0, - { 0, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, - 0, 0, /* No default value */ - "procedureCode" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_InitiatingMessage_criticality_type, - { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_4, - select_InitiatingMessage_value_type, - { 0, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_InitiatingMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_InitiatingMessage_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ - { (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_InitiatingMessage_specs_1 = { - sizeof(struct InitiatingMessage), - offsetof(struct InitiatingMessage, _asn_ctx), - asn_MAP_InitiatingMessage_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_InitiatingMessage = { - "InitiatingMessage", - "InitiatingMessage", - &asn_OP_SEQUENCE, - asn_DEF_InitiatingMessage_tags_1, - sizeof(asn_DEF_InitiatingMessage_tags_1) - /sizeof(asn_DEF_InitiatingMessage_tags_1[0]), /* 1 */ - asn_DEF_InitiatingMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_InitiatingMessage_tags_1) - /sizeof(asn_DEF_InitiatingMessage_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_InitiatingMessage_1, - 3, /* Elements count */ - &asn_SPC_InitiatingMessage_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/InitiatingMessage.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/InitiatingMessage.h deleted file mode 100644 index a8a01f6..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/InitiatingMessage.h +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _InitiatingMessage_H_ -#define _InitiatingMessage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProcedureCode.h" -#include "Criticality.h" -#include "ANY.h" -#include "asn_ioc.h" -#include "RICsubscriptionRequest.h" -#include "RICsubscriptionResponse.h" -#include "RICsubscriptionFailure.h" -#include "RICsubscriptionDeleteRequest.h" -#include "RICsubscriptionDeleteResponse.h" -#include "RICsubscriptionDeleteFailure.h" -#include "RICserviceUpdate.h" -#include "RICserviceUpdateAcknowledge.h" -#include "RICserviceUpdateFailure.h" -#include "RICcontrolRequest.h" -#include "RICcontrolAcknowledge.h" -#include "RICcontrolFailure.h" -#include "E2setupRequest.h" -#include "E2setupResponse.h" -#include "E2setupFailure.h" -#include "ResetRequest.h" -#include "ResetResponse.h" -#include "RICindication.h" -#include "RICserviceQuery.h" -#include "ErrorIndication.h" -#include "OPEN_TYPE.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum InitiatingMessage__value_PR { - InitiatingMessage__value_PR_NOTHING, /* No components present */ - InitiatingMessage__value_PR_RICsubscriptionRequest, - InitiatingMessage__value_PR_RICsubscriptionDeleteRequest, - InitiatingMessage__value_PR_RICserviceUpdate, - InitiatingMessage__value_PR_RICcontrolRequest, - InitiatingMessage__value_PR_E2setupRequest, - InitiatingMessage__value_PR_ResetRequest, - InitiatingMessage__value_PR_RICindication, - InitiatingMessage__value_PR_RICserviceQuery, - InitiatingMessage__value_PR_ErrorIndication -} InitiatingMessage__value_PR; - -/* InitiatingMessage */ -typedef struct InitiatingMessage { - ProcedureCode_t procedureCode; - Criticality_t criticality; - struct InitiatingMessage__value { - InitiatingMessage__value_PR present; - union InitiatingMessage__value_u { - RICsubscriptionRequest_t RICsubscriptionRequest; - RICsubscriptionDeleteRequest_t RICsubscriptionDeleteRequest; - RICserviceUpdate_t RICserviceUpdate; - RICcontrolRequest_t RICcontrolRequest; - E2setupRequest_t E2setupRequest; - ResetRequest_t ResetRequest; - RICindication_t RICindication; - RICserviceQuery_t RICserviceQuery; - ErrorIndication_t ErrorIndication; - } 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; -} InitiatingMessage_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_InitiatingMessage; -extern asn_SEQUENCE_specifics_t asn_SPC_InitiatingMessage_specs_1; -extern asn_TYPE_member_t asn_MBR_InitiatingMessage_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _InitiatingMessage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Makefile.am.asn1convert b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Makefile.am.asn1convert deleted file mode 100644 index c1bec19..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Makefile.am.asn1convert +++ /dev/null @@ -1,14 +0,0 @@ -include Makefile.am.libasncodec - -bin_PROGRAMS += asn1convert -asn1convert_CFLAGS = $(ASN_MODULE_CFLAGS) -DASN_PDU_COLLECTION -asn1convert_CPPFLAGS = -I$(top_srcdir)/ -asn1convert_LDADD = libasncodec.la -asn1convert_SOURCES = \ - converter-example.c\ - pdu_collection.c -regen: regenerate-from-asn1-source - -regenerate-from-asn1-source: - asn1c -fcompound-names /home/rshacham/e2sm-kpm-v01.02.asn - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Makefile.am.libasncodec b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Makefile.am.libasncodec deleted file mode 100644 index 8abd4f1..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Makefile.am.libasncodec +++ /dev/null @@ -1,240 +0,0 @@ -ASN_MODULE_SRCS= \ - GlobalKPMnode-ID.c \ - GlobalKPMnode-gNB-ID.c \ - GlobalgNB-ID.c \ - GNB-CU-UP-ID.c \ - GNB-DU-ID.c \ - GNB-ID-Choice.c \ - GlobalKPMnode-en-gNB-ID.c \ - GlobalenGNB-ID.c \ - ENGNB-ID.c \ - GlobalKPMnode-ng-eNB-ID.c \ - GlobalngeNB-ID.c \ - ENB-ID-Choice.c \ - GlobalKPMnode-eNB-ID.c \ - GlobalENB-ID.c \ - ENB-ID.c \ - NRCGI.c \ - PLMN-Identity.c \ - NRCellIdentity.c \ - SNSSAI.c \ - C-RNTI.c \ - RIC-Style-Type.c \ - RIC-Style-Name.c \ - RIC-Format-Type.c \ - E2SM-KPM-EventTriggerDefinition.c \ - E2SM-KPM-EventTriggerDefinition-Format1.c \ - E2SM-KPM-ActionDefinition.c \ - E2SM-KPM-IndicationHeader.c \ - E2SM-KPM-IndicationHeader-Format1.c \ - E2SM-KPM-IndicationMessage.c \ - E2SM-KPM-IndicationMessage-Format1.c \ - PM-Containers-List.c \ - E2SM-KPM-RANfunction-Description.c \ - NI-Type.c \ - RAN-Container.c \ - Timestamp.c \ - Trigger-ConditionIE-Item.c \ - RT-Period-IE.c \ - RANcallProcess-ID-string.c \ - RANfunction-Name.c \ - RIC-EventTriggerStyle-List.c \ - RIC-ReportStyle-List.c \ - PF-Container.c \ - GNB-Name.c \ - GNB-CU-CP-Name.c \ - GNB-DU-Name.c \ - GNB-CU-UP-Name.c \ - UE-Report-Type.c \ - ODU-PF-Container.c \ - CellResourceReportListItem.c \ - ServedPlmnPerCellListItem.c \ - FGC-DU-PM-Container.c \ - SlicePerPlmnPerCellListItem.c \ - FQIPERSlicesPerPlmnPerCellListItem.c \ - EPC-DU-PM-Container.c \ - PerQCIReportListItem.c \ - DU-Usage-Report-Per-UE.c \ - DU-Usage-Report-CellResourceReportItem.c \ - DU-Usage-Report-UeResourceReportItem.c \ - OCUCP-PF-Container.c \ - CU-CP-Usage-Report-Per-UE.c \ - CU-CP-Usage-Report-CellResourceReportItem.c \ - CU-CP-Usage-Report-UeResourceReportItem.c \ - OCUUP-PF-Container.c \ - PF-ContainerListItem.c \ - CUUPMeasurement-Container.c \ - PlmnID-List.c \ - FGC-CUUP-PM-Format.c \ - SliceToReportListItem.c \ - FQIPERSlicesPerPlmnListItem.c \ - EPC-CUUP-PM-Format.c \ - PerQCIReportListItemFormat.c \ - CU-UP-Usage-Report-Per-UE.c \ - CU-UP-Usage-Report-CellResourceReportItem.c \ - CU-UP-Usage-Report-UeResourceReportItem.c - -ASN_MODULE_HDRS= \ - GlobalKPMnode-ID.h \ - GlobalKPMnode-gNB-ID.h \ - GlobalgNB-ID.h \ - GNB-CU-UP-ID.h \ - GNB-DU-ID.h \ - GNB-ID-Choice.h \ - GlobalKPMnode-en-gNB-ID.h \ - GlobalenGNB-ID.h \ - ENGNB-ID.h \ - GlobalKPMnode-ng-eNB-ID.h \ - GlobalngeNB-ID.h \ - ENB-ID-Choice.h \ - GlobalKPMnode-eNB-ID.h \ - GlobalENB-ID.h \ - ENB-ID.h \ - NRCGI.h \ - PLMN-Identity.h \ - NRCellIdentity.h \ - SNSSAI.h \ - C-RNTI.h \ - RIC-Style-Type.h \ - RIC-Style-Name.h \ - RIC-Format-Type.h \ - E2SM-KPM-EventTriggerDefinition.h \ - E2SM-KPM-EventTriggerDefinition-Format1.h \ - E2SM-KPM-ActionDefinition.h \ - E2SM-KPM-IndicationHeader.h \ - E2SM-KPM-IndicationHeader-Format1.h \ - E2SM-KPM-IndicationMessage.h \ - E2SM-KPM-IndicationMessage-Format1.h \ - PM-Containers-List.h \ - E2SM-KPM-RANfunction-Description.h \ - NI-Type.h \ - RAN-Container.h \ - Timestamp.h \ - Trigger-ConditionIE-Item.h \ - RT-Period-IE.h \ - RANcallProcess-ID-string.h \ - RANfunction-Name.h \ - RIC-EventTriggerStyle-List.h \ - RIC-ReportStyle-List.h \ - PF-Container.h \ - GNB-Name.h \ - GNB-CU-CP-Name.h \ - GNB-DU-Name.h \ - GNB-CU-UP-Name.h \ - UE-Report-Type.h \ - ODU-PF-Container.h \ - CellResourceReportListItem.h \ - ServedPlmnPerCellListItem.h \ - FGC-DU-PM-Container.h \ - SlicePerPlmnPerCellListItem.h \ - FQIPERSlicesPerPlmnPerCellListItem.h \ - EPC-DU-PM-Container.h \ - PerQCIReportListItem.h \ - DU-Usage-Report-Per-UE.h \ - DU-Usage-Report-CellResourceReportItem.h \ - DU-Usage-Report-UeResourceReportItem.h \ - OCUCP-PF-Container.h \ - CU-CP-Usage-Report-Per-UE.h \ - CU-CP-Usage-Report-CellResourceReportItem.h \ - CU-CP-Usage-Report-UeResourceReportItem.h \ - OCUUP-PF-Container.h \ - PF-ContainerListItem.h \ - CUUPMeasurement-Container.h \ - PlmnID-List.h \ - FGC-CUUP-PM-Format.h \ - SliceToReportListItem.h \ - FQIPERSlicesPerPlmnListItem.h \ - EPC-CUUP-PM-Format.h \ - PerQCIReportListItemFormat.h \ - CU-UP-Usage-Report-Per-UE.h \ - CU-UP-Usage-Report-CellResourceReportItem.h \ - CU-UP-Usage-Report-UeResourceReportItem.h - -ASN_MODULE_HDRS+=OPEN_TYPE.h -ASN_MODULE_SRCS+=OPEN_TYPE.c -ASN_MODULE_HDRS+=constr_CHOICE.h -ASN_MODULE_HDRS+=INTEGER.h -ASN_MODULE_SRCS+=INTEGER.c -ASN_MODULE_HDRS+=NativeEnumerated.h -ASN_MODULE_SRCS+=NativeEnumerated.c -ASN_MODULE_HDRS+=NativeInteger.h -ASN_MODULE_SRCS+=NativeInteger.c -ASN_MODULE_HDRS+=PrintableString.h -ASN_MODULE_SRCS+=PrintableString.c -ASN_MODULE_HDRS+=OCTET_STRING.h -ASN_MODULE_HDRS+=asn_SEQUENCE_OF.h -ASN_MODULE_SRCS+=asn_SEQUENCE_OF.c -ASN_MODULE_HDRS+=asn_SET_OF.h -ASN_MODULE_SRCS+=asn_SET_OF.c -ASN_MODULE_SRCS+=constr_CHOICE.c -ASN_MODULE_HDRS+=constr_SEQUENCE.h -ASN_MODULE_SRCS+=constr_SEQUENCE.c -ASN_MODULE_HDRS+=constr_SEQUENCE_OF.h -ASN_MODULE_SRCS+=constr_SEQUENCE_OF.c -ASN_MODULE_HDRS+=constr_SET_OF.h -ASN_MODULE_SRCS+=constr_SET_OF.c -ASN_MODULE_HDRS+=asn_application.h -ASN_MODULE_SRCS+=asn_application.c -ASN_MODULE_HDRS+=asn_ioc.h -ASN_MODULE_HDRS+=asn_system.h -ASN_MODULE_HDRS+=asn_codecs.h -ASN_MODULE_HDRS+=asn_internal.h -ASN_MODULE_SRCS+=asn_internal.c -ASN_MODULE_HDRS+=asn_random_fill.h -ASN_MODULE_SRCS+=asn_random_fill.c -ASN_MODULE_HDRS+=asn_bit_data.h -ASN_MODULE_SRCS+=asn_bit_data.c -ASN_MODULE_SRCS+=OCTET_STRING.c -ASN_MODULE_HDRS+=BIT_STRING.h -ASN_MODULE_SRCS+=BIT_STRING.c -ASN_MODULE_SRCS+=asn_codecs_prim.c -ASN_MODULE_HDRS+=asn_codecs_prim.h -ASN_MODULE_HDRS+=ber_tlv_length.h -ASN_MODULE_SRCS+=ber_tlv_length.c -ASN_MODULE_HDRS+=ber_tlv_tag.h -ASN_MODULE_SRCS+=ber_tlv_tag.c -ASN_MODULE_HDRS+=ber_decoder.h -ASN_MODULE_SRCS+=ber_decoder.c -ASN_MODULE_HDRS+=der_encoder.h -ASN_MODULE_SRCS+=der_encoder.c -ASN_MODULE_HDRS+=constr_TYPE.h -ASN_MODULE_SRCS+=constr_TYPE.c -ASN_MODULE_HDRS+=constraints.h -ASN_MODULE_SRCS+=constraints.c -ASN_MODULE_HDRS+=xer_support.h -ASN_MODULE_SRCS+=xer_support.c -ASN_MODULE_HDRS+=xer_decoder.h -ASN_MODULE_SRCS+=xer_decoder.c -ASN_MODULE_HDRS+=xer_encoder.h -ASN_MODULE_SRCS+=xer_encoder.c -ASN_MODULE_HDRS+=per_support.h -ASN_MODULE_SRCS+=per_support.c -ASN_MODULE_HDRS+=per_decoder.h -ASN_MODULE_SRCS+=per_decoder.c -ASN_MODULE_HDRS+=per_encoder.h -ASN_MODULE_SRCS+=per_encoder.c -ASN_MODULE_HDRS+=per_opentype.h -ASN_MODULE_SRCS+=per_opentype.c -ASN_MODULE_HDRS+=oer_decoder.h -ASN_MODULE_HDRS+=oer_encoder.h -ASN_MODULE_HDRS+=oer_support.h -ASN_MODULE_SRCS+=oer_decoder.c -ASN_MODULE_SRCS+=oer_encoder.c -ASN_MODULE_SRCS+=oer_support.c -ASN_MODULE_SRCS+=OPEN_TYPE_oer.c -ASN_MODULE_SRCS+=INTEGER_oer.c -ASN_MODULE_SRCS+=BIT_STRING_oer.c -ASN_MODULE_SRCS+=OCTET_STRING_oer.c -ASN_MODULE_SRCS+=NativeInteger_oer.c -ASN_MODULE_SRCS+=NativeEnumerated_oer.c -ASN_MODULE_SRCS+=constr_CHOICE_oer.c -ASN_MODULE_SRCS+=constr_SEQUENCE_oer.c -ASN_MODULE_SRCS+=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)/ -libasncodec_la_CFLAGS=$(ASN_MODULE_CFLAGS) -libasncodec_la_LDFLAGS=-lm diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NI-Type.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NI-Type.c deleted file mode 100644 index 1162fd8..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NI-Type.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "NI-Type.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_NI_Type_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_NI_Type_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_NI_Type_value2enum_1[] = { - { 0, 4, "x2-u" }, - { 1, 4, "xn-u" }, - { 2, 4, "f1-u" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_NI_Type_enum2value_1[] = { - 2, /* f1-u(2) */ - 0, /* x2-u(0) */ - 1 /* xn-u(1) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_NI_Type_specs_1 = { - asn_MAP_NI_Type_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_NI_Type_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_NI_Type_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_NI_Type = { - "NI-Type", - "NI-Type", - &asn_OP_NativeEnumerated, - asn_DEF_NI_Type_tags_1, - sizeof(asn_DEF_NI_Type_tags_1) - /sizeof(asn_DEF_NI_Type_tags_1[0]), /* 1 */ - asn_DEF_NI_Type_tags_1, /* Same as above */ - sizeof(asn_DEF_NI_Type_tags_1) - /sizeof(asn_DEF_NI_Type_tags_1[0]), /* 1 */ - { &asn_OER_type_NI_Type_constr_1, &asn_PER_type_NI_Type_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_NI_Type_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NI-Type.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NI-Type.h deleted file mode 100644 index c696a44..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NI-Type.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _NI_Type_H_ -#define _NI_Type_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum NI_Type { - NI_Type_x2_u = 0, - NI_Type_xn_u = 1, - NI_Type_f1_u = 2 - /* - * Enumeration is extensible - */ -} e_NI_Type; - -/* NI-Type */ -typedef long NI_Type_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_NI_Type_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_NI_Type; -extern const asn_INTEGER_specifics_t asn_SPC_NI_Type_specs_1; -asn_struct_free_f NI_Type_free; -asn_struct_print_f NI_Type_print; -asn_constr_check_f NI_Type_constraint; -ber_type_decoder_f NI_Type_decode_ber; -der_type_encoder_f NI_Type_encode_der; -xer_type_decoder_f NI_Type_decode_xer; -xer_type_encoder_f NI_Type_encode_xer; -oer_type_decoder_f NI_Type_decode_oer; -oer_type_encoder_f NI_Type_encode_oer; -per_type_decoder_f NI_Type_decode_uper; -per_type_encoder_f NI_Type_encode_uper; -per_type_decoder_f NI_Type_decode_aper; -per_type_encoder_f NI_Type_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _NI_Type_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NRCGI.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NRCGI.c deleted file mode 100644 index 94d8d4b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NRCGI.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "NRCGI.h" - -asn_TYPE_member_t asn_MBR_NRCGI_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct NRCGI, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct NRCGI, nRCellIdentity), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCellIdentity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRCellIdentity" - }, -}; -static const ber_tlv_tag_t asn_DEF_NRCGI_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_NRCGI_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nRCellIdentity */ -}; -asn_SEQUENCE_specifics_t asn_SPC_NRCGI_specs_1 = { - sizeof(struct NRCGI), - offsetof(struct NRCGI, _asn_ctx), - asn_MAP_NRCGI_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_NRCGI = { - "NRCGI", - "NRCGI", - &asn_OP_SEQUENCE, - asn_DEF_NRCGI_tags_1, - sizeof(asn_DEF_NRCGI_tags_1) - /sizeof(asn_DEF_NRCGI_tags_1[0]), /* 1 */ - asn_DEF_NRCGI_tags_1, /* Same as above */ - sizeof(asn_DEF_NRCGI_tags_1) - /sizeof(asn_DEF_NRCGI_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_NRCGI_1, - 2, /* Elements count */ - &asn_SPC_NRCGI_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NRCGI.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NRCGI.h deleted file mode 100644 index b4938d0..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NRCGI.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _NRCGI_H_ -#define _NRCGI_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "NRCellIdentity.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* NRCGI */ -typedef struct NRCGI { - PLMN_Identity_t pLMN_Identity; - NRCellIdentity_t nRCellIdentity; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} NRCGI_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_NRCGI; -extern asn_SEQUENCE_specifics_t asn_SPC_NRCGI_specs_1; -extern asn_TYPE_member_t asn_MBR_NRCGI_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _NRCGI_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NRCellIdentity.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NRCellIdentity.c deleted file mode 100644 index 8e0310e..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NRCellIdentity.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "NRCellIdentity.h" - -int -NRCellIdentity_constraint(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 == 36)) { - /* 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 BIT_STRING, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_NRCellIdentity_constr_1 CC_NOTUSED = { - { 0, 0 }, - 36 /* (SIZE(36..36)) */}; -asn_per_constraints_t asn_PER_type_NRCellIdentity_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 36, 36 } /* (SIZE(36..36)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_NRCellIdentity_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_NRCellIdentity = { - "NRCellIdentity", - "NRCellIdentity", - &asn_OP_BIT_STRING, - asn_DEF_NRCellIdentity_tags_1, - sizeof(asn_DEF_NRCellIdentity_tags_1) - /sizeof(asn_DEF_NRCellIdentity_tags_1[0]), /* 1 */ - asn_DEF_NRCellIdentity_tags_1, /* Same as above */ - sizeof(asn_DEF_NRCellIdentity_tags_1) - /sizeof(asn_DEF_NRCellIdentity_tags_1[0]), /* 1 */ - { &asn_OER_type_NRCellIdentity_constr_1, &asn_PER_type_NRCellIdentity_constr_1, NRCellIdentity_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NRCellIdentity.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NRCellIdentity.h deleted file mode 100644 index 701f381..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NRCellIdentity.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _NRCellIdentity_H_ -#define _NRCellIdentity_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* NRCellIdentity */ -typedef BIT_STRING_t NRCellIdentity_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_NRCellIdentity_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_NRCellIdentity; -asn_struct_free_f NRCellIdentity_free; -asn_struct_print_f NRCellIdentity_print; -asn_constr_check_f NRCellIdentity_constraint; -ber_type_decoder_f NRCellIdentity_decode_ber; -der_type_encoder_f NRCellIdentity_encode_der; -xer_type_decoder_f NRCellIdentity_decode_xer; -xer_type_encoder_f NRCellIdentity_encode_xer; -oer_type_decoder_f NRCellIdentity_decode_oer; -oer_type_encoder_f NRCellIdentity_encode_oer; -per_type_decoder_f NRCellIdentity_decode_uper; -per_type_encoder_f NRCellIdentity_encode_uper; -per_type_decoder_f NRCellIdentity_decode_aper; -per_type_encoder_f NRCellIdentity_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _NRCellIdentity_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NativeEnumerated.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NativeEnumerated.c deleted file mode 100644 index 50ffb1d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NativeEnumerated.c +++ /dev/null @@ -1,367 +0,0 @@ -/*- - * Copyright (c) 2004, 2007 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Read the NativeInteger.h for the explanation wrt. differences between - * INTEGER and NativeInteger. - * Basically, both are decoders and encoders of ASN.1 INTEGER type, but this - * implementation deals with the standard (machine-specific) representation - * of them instead of using the platform-independent buffer. - */ -#include -#include - -/* - * NativeEnumerated basic type description. - */ -static const ber_tlv_tag_t asn_DEF_NativeEnumerated_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_operation_t asn_OP_NativeEnumerated = { - NativeInteger_free, - NativeInteger_print, - NativeInteger_compare, - NativeInteger_decode_ber, - NativeInteger_encode_der, - NativeInteger_decode_xer, - NativeEnumerated_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - NativeEnumerated_decode_oer, - NativeEnumerated_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - NativeEnumerated_decode_uper, - NativeEnumerated_encode_uper, - NativeEnumerated_decode_aper, - NativeEnumerated_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - NativeEnumerated_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_NativeEnumerated = { - "ENUMERATED", /* The ASN.1 type is still ENUMERATED */ - "ENUMERATED", - &asn_OP_NativeEnumerated, - asn_DEF_NativeEnumerated_tags, - sizeof(asn_DEF_NativeEnumerated_tags) / sizeof(asn_DEF_NativeEnumerated_tags[0]), - asn_DEF_NativeEnumerated_tags, /* Same as above */ - sizeof(asn_DEF_NativeEnumerated_tags) / sizeof(asn_DEF_NativeEnumerated_tags[0]), - { 0, 0, asn_generic_no_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - -asn_enc_rval_t -NativeEnumerated_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - const long *native = (const long *)sptr; - const asn_INTEGER_enum_map_t *el; - - (void)ilevel; - (void)flags; - - if(!native) ASN__ENCODE_FAILED; - - el = INTEGER_map_value2enum(specs, *native); - if(el) { - er.encoded = - asn__format_to_callback(cb, app_key, "<%s/>", el->enum_name); - if(er.encoded < 0) ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } else { - ASN_DEBUG( - "ASN.1 forbids dealing with " - "unknown value of ENUMERATED type"); - ASN__ENCODE_FAILED; - } -} - -asn_dec_rval_t -NativeEnumerated_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = td->specifics; - asn_dec_rval_t rval = { RC_OK, 0 }; - long *native = (long *)*sptr; - const asn_per_constraint_t *ct = NULL; - long value; - - (void)opt_codec_ctx; - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ASN__DECODE_FAILED; /* Mandatory! */ - if(!specs) ASN__DECODE_FAILED; - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - ASN_DEBUG("Decoding %s as NativeEnumerated", td->name); - - if(ct && ct->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) ASN__DECODE_STARVED; - if(inext) ct = 0; - } - - if(ct && ct->range_bits >= 0) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - if(value >= (specs->extension - ? specs->extension - 1 : specs->map_count)) - ASN__DECODE_FAILED; - } else { - if(!specs->extension) - ASN__DECODE_FAILED; - /* - * X.691, #10.6: normally small non-negative whole number; - */ - value = uper_get_nsnnwn(pd); - if(value < 0) ASN__DECODE_STARVED; - value += specs->extension - 1; - if(value >= specs->map_count) - ASN__DECODE_FAILED; - } - - *native = specs->value2enum[value].nat_value; - ASN_DEBUG("Decoded %s = %ld", td->name, *native); - - return rval; -} - -static int -NativeEnumerated__compar_value2enum(const void *ap, const void *bp) { - const asn_INTEGER_enum_map_t *a = ap; - const asn_INTEGER_enum_map_t *b = bp; - if(a->nat_value == b->nat_value) - return 0; - if(a->nat_value < b->nat_value) - return -1; - return 1; -} - -asn_enc_rval_t -NativeEnumerated_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - long native, value; - const asn_per_constraint_t *ct = NULL; - int inext = 0; - asn_INTEGER_enum_map_t key; - const asn_INTEGER_enum_map_t *kf; - - if(!sptr) ASN__ENCODE_FAILED; - if(!specs) ASN__ENCODE_FAILED; - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ASN__ENCODE_FAILED; /* Mandatory! */ - - ASN_DEBUG("Encoding %s as NativeEnumerated", td->name); - - er.encoded = 0; - - native = *(const long *)sptr; - - key.nat_value = native; - kf = bsearch(&key, specs->value2enum, specs->map_count, - sizeof(key), NativeEnumerated__compar_value2enum); - if(!kf) { - ASN_DEBUG("No element corresponds to %ld", native); - ASN__ENCODE_FAILED; - } - value = kf - specs->value2enum; - - if(ct && ct->range_bits >= 0) { - int cmpWith = specs->extension - ? specs->extension - 1 : specs->map_count; - if(value >= cmpWith) - inext = 1; - } - if(ct && ct->flags & APC_EXTENSIBLE) { - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - if(inext) ct = 0; - } else if(inext) { - ASN__ENCODE_FAILED; - } - - if(ct && ct->range_bits >= 0) { - if(per_put_few_bits(po, value, ct->range_bits)) - ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - if(!specs->extension) - ASN__ENCODE_FAILED; - - /* - * X.691, #10.6: normally small non-negative whole number; - */ - ASN_DEBUG("value = %ld, ext = %d, inext = %d, res = %ld", - value, specs->extension, inext, - value - (inext ? (specs->extension - 1) : 0)); - if(uper_put_nsnnwn(po, value - (inext ? (specs->extension - 1) : 0))) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -NativeEnumerated_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval = { RC_OK, 0 }; - long *native = (long *)*sptr; - const asn_per_constraint_t *ct = NULL; - long value; - - (void)opt_codec_ctx; - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ASN__DECODE_FAILED; /* Mandatory! */ - if(!specs) ASN__DECODE_FAILED; - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - ASN_DEBUG("Decoding %s as NativeEnumerated", td->name); - - if(ct && ct->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) ASN__DECODE_STARVED; - if(inext) ct = 0; - } - - /* Deal with APER padding */ - if(ct && ct->upper_bound >= 255) { - int padding = 0; - padding = (8 - (pd->moved % 8)) % 8; - ASN_DEBUG("For NativeEnumerated %s,offset= %lu Padding bits = %d", td->name, pd->moved, padding); - ASN_DEBUG("For NativeEnumerated %s, upper bound = %lu", td->name, ct->upper_bound); - if(padding > 0) - per_get_few_bits(pd, padding); - } - - if(ct && ct->range_bits >= 0) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - if(value >= (specs->extension - ? specs->extension - 1 : specs->map_count)) - ASN__DECODE_FAILED; - } else { - if(!specs->extension) - ASN__DECODE_FAILED; - /* - * X.691, #10.6: normally small non-negative whole number; - */ - value = uper_get_nsnnwn(pd); - if(value < 0) ASN__DECODE_STARVED; - value += specs->extension - 1; - if(value >= specs->map_count) - ASN__DECODE_FAILED; - } - - *native = specs->value2enum[value].nat_value; - ASN_DEBUG("Decoded %s = %ld", td->name, *native); - - return rval; -} - -asn_enc_rval_t -NativeEnumerated_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - long native, value; - const asn_per_constraint_t *ct = NULL; - int inext = 0; - asn_INTEGER_enum_map_t key; - asn_INTEGER_enum_map_t *kf; - - if(!sptr) ASN__ENCODE_FAILED; - if(!specs) ASN__ENCODE_FAILED; - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ASN__ENCODE_FAILED; /* Mandatory! */ - - ASN_DEBUG("Encoding %s as NativeEnumerated", td->name); - - er.encoded = 0; - - native = *(const long *)sptr; - if(native < 0) ASN__ENCODE_FAILED; - - key.nat_value = native; - kf = bsearch(&key, specs->value2enum, specs->map_count, - sizeof(key), NativeEnumerated__compar_value2enum); - if(!kf) { - ASN_DEBUG("No element corresponds to %ld", native); - ASN__ENCODE_FAILED; - } - value = kf - specs->value2enum; - - if(ct && ct->range_bits >= 0) { - int cmpWith = specs->extension - ? specs->extension - 1 : specs->map_count; - if(value >= cmpWith) - inext = 1; - } - if(ct && ct->flags & APC_EXTENSIBLE) { - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - if(inext) ct = 0; - } else if(inext) { - ASN__ENCODE_FAILED; - } - - if(ct && ct->range_bits >= 0) { - if(per_put_few_bits(po, value, ct->range_bits)) - ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - if(!specs->extension) - ASN__ENCODE_FAILED; - - /* - * X.691, #10.6: normally small non-negative whole number; - */ - ASN_DEBUG("value = %ld, ext = %d, inext = %d, res = %ld", - value, specs->extension, inext, - value - (inext ? (specs->extension - 1) : 0)); - if(uper_put_nsnnwn(po, value - (inext ? (specs->extension - 1) : 0))) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NativeEnumerated.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NativeEnumerated.h deleted file mode 100644 index 459f0e6..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NativeEnumerated.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * This type differs from the standard ENUMERATED in that it is modelled using - * the fixed machine type (long, int, short), so it can hold only values of - * limited length. There is no type (i.e., NativeEnumerated_t, any integer type - * will do). - * This type may be used when integer range is limited by subtype constraints. - */ -#ifndef _NativeEnumerated_H_ -#define _NativeEnumerated_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern asn_TYPE_descriptor_t asn_DEF_NativeEnumerated; -extern asn_TYPE_operation_t asn_OP_NativeEnumerated; - -xer_type_encoder_f NativeEnumerated_encode_xer; -oer_type_decoder_f NativeEnumerated_decode_oer; -oer_type_encoder_f NativeEnumerated_encode_oer; -per_type_decoder_f NativeEnumerated_decode_uper; -per_type_encoder_f NativeEnumerated_encode_uper; -per_type_decoder_f NativeEnumerated_decode_aper; -per_type_encoder_f NativeEnumerated_encode_aper; - -#define NativeEnumerated_free NativeInteger_free -#define NativeEnumerated_print NativeInteger_print -#define NativeEnumerated_compare NativeInteger_compare -#define NativeEnumerated_random_fill NativeInteger_random_fill -#define NativeEnumerated_constraint asn_generic_no_constraint -#define NativeEnumerated_decode_ber NativeInteger_decode_ber -#define NativeEnumerated_encode_der NativeInteger_encode_der -#define NativeEnumerated_decode_xer NativeInteger_decode_xer - -#ifdef __cplusplus -} -#endif - -#endif /* _NativeEnumerated_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NativeEnumerated_oer.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NativeEnumerated_oer.c deleted file mode 100644 index ee3c189..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NativeEnumerated_oer.c +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -static long -asn__nativeenumerated_convert(const uint8_t *b, const uint8_t *end) { - unsigned long value; - - /* Perform the sign initialization */ - /* Actually value = -(*b >> 7); gains nothing, yet unreadable! */ - if((*b >> 7)) { - value = (unsigned long)(-1); - } else { - value = 0; - } - - /* Conversion engine */ - for(; b < end; b++) { - value = (value << 8) | *b; - } - - return value; -} - -asn_dec_rval_t -NativeEnumerated_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - void **nint_ptr, const void *ptr, size_t size) { - asn_dec_rval_t rval = {RC_OK, 0}; - long *native = (long *)*nint_ptr; - const uint8_t *b = ptr; - - (void)opt_codec_ctx; - (void)constraints; - - if(size < 1) { - ASN__DECODE_STARVED; - } - - if((*b & 0x80) == 0) { - /* - * X.696 (08/2015) #11.2 Short form for Enumerated. - */ - if(!native) { - native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - *native = *b; - rval.consumed = 1; - } else { - /* - * X.696 (08/2015) #11.4 Long form for Enumerated. - */ - size_t length = *b & 0x7f; - const uint8_t *bend; - long value; - - if(length < 1 || length > sizeof(*native)) { - ASN__DECODE_FAILED; - } - if((1 + length) > size) { - ASN__DECODE_STARVED; - } - b++; - bend = b + length; - - value = asn__nativeenumerated_convert(b, bend); - if(value < 0) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - if(specs && specs->field_unsigned) { - ASN__DECODE_FAILED; - } - } - - if(!native) { - native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - *native = value; - - rval.consumed = (1 + length); - } - - return rval; -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -NativeEnumerated_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - const void *sptr, asn_app_consume_bytes_f *cb, - void *app_key) { - asn_enc_rval_t er = {0,0,0}; - long native; - - (void)constraints; - - if(!sptr) ASN__ENCODE_FAILED; - - native = *(const long *)sptr; - - if(native >= 0 && native <= 127) { - /* #11.2 Short form */ - uint8_t b = native; - er.encoded = 1; - if(cb(&b, er.encoded, app_key) < 0) { - ASN__ENCODE_FAILED; - } - ASN__ENCODED_OK(er); - } else { - /* #11.2 Long form */ - uint8_t buf[1 + sizeof(native)]; - uint8_t *b = &buf[sizeof(native)]; /* Last addressable */ - long final_pattern = -1 * (native < 0); - - for(;;) { - *b-- = native; - native >>= 8; - if(native == final_pattern) { - if(final_pattern) { - if((b[1] & 0x80)) break; - } else { - if(!(b[1] & 0x80)) break; - } - } - } - *b = 0x80 | (&buf[sizeof(native)] - b); - er.encoded = 1 + (&buf[sizeof(native)] - b); - if(cb(b, er.encoded, app_key) < 0) { - ASN__ENCODE_FAILED; - } - ASN__ENCODED_OK(er); - } -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NativeInteger.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NativeInteger.c deleted file mode 100644 index 316e872..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NativeInteger.c +++ /dev/null @@ -1,550 +0,0 @@ -/*- - * Copyright (c) 2004, 2005, 2006 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Read the NativeInteger.h for the explanation wrt. differences between - * INTEGER and NativeInteger. - * Basically, both are decoders and encoders of ASN.1 INTEGER type, but this - * implementation deals with the standard (machine-specific) representation - * of them instead of using the platform-independent buffer. - */ -#include -#include - -/* - * NativeInteger basic type description. - */ -static const ber_tlv_tag_t asn_DEF_NativeInteger_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_operation_t asn_OP_NativeInteger = { - NativeInteger_free, - NativeInteger_print, - NativeInteger_compare, - NativeInteger_decode_ber, - NativeInteger_encode_der, - NativeInteger_decode_xer, - NativeInteger_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - NativeInteger_decode_oer, /* OER decoder */ - NativeInteger_encode_oer, /* Canonical OER encoder */ -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - NativeInteger_decode_uper, /* Unaligned PER decoder */ - NativeInteger_encode_uper, /* Unaligned PER encoder */ - NativeInteger_decode_aper, /* Aligned PER decoder */ - NativeInteger_encode_aper, /* Aligned PER encoder */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - NativeInteger_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_NativeInteger = { - "INTEGER", /* The ASN.1 type is still INTEGER */ - "INTEGER", - &asn_OP_NativeInteger, - asn_DEF_NativeInteger_tags, - sizeof(asn_DEF_NativeInteger_tags) / sizeof(asn_DEF_NativeInteger_tags[0]), - asn_DEF_NativeInteger_tags, /* Same as above */ - sizeof(asn_DEF_NativeInteger_tags) / sizeof(asn_DEF_NativeInteger_tags[0]), - { 0, 0, asn_generic_no_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - -/* - * Decode INTEGER type. - */ -asn_dec_rval_t -NativeInteger_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **nint_ptr, - const void *buf_ptr, size_t size, int tag_mode) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - long *native = (long *)*nint_ptr; - asn_dec_rval_t rval; - ber_tlv_len_t length; - - /* - * If the structure is not there, allocate it. - */ - if(native == NULL) { - native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); - if(native == NULL) { - rval.code = RC_FAIL; - rval.consumed = 0; - return rval; - } - } - - ASN_DEBUG("Decoding %s as INTEGER (tm=%d)", - td->name, tag_mode); - - /* - * Check tags. - */ - rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size, - tag_mode, 0, &length, 0); - if(rval.code != RC_OK) - return rval; - - ASN_DEBUG("%s length is %d bytes", td->name, (int)length); - - /* - * Make sure we have this length. - */ - buf_ptr = ((const char *)buf_ptr) + rval.consumed; - size -= rval.consumed; - if(length > (ber_tlv_len_t)size) { - rval.code = RC_WMORE; - rval.consumed = 0; - return rval; - } - - /* - * ASN.1 encoded INTEGER: buf_ptr, length - * Fill the native, at the same time checking for overflow. - * If overflow occured, return with RC_FAIL. - */ - { - INTEGER_t tmp; - union { - const void *constbuf; - void *nonconstbuf; - } unconst_buf; - long l; - - unconst_buf.constbuf = buf_ptr; - tmp.buf = (uint8_t *)unconst_buf.nonconstbuf; - tmp.size = length; - - if((specs&&specs->field_unsigned) - ? asn_INTEGER2ulong(&tmp, (unsigned long *)&l) /* sic */ - : asn_INTEGER2long(&tmp, &l)) { - rval.code = RC_FAIL; - rval.consumed = 0; - return rval; - } - - *native = l; - } - - rval.code = RC_OK; - rval.consumed += length; - - ASN_DEBUG("Took %ld/%ld bytes to encode %s (%ld)", - (long)rval.consumed, (long)length, td->name, (long)*native); - - return rval; -} - -/* - * Encode the NativeInteger using the standard INTEGER type DER encoder. - */ -asn_enc_rval_t -NativeInteger_encode_der(const asn_TYPE_descriptor_t *sd, const void *ptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - unsigned long native = *(const unsigned long *)ptr; /* Disable sign ext. */ - asn_enc_rval_t erval = {0,0,0}; - INTEGER_t tmp; - -#ifdef WORDS_BIGENDIAN /* Opportunistic optimization */ - - tmp.buf = (uint8_t *)&native; - tmp.size = sizeof(native); - -#else /* Works even if WORDS_BIGENDIAN is not set where should've been */ - uint8_t buf[sizeof(native)]; - uint8_t *p; - - /* Prepare a fake INTEGER */ - for(p = buf + sizeof(buf) - 1; p >= buf; p--, native >>= 8) - *p = (uint8_t)native; - - tmp.buf = buf; - tmp.size = sizeof(buf); -#endif /* WORDS_BIGENDIAN */ - - /* Encode fake INTEGER */ - erval = INTEGER_encode_der(sd, &tmp, tag_mode, tag, cb, app_key); - if(erval.structure_ptr == &tmp) { - erval.structure_ptr = ptr; - } - return erval; -} - -/* - * Decode the chunk of XML text encoding INTEGER. - */ -asn_dec_rval_t -NativeInteger_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, - size_t size) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval; - INTEGER_t st; - void *st_ptr = (void *)&st; - long *native = (long *)*sptr; - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - memset(&st, 0, sizeof(st)); - rval = INTEGER_decode_xer(opt_codec_ctx, td, &st_ptr, - opt_mname, buf_ptr, size); - if(rval.code == RC_OK) { - long l; - if((specs&&specs->field_unsigned) - ? asn_INTEGER2ulong(&st, (unsigned long *)&l) /* sic */ - : asn_INTEGER2long(&st, &l)) { - rval.code = RC_FAIL; - rval.consumed = 0; - } else { - *native = l; - } - } else { - /* - * Cannot restart from the middle; - * there is no place to save state in the native type. - * Request a continuation from the very beginning. - */ - rval.consumed = 0; - } - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &st); - return rval; -} - - -asn_enc_rval_t -NativeInteger_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - char scratch[32]; /* Enough for 64-bit int */ - asn_enc_rval_t er = {0,0,0}; - const long *native = (const long *)sptr; - - (void)ilevel; - (void)flags; - - if(!native) ASN__ENCODE_FAILED; - - er.encoded = snprintf(scratch, sizeof(scratch), - (specs && specs->field_unsigned) - ? "%lu" : "%ld", *native); - if(er.encoded <= 0 || (size_t)er.encoded >= sizeof(scratch) - || cb(scratch, er.encoded, app_key) < 0) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -NativeInteger_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval; - long *native = (long *)*sptr; - INTEGER_t tmpint; - void *tmpintptr = &tmpint; - - (void)opt_codec_ctx; - ASN_DEBUG("Decoding NativeInteger %s (UPER)", td->name); - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - memset(&tmpint, 0, sizeof tmpint); - rval = INTEGER_decode_uper(opt_codec_ctx, td, constraints, - &tmpintptr, pd); - if(rval.code == RC_OK) { - if((specs&&specs->field_unsigned) - ? asn_INTEGER2ulong(&tmpint, (unsigned long *)native) - : asn_INTEGER2long(&tmpint, native)) - rval.code = RC_FAIL; - else - ASN_DEBUG("NativeInteger %s got value %ld", - td->name, *native); - } - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - - return rval; -} - -asn_enc_rval_t -NativeInteger_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - long native; - INTEGER_t tmpint; - - if(!sptr) ASN__ENCODE_FAILED; - - native = *(const long *)sptr; - - ASN_DEBUG("Encoding NativeInteger %s %ld (UPER)", td->name, native); - - memset(&tmpint, 0, sizeof(tmpint)); - if((specs&&specs->field_unsigned) - ? asn_ulong2INTEGER(&tmpint, native) - : asn_long2INTEGER(&tmpint, native)) - ASN__ENCODE_FAILED; - er = INTEGER_encode_uper(td, constraints, &tmpint, po); - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - return er; -} - -asn_dec_rval_t -NativeInteger_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval; - long *native = (long *)*sptr; - INTEGER_t tmpint; - void *tmpintptr = &tmpint; - - (void)opt_codec_ctx; - ASN_DEBUG("Decoding NativeInteger %s (APER)", td->name); - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - memset(&tmpint, 0, sizeof tmpint); - rval = INTEGER_decode_aper(opt_codec_ctx, td, constraints, - &tmpintptr, pd); - if(rval.code == RC_OK) { - if((specs&&specs->field_unsigned) - ? asn_INTEGER2ulong(&tmpint, (unsigned long *)native) - : asn_INTEGER2long(&tmpint, native)) - rval.code = RC_FAIL; - else - ASN_DEBUG("NativeInteger %s got value %ld", - td->name, *native); - } - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - - return rval; -} - -asn_enc_rval_t -NativeInteger_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - long native; - INTEGER_t tmpint; - - if(!sptr) ASN__ENCODE_FAILED; - - native = *(const long *)sptr; - - ASN_DEBUG("Encoding NativeInteger %s %ld (APER)", td->name, native); - - memset(&tmpint, 0, sizeof(tmpint)); - if((specs&&specs->field_unsigned) - ? asn_ulong2INTEGER(&tmpint, (unsigned long)native) - : asn_long2INTEGER(&tmpint, native)) - ASN__ENCODE_FAILED; - er = INTEGER_encode_aper(td, constraints, &tmpint, po); - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - return er; -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -/* - * INTEGER specific human-readable output. - */ -int -NativeInteger_print(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - const long *native = (const long *)sptr; - char scratch[32]; /* Enough for 64-bit int */ - int ret; - - (void)td; /* Unused argument */ - (void)ilevel; /* Unused argument */ - - if(native) { - long value = *native; - ret = snprintf(scratch, sizeof(scratch), - (specs && specs->field_unsigned) ? "%lu" : "%ld", value); - assert(ret > 0 && (size_t)ret < sizeof(scratch)); - if(cb(scratch, ret, app_key) < 0) return -1; - if(specs && (value >= 0 || !specs->field_unsigned)) { - const asn_INTEGER_enum_map_t *el = - INTEGER_map_value2enum(specs, value); - if(el) { - if(cb(" (", 2, app_key) < 0) return -1; - if(cb(el->enum_name, el->enum_len, app_key) < 0) return -1; - if(cb(")", 1, app_key) < 0) return -1; - } - } - return 0; - } else { - return (cb("", 8, app_key) < 0) ? -1 : 0; - } -} - -void -NativeInteger_free(const asn_TYPE_descriptor_t *td, void *ptr, - enum asn_struct_free_method method) { - if(!td || !ptr) - return; - - ASN_DEBUG("Freeing %s as INTEGER (%d, %p, Native)", - td->name, method, ptr); - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(ptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(ptr, 0, sizeof(long)); - break; - } -} - -int -NativeInteger_compare(const asn_TYPE_descriptor_t *td, const void *aptr, const void *bptr) { - (void)td; - - if(aptr && bptr) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - if(specs && specs->field_unsigned) { - const unsigned long *a = aptr; - const unsigned long *b = bptr; - if(*a < *b) { - return -1; - } else if(*a > *b) { - return 1; - } else { - return 0; - } - } else { - const long *a = aptr; - const long *b = bptr; - if(*a < *b) { - return -1; - } else if(*a > *b) { - return 1; - } else { - return 0; - } - } - } else if(!aptr) { - return -1; - } else { - return 1; - } -} - -asn_random_fill_result_t -NativeInteger_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - long *st = *sptr; - const asn_INTEGER_enum_map_t *emap; - size_t emap_len; - intmax_t value; - int find_inside_map; - - if(max_length == 0) return result_skipped; - - if(st == NULL) { - st = (long *)CALLOC(1, sizeof(*st)); - if(st == NULL) { - return result_failed; - } - } - - if(specs) { - emap = specs->value2enum; - emap_len = specs->map_count; - if(specs->strict_enumeration) { - find_inside_map = emap_len > 0; - } else { - find_inside_map = emap_len ? asn_random_between(0, 1) : 0; - } - } else { - emap = 0; - emap_len = 0; - find_inside_map = 0; - } - - if(find_inside_map) { - assert(emap_len > 0); - value = emap[asn_random_between(0, emap_len - 1)].nat_value; - } else { - const asn_per_constraints_t *ct; - - static const long variants[] = { - -65536, -65535, -65534, -32769, -32768, -32767, -16385, -16384, - -16383, -257, -256, -255, -254, -129, -128, -127, - -126, -1, 0, 1, 126, 127, 128, 129, - 254, 255, 256, 257, 16383, 16384, 16385, 32767, - 32768, 32769, 65534, 65535, 65536, 65537}; - if(specs && specs->field_unsigned) { - assert(variants[18] == 0); - value = variants[asn_random_between( - 18, sizeof(variants) / sizeof(variants[0]) - 1)]; - } else { - value = variants[asn_random_between( - 0, sizeof(variants) / sizeof(variants[0]) - 1)]; - } - - if(!constraints) constraints = &td->encoding_constraints; - ct = constraints ? constraints->per_constraints : 0; - if(ct && (ct->value.flags & APC_CONSTRAINED)) { - if(value < ct->value.lower_bound || value > ct->value.upper_bound) { - value = asn_random_between(ct->value.lower_bound, - ct->value.upper_bound); - } - } - } - - *sptr = st; - *st = value; - return result_ok; -} diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NativeInteger.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NativeInteger.h deleted file mode 100644 index c74406a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NativeInteger.h +++ /dev/null @@ -1,46 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * This type differs from the standard INTEGER in that it is modelled using - * the fixed machine type (long, int, short), so it can hold only values of - * limited length. There is no type (i.e., NativeInteger_t, any integer type - * will do). - * This type may be used when integer range is limited by subtype constraints. - */ -#ifndef _NativeInteger_H_ -#define _NativeInteger_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern asn_TYPE_descriptor_t asn_DEF_NativeInteger; -extern asn_TYPE_operation_t asn_OP_NativeInteger; - -asn_struct_free_f NativeInteger_free; -asn_struct_print_f NativeInteger_print; -asn_struct_compare_f NativeInteger_compare; -ber_type_decoder_f NativeInteger_decode_ber; -der_type_encoder_f NativeInteger_encode_der; -xer_type_decoder_f NativeInteger_decode_xer; -xer_type_encoder_f NativeInteger_encode_xer; -oer_type_decoder_f NativeInteger_decode_oer; -oer_type_encoder_f NativeInteger_encode_oer; -per_type_decoder_f NativeInteger_decode_uper; -per_type_encoder_f NativeInteger_encode_uper; -per_type_decoder_f NativeInteger_decode_aper; -per_type_encoder_f NativeInteger_encode_aper; -asn_random_fill_f NativeInteger_random_fill; - -#define NativeInteger_constraint asn_generic_no_constraint - -#ifdef __cplusplus -} -#endif - -#endif /* _NativeInteger_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NativeInteger_oer.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NativeInteger_oer.c deleted file mode 100644 index 411413a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/NativeInteger_oer.c +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -asn_dec_rval_t -NativeInteger_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - void **nint_ptr, const void *ptr, size_t size) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval = {RC_OK, 0}; - long *native = (long *)*nint_ptr; - INTEGER_t tmpint; - INTEGER_t *tmpintptr = &tmpint; - - memset(&tmpint, 0, sizeof(tmpint)); - - if(!native) { - native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - /* - * OPTIMIZATION: Encode directly rather than passing through INTEGER. - * Saves a memory allocation. - */ - rval = INTEGER_decode_oer(opt_codec_ctx, td, constraints, - (void **)&tmpintptr, ptr, size); - if(rval.code != RC_OK) { - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - return rval; - } - - if(specs && specs->field_unsigned) { - unsigned long ul; - int ok = asn_INTEGER2ulong(&tmpint, &ul) == 0; - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - if(ok) { - *native = ul; - } else { - rval.code = RC_FAIL; - return rval; - } - } else { - long l; - int ok = asn_INTEGER2long(&tmpint, &l) == 0; - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - if(ok) { - *native = l; - } else { - rval.code = RC_FAIL; - return rval; - } - } - - return rval; -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -NativeInteger_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - const void *sptr, asn_app_consume_bytes_f *cb, - void *app_key) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - INTEGER_t tmpint; - long native; - - if(!sptr) ASN__ENCODE_FAILED; - - native = *(const long *)sptr; - memset(&tmpint, 0, sizeof(tmpint)); - - ASN_DEBUG("Encoding %s %ld as NativeInteger", td ? td->name : "", native); - - if((specs && specs->field_unsigned) ? asn_ulong2INTEGER(&tmpint, native) - : asn_long2INTEGER(&tmpint, native)) { - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - ASN__ENCODE_FAILED; - } else { - asn_enc_rval_t er = - INTEGER_encode_oer(td, constraints, &tmpint, cb, app_key); - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - return er; - } -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/OCTET_STRING.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/OCTET_STRING.c deleted file mode 100644 index ae34c96..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/OCTET_STRING.c +++ /dev/null @@ -1,2411 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include /* for .bits_unused member */ -#include - -/* - * OCTET STRING basic type description. - */ -static const ber_tlv_tag_t asn_DEF_OCTET_STRING_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_OCTET_STRING_specifics_t asn_SPC_OCTET_STRING_specs = { - sizeof(OCTET_STRING_t), - offsetof(OCTET_STRING_t, _asn_ctx), - ASN_OSUBV_STR -}; - -asn_TYPE_operation_t asn_OP_OCTET_STRING = { - OCTET_STRING_free, - OCTET_STRING_print, /* OCTET STRING generally means a non-ascii sequence */ - OCTET_STRING_compare, - OCTET_STRING_decode_ber, - OCTET_STRING_encode_der, - OCTET_STRING_decode_xer_hex, - OCTET_STRING_encode_xer, -#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, /* Unaligned PER decoder */ - OCTET_STRING_encode_uper, /* Unaligned PER encoder */ - OCTET_STRING_decode_aper, /* Aligned PER decoder */ - OCTET_STRING_encode_aper, /* Aligned PER encoder */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - OCTET_STRING_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_OCTET_STRING = { - "OCTET STRING", /* Canonical name */ - "OCTET_STRING", /* XML tag name */ - &asn_OP_OCTET_STRING, - asn_DEF_OCTET_STRING_tags, - sizeof(asn_DEF_OCTET_STRING_tags) - / sizeof(asn_DEF_OCTET_STRING_tags[0]), - asn_DEF_OCTET_STRING_tags, /* Same as above */ - sizeof(asn_DEF_OCTET_STRING_tags) - / sizeof(asn_DEF_OCTET_STRING_tags[0]), - { 0, 0, asn_generic_no_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs -}; - -#undef _CH_PHASE -#undef NEXT_PHASE -#undef PREV_PHASE -#define _CH_PHASE(ctx, inc) do { \ - if(ctx->phase == 0) \ - ctx->context = 0; \ - ctx->phase += inc; \ - } while(0) -#define NEXT_PHASE(ctx) _CH_PHASE(ctx, +1) -#define PREV_PHASE(ctx) _CH_PHASE(ctx, -1) - -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = (num_bytes); \ - buf_ptr = ((const char *)buf_ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -#undef RETURN -#define RETURN(_code) do { \ - asn_dec_rval_t tmprval; \ - tmprval.code = _code; \ - tmprval.consumed = consumed_myself; \ - return tmprval; \ - } while(0) - -#undef APPEND -#define APPEND(bufptr, bufsize) do { \ - size_t _bs = (bufsize); /* Append size */ \ - size_t _ns = ctx->context; /* Allocated now */ \ - size_t _es = st->size + _bs; /* Expected size */ \ - /* int is really a typeof(st->size): */ \ - if((int)_es < 0) RETURN(RC_FAIL); \ - if(_ns <= _es) { \ - void *ptr; \ - /* Be nice and round to the memory allocator */ \ - do { _ns = _ns ? _ns << 1 : 16; } \ - while(_ns <= _es); \ - /* int is really a typeof(st->size): */ \ - if((int)_ns < 0) RETURN(RC_FAIL); \ - ptr = REALLOC(st->buf, _ns); \ - if(ptr) { \ - st->buf = (uint8_t *)ptr; \ - ctx->context = _ns; \ - } else { \ - RETURN(RC_FAIL); \ - } \ - ASN_DEBUG("Reallocating into %ld", (long)_ns); \ - } \ - memcpy(st->buf + st->size, bufptr, _bs); \ - /* Convenient nul-termination */ \ - st->buf[_es] = '\0'; \ - st->size = _es; \ - } while(0) - -/* - * The main reason why ASN.1 is still alive is that too much time and effort - * is necessary for learning it more or less adequately, thus creating a gut - * necessity to demonstrate that aquired skill everywhere afterwards. - * No, I am not going to explain what the following stuff is. - */ -struct _stack_el { - ber_tlv_len_t left; /* What's left to read (or -1) */ - ber_tlv_len_t got; /* What was actually processed */ - unsigned cont_level; /* Depth of subcontainment */ - int want_nulls; /* Want null "end of content" octets? */ - int bits_chopped; /* Flag in BIT STRING mode */ - ber_tlv_tag_t tag; /* For debugging purposes */ - struct _stack_el *prev; - struct _stack_el *next; -}; -struct _stack { - struct _stack_el *tail; - struct _stack_el *cur_ptr; -}; - -static struct _stack_el * -OS__add_stack_el(struct _stack *st) { - struct _stack_el *nel; - - /* - * Reuse the old stack frame or allocate a new one. - */ - if(st->cur_ptr && st->cur_ptr->next) { - nel = st->cur_ptr->next; - nel->bits_chopped = 0; - nel->got = 0; - /* Retain the nel->cont_level, it's correct. */ - } else { - nel = (struct _stack_el *)CALLOC(1, sizeof(struct _stack_el)); - if(nel == NULL) - return NULL; - - if(st->tail) { - /* Increase a subcontainment depth */ - nel->cont_level = st->tail->cont_level + 1; - st->tail->next = nel; - } - nel->prev = st->tail; - st->tail = nel; - } - - st->cur_ptr = nel; - - return nel; -} - -static struct _stack * -_new_stack(void) { - return (struct _stack *)CALLOC(1, sizeof(struct _stack)); -} - -/* - * Decode OCTET STRING type. - */ -asn_dec_rval_t -OCTET_STRING_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const void *buf_ptr, size_t size, int tag_mode) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - BIT_STRING_t *st = (BIT_STRING_t *)*sptr; - asn_dec_rval_t rval; - asn_struct_ctx_t *ctx; - ssize_t consumed_myself = 0; - struct _stack *stck; /* Expectations stack structure */ - struct _stack_el *sel = 0; /* Stack element */ - int tlv_constr; - enum asn_OS_Subvariant type_variant = specs->subvariant; - - ASN_DEBUG("Decoding %s as %s (frame %ld)", - td->name, - (type_variant == ASN_OSUBV_STR) ? - "OCTET STRING" : "OS-SpecialCase", - (long)size); - - /* - * Create the string if does not exist. - */ - if(st == NULL) { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(st == NULL) RETURN(RC_FAIL); - } - - /* Restore parsing context */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - switch(ctx->phase) { - case 0: - /* - * Check tags. - */ - rval = ber_check_tags(opt_codec_ctx, td, ctx, - buf_ptr, size, tag_mode, -1, - &ctx->left, &tlv_constr); - if(rval.code != RC_OK) - return rval; - - if(tlv_constr) { - /* - * Complex operation, requires stack of expectations. - */ - ctx->ptr = _new_stack(); - if(!ctx->ptr) { - RETURN(RC_FAIL); - } - } else { - /* - * Jump into stackless primitive decoding. - */ - _CH_PHASE(ctx, 3); - if(type_variant == ASN_OSUBV_ANY && tag_mode != 1) - APPEND(buf_ptr, rval.consumed); - ADVANCE(rval.consumed); - goto phase3; - } - - NEXT_PHASE(ctx); - /* Fall through */ - case 1: - phase1: - /* - * Fill the stack with expectations. - */ - stck = (struct _stack *)ctx->ptr; - sel = stck->cur_ptr; - do { - ber_tlv_tag_t tlv_tag; - ber_tlv_len_t tlv_len; - ber_tlv_tag_t expected_tag; - ssize_t tl, ll, tlvl; - /* This one works even if (sel->left == -1) */ - size_t Left = ((!sel||(size_t)sel->left >= size) - ?size:(size_t)sel->left); - - - ASN_DEBUG("%p, s->l=%ld, s->wn=%ld, s->g=%ld\n", (void *)sel, - (long)(sel?sel->left:0), - (long)(sel?sel->want_nulls:0), - (long)(sel?sel->got:0) - ); - if(sel && sel->left <= 0 && sel->want_nulls == 0) { - if(sel->prev) { - struct _stack_el *prev = sel->prev; - if(prev->left != -1) { - if(prev->left < sel->got) - RETURN(RC_FAIL); - prev->left -= sel->got; - } - prev->got += sel->got; - sel = stck->cur_ptr = prev; - if(!sel) break; - tlv_constr = 1; - continue; - } else { - sel = stck->cur_ptr = 0; - break; /* Nothing to wait */ - } - } - - tl = ber_fetch_tag(buf_ptr, Left, &tlv_tag); - ASN_DEBUG("fetch tag(size=%ld,L=%ld), %sstack, left=%ld, wn=%ld, tl=%ld", - (long)size, (long)Left, sel?"":"!", - (long)(sel?sel->left:0), - (long)(sel?sel->want_nulls:0), - (long)tl); - switch(tl) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - - tlv_constr = BER_TLV_CONSTRUCTED(buf_ptr); - - ll = ber_fetch_length(tlv_constr, - (const char *)buf_ptr + tl,Left - tl,&tlv_len); - ASN_DEBUG("Got tag=%s, tc=%d, left=%ld, tl=%ld, len=%ld, ll=%ld", - ber_tlv_tag_string(tlv_tag), tlv_constr, - (long)Left, (long)tl, (long)tlv_len, (long)ll); - switch(ll) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - - if(sel && sel->want_nulls - && ((const uint8_t *)buf_ptr)[0] == 0 - && ((const uint8_t *)buf_ptr)[1] == 0) - { - - ASN_DEBUG("Eat EOC; wn=%d--", sel->want_nulls); - - if(type_variant == ASN_OSUBV_ANY - && (tag_mode != 1 || sel->cont_level)) - APPEND("\0\0", 2); - - ADVANCE(2); - sel->got += 2; - if(sel->left != -1) { - sel->left -= 2; /* assert(sel->left >= 2) */ - } - - sel->want_nulls--; - if(sel->want_nulls == 0) { - /* Move to the next expectation */ - sel->left = 0; - tlv_constr = 1; - } - - continue; - } - - /* - * Set up expected tags, - * depending on ASN.1 type being decoded. - */ - switch(type_variant) { - case ASN_OSUBV_BIT: - /* X.690: 8.6.4.1, NOTE 2 */ - /* Fall through */ - case ASN_OSUBV_STR: - default: - if(sel) { - unsigned level = sel->cont_level; - if(level < td->all_tags_count) { - expected_tag = td->all_tags[level]; - break; - } else if(td->all_tags_count) { - expected_tag = td->all_tags - [td->all_tags_count - 1]; - break; - } - /* else, Fall through */ - } - /* Fall through */ - case ASN_OSUBV_ANY: - expected_tag = tlv_tag; - break; - } - - - if(tlv_tag != expected_tag) { - char buf[2][32]; - ber_tlv_tag_snprint(tlv_tag, - buf[0], sizeof(buf[0])); - ber_tlv_tag_snprint(td->tags[td->tags_count-1], - buf[1], sizeof(buf[1])); - ASN_DEBUG("Tag does not match expectation: %s != %s", - buf[0], buf[1]); - RETURN(RC_FAIL); - } - - tlvl = tl + ll; /* Combined length of T and L encoding */ - if((tlv_len + tlvl) < 0) { - /* tlv_len value is too big */ - ASN_DEBUG("TLV encoding + length (%ld) is too big", - (long)tlv_len); - RETURN(RC_FAIL); - } - - /* - * Append a new expectation. - */ - sel = OS__add_stack_el(stck); - if(!sel) RETURN(RC_FAIL); - - sel->tag = tlv_tag; - - sel->want_nulls = (tlv_len==-1); - if(sel->prev && sel->prev->left != -1) { - /* Check that the parent frame is big enough */ - if(sel->prev->left < tlvl + (tlv_len==-1?0:tlv_len)) - RETURN(RC_FAIL); - if(tlv_len == -1) - sel->left = sel->prev->left - tlvl; - else - sel->left = tlv_len; - } else { - sel->left = tlv_len; - } - if(type_variant == ASN_OSUBV_ANY - && (tag_mode != 1 || sel->cont_level)) - APPEND(buf_ptr, tlvl); - sel->got += tlvl; - ADVANCE(tlvl); - - ASN_DEBUG("+EXPECT2 got=%ld left=%ld, wn=%d, clvl=%u", - (long)sel->got, (long)sel->left, - sel->want_nulls, sel->cont_level); - - } while(tlv_constr); - if(sel == NULL) { - /* Finished operation, "phase out" */ - ASN_DEBUG("Phase out"); - _CH_PHASE(ctx, +3); - break; - } - - NEXT_PHASE(ctx); - /* Fall through */ - case 2: - stck = (struct _stack *)ctx->ptr; - sel = stck->cur_ptr; - ASN_DEBUG("Phase 2: Need %ld bytes, size=%ld, alrg=%ld, wn=%d", - (long)sel->left, (long)size, (long)sel->got, - sel->want_nulls); - { - ber_tlv_len_t len; - - assert(sel->left >= 0); - - len = ((ber_tlv_len_t)size < sel->left) - ? (ber_tlv_len_t)size : sel->left; - if(len > 0) { - if(type_variant == ASN_OSUBV_BIT - && sel->bits_chopped == 0) { - /* Put the unused-bits-octet away */ - st->bits_unused = *(const uint8_t *)buf_ptr; - APPEND(((const char *)buf_ptr+1), (len - 1)); - sel->bits_chopped = 1; - } else { - APPEND(buf_ptr, len); - } - ADVANCE(len); - sel->left -= len; - sel->got += len; - } - - if(sel->left) { - ASN_DEBUG("OS left %ld, size = %ld, wn=%d\n", - (long)sel->left, (long)size, sel->want_nulls); - RETURN(RC_WMORE); - } - - PREV_PHASE(ctx); - goto phase1; - } - break; - case 3: - phase3: - /* - * Primitive form, no stack required. - */ - assert(ctx->left >= 0); - - if(size < (size_t)ctx->left) { - if(!size) RETURN(RC_WMORE); - if(type_variant == ASN_OSUBV_BIT && !ctx->context) { - st->bits_unused = *(const uint8_t *)buf_ptr; - ctx->left--; - ADVANCE(1); - } - APPEND(buf_ptr, size); - assert(ctx->context > 0); - ctx->left -= size; - ADVANCE(size); - RETURN(RC_WMORE); - } else { - if(type_variant == ASN_OSUBV_BIT - && !ctx->context && ctx->left) { - st->bits_unused = *(const uint8_t *)buf_ptr; - ctx->left--; - ADVANCE(1); - } - APPEND(buf_ptr, ctx->left); - ADVANCE(ctx->left); - ctx->left = 0; - - NEXT_PHASE(ctx); - } - break; - } - - if(sel) { - ASN_DEBUG("3sel p=%p, wn=%d, l=%ld, g=%ld, size=%ld", - (void *)sel->prev, sel->want_nulls, - (long)sel->left, (long)sel->got, (long)size); - if(sel->prev || sel->want_nulls > 1 || sel->left > 0) { - RETURN(RC_WMORE); - } - } - - /* - * BIT STRING-specific processing. - */ - if(type_variant == ASN_OSUBV_BIT) { - if(st->size) { - if(st->bits_unused < 0 || st->bits_unused > 7) { - RETURN(RC_FAIL); - } - /* Finalize BIT STRING: zero out unused bits. */ - st->buf[st->size-1] &= 0xff << st->bits_unused; - } else { - if(st->bits_unused) { - RETURN(RC_FAIL); - } - } - } - - ASN_DEBUG("Took %ld bytes to encode %s: [%s]:%ld", - (long)consumed_myself, td->name, - (type_variant == ASN_OSUBV_STR) ? (char *)st->buf : "", - (long)st->size); - - - RETURN(RC_OK); -} - -/* - * Encode OCTET STRING type using DER. - */ -asn_enc_rval_t -OCTET_STRING_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t er = { 0, 0, 0 }; - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - enum asn_OS_Subvariant type_variant = specs->subvariant; - int fix_last_byte = 0; - - ASN_DEBUG("%s %s as OCTET STRING", - cb?"Estimating":"Encoding", td->name); - - /* - * Write tags. - */ - if(type_variant != ASN_OSUBV_ANY || tag_mode == 1) { - er.encoded = der_write_tags(td, - (type_variant == ASN_OSUBV_BIT) + st->size, - tag_mode, type_variant == ASN_OSUBV_ANY, tag, - cb, app_key); - if(er.encoded == -1) { - er.failed_type = td; - er.structure_ptr = sptr; - return er; - } - } else { - /* Disallow: [] IMPLICIT ANY */ - assert(type_variant != ASN_OSUBV_ANY || tag_mode != -1); - er.encoded = 0; - } - - if(!cb) { - er.encoded += (type_variant == ASN_OSUBV_BIT) + st->size; - ASN__ENCODED_OK(er); - } - - /* - * Prepare to deal with the last octet of BIT STRING. - */ - if(type_variant == ASN_OSUBV_BIT) { - uint8_t b = st->bits_unused & 0x07; - if(b && st->size) fix_last_byte = 1; - ASN__CALLBACK(&b, 1); - } - - /* Invoke callback for the main part of the buffer */ - ASN__CALLBACK(st->buf, st->size - fix_last_byte); - - /* The last octet should be stripped off the unused bits */ - if(fix_last_byte) { - uint8_t b = st->buf[st->size-1] & (0xff << st->bits_unused); - ASN__CALLBACK(&b, 1); - } - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -asn_enc_rval_t -OCTET_STRING_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const char * const h2c = "0123456789ABCDEF"; - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - asn_enc_rval_t er = { 0, 0, 0 }; - char scratch[16 * 3 + 4]; - char *p = scratch; - uint8_t *buf; - uint8_t *end; - size_t i; - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - er.encoded = 0; - - /* - * Dump the contents of the buffer in hexadecimal. - */ - buf = st->buf; - end = buf + st->size; - if(flags & XER_F_CANONICAL) { - char *scend = scratch + (sizeof(scratch) - 2); - for(; buf < end; buf++) { - if(p >= scend) { - ASN__CALLBACK(scratch, p - scratch); - p = scratch; - } - *p++ = h2c[(*buf >> 4) & 0x0F]; - *p++ = h2c[*buf & 0x0F]; - } - - ASN__CALLBACK(scratch, p-scratch); /* Dump the rest */ - } else { - for(i = 0; buf < end; buf++, i++) { - if(!(i % 16) && (i || st->size > 16)) { - ASN__CALLBACK(scratch, p-scratch); - p = scratch; - ASN__TEXT_INDENT(1, ilevel); - } - *p++ = h2c[(*buf >> 4) & 0x0F]; - *p++ = h2c[*buf & 0x0F]; - *p++ = 0x20; - } - if(p - scratch) { - p--; /* Remove the tail space */ - ASN__CALLBACK(scratch, p-scratch); /* Dump the rest */ - if(st->size > 16) - ASN__TEXT_INDENT(1, ilevel-1); - } - } - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -static const struct OCTET_STRING__xer_escape_table_s { - const char *string; - int size; -} OCTET_STRING__xer_escape_table[] = { -#define OSXET(s) { s, sizeof(s) - 1 } - OSXET("\074\156\165\154\057\076"), /* */ - OSXET("\074\163\157\150\057\076"), /* */ - OSXET("\074\163\164\170\057\076"), /* */ - OSXET("\074\145\164\170\057\076"), /* */ - OSXET("\074\145\157\164\057\076"), /* */ - OSXET("\074\145\156\161\057\076"), /* */ - OSXET("\074\141\143\153\057\076"), /* */ - OSXET("\074\142\145\154\057\076"), /* */ - OSXET("\074\142\163\057\076"), /* */ - OSXET("\011"), /* \t */ - OSXET("\012"), /* \n */ - OSXET("\074\166\164\057\076"), /* */ - OSXET("\074\146\146\057\076"), /* */ - OSXET("\015"), /* \r */ - OSXET("\074\163\157\057\076"), /* */ - OSXET("\074\163\151\057\076"), /* */ - OSXET("\074\144\154\145\057\076"), /* */ - OSXET("\074\144\143\061\057\076"), /* */ - OSXET("\074\144\143\062\057\076"), /* */ - OSXET("\074\144\143\063\057\076"), /* */ - OSXET("\074\144\143\064\057\076"), /* */ - OSXET("\074\156\141\153\057\076"), /* */ - OSXET("\074\163\171\156\057\076"), /* */ - OSXET("\074\145\164\142\057\076"), /* */ - OSXET("\074\143\141\156\057\076"), /* */ - OSXET("\074\145\155\057\076"), /* */ - OSXET("\074\163\165\142\057\076"), /* */ - OSXET("\074\145\163\143\057\076"), /* */ - OSXET("\074\151\163\064\057\076"), /* */ - OSXET("\074\151\163\063\057\076"), /* */ - OSXET("\074\151\163\062\057\076"), /* */ - OSXET("\074\151\163\061\057\076"), /* */ - { 0, 0 }, /* " " */ - { 0, 0 }, /* ! */ - { 0, 0 }, /* \" */ - { 0, 0 }, /* # */ - { 0, 0 }, /* $ */ - { 0, 0 }, /* % */ - OSXET("\046\141\155\160\073"), /* & */ - { 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},{0,0}, /* 01234567 */ - {0,0},{0,0},{0,0},{0,0}, /* 89:; */ - OSXET("\046\154\164\073"), /* < */ - { 0, 0 }, /* = */ - OSXET("\046\147\164\073"), /* > */ -}; - -static int -OS__check_escaped_control_char(const void *buf, int size) { - size_t i; - /* - * Inefficient algorithm which translates the escape sequences - * defined above into characters. Returns -1 if not found. - * TODO: replace by a faster algorithm (bsearch(), hash or - * nested table lookups). - */ - for(i = 0; i < 32 /* Don't spend time on the bottom half */; i++) { - const struct OCTET_STRING__xer_escape_table_s *el; - el = &OCTET_STRING__xer_escape_table[i]; - if(el->size == size && memcmp(buf, el->string, size) == 0) - return i; - } - return -1; -} - -static int -OCTET_STRING__handle_control_chars(void *struct_ptr, const void *chunk_buf, size_t chunk_size) { - /* - * This might be one of the escape sequences - * for control characters. Check it out. - * #11.15.5 - */ - int control_char = OS__check_escaped_control_char(chunk_buf,chunk_size); - if(control_char >= 0) { - OCTET_STRING_t *st = (OCTET_STRING_t *)struct_ptr; - void *p = REALLOC(st->buf, st->size + 2); - if(p) { - st->buf = (uint8_t *)p; - st->buf[st->size++] = control_char; - st->buf[st->size] = '\0'; /* nul-termination */ - return 0; - } - } - - return -1; /* No, it's not */ -} - -asn_enc_rval_t -OCTET_STRING_encode_xer_utf8(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - asn_enc_rval_t er = { 0, 0, 0 }; - uint8_t *buf, *end; - uint8_t *ss; /* Sequence start */ - ssize_t encoded_len = 0; - - (void)ilevel; /* Unused argument */ - (void)flags; /* Unused argument */ - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - buf = st->buf; - end = buf + st->size; - for(ss = buf; buf < end; buf++) { - unsigned int ch = *buf; - int s_len; /* Special encoding sequence length */ - - /* - * Escape certain characters: X.680/11.15 - */ - if(ch < sizeof(OCTET_STRING__xer_escape_table) - /sizeof(OCTET_STRING__xer_escape_table[0]) - && (s_len = OCTET_STRING__xer_escape_table[ch].size)) { - if(((buf - ss) && cb(ss, buf - ss, app_key) < 0) - || cb(OCTET_STRING__xer_escape_table[ch].string, s_len, - app_key) < 0) - ASN__ENCODE_FAILED; - encoded_len += (buf - ss) + s_len; - ss = buf + 1; - } - } - - encoded_len += (buf - ss); - if((buf - ss) && cb(ss, buf - ss, app_key) < 0) - ASN__ENCODE_FAILED; - - er.encoded = encoded_len; - ASN__ENCODED_OK(er); -} - -/* - * Convert from hexadecimal format (cstring): "AB CD EF" - */ -static ssize_t OCTET_STRING__convert_hexadecimal(void *sptr, const void *chunk_buf, size_t chunk_size, int have_more) { - OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; - const char *chunk_stop = (const char *)chunk_buf; - const char *p = chunk_stop; - const char *pend = p + chunk_size; - unsigned int clv = 0; - int half = 0; /* Half bit */ - uint8_t *buf; - - /* Reallocate buffer according to high cap estimation */ - size_t new_size = st->size + (chunk_size + 1) / 2; - void *nptr = REALLOC(st->buf, new_size + 1); - if(!nptr) return -1; - st->buf = (uint8_t *)nptr; - buf = st->buf + st->size; - - /* - * If something like " a b c " appears here, the " a b":3 will be - * converted, and the rest skipped. That is, unless buf_size is greater - * than chunk_size, then it'll be equivalent to "ABC0". - */ - for(; p < pend; p++) { - int ch = *(const unsigned char *)p; - switch(ch) { - case 0x09: case 0x0a: case 0x0c: case 0x0d: - case 0x20: - /* Ignore whitespace */ - continue; - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: /*01234*/ - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: /*56789*/ - clv = (clv << 4) + (ch - 0x30); - break; - case 0x41: case 0x42: case 0x43: /* ABC */ - case 0x44: case 0x45: case 0x46: /* DEF */ - clv = (clv << 4) + (ch - 0x41 + 10); - break; - case 0x61: case 0x62: case 0x63: /* abc */ - case 0x64: case 0x65: case 0x66: /* def */ - clv = (clv << 4) + (ch - 0x61 + 10); - break; - default: - *buf = 0; /* JIC */ - return -1; - } - if(half++) { - half = 0; - *buf++ = clv; - chunk_stop = p + 1; - } - } - - /* - * Check partial decoding. - */ - if(half) { - if(have_more) { - /* - * Partial specification is fine, - * because no more more PXER_TEXT data is available. - */ - *buf++ = clv << 4; - chunk_stop = p; - } - } else { - chunk_stop = p; - } - - st->size = buf - st->buf; /* Adjust the buffer size */ - assert(st->size <= new_size); - st->buf[st->size] = 0; /* Courtesy termination */ - - return (chunk_stop - (const char *)chunk_buf); /* Converted size */ -} - -/* - * Convert from binary format: "00101011101" - */ -static ssize_t OCTET_STRING__convert_binary(void *sptr, const void *chunk_buf, size_t chunk_size, int have_more) { - BIT_STRING_t *st = (BIT_STRING_t *)sptr; - const char *p = (const char *)chunk_buf; - const char *pend = p + chunk_size; - int bits_unused = st->bits_unused & 0x7; - uint8_t *buf; - - /* Reallocate buffer according to high cap estimation */ - size_t new_size = st->size + (chunk_size + 7) / 8; - void *nptr = REALLOC(st->buf, new_size + 1); - if(!nptr) return -1; - st->buf = (uint8_t *)nptr; - buf = st->buf + st->size; - - (void)have_more; - - if(bits_unused == 0) - bits_unused = 8; - else if(st->size) - buf--; - - /* - * Convert series of 0 and 1 into the octet string. - */ - for(; p < pend; p++) { - int ch = *(const unsigned char *)p; - switch(ch) { - case 0x09: case 0x0a: case 0x0c: case 0x0d: - case 0x20: - /* Ignore whitespace */ - break; - case 0x30: - case 0x31: - if(bits_unused-- <= 0) { - *++buf = 0; /* Clean the cell */ - bits_unused = 7; - } - *buf |= (ch&1) << bits_unused; - break; - default: - st->bits_unused = bits_unused; - return -1; - } - } - - if(bits_unused == 8) { - st->size = buf - st->buf; - st->bits_unused = 0; - } else { - st->size = buf - st->buf + 1; - st->bits_unused = bits_unused; - } - - assert(st->size <= new_size); - st->buf[st->size] = 0; /* Courtesy termination */ - - return chunk_size; /* Converted in full */ -} - -/* - * Something like strtod(), but with stricter rules. - */ -static int -OS__strtoent(int base, const char *buf, const char *end, int32_t *ret_value) { - const int32_t last_unicode_codepoint = 0x10ffff; - int32_t val = 0; - const char *p; - - for(p = buf; p < end; p++) { - int ch = *p; - - switch(ch) { - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: /*01234*/ - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: /*56789*/ - val = val * base + (ch - 0x30); - break; - case 0x41: case 0x42: case 0x43: /* ABC */ - case 0x44: case 0x45: case 0x46: /* DEF */ - val = val * base + (ch - 0x41 + 10); - break; - case 0x61: case 0x62: case 0x63: /* abc */ - case 0x64: case 0x65: case 0x66: /* def */ - val = val * base + (ch - 0x61 + 10); - break; - case 0x3b: /* ';' */ - *ret_value = val; - return (p - buf) + 1; - default: - return -1; /* Character set error */ - } - - /* Value exceeds the Unicode range. */ - if(val > last_unicode_codepoint) { - return -1; - } - } - - *ret_value = -1; - return (p - buf); -} - -/* - * Convert from the plain UTF-8 format, expanding entity references: "2 < 3" - */ -static ssize_t -OCTET_STRING__convert_entrefs(void *sptr, const void *chunk_buf, - size_t chunk_size, int have_more) { - OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; - const char *p = (const char *)chunk_buf; - const char *pend = p + chunk_size; - uint8_t *buf; - - /* Reallocate buffer */ - size_t new_size = st->size + chunk_size; - void *nptr = REALLOC(st->buf, new_size + 1); - if(!nptr) return -1; - st->buf = (uint8_t *)nptr; - buf = st->buf + st->size; - - /* - * Convert series of 0 and 1 into the octet string. - */ - for(; p < pend; p++) { - int ch = *(const unsigned char *)p; - int len; /* Length of the rest of the chunk */ - - if(ch != 0x26 /* '&' */) { - *buf++ = ch; - continue; /* That was easy... */ - } - - /* - * Process entity reference. - */ - len = chunk_size - (p - (const char *)chunk_buf); - if(len == 1 /* "&" */) goto want_more; - if(p[1] == 0x23 /* '#' */) { - const char *pval; /* Pointer to start of digits */ - int32_t val = 0; /* Entity reference value */ - int base; - - if(len == 2 /* "&#" */) goto want_more; - if(p[2] == 0x78 /* 'x' */) - pval = p + 3, base = 16; - else - pval = p + 2, base = 10; - len = OS__strtoent(base, pval, p + len, &val); - if(len == -1) { - /* Invalid charset. Just copy verbatim. */ - *buf++ = ch; - continue; - } - if(!len || pval[len-1] != 0x3b) goto want_more; - assert(val > 0); - p += (pval - p) + len - 1; /* Advance past entref */ - - if(val < 0x80) { - *buf++ = (char)val; - } else if(val < 0x800) { - *buf++ = 0xc0 | ((val >> 6)); - *buf++ = 0x80 | ((val & 0x3f)); - } else if(val < 0x10000) { - *buf++ = 0xe0 | ((val >> 12)); - *buf++ = 0x80 | ((val >> 6) & 0x3f); - *buf++ = 0x80 | ((val & 0x3f)); - } else if(val < 0x200000) { - *buf++ = 0xf0 | ((val >> 18)); - *buf++ = 0x80 | ((val >> 12) & 0x3f); - *buf++ = 0x80 | ((val >> 6) & 0x3f); - *buf++ = 0x80 | ((val & 0x3f)); - } else if(val < 0x4000000) { - *buf++ = 0xf8 | ((val >> 24)); - *buf++ = 0x80 | ((val >> 18) & 0x3f); - *buf++ = 0x80 | ((val >> 12) & 0x3f); - *buf++ = 0x80 | ((val >> 6) & 0x3f); - *buf++ = 0x80 | ((val & 0x3f)); - } else { - *buf++ = 0xfc | ((val >> 30) & 0x1); - *buf++ = 0x80 | ((val >> 24) & 0x3f); - *buf++ = 0x80 | ((val >> 18) & 0x3f); - *buf++ = 0x80 | ((val >> 12) & 0x3f); - *buf++ = 0x80 | ((val >> 6) & 0x3f); - *buf++ = 0x80 | ((val & 0x3f)); - } - } else { - /* - * Ugly, limited parsing of & > < - */ - char *sc = (char *)memchr(p, 0x3b, len > 5 ? 5 : len); - if(!sc) goto want_more; - if((sc - p) == 4 - && p[1] == 0x61 /* 'a' */ - && p[2] == 0x6d /* 'm' */ - && p[3] == 0x70 /* 'p' */) { - *buf++ = 0x26; - p = sc; - continue; - } - if((sc - p) == 3) { - if(p[1] == 0x6c) { - *buf = 0x3c; /* '<' */ - } else if(p[1] == 0x67) { - *buf = 0x3e; /* '>' */ - } else { - /* Unsupported entity reference */ - *buf++ = ch; - continue; - } - if(p[2] != 0x74) { - /* Unsupported entity reference */ - *buf++ = ch; - continue; - } - buf++; - p = sc; - continue; - } - /* Unsupported entity reference */ - *buf++ = ch; - } - - continue; - want_more: - if(have_more) { - /* - * We know that no more data (of the same type) - * is coming. Copy the rest verbatim. - */ - *buf++ = ch; - continue; - } - chunk_size = (p - (const char *)chunk_buf); - /* Processing stalled: need more data */ - break; - } - - st->size = buf - st->buf; - assert(st->size <= new_size); - st->buf[st->size] = 0; /* Courtesy termination */ - - return chunk_size; /* Converted in full */ -} - -/* - * Decode OCTET STRING from the XML element's body. - */ -static asn_dec_rval_t -OCTET_STRING__decode_xer( - const asn_codec_ctx_t *opt_codec_ctx, const asn_TYPE_descriptor_t *td, - void **sptr, const char *opt_mname, const void *buf_ptr, size_t size, - int (*opt_unexpected_tag_decoder)(void *struct_ptr, const void *chunk_buf, - size_t chunk_size), - ssize_t (*body_receiver)(void *struct_ptr, const void *chunk_buf, - size_t chunk_size, int have_more)) { - OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr; - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - asn_struct_ctx_t *ctx; /* Per-structure parser context */ - asn_dec_rval_t rval; /* Return value from the decoder */ - int st_allocated; - - /* - * Create the string if does not exist. - */ - if(!st) { - st = (OCTET_STRING_t *)CALLOC(1, specs->struct_size); - *sptr = (void *)st; - if(!st) goto sta_failed; - st_allocated = 1; - } else { - st_allocated = 0; - } - if(!st->buf) { - /* This is separate from above section */ - st->buf = (uint8_t *)CALLOC(1, 1); - if(!st->buf) { - if(st_allocated) { - *sptr = 0; - goto stb_failed; - } else { - goto sta_failed; - } - } - } - - /* Restore parsing context */ - ctx = (asn_struct_ctx_t *)(((char *)*sptr) + specs->ctx_offset); - - return xer_decode_general(opt_codec_ctx, ctx, *sptr, xml_tag, - buf_ptr, size, opt_unexpected_tag_decoder, body_receiver); - -stb_failed: - FREEMEM(st); -sta_failed: - rval.code = RC_FAIL; - rval.consumed = 0; - return rval; -} - -/* - * Decode OCTET STRING from the hexadecimal data. - */ -asn_dec_rval_t -OCTET_STRING_decode_xer_hex(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, - size_t size) { - return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname, - buf_ptr, size, 0, OCTET_STRING__convert_hexadecimal); -} - -/* - * Decode OCTET STRING from the binary (0/1) data. - */ -asn_dec_rval_t -OCTET_STRING_decode_xer_binary(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, - size_t size) { - return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname, - buf_ptr, size, 0, OCTET_STRING__convert_binary); -} - -/* - * Decode OCTET STRING from the string (ASCII/UTF-8) data. - */ -asn_dec_rval_t -OCTET_STRING_decode_xer_utf8(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, - size_t size) { - return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname, - buf_ptr, size, - OCTET_STRING__handle_control_chars, - OCTET_STRING__convert_entrefs); -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -static int -OCTET_STRING_per_get_characters(asn_per_data_t *po, uint8_t *buf, - size_t units, unsigned int bpc, unsigned int unit_bits, - long lb, long ub, const asn_per_constraints_t *pc) { - uint8_t *end = buf + units * bpc; - - ASN_DEBUG("Expanding %d characters into (%ld..%ld):%d", - (int)units, lb, ub, unit_bits); - - /* X.691: 27.5.4 */ - if((unsigned long)ub <= ((unsigned long)2 << (unit_bits - 1))) { - /* Decode without translation */ - lb = 0; - } else if(pc && pc->code2value) { - if(unit_bits > 16) - return 1; /* FATAL: can't have constrained - * UniversalString with more than - * 16 million code points */ - for(; buf < end; buf += bpc) { - int value; - int code = per_get_few_bits(po, unit_bits); - if(code < 0) return -1; /* WMORE */ - value = pc->code2value(code); - if(value < 0) { - ASN_DEBUG("Code %d (0x%02x) is" - " not in map (%ld..%ld)", - code, code, lb, ub); - return 1; /* FATAL */ - } - switch(bpc) { - case 1: *buf = value; break; - case 2: buf[0] = value >> 8; buf[1] = value; break; - case 4: buf[0] = value >> 24; buf[1] = value >> 16; - buf[2] = value >> 8; buf[3] = value; break; - } - } - return 0; - } - - /* Shortcut the no-op copying to the aligned structure */ - if(lb == 0 && (unit_bits == 8 * bpc)) { - return per_get_many_bits(po, buf, 0, unit_bits * units); - } - - for(; buf < end; buf += bpc) { - int32_t code = per_get_few_bits(po, unit_bits); - int32_t ch = code + lb; - if(code < 0) return -1; /* WMORE */ - if(ch > ub) { - ASN_DEBUG("Code %d is out of range (%ld..%ld)", - ch, lb, ub); - return 1; /* FATAL */ - } - switch(bpc) { - case 1: *buf = ch; break; - case 2: buf[0] = ch >> 8; buf[1] = ch; break; - case 4: buf[0] = ch >> 24; buf[1] = ch >> 16; - buf[2] = ch >> 8; buf[3] = ch; break; - } - } - - return 0; -} - -static int -OCTET_STRING_per_put_characters(asn_per_outp_t *po, const uint8_t *buf, - size_t units, unsigned int bpc, unsigned int unit_bits, - long lb, long ub, const asn_per_constraints_t *pc) { - const uint8_t *end = buf + units * bpc; - - ASN_DEBUG("Squeezing %d characters into (%ld..%ld):%d (%d bpc)", - (int)units, lb, ub, unit_bits, bpc); - - /* X.691: 27.5.4 */ - if((unsigned long)ub <= ((unsigned long)2 << (unit_bits - 1))) { - /* Encode as is */ - lb = 0; - } else if(pc && pc->value2code) { - for(; buf < end; buf += bpc) { - int code; - uint32_t value; - switch(bpc) { - case 1: value = *(const uint8_t *)buf; break; - case 2: value = (buf[0] << 8) | buf[1]; break; - case 4: value = (buf[0] << 24) | (buf[1] << 16) - | (buf[2] << 8) | buf[3]; break; - default: return -1; - } - code = pc->value2code(value); - if(code < 0) { - ASN_DEBUG("Character %d (0x%02x) is" - " not in map (%ld..%ld)", - *buf, *buf, lb, ub); - return -1; - } - if(per_put_few_bits(po, code, unit_bits)) - return -1; - } - } - - /* Shortcut the no-op copying to the aligned structure */ - if(lb == 0 && (unit_bits == 8 * bpc)) { - return per_put_many_bits(po, buf, unit_bits * units); - } - - for(ub -= lb; buf < end; buf += bpc) { - int ch; - uint32_t value; - switch(bpc) { - case 1: - value = *(const uint8_t *)buf; - break; - case 2: - value = (buf[0] << 8) | buf[1]; - break; - case 4: - value = (buf[0] << 24) | (buf[1] << 16) | (buf[2] << 8) | buf[3]; - break; - default: - return -1; - } - ch = value - lb; - if(ch < 0 || ch > ub) { - ASN_DEBUG("Character %d (0x%02x) is out of range (%ld..%ld)", *buf, - value, lb, ub + lb); - return -1; - } - if(per_put_few_bits(po, ch, unit_bits)) return -1; - } - - return 0; -} - -static asn_per_constraints_t asn_DEF_OCTET_STRING_constraints = { - { APC_CONSTRAINED, 8, 8, 0, 255 }, - { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, - 0, 0 -}; - -asn_dec_rval_t -OCTET_STRING_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const asn_per_constraints_t *pc = - constraints ? constraints : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *cval; - const asn_per_constraint_t *csiz; - asn_dec_rval_t rval = { RC_OK, 0 }; - OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr; - ssize_t consumed_myself = 0; - int repeat; - enum { - OS__BPC_CHAR = 1, - OS__BPC_U16 = 2, - OS__BPC_U32 = 4 - } bpc; /* Bytes per character */ - unsigned int unit_bits; - unsigned int canonical_unit_bits; - - (void)opt_codec_ctx; - - if(pc) { - cval = &pc->value; - csiz = &pc->size; - } else { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - } - - switch(specs->subvariant) { - default: - case ASN_OSUBV_ANY: - case ASN_OSUBV_BIT: - ASN_DEBUG("Unrecognized subvariant %d", specs->subvariant); - RETURN(RC_FAIL); - break; - case ASN_OSUBV_STR: - canonical_unit_bits = unit_bits = 8; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_CHAR; - break; - case ASN_OSUBV_U16: - canonical_unit_bits = unit_bits = 16; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U16; - break; - case ASN_OSUBV_U32: - canonical_unit_bits = unit_bits = 32; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U32; - break; - } - - /* - * Allocate the string. - */ - if(!st) { - st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d", - csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", - csiz->lower_bound, csiz->upper_bound, csiz->effective_bits); - - if(csiz->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) RETURN(RC_WMORE); - if(inext) { - csiz = &asn_DEF_OCTET_STRING_constraints.size; - unit_bits = canonical_unit_bits; - } - } - - if(csiz->effective_bits >= 0) { - FREEMEM(st->buf); - if(bpc) { - st->size = csiz->upper_bound * bpc; - } else { - st->size = (csiz->upper_bound + 7) >> 3; - } - st->buf = (uint8_t *)MALLOC(st->size + 1); - if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } - } - - /* X.691, #16.5: zero-length encoding */ - /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ - /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ - if(csiz->effective_bits == 0) { - int ret; - if(bpc) { - ASN_DEBUG("Encoding OCTET STRING size %ld", - csiz->upper_bound); - ret = OCTET_STRING_per_get_characters(pd, st->buf, - csiz->upper_bound, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - if(ret > 0) RETURN(RC_FAIL); - } else { - ASN_DEBUG("Encoding BIT STRING size %ld", - csiz->upper_bound); - ret = per_get_many_bits(pd, st->buf, 0, - unit_bits * csiz->upper_bound); - } - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += unit_bits * csiz->upper_bound; - st->buf[st->size] = 0; - RETURN(RC_OK); - } - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - void *p; - int ret; - - /* Get the PER length */ - raw_len = uper_get_length(pd, csiz->effective_bits, csiz->lower_bound, - &repeat); - if(raw_len < 0) RETURN(RC_WMORE); - if(raw_len == 0 && st->buf) break; - - ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", - (long)csiz->effective_bits, (long)raw_len, - repeat ? "repeat" : "once", td->name); - len_bytes = raw_len * bpc; - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - ret = OCTET_STRING_per_get_characters(pd, &st->buf[st->size], raw_len, - bpc, unit_bits, cval->lower_bound, - cval->upper_bound, pc); - if(ret > 0) RETURN(RC_FAIL); - if(ret < 0) RETURN(RC_WMORE); - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - return rval; -} - -asn_enc_rval_t -OCTET_STRING_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const asn_per_constraints_t *pc = constraints ? constraints - : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *cval; - const asn_per_constraint_t *csiz; - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - asn_enc_rval_t er = { 0, 0, 0 }; - int inext = 0; /* Lies not within extension root */ - unsigned int unit_bits; - unsigned int canonical_unit_bits; - size_t size_in_units; - const uint8_t *buf; - int ret; - enum { - OS__BPC_CHAR = 1, - OS__BPC_U16 = 2, - OS__BPC_U32 = 4 - } bpc; /* Bytes per character */ - int ct_extensible; - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - if(pc) { - cval = &pc->value; - csiz = &pc->size; - } else { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - } - ct_extensible = csiz->flags & APC_EXTENSIBLE; - - switch(specs->subvariant) { - default: - case ASN_OSUBV_ANY: - case ASN_OSUBV_BIT: - ASN__ENCODE_FAILED; - case ASN_OSUBV_STR: - canonical_unit_bits = unit_bits = 8; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_CHAR; - size_in_units = st->size; - break; - case ASN_OSUBV_U16: - canonical_unit_bits = unit_bits = 16; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U16; - size_in_units = st->size >> 1; - if(st->size & 1) { - ASN_DEBUG("%s string size is not modulo 2", td->name); - ASN__ENCODE_FAILED; - } - break; - case ASN_OSUBV_U32: - canonical_unit_bits = unit_bits = 32; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U32; - size_in_units = st->size >> 2; - if(st->size & 3) { - ASN_DEBUG("%s string size is not modulo 4", td->name); - ASN__ENCODE_FAILED; - } - break; - } - - ASN_DEBUG("Encoding %s into %" ASN_PRI_SIZE " units of %d bits" - " (%ld..%ld, effective %d)%s", - td->name, size_in_units, unit_bits, - csiz->lower_bound, csiz->upper_bound, - csiz->effective_bits, ct_extensible ? " EXT" : ""); - - /* Figure out whether size lies within PER visible constraint */ - - if(csiz->effective_bits >= 0) { - if((ssize_t)size_in_units < csiz->lower_bound - || (ssize_t)size_in_units > csiz->upper_bound) { - if(ct_extensible) { - csiz = &asn_DEF_OCTET_STRING_constraints.size; - unit_bits = canonical_unit_bits; - inext = 1; - } else { - ASN__ENCODE_FAILED; - } - } - } else { - inext = 0; - } - - if(ct_extensible) { - /* Declare whether length is [not] within extension root */ - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - } - - if(csiz->effective_bits >= 0 && !inext) { - ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes (%ld), length in %d bits", st->size, - size_in_units - csiz->lower_bound, csiz->effective_bits); - ret = per_put_few_bits(po, size_in_units - csiz->lower_bound, - csiz->effective_bits); - if(ret) ASN__ENCODE_FAILED; - ret = OCTET_STRING_per_put_characters(po, st->buf, size_in_units, bpc, - unit_bits, cval->lower_bound, - cval->upper_bound, pc); - if(ret) ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes", st->size); - - buf = st->buf; - ASN_DEBUG("Encoding %" ASN_PRI_SIZE " in units", size_in_units); - do { - int need_eom = 0; - ssize_t may_save = uper_put_length(po, size_in_units, &need_eom); - if(may_save < 0) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %" ASN_PRI_SSIZE " of %" ASN_PRI_SIZE "%s", may_save, size_in_units, - need_eom ? ",+EOM" : ""); - - ret = OCTET_STRING_per_put_characters(po, buf, may_save, bpc, unit_bits, - cval->lower_bound, - cval->upper_bound, pc); - if(ret) ASN__ENCODE_FAILED; - - buf += may_save * bpc; - size_in_units -= may_save; - assert(!(may_save & 0x07) || !size_in_units); - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - } while(size_in_units); - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -OCTET_STRING_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd) { - - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const asn_per_constraints_t *pc = constraints ? constraints - : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *cval; - const asn_per_constraint_t *csiz; - asn_dec_rval_t rval = { RC_OK, 0 }; - BIT_STRING_t *st = (BIT_STRING_t *)*sptr; - ssize_t consumed_myself = 0; - int repeat; - enum { - OS__BPC_BIT = 0, - OS__BPC_CHAR = 1, - OS__BPC_U16 = 2, - OS__BPC_U32 = 4 - } bpc; /* Bytes per character */ - unsigned int unit_bits; - unsigned int canonical_unit_bits; - - (void)opt_codec_ctx; - - if(pc) { - cval = &pc->value; - csiz = &pc->size; - } else { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - } - - switch(specs->subvariant) { - default: -/* case ASN_OSUBV_ANY: - ASN_DEBUG("Unrecognized subvariant %d", specs->subvariant); - RETURN(RC_FAIL); -*/ - case ASN_OSUBV_BIT: - canonical_unit_bits = unit_bits = 1; - bpc = OS__BPC_BIT; - break; - case ASN_OSUBV_ANY: - case ASN_OSUBV_STR: - canonical_unit_bits = unit_bits = 8; -/* if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; -*/ - bpc = OS__BPC_CHAR; - break; - case ASN_OSUBV_U16: - canonical_unit_bits = unit_bits = 16; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U16; - break; - case ASN_OSUBV_U32: - canonical_unit_bits = unit_bits = 32; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U32; - break; - } - - /* - * Allocate the string. - */ - if(!st) { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d", - csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", - csiz->lower_bound, csiz->upper_bound, csiz->effective_bits); - - if(csiz->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) RETURN(RC_WMORE); - if(inext) { - csiz = &asn_DEF_OCTET_STRING_constraints.size; - cval = &asn_DEF_OCTET_STRING_constraints.value; - unit_bits = canonical_unit_bits; - } - } - - if(csiz->effective_bits >= 0) { - FREEMEM(st->buf); - if(bpc) { - st->size = csiz->upper_bound * bpc; - } else { - st->size = (csiz->upper_bound + 7) >> 3; - } - st->buf = (uint8_t *)MALLOC(st->size + 1); - if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } - } - - /* X.691, #16.5: zero-length encoding */ - /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ - /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ - if(csiz->effective_bits == 0) { - int ret; - if (st->size > 2) { /* X.691 #16 NOTE 1 */ - if (aper_get_align(pd) < 0) - RETURN(RC_FAIL); - } - if(bpc) { - ASN_DEBUG("Decoding OCTET STRING size %ld", - csiz->upper_bound); - ret = OCTET_STRING_per_get_characters(pd, st->buf, - csiz->upper_bound, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - if(ret > 0) RETURN(RC_FAIL); - } else { - ASN_DEBUG("Decoding BIT STRING size %ld", - csiz->upper_bound); - ret = per_get_many_bits(pd, st->buf, 0, - unit_bits * csiz->upper_bound); - } - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += unit_bits * csiz->upper_bound; - st->buf[st->size] = 0; - if(bpc == 0) { - int ubs = (csiz->upper_bound & 0x7); - st->bits_unused = ubs ? 8 - ubs : 0; - } - RETURN(RC_OK); - } - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - ssize_t len_bits; - void *p; - int ret; - - /* Get the PER length */ - if (csiz->upper_bound - csiz->lower_bound == 0) - /* Indefinite length case */ - raw_len = aper_get_length(pd, -1, csiz->effective_bits, &repeat); - else - raw_len = aper_get_length(pd, csiz->upper_bound - csiz->lower_bound + 1, csiz->effective_bits, &repeat); - repeat = 0; - if(raw_len < 0) RETURN(RC_WMORE); - raw_len += csiz->lower_bound; - - ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", - (long)csiz->effective_bits, (long)raw_len, - repeat ? "repeat" : "once", td->name); - - if (raw_len > 2) { /* X.691 #16 NOTE 1 */ - if (aper_get_align(pd) < 0) - RETURN(RC_FAIL); - } - - if(bpc) { - len_bytes = raw_len * bpc; - len_bits = len_bytes * unit_bits; - } else { - len_bits = raw_len; - len_bytes = (len_bits + 7) >> 3; - if(len_bits & 0x7) - st->bits_unused = 8 - (len_bits & 0x7); - /* len_bits be multiple of 16K if repeat is set */ - } - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - if(bpc) { - ret = OCTET_STRING_per_get_characters(pd, - &st->buf[st->size], raw_len, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - if(ret > 0) RETURN(RC_FAIL); - } else { - ret = per_get_many_bits(pd, &st->buf[st->size], - 0, len_bits); - } - if(ret < 0) RETURN(RC_WMORE); - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - return rval; -} - -asn_enc_rval_t -OCTET_STRING_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const asn_per_constraints_t *pc = constraints ? constraints - : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *cval; - const asn_per_constraint_t *csiz; - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - asn_enc_rval_t er = { 0, 0, 0 }; - int inext = 0; /* Lies not within extension root */ - unsigned int unit_bits; - unsigned int canonical_unit_bits; - unsigned int sizeinunits; - const uint8_t *buf; - int ret; - enum { - OS__BPC_BIT = 0, - OS__BPC_CHAR = 1, - OS__BPC_U16 = 2, - OS__BPC_U32 = 4 - } bpc; /* Bytes per character */ - int ct_extensible; - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - if(pc) { - cval = &pc->value; - csiz = &pc->size; - } else { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - } - ct_extensible = csiz->flags & APC_EXTENSIBLE; - - switch(specs->subvariant) { - default: - /* case ASN_OSUBV_ANY: - ASN__ENCODE_FAILED; - */ - case ASN_OSUBV_BIT: - canonical_unit_bits = unit_bits = 1; - bpc = OS__BPC_BIT; - sizeinunits = st->size * 8 - (st->bits_unused & 0x07); - ASN_DEBUG("BIT STRING of %d bytes", - sizeinunits); - break; - case ASN_OSUBV_ANY: - case ASN_OSUBV_STR: - canonical_unit_bits = unit_bits = 8; -/* if(cval->flags & APC_CONSTRAINED) - unit_bits = 8; -*/ - bpc = OS__BPC_CHAR; - sizeinunits = st->size; - break; - case ASN_OSUBV_U16: - canonical_unit_bits = unit_bits = 16; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U16; - sizeinunits = st->size / 2; - break; - case ASN_OSUBV_U32: - canonical_unit_bits = unit_bits = 32; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U32; - sizeinunits = st->size / 4; - break; - } - - ASN_DEBUG("Encoding %s into %d units of %d bits" - " (%ld..%ld, effective %d)%s", - td->name, sizeinunits, unit_bits, - csiz->lower_bound, csiz->upper_bound, - csiz->effective_bits, ct_extensible ? " EXT" : ""); - - /* Figure out wheter size lies within PER visible constraint */ - - if(csiz->effective_bits >= 0) { - if((int)sizeinunits < csiz->lower_bound - || (int)sizeinunits > csiz->upper_bound) { - if(ct_extensible) { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - unit_bits = canonical_unit_bits; - inext = 1; - } else - ASN__ENCODE_FAILED; - } - } else { - inext = 0; - } - - - if(ct_extensible) { - /* Declare whether length is [not] within extension root */ - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - } - - /* X.691, #16.5: zero-length encoding */ - /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ - /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ - if(csiz->effective_bits >= 0) { - ASN_DEBUG("Encoding %lu bytes (%ld), length in %d bits", - st->size, sizeinunits - csiz->lower_bound, - csiz->effective_bits); - if (csiz->effective_bits > 0) { - ret = aper_put_length(po, csiz->upper_bound - csiz->lower_bound + 1, sizeinunits - csiz->lower_bound); - if(ret) ASN__ENCODE_FAILED; - } - /* EB MOD - AFAIU if lb != ub it is aligned whatever the number of bits */ - if ((st->size > 2) || (csiz->lower_bound != csiz->upper_bound)) { /* X.691 #16.11 */ - if (aper_put_align(po) < 0) - ASN__ENCODE_FAILED; - } - if(bpc) { - ret = OCTET_STRING_per_put_characters(po, st->buf, - sizeinunits, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - } else { - ret = per_put_many_bits(po, st->buf, - sizeinunits * unit_bits); - } - if(ret) ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - ASN_DEBUG("Encoding %lu bytes", st->size); - - if(sizeinunits == 0) { - if(aper_put_length(po, -1, 0)) - ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - buf = st->buf; - while(sizeinunits) { - ssize_t maySave = aper_put_length(po, -1, sizeinunits); - - if(maySave < 0) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %ld of %ld", - (long)maySave, (long)sizeinunits); - - if(bpc) { - ret = OCTET_STRING_per_put_characters(po, buf, - maySave, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - } else { - ret = per_put_many_bits(po, buf, maySave * unit_bits); - } - if(ret) ASN__ENCODE_FAILED; - - if(bpc) - buf += maySave * bpc; - else - buf += maySave >> 3; - sizeinunits -= maySave; - assert(!(maySave & 0x07) || !sizeinunits); - } - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -int -OCTET_STRING_print(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { - const char * const h2c = "0123456789ABCDEF"; - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - char scratch[16 * 3 + 4]; - char *p = scratch; - uint8_t *buf; - uint8_t *end; - size_t i; - - (void)td; /* Unused argument */ - - if(!st || (!st->buf && st->size)) - return (cb("", 8, app_key) < 0) ? -1 : 0; - - /* - * Dump the contents of the buffer in hexadecimal. - */ - buf = st->buf; - end = buf + st->size; - for(i = 0; buf < end; buf++, i++) { - if(!(i % 16) && (i || st->size > 16)) { - if(cb(scratch, p - scratch, app_key) < 0) - return -1; - _i_INDENT(1); - p = scratch; - } - *p++ = h2c[(*buf >> 4) & 0x0F]; - *p++ = h2c[*buf & 0x0F]; - *p++ = 0x20; - } - - if(p > scratch) { - p--; /* Remove the tail space */ - if(cb(scratch, p - scratch, app_key) < 0) - return -1; - } - - return 0; -} - -int -OCTET_STRING_print_utf8(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, asn_app_consume_bytes_f *cb, - void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - - (void)td; /* Unused argument */ - (void)ilevel; /* Unused argument */ - - if(st && (st->buf || !st->size)) { - return (cb(st->buf, st->size, app_key) < 0) ? -1 : 0; - } else { - return (cb("", 8, app_key) < 0) ? -1 : 0; - } -} - -void -OCTET_STRING_free(const asn_TYPE_descriptor_t *td, void *sptr, - enum asn_struct_free_method method) { - OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; - const asn_OCTET_STRING_specifics_t *specs; - asn_struct_ctx_t *ctx; - struct _stack *stck; - - if(!td || !st) - return; - - specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - ASN_DEBUG("Freeing %s as OCTET STRING", td->name); - - if(st->buf) { - FREEMEM(st->buf); - st->buf = 0; - } - - /* - * Remove decode-time stack. - */ - stck = (struct _stack *)ctx->ptr; - if(stck) { - while(stck->tail) { - struct _stack_el *sel = stck->tail; - stck->tail = sel->prev; - FREEMEM(sel); - } - FREEMEM(stck); - } - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(sptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(sptr, 0, - td->specifics - ? ((const asn_OCTET_STRING_specifics_t *)(td->specifics)) - ->struct_size - : sizeof(OCTET_STRING_t)); - break; - } -} - -/* - * Conversion routines. - */ -int -OCTET_STRING_fromBuf(OCTET_STRING_t *st, const char *str, int len) { - void *buf; - - if(st == 0 || (str == 0 && len)) { - errno = EINVAL; - return -1; - } - - /* - * Clear the OCTET STRING. - */ - if(str == NULL) { - FREEMEM(st->buf); - st->buf = 0; - st->size = 0; - return 0; - } - - /* Determine the original string size, if not explicitly given */ - if(len < 0) - len = strlen(str); - - /* Allocate and fill the memory */ - buf = MALLOC(len + 1); - if(buf == NULL) - return -1; - - memcpy(buf, str, len); - ((uint8_t *)buf)[len] = '\0'; /* Couldn't use memcpy(len+1)! */ - FREEMEM(st->buf); - st->buf = (uint8_t *)buf; - st->size = len; - - return 0; -} - -OCTET_STRING_t * -OCTET_STRING_new_fromBuf(const asn_TYPE_descriptor_t *td, const char *str, - int len) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - OCTET_STRING_t *st; - - st = (OCTET_STRING_t *)CALLOC(1, specs->struct_size); - if(st && str && OCTET_STRING_fromBuf(st, str, len)) { - FREEMEM(st); - st = NULL; - } - - return st; -} - -/* - * Lexicographically compare the common prefix of both strings, - * and if it is the same return -1 for the smallest string. - */ -int -OCTET_STRING_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics; - const OCTET_STRING_t *a = aptr; - const OCTET_STRING_t *b = bptr; - - assert(!specs || specs->subvariant != ASN_OSUBV_BIT); - - if(a && b) { - size_t common_prefix_size = a->size <= b->size ? a->size : b->size; - int ret = memcmp(a->buf, b->buf, common_prefix_size); - if(ret == 0) { - /* Figure out which string with equal prefixes is longer. */ - if(a->size < b->size) { - return -1; - } else if(a->size > b->size) { - return 1; - } else { - return 0; - } - } else { - return ret < 0 ? -1 : 1; - } - } else if(!a && !b) { - return 0; - } else if(!a) { - return -1; - } else { - return 1; - } - -} - -/* - * Biased function for randomizing character values around their limits. - */ -static uint32_t -OCTET_STRING__random_char(unsigned long lb, unsigned long ub) { - assert(lb <= ub); - switch(asn_random_between(0, 16)) { - case 0: - if(lb < ub) return lb + 1; - /* Fall through */ - case 1: - return lb; - case 2: - if(lb < ub) return ub - 1; - /* Fall through */ - case 3: - return ub; - default: - return asn_random_between(lb, ub); - } -} - - -size_t -OCTET_STRING_random_length_constrained( - const asn_TYPE_descriptor_t *td, - const asn_encoding_constraints_t *constraints, size_t max_length) { - const unsigned lengths[] = {0, 1, 2, 3, 4, 8, - 126, 127, 128, 16383, 16384, 16385, - 65534, 65535, 65536, 65537}; - size_t rnd_len; - - /* Figure out how far we should go */ - rnd_len = lengths[asn_random_between( - 0, sizeof(lengths) / sizeof(lengths[0]) - 1)]; - - if(!constraints || !constraints->per_constraints) - constraints = &td->encoding_constraints; - if(constraints->per_constraints) { - const asn_per_constraint_t *pc = &constraints->per_constraints->size; - if(pc->flags & APC_CONSTRAINED) { - long suggested_upper_bound = pc->upper_bound < (ssize_t)max_length - ? pc->upper_bound - : (ssize_t)max_length; - if(max_length <= (size_t)pc->lower_bound) { - return pc->lower_bound; - } - if(pc->flags & APC_EXTENSIBLE) { - switch(asn_random_between(0, 5)) { - case 0: - if(pc->lower_bound > 0) { - rnd_len = pc->lower_bound - 1; - break; - } - /* Fall through */ - case 1: - rnd_len = pc->upper_bound + 1; - break; - case 2: - /* Keep rnd_len from the table */ - if(rnd_len <= max_length) { - break; - } - /* Fall through */ - default: - rnd_len = asn_random_between(pc->lower_bound, - suggested_upper_bound); - } - } else { - rnd_len = - asn_random_between(pc->lower_bound, suggested_upper_bound); - } - } else { - rnd_len = asn_random_between(0, max_length); - } - } else if(rnd_len > max_length) { - rnd_len = asn_random_between(0, max_length); - } - - return rnd_len; -} - -asn_random_fill_result_t -OCTET_STRING_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - unsigned int unit_bytes = 1; - unsigned long clb = 0; /* Lower bound on char */ - unsigned long cub = 255; /* Higher bound on char value */ - uint8_t *buf; - uint8_t *bend; - uint8_t *b; - size_t rnd_len; - OCTET_STRING_t *st; - - if(max_length == 0 && !*sptr) return result_skipped; - - switch(specs->subvariant) { - default: - case ASN_OSUBV_ANY: - return result_failed; - case ASN_OSUBV_BIT: - /* Handled by BIT_STRING itself. */ - return result_failed; - case ASN_OSUBV_STR: - unit_bytes = 1; - clb = 0; - cub = 255; - break; - case ASN_OSUBV_U16: - unit_bytes = 2; - clb = 0; - cub = 65535; - break; - case ASN_OSUBV_U32: - unit_bytes = 4; - clb = 0; - cub = 0x10FFFF; - break; - } - - if(!constraints || !constraints->per_constraints) - constraints = &td->encoding_constraints; - if(constraints->per_constraints) { - const asn_per_constraint_t *pc = &constraints->per_constraints->value; - if(pc->flags & APC_SEMI_CONSTRAINED) { - clb = pc->lower_bound; - } else if(pc->flags & APC_CONSTRAINED) { - clb = pc->lower_bound; - cub = pc->upper_bound; - } - } - - rnd_len = - OCTET_STRING_random_length_constrained(td, constraints, max_length); - - buf = CALLOC(unit_bytes, rnd_len + 1); - if(!buf) return result_failed; - - bend = &buf[unit_bytes * rnd_len]; - - switch(unit_bytes) { - case 1: - for(b = buf; b < bend; b += unit_bytes) { - *(uint8_t *)b = OCTET_STRING__random_char(clb, cub); - } - *(uint8_t *)b = 0; - break; - case 2: - for(b = buf; b < bend; b += unit_bytes) { - uint32_t code = OCTET_STRING__random_char(clb, cub); - b[0] = code >> 8; - b[1] = code; - } - *(uint16_t *)b = 0; - break; - case 4: - for(b = buf; b < bend; b += unit_bytes) { - uint32_t code = OCTET_STRING__random_char(clb, cub); - b[0] = code >> 24; - b[1] = code >> 16; - b[2] = code >> 8; - b[3] = code; - } - *(uint32_t *)b = 0; - break; - } - - if(*sptr) { - st = *sptr; - FREEMEM(st->buf); - } else { - st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) { - FREEMEM(buf); - return result_failed; - } - } - - st->buf = buf; - st->size = unit_bytes * rnd_len; - - result_ok.length = st->size; - return result_ok; -} diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/OCTET_STRING.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/OCTET_STRING.h deleted file mode 100644 index c2f8bae..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/OCTET_STRING.h +++ /dev/null @@ -1,102 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _OCTET_STRING_H_ -#define _OCTET_STRING_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct OCTET_STRING { - uint8_t *buf; /* Buffer with consecutive OCTET_STRING bits */ - size_t size; /* Size of the buffer */ - - asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ -} OCTET_STRING_t; - -extern asn_TYPE_descriptor_t asn_DEF_OCTET_STRING; -extern asn_TYPE_operation_t asn_OP_OCTET_STRING; - -asn_struct_free_f OCTET_STRING_free; -asn_struct_print_f OCTET_STRING_print; -asn_struct_print_f OCTET_STRING_print_utf8; -asn_struct_compare_f OCTET_STRING_compare; -ber_type_decoder_f OCTET_STRING_decode_ber; -der_type_encoder_f OCTET_STRING_encode_der; -xer_type_decoder_f OCTET_STRING_decode_xer_hex; /* Hexadecimal */ -xer_type_decoder_f OCTET_STRING_decode_xer_binary; /* 01010111010 */ -xer_type_decoder_f OCTET_STRING_decode_xer_utf8; /* ASCII/UTF-8 */ -xer_type_encoder_f OCTET_STRING_encode_xer; -xer_type_encoder_f OCTET_STRING_encode_xer_utf8; -oer_type_decoder_f OCTET_STRING_decode_oer; -oer_type_encoder_f OCTET_STRING_encode_oer; -per_type_decoder_f OCTET_STRING_decode_uper; -per_type_encoder_f OCTET_STRING_encode_uper; -per_type_decoder_f OCTET_STRING_decode_aper; -per_type_encoder_f OCTET_STRING_encode_aper; -asn_random_fill_f OCTET_STRING_random_fill; - -#define OCTET_STRING_constraint asn_generic_no_constraint -#define OCTET_STRING_decode_xer OCTET_STRING_decode_xer_hex - -/****************************** - * Handy conversion routines. * - ******************************/ - -/* - * This function clears the previous value of the OCTET STRING (if any) - * and then allocates a new memory with the specified content (str/size). - * If size = -1, the size of the original string will be determined - * using strlen(str). - * If str equals to NULL, the function will silently clear the - * current contents of the OCTET STRING. - * Returns 0 if it was possible to perform operation, -1 otherwise. - */ -int OCTET_STRING_fromBuf(OCTET_STRING_t *s, const char *str, int size); - -/* Handy conversion from the C string into the OCTET STRING. */ -#define OCTET_STRING_fromString(s, str) OCTET_STRING_fromBuf(s, str, -1) - -/* - * Allocate and fill the new OCTET STRING and return a pointer to the newly - * allocated object. NULL is permitted in str: the function will just allocate - * empty OCTET STRING. - */ -OCTET_STRING_t *OCTET_STRING_new_fromBuf(const asn_TYPE_descriptor_t *td, - const char *str, int size); - -/**************************** - * Internally useful stuff. * - ****************************/ - -typedef struct asn_OCTET_STRING_specifics_s { - /* - * Target structure description. - */ - unsigned struct_size; /* Size of the structure */ - unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ - - enum asn_OS_Subvariant { - ASN_OSUBV_ANY, /* The open type (ANY) */ - ASN_OSUBV_BIT, /* BIT STRING */ - ASN_OSUBV_STR, /* String types, not {BMP,Universal}String */ - ASN_OSUBV_U16, /* 16-bit character (BMPString) */ - ASN_OSUBV_U32 /* 32-bit character (UniversalString) */ - } subvariant; -} asn_OCTET_STRING_specifics_t; - -extern asn_OCTET_STRING_specifics_t asn_SPC_OCTET_STRING_specs; - -size_t OCTET_STRING_random_length_constrained( - const asn_TYPE_descriptor_t *, const asn_encoding_constraints_t *, - size_t max_length); - -#ifdef __cplusplus -} -#endif - -#endif /* _OCTET_STRING_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/OCTET_STRING_oer.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/OCTET_STRING_oer.c deleted file mode 100644 index c16faea..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/OCTET_STRING_oer.c +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -asn_dec_rval_t -OCTET_STRING_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **sptr, - const void *ptr, size_t size) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr; - const asn_oer_constraints_t *cts = - constraints ? constraints : td->encoding_constraints.oer_constraints; - ssize_t ct_size = cts ? cts->size : -1; - asn_dec_rval_t rval = {RC_OK, 0}; - size_t expected_length = 0; - - size_t unit_bytes; - switch(specs->subvariant) { - default: - case ASN_OSUBV_BIT: - ASN_DEBUG("Invalid use of OCTET STRING to decode BIT STRING"); - ASN__DECODE_FAILED; - case ASN_OSUBV_ANY: - /* Fall through */ - case ASN_OSUBV_STR: - unit_bytes = 1; - break; - case ASN_OSUBV_U16: - unit_bytes = 2; - break; - case ASN_OSUBV_U32: - unit_bytes = 4; - break; - } - - (void)opt_codec_ctx; - - if(!st) { - st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) ASN__DECODE_FAILED; - } - - if(ct_size >= 0) { - expected_length = unit_bytes * ct_size; - } else { - /* - * X.696 (08/2015) #27.2 - * Encode length determinant as _number of octets_, but only - * if upper bound is not equal to lower bound. - */ - ssize_t len_len = oer_fetch_length(ptr, size, &expected_length); - if(len_len > 0) { - rval.consumed = len_len; - ptr = (const char *)ptr + len_len; - size -= len_len; - } else if(len_len == 0) { - ASN__DECODE_STARVED; - } else if(len_len < 0) { - ASN__DECODE_FAILED; - } - - if(expected_length % unit_bytes != 0) { - ASN_DEBUG( - "Data size %" ASN_PRI_SIZE " bytes is not consistent with multiplier %" ASN_PRI_SIZE "", - expected_length, unit_bytes); - ASN__DECODE_FAILED; - } - } - - if(size < expected_length) { - ASN__DECODE_STARVED; - } else { - uint8_t *buf = MALLOC(expected_length + 1); - if(buf == NULL) { - ASN__DECODE_FAILED; - } else { - memcpy(buf, ptr, expected_length); - buf[expected_length] = '\0'; - } - FREEMEM(st->buf); - st->buf = buf; - st->size = expected_length; - - rval.consumed += expected_length; - return rval; - } -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -OCTET_STRING_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - const void *sptr, asn_app_consume_bytes_f *cb, - void *app_key) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - const asn_oer_constraints_t *cts = - constraints ? constraints : td->encoding_constraints.oer_constraints; - ssize_t ct_size = cts ? cts->size : -1; - asn_enc_rval_t er = {0, 0, 0}; - - if(!st) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %s %" ASN_PRI_SIZE " as OCTET STRING", td ? td->name : "", st->size); - - if(ct_size >= 0) { - /* - * Check that available data matches the constraint - */ - size_t unit_bytes; - switch(specs->subvariant) { - default: - case ASN_OSUBV_BIT: - ASN_DEBUG("Invalid use of OCTET STRING to encode BIT STRING"); - ASN__ENCODE_FAILED; - case ASN_OSUBV_ANY: - /* Fall through */ - case ASN_OSUBV_STR: - unit_bytes = 1; - break; - case ASN_OSUBV_U16: - unit_bytes = 2; - break; - case ASN_OSUBV_U32: - unit_bytes = 4; - break; - } - - if(st->size != unit_bytes * (size_t)ct_size) { - ASN_DEBUG( - "Trying to encode %s (%" ASN_PRI_SIZE " bytes) which doesn't fit SIZE " - "constraint (%" ASN_PRI_SIZE ")", - td->name, st->size, ct_size); - ASN__ENCODE_FAILED; - } - } else { - /* - * X.696 (08/2015) #27.2 - * Encode length determinant as _number of octets_, but only - * if upper bound is not equal to lower bound. - */ - ssize_t ret = oer_serialize_length(st->size, cb, app_key); - if(ret < 0) { - ASN__ENCODE_FAILED; - } - er.encoded += ret; - } - - er.encoded += st->size; - if(cb(st->buf, st->size, app_key) < 0) { - ASN__ENCODE_FAILED; - } else { - ASN__ENCODED_OK(er); - } -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/OCUCP-PF-Container.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/OCUCP-PF-Container.c deleted file mode 100644 index 121932b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/OCUCP-PF-Container.c +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "OCUCP-PF-Container.h" - -static int -memb_numberOfActive_UEs_constraint_3(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 >= 1 && value <= 65536)) { - /* 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_numberOfActive_UEs_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_numberOfActive_UEs_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 16, -1, 1, 65536 } /* (1..65536,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_cu_CP_Resource_Status_3[] = { - { ATF_POINTER, 1, offsetof(struct OCUCP_PF_Container__cu_CP_Resource_Status, numberOfActive_UEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_numberOfActive_UEs_constr_4, &asn_PER_memb_numberOfActive_UEs_constr_4, memb_numberOfActive_UEs_constraint_3 }, - 0, 0, /* No default value */ - "numberOfActive-UEs" - }, -}; -static const int asn_MAP_cu_CP_Resource_Status_oms_3[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_cu_CP_Resource_Status_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_cu_CP_Resource_Status_tag2el_3[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* numberOfActive-UEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_cu_CP_Resource_Status_specs_3 = { - sizeof(struct OCUCP_PF_Container__cu_CP_Resource_Status), - offsetof(struct OCUCP_PF_Container__cu_CP_Resource_Status, _asn_ctx), - asn_MAP_cu_CP_Resource_Status_tag2el_3, - 1, /* Count of tags in the map */ - asn_MAP_cu_CP_Resource_Status_oms_3, /* Optional members */ - 1, 0, /* Root/Additions */ - -1, /* First extension addition */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_cu_CP_Resource_Status_3 = { - "cu-CP-Resource-Status", - "cu-CP-Resource-Status", - &asn_OP_SEQUENCE, - asn_DEF_cu_CP_Resource_Status_tags_3, - sizeof(asn_DEF_cu_CP_Resource_Status_tags_3) - /sizeof(asn_DEF_cu_CP_Resource_Status_tags_3[0]) - 1, /* 1 */ - asn_DEF_cu_CP_Resource_Status_tags_3, /* Same as above */ - sizeof(asn_DEF_cu_CP_Resource_Status_tags_3) - /sizeof(asn_DEF_cu_CP_Resource_Status_tags_3[0]), /* 2 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_cu_CP_Resource_Status_3, - 1, /* Elements count */ - &asn_SPC_cu_CP_Resource_Status_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_OCUCP_PF_Container_1[] = { - { ATF_POINTER, 1, offsetof(struct OCUCP_PF_Container, gNB_CU_CP_Name), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_CU_CP_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-CU-CP-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct OCUCP_PF_Container, cu_CP_Resource_Status), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_cu_CP_Resource_Status_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cu-CP-Resource-Status" - }, -}; -static const int asn_MAP_OCUCP_PF_Container_oms_1[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_OCUCP_PF_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_OCUCP_PF_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB-CU-CP-Name */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cu-CP-Resource-Status */ -}; -asn_SEQUENCE_specifics_t asn_SPC_OCUCP_PF_Container_specs_1 = { - sizeof(struct OCUCP_PF_Container), - offsetof(struct OCUCP_PF_Container, _asn_ctx), - asn_MAP_OCUCP_PF_Container_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_OCUCP_PF_Container_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_OCUCP_PF_Container = { - "OCUCP-PF-Container", - "OCUCP-PF-Container", - &asn_OP_SEQUENCE, - asn_DEF_OCUCP_PF_Container_tags_1, - sizeof(asn_DEF_OCUCP_PF_Container_tags_1) - /sizeof(asn_DEF_OCUCP_PF_Container_tags_1[0]), /* 1 */ - asn_DEF_OCUCP_PF_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_OCUCP_PF_Container_tags_1) - /sizeof(asn_DEF_OCUCP_PF_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_OCUCP_PF_Container_1, - 2, /* Elements count */ - &asn_SPC_OCUCP_PF_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/OCUCP-PF-Container.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/OCUCP-PF-Container.h deleted file mode 100644 index aee0f21..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/OCUCP-PF-Container.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _OCUCP_PF_Container_H_ -#define _OCUCP_PF_Container_H_ - - -#include - -/* Including external dependencies */ -#include "GNB-CU-CP-Name.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* OCUCP-PF-Container */ -typedef struct OCUCP_PF_Container { - GNB_CU_CP_Name_t *gNB_CU_CP_Name; /* OPTIONAL */ - struct OCUCP_PF_Container__cu_CP_Resource_Status { - long *numberOfActive_UEs; /* OPTIONAL */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } cu_CP_Resource_Status; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} OCUCP_PF_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_OCUCP_PF_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_OCUCP_PF_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_OCUCP_PF_Container_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _OCUCP_PF_Container_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/OCUUP-PF-Container.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/OCUUP-PF-Container.c deleted file mode 100644 index e1f754e..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/OCUUP-PF-Container.c +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "OCUUP-PF-Container.h" - -static int -memb_pf_ContainerList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 3)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_pf_ContainerList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..3)) */}; -static asn_per_constraints_t asn_PER_type_pf_ContainerList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pf_ContainerList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..3)) */}; -static asn_per_constraints_t asn_PER_memb_pf_ContainerList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_pf_ContainerList_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_PF_ContainerListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_pf_ContainerList_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_pf_ContainerList_specs_3 = { - sizeof(struct OCUUP_PF_Container__pf_ContainerList), - offsetof(struct OCUUP_PF_Container__pf_ContainerList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_pf_ContainerList_3 = { - "pf-ContainerList", - "pf-ContainerList", - &asn_OP_SEQUENCE_OF, - asn_DEF_pf_ContainerList_tags_3, - sizeof(asn_DEF_pf_ContainerList_tags_3) - /sizeof(asn_DEF_pf_ContainerList_tags_3[0]) - 1, /* 1 */ - asn_DEF_pf_ContainerList_tags_3, /* Same as above */ - sizeof(asn_DEF_pf_ContainerList_tags_3) - /sizeof(asn_DEF_pf_ContainerList_tags_3[0]), /* 2 */ - { &asn_OER_type_pf_ContainerList_constr_3, &asn_PER_type_pf_ContainerList_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_pf_ContainerList_3, - 1, /* Single element */ - &asn_SPC_pf_ContainerList_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_OCUUP_PF_Container_1[] = { - { ATF_POINTER, 1, offsetof(struct OCUUP_PF_Container, gNB_CU_UP_Name), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_CU_UP_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-CU-UP-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct OCUUP_PF_Container, pf_ContainerList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_pf_ContainerList_3, - 0, - { &asn_OER_memb_pf_ContainerList_constr_3, &asn_PER_memb_pf_ContainerList_constr_3, memb_pf_ContainerList_constraint_1 }, - 0, 0, /* No default value */ - "pf-ContainerList" - }, -}; -static const int asn_MAP_OCUUP_PF_Container_oms_1[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_OCUUP_PF_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_OCUUP_PF_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB-CU-UP-Name */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* pf-ContainerList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_OCUUP_PF_Container_specs_1 = { - sizeof(struct OCUUP_PF_Container), - offsetof(struct OCUUP_PF_Container, _asn_ctx), - asn_MAP_OCUUP_PF_Container_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_OCUUP_PF_Container_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_OCUUP_PF_Container = { - "OCUUP-PF-Container", - "OCUUP-PF-Container", - &asn_OP_SEQUENCE, - asn_DEF_OCUUP_PF_Container_tags_1, - sizeof(asn_DEF_OCUUP_PF_Container_tags_1) - /sizeof(asn_DEF_OCUUP_PF_Container_tags_1[0]), /* 1 */ - asn_DEF_OCUUP_PF_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_OCUUP_PF_Container_tags_1) - /sizeof(asn_DEF_OCUUP_PF_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_OCUUP_PF_Container_1, - 2, /* Elements count */ - &asn_SPC_OCUUP_PF_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/OCUUP-PF-Container.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/OCUUP-PF-Container.h deleted file mode 100644 index 9f19985..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/OCUUP-PF-Container.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _OCUUP_PF_Container_H_ -#define _OCUUP_PF_Container_H_ - - -#include - -/* Including external dependencies */ -#include "GNB-CU-UP-Name.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PF_ContainerListItem; - -/* OCUUP-PF-Container */ -typedef struct OCUUP_PF_Container { - GNB_CU_UP_Name_t *gNB_CU_UP_Name; /* OPTIONAL */ - struct OCUUP_PF_Container__pf_ContainerList { - A_SEQUENCE_OF(struct PF_ContainerListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } pf_ContainerList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} OCUUP_PF_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_OCUUP_PF_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_OCUUP_PF_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_OCUUP_PF_Container_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "PF-ContainerListItem.h" - -#endif /* _OCUUP_PF_Container_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ODU-PF-Container.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ODU-PF-Container.c deleted file mode 100644 index a28d59a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ODU-PF-Container.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "ODU-PF-Container.h" - -static int -memb_cellResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 512)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..512)) */}; -static asn_per_constraints_t asn_PER_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 1, 512 } /* (SIZE(1..512)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..512)) */}; -static asn_per_constraints_t asn_PER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 1, 512 } /* (SIZE(1..512)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_cellResourceReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CellResourceReportListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_cellResourceReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_cellResourceReportList_specs_2 = { - sizeof(struct ODU_PF_Container__cellResourceReportList), - offsetof(struct ODU_PF_Container__cellResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_cellResourceReportList_2 = { - "cellResourceReportList", - "cellResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_cellResourceReportList_tags_2, - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_cellResourceReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_cellResourceReportList_constr_2, &asn_PER_type_cellResourceReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_cellResourceReportList_2, - 1, /* Single element */ - &asn_SPC_cellResourceReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ODU_PF_Container_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ODU_PF_Container, cellResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_cellResourceReportList_2, - 0, - { &asn_OER_memb_cellResourceReportList_constr_2, &asn_PER_memb_cellResourceReportList_constr_2, memb_cellResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "cellResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_ODU_PF_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ODU_PF_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cellResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ODU_PF_Container_specs_1 = { - sizeof(struct ODU_PF_Container), - offsetof(struct ODU_PF_Container, _asn_ctx), - asn_MAP_ODU_PF_Container_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_ODU_PF_Container = { - "ODU-PF-Container", - "ODU-PF-Container", - &asn_OP_SEQUENCE, - asn_DEF_ODU_PF_Container_tags_1, - sizeof(asn_DEF_ODU_PF_Container_tags_1) - /sizeof(asn_DEF_ODU_PF_Container_tags_1[0]), /* 1 */ - asn_DEF_ODU_PF_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_ODU_PF_Container_tags_1) - /sizeof(asn_DEF_ODU_PF_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ODU_PF_Container_1, - 1, /* Elements count */ - &asn_SPC_ODU_PF_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ODU-PF-Container.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ODU-PF-Container.h deleted file mode 100644 index 4da50a3..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ODU-PF-Container.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _ODU_PF_Container_H_ -#define _ODU_PF_Container_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CellResourceReportListItem; - -/* ODU-PF-Container */ -typedef struct ODU_PF_Container { - struct ODU_PF_Container__cellResourceReportList { - A_SEQUENCE_OF(struct CellResourceReportListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } cellResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ODU_PF_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ODU_PF_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_ODU_PF_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_ODU_PF_Container_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "CellResourceReportListItem.h" - -#endif /* _ODU_PF_Container_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/OPEN_TYPE.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/OPEN_TYPE.c deleted file mode 100644 index a54e99c..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/OPEN_TYPE.c +++ /dev/null @@ -1,509 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include -#include -#include - -asn_TYPE_operation_t asn_OP_OPEN_TYPE = { - OPEN_TYPE_free, - OPEN_TYPE_print, - OPEN_TYPE_compare, - OPEN_TYPE_decode_ber, - OPEN_TYPE_encode_der, - OPEN_TYPE_decode_xer, - OPEN_TYPE_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, 0, /* No OER support, use "-gen-OER" to enable */ -#else - OPEN_TYPE_decode_oer, - OPEN_TYPE_encode_oer, -#endif -#ifdef ASN_DISABLE_PER_SUPPORT - 0, 0, 0, 0, -#else - OPEN_TYPE_decode_uper, - OPEN_TYPE_encode_uper, - OPEN_TYPE_decode_aper, - OPEN_TYPE_encode_aper, -#endif - 0, /* Random fill is not supported for open type */ - 0 /* Use generic outmost tag fetcher */ -}; - -#undef ADVANCE -#define ADVANCE(num_bytes) \ - do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -asn_dec_rval_t -OPEN_TYPE_ber_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - const asn_TYPE_member_t *elm, const void *ptr, size_t size) { - size_t consumed_myself = 0; - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) != 0) { - ASN__DECODE_FAILED; - } - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - ASN_DEBUG("presence %d\n", selected.presence_index); - - rv = selected.type_descriptor->op->ber_decoder( - opt_codec_ctx, selected.type_descriptor, &inner_value, ptr, size, - elm->tag_mode); - ADVANCE(rv.consumed); - rv.consumed = 0; - switch(rv.code) { - case RC_OK: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - rv.code = RC_OK; - rv.consumed = consumed_myself; - return rv; - } else { - /* Oh, now a full-blown failure failure */ - } - /* Fall through */ - case RC_FAIL: - rv.consumed = consumed_myself; - /* Fall through */ - case RC_WMORE: - break; - } - - if(*memb_ptr2) { - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_RESET(*selected.type_descriptor, - inner_value); - } - } - return rv; -} - -asn_dec_rval_t -OPEN_TYPE_xer_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - const asn_TYPE_member_t *elm, const void *ptr, size_t size) { - size_t consumed_myself = 0; - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - - int xer_context = 0; - ssize_t ch_size; - pxer_chunk_type_e ch_type; - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - assert(elm->flags == ATF_OPEN_TYPE); - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) - != 0) { - ASN__DECODE_FAILED; - } - } - - /* - * Confirm wrapper. - */ - for(;;) { - ch_size = xer_next_token(&xer_context, ptr, size, &ch_type); - if(ch_size < 0) { - ASN__DECODE_FAILED; - } else { - switch(ch_type) { - case PXER_WMORE: - ASN__DECODE_STARVED; - case PXER_COMMENT: - case PXER_TEXT: - ADVANCE(ch_size); - continue; - case PXER_TAG: - break; - } - break; - } - } - - /* - * Wrapper value confirmed. - */ - switch(xer_check_tag(ptr, ch_size, elm->name)) { - case XCT_OPENING: - ADVANCE(ch_size); - break; - case XCT_BROKEN: - default: - ASN__DECODE_FAILED; - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - rv = selected.type_descriptor->op->xer_decoder( - opt_codec_ctx, selected.type_descriptor, &inner_value, NULL, ptr, size); - ADVANCE(rv.consumed); - rv.consumed = 0; - switch(rv.code) { - case RC_OK: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - break; - } else { - rv.code = RC_FAIL; - } - /* Fall through */ - case RC_FAIL: - /* Point to a best position where failure occurred */ - rv.consumed = consumed_myself; - /* Fall through */ - case RC_WMORE: - /* Wrt. rv.consumed==0: - * In case a genuine RC_WMORE, the whole Open Type decoding - * will have to be restarted. - */ - if(*memb_ptr2) { - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_RESET(*selected.type_descriptor, - inner_value); - } - } - return rv; - } - - /* - * Finalize wrapper. - */ - for(;;) { - ch_size = xer_next_token(&xer_context, ptr, size, &ch_type); - if(ch_size < 0) { - ASN__DECODE_FAILED; - } else { - switch(ch_type) { - case PXER_WMORE: - ASN__DECODE_STARVED; - case PXER_COMMENT: - case PXER_TEXT: - ADVANCE(ch_size); - continue; - case PXER_TAG: - break; - } - break; - } - } - - /* - * Wrapper value confirmed. - */ - switch(xer_check_tag(ptr, ch_size, elm->name)) { - case XCT_CLOSING: - ADVANCE(ch_size); - break; - case XCT_BROKEN: - default: - ASN__DECODE_FAILED; - } - - rv.consumed += consumed_myself; - - return rv; -} - - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -OPEN_TYPE_uper_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - const asn_TYPE_member_t *elm, asn_per_data_t *pd) { - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - assert(elm->flags == ATF_OPEN_TYPE); - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) - != 0) { - ASN__DECODE_FAILED; - } - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - rv = uper_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL, - &inner_value, pd); - switch(rv.code) { - case RC_OK: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - break; - } else { - rv.code = RC_FAIL; - } - /* Fall through */ - case RC_WMORE: - case RC_FAIL: - if(*memb_ptr2) { - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_RESET(*selected.type_descriptor, - inner_value); - } - } - } - return rv; -} - -asn_enc_rval_t -OPEN_TYPE_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const void *memb_ptr; /* Pointer to the member */ - asn_TYPE_member_t *elm; /* CHOICE's element */ - asn_enc_rval_t er = {0,0,0}; - unsigned present; - - (void)constraints; - - present = CHOICE_variant_get_presence(td, sptr); - if(present == 0 || present > td->elements_count) { - ASN__ENCODE_FAILED; - } else { - present--; - } - - ASN_DEBUG("Encoding %s OPEN TYPE element %d", td->name, present); - - elm = &td->elements[present]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const char *)sptr + elm->memb_offset; - } - - if(uper_open_type_put(elm->type, NULL, memb_ptr, po) < 0) { - ASN__ENCODE_FAILED; - } - - er.encoded = 0; - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -OPEN_TYPE_aper_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - const asn_TYPE_member_t *elm, asn_per_data_t *pd) { - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - assert(elm->flags == ATF_OPEN_TYPE); - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) - != 0) { - ASN__DECODE_FAILED; - } - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - rv = aper_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL, - &inner_value, pd); - switch(rv.code) { - case RC_OK: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - break; - } else { - rv.code = RC_FAIL; - } - /* Fall through */ - case RC_WMORE: - case RC_FAIL: - if(*memb_ptr2) { - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_RESET(*selected.type_descriptor, - inner_value); - } - } - } - return rv; -} - -asn_enc_rval_t -OPEN_TYPE_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const void *memb_ptr; /* Pointer to the member */ - asn_TYPE_member_t *elm; /* CHOICE's element */ - asn_enc_rval_t er = {0,0,0}; - unsigned present; - - (void)constraints; - - present = CHOICE_variant_get_presence(td, sptr); - if(present == 0 || present > td->elements_count) { - ASN__ENCODE_FAILED; - } else { - present--; - } - - ASN_DEBUG("Encoding %s OPEN TYPE element %d", td->name, present); - - elm = &td->elements[present]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const char *)sptr + elm->memb_offset; - } - - if(aper_open_type_put(elm->type, NULL, memb_ptr, po) < 0) { - ASN__ENCODE_FAILED; - } - - er.encoded = 0; - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/OPEN_TYPE.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/OPEN_TYPE.h deleted file mode 100644 index b0d023c..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/OPEN_TYPE.h +++ /dev/null @@ -1,77 +0,0 @@ -/*- - * Copyright (c) 2017-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_OPEN_TYPE_H -#define ASN_OPEN_TYPE_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#define OPEN_TYPE_free CHOICE_free -#define OPEN_TYPE_print CHOICE_print -#define OPEN_TYPE_compare CHOICE_compare -#define OPEN_TYPE_constraint CHOICE_constraint -#define OPEN_TYPE_decode_ber NULL -#define OPEN_TYPE_encode_der CHOICE_encode_der -#define OPEN_TYPE_decode_xer NULL -#define OPEN_TYPE_encode_xer CHOICE_encode_xer -#define OPEN_TYPE_decode_oer NULL -#define OPEN_TYPE_encode_oer CHOICE_encode_oer -#define OPEN_TYPE_decode_uper NULL -#define OPEN_TYPE_decode_aper NULL - -extern asn_TYPE_operation_t asn_OP_OPEN_TYPE; - -/* - * Decode an Open Type which is potentially constraiend - * by the other members of the parent structure. - */ -asn_dec_rval_t OPEN_TYPE_ber_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - const asn_TYPE_member_t *element, - const void *ptr, size_t size); - -asn_dec_rval_t OPEN_TYPE_xer_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - const asn_TYPE_member_t *element, - const void *ptr, size_t size); - -asn_dec_rval_t OPEN_TYPE_oer_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - asn_TYPE_member_t *element, const void *ptr, - size_t size); - -asn_dec_rval_t OPEN_TYPE_uper_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - const asn_TYPE_member_t *element, - asn_per_data_t *pd); - -asn_dec_rval_t OPEN_TYPE_aper_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - const asn_TYPE_member_t *element, - asn_per_data_t *pd); - -asn_enc_rval_t OPEN_TYPE_encode_uper( - const asn_TYPE_descriptor_t *type_descriptor, - const asn_per_constraints_t *constraints, const void *struct_ptr, - asn_per_outp_t *per_output); - -asn_enc_rval_t OPEN_TYPE_encode_aper( - const asn_TYPE_descriptor_t *type_descriptor, - const asn_per_constraints_t *constraints, const void *struct_ptr, - asn_per_outp_t *per_output); - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_OPEN_TYPE_H */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/OPEN_TYPE_oer.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/OPEN_TYPE_oer.c deleted file mode 100644 index dd2f5c6..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/OPEN_TYPE_oer.c +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include -#include - -asn_dec_rval_t -OPEN_TYPE_oer_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - asn_TYPE_member_t *elm, const void *ptr, size_t size) { - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - size_t ot_ret; - - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) != 0) { - ASN__DECODE_FAILED; - } - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - ot_ret = oer_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL, - &inner_value, ptr, size); - switch(ot_ret) { - default: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - rv.code = RC_OK; - rv.consumed = ot_ret; - return rv; - } else { - /* Oh, now a full-blown failure failure */ - } - /* Fall through */ - case -1: - rv.code = RC_FAIL; - rv.consumed = ot_ret; - break; - case 0: - rv.code = RC_WMORE; - rv.consumed = 0; - break; - } - - if(*memb_ptr2) { - const asn_CHOICE_specifics_t *specs = - selected.type_descriptor->specifics; - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_FREE_CONTENTS_ONLY(*selected.type_descriptor, - inner_value); - memset(*memb_ptr2, 0, specs->struct_size); - } - } - return rv; -} diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PF-Container.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PF-Container.c deleted file mode 100644 index ce46255..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PF-Container.c +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PF-Container.h" - -static asn_oer_constraints_t asn_OER_type_PF_Container_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_PF_Container_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 */ -}; -asn_TYPE_member_t asn_MBR_PF_Container_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct PF_Container, choice.oDU), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ODU_PF_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oDU" - }, - { ATF_NOFLAGS, 0, offsetof(struct PF_Container, choice.oCU_CP), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCUCP_PF_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oCU-CP" - }, - { ATF_NOFLAGS, 0, offsetof(struct PF_Container, choice.oCU_UP), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCUUP_PF_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oCU-UP" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_PF_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* oDU */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* oCU-CP */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* oCU-UP */ -}; -asn_CHOICE_specifics_t asn_SPC_PF_Container_specs_1 = { - sizeof(struct PF_Container), - offsetof(struct PF_Container, _asn_ctx), - offsetof(struct PF_Container, present), - sizeof(((struct PF_Container *)0)->present), - asn_MAP_PF_Container_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, - 3 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_PF_Container = { - "PF-Container", - "PF-Container", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_PF_Container_constr_1, &asn_PER_type_PF_Container_constr_1, CHOICE_constraint }, - asn_MBR_PF_Container_1, - 3, /* Elements count */ - &asn_SPC_PF_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PF-Container.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PF-Container.h deleted file mode 100644 index 853642a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PF-Container.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _PF_Container_H_ -#define _PF_Container_H_ - - -#include - -/* Including external dependencies */ -#include "ODU-PF-Container.h" -#include "OCUCP-PF-Container.h" -#include "OCUUP-PF-Container.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum PF_Container_PR { - PF_Container_PR_NOTHING, /* No components present */ - PF_Container_PR_oDU, - PF_Container_PR_oCU_CP, - PF_Container_PR_oCU_UP - /* Extensions may appear below */ - -} PF_Container_PR; - -/* PF-Container */ -typedef struct PF_Container { - PF_Container_PR present; - union PF_Container_u { - ODU_PF_Container_t oDU; - OCUCP_PF_Container_t oCU_CP; - OCUUP_PF_Container_t oCU_UP; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PF_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PF_Container; -extern asn_CHOICE_specifics_t asn_SPC_PF_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_PF_Container_1[3]; -extern asn_per_constraints_t asn_PER_type_PF_Container_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _PF_Container_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PF-ContainerListItem.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PF-ContainerListItem.c deleted file mode 100644 index e3aad2c..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PF-ContainerListItem.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PF-ContainerListItem.h" - -asn_TYPE_member_t asn_MBR_PF_ContainerListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct PF_ContainerListItem, interface_type), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NI_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "interface-type" - }, - { ATF_NOFLAGS, 0, offsetof(struct PF_ContainerListItem, o_CU_UP_PM_Container), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CUUPMeasurement_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "o-CU-UP-PM-Container" - }, -}; -static const ber_tlv_tag_t asn_DEF_PF_ContainerListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_PF_ContainerListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* interface-type */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* o-CU-UP-PM-Container */ -}; -asn_SEQUENCE_specifics_t asn_SPC_PF_ContainerListItem_specs_1 = { - sizeof(struct PF_ContainerListItem), - offsetof(struct PF_ContainerListItem, _asn_ctx), - asn_MAP_PF_ContainerListItem_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_PF_ContainerListItem = { - "PF-ContainerListItem", - "PF-ContainerListItem", - &asn_OP_SEQUENCE, - asn_DEF_PF_ContainerListItem_tags_1, - sizeof(asn_DEF_PF_ContainerListItem_tags_1) - /sizeof(asn_DEF_PF_ContainerListItem_tags_1[0]), /* 1 */ - asn_DEF_PF_ContainerListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_PF_ContainerListItem_tags_1) - /sizeof(asn_DEF_PF_ContainerListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PF_ContainerListItem_1, - 2, /* Elements count */ - &asn_SPC_PF_ContainerListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PF-ContainerListItem.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PF-ContainerListItem.h deleted file mode 100644 index bc4495e..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PF-ContainerListItem.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _PF_ContainerListItem_H_ -#define _PF_ContainerListItem_H_ - - -#include - -/* Including external dependencies */ -#include "NI-Type.h" -#include "CUUPMeasurement-Container.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* PF-ContainerListItem */ -typedef struct PF_ContainerListItem { - NI_Type_t interface_type; - CUUPMeasurement_Container_t o_CU_UP_PM_Container; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PF_ContainerListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PF_ContainerListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_PF_ContainerListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_PF_ContainerListItem_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _PF_ContainerListItem_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PLMN-Identity.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PLMN-Identity.c deleted file mode 100644 index e3754f8..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PLMN-Identity.c +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PLMN-Identity.h" - -int -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; - - 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 == 3)) { - /* 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 OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -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_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_Identity_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_PLMN_Identity = { - "PLMN-Identity", - "PLMN-Identity", - &asn_OP_OCTET_STRING, - 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/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PLMN-Identity.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PLMN-Identity.h deleted file mode 100644 index 6835400..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PLMN-Identity.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#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/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PM-Containers-List.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PM-Containers-List.c deleted file mode 100644 index 326ec75..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PM-Containers-List.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PM-Containers-List.h" - -asn_TYPE_member_t asn_MBR_PM_Containers_List_1[] = { - { ATF_POINTER, 2, offsetof(struct PM_Containers_List, performanceContainer), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_PF_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "performanceContainer" - }, - { ATF_POINTER, 1, offsetof(struct PM_Containers_List, theRANContainer), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RAN_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "theRANContainer" - }, -}; -static const int asn_MAP_PM_Containers_List_oms_1[] = { 0, 1 }; -static const ber_tlv_tag_t asn_DEF_PM_Containers_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_PM_Containers_List_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* performanceContainer */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* theRANContainer */ -}; -asn_SEQUENCE_specifics_t asn_SPC_PM_Containers_List_specs_1 = { - sizeof(struct PM_Containers_List), - offsetof(struct PM_Containers_List, _asn_ctx), - asn_MAP_PM_Containers_List_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_PM_Containers_List_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PM_Containers_List = { - "PM-Containers-List", - "PM-Containers-List", - &asn_OP_SEQUENCE, - asn_DEF_PM_Containers_List_tags_1, - sizeof(asn_DEF_PM_Containers_List_tags_1) - /sizeof(asn_DEF_PM_Containers_List_tags_1[0]), /* 1 */ - asn_DEF_PM_Containers_List_tags_1, /* Same as above */ - sizeof(asn_DEF_PM_Containers_List_tags_1) - /sizeof(asn_DEF_PM_Containers_List_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PM_Containers_List_1, - 2, /* Elements count */ - &asn_SPC_PM_Containers_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PM-Containers-List.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PM-Containers-List.h deleted file mode 100644 index 0a99c3b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PM-Containers-List.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _PM_Containers_List_H_ -#define _PM_Containers_List_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PF_Container; -struct RAN_Container; - -/* PM-Containers-List */ -typedef struct PM_Containers_List { - struct PF_Container *performanceContainer; /* OPTIONAL */ - struct RAN_Container *theRANContainer; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PM_Containers_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PM_Containers_List; -extern asn_SEQUENCE_specifics_t asn_SPC_PM_Containers_List_specs_1; -extern asn_TYPE_member_t asn_MBR_PM_Containers_List_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "PF-Container.h" -#include "RAN-Container.h" - -#endif /* _PM_Containers_List_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PerQCIReportListItem.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PerQCIReportListItem.c deleted file mode 100644 index 1c57dfd..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PerQCIReportListItem.c +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PerQCIReportListItem.h" - -static int -memb_qci_constraint_1(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; - } -} - -static int -memb_dl_PRBUsage_constraint_1(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 <= 100)) { - /* 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_ul_PRBUsage_constraint_1(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 <= 100)) { - /* 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_qci_constr_2 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_qci_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_dl_PRBUsage_constr_3 CC_NOTUSED = { - { 1, 1 } /* (0..100) */, - -1}; -static asn_per_constraints_t asn_PER_memb_dl_PRBUsage_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = { - { 1, 1 } /* (0..100) */, - -1}; -static asn_per_constraints_t asn_PER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_PerQCIReportListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct PerQCIReportListItem, qci), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_qci_constr_2, &asn_PER_memb_qci_constr_2, memb_qci_constraint_1 }, - 0, 0, /* No default value */ - "qci" - }, - { ATF_POINTER, 2, offsetof(struct PerQCIReportListItem, dl_PRBUsage), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_dl_PRBUsage_constr_3, &asn_PER_memb_dl_PRBUsage_constr_3, memb_dl_PRBUsage_constraint_1 }, - 0, 0, /* No default value */ - "dl-PRBUsage" - }, - { ATF_POINTER, 1, offsetof(struct PerQCIReportListItem, ul_PRBUsage), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_ul_PRBUsage_constr_4, &asn_PER_memb_ul_PRBUsage_constr_4, memb_ul_PRBUsage_constraint_1 }, - 0, 0, /* No default value */ - "ul-PRBUsage" - }, -}; -static const int asn_MAP_PerQCIReportListItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_PerQCIReportListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_PerQCIReportListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qci */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dl-PRBUsage */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ul-PRBUsage */ -}; -asn_SEQUENCE_specifics_t asn_SPC_PerQCIReportListItem_specs_1 = { - sizeof(struct PerQCIReportListItem), - offsetof(struct PerQCIReportListItem, _asn_ctx), - asn_MAP_PerQCIReportListItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_PerQCIReportListItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PerQCIReportListItem = { - "PerQCIReportListItem", - "PerQCIReportListItem", - &asn_OP_SEQUENCE, - asn_DEF_PerQCIReportListItem_tags_1, - sizeof(asn_DEF_PerQCIReportListItem_tags_1) - /sizeof(asn_DEF_PerQCIReportListItem_tags_1[0]), /* 1 */ - asn_DEF_PerQCIReportListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_PerQCIReportListItem_tags_1) - /sizeof(asn_DEF_PerQCIReportListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PerQCIReportListItem_1, - 3, /* Elements count */ - &asn_SPC_PerQCIReportListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PerQCIReportListItem.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PerQCIReportListItem.h deleted file mode 100644 index 32508ea..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PerQCIReportListItem.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _PerQCIReportListItem_H_ -#define _PerQCIReportListItem_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* PerQCIReportListItem */ -typedef struct PerQCIReportListItem { - long qci; - long *dl_PRBUsage; /* OPTIONAL */ - long *ul_PRBUsage; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PerQCIReportListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PerQCIReportListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_PerQCIReportListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_PerQCIReportListItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _PerQCIReportListItem_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PerQCIReportListItemFormat.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PerQCIReportListItemFormat.c deleted file mode 100644 index 239cbd8..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PerQCIReportListItemFormat.c +++ /dev/null @@ -1,183 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PerQCIReportListItemFormat.h" - -static int -memb_qci_constraint_1(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; - } -} - -static int -memb_pDCPBytesDL_constraint_1(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 <= 10000000000)) { - /* 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_pDCPBytesUL_constraint_1(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 <= 10000000000)) { - /* 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_qci_constr_2 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_qci_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pDCPBytesDL_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_pDCPBytesDL_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 34, -1, 0, 10000000000 } /* (0..10000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 34, -1, 0, 10000000000 } /* (0..10000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_PerQCIReportListItemFormat_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct PerQCIReportListItemFormat, qci), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_qci_constr_2, &asn_PER_memb_qci_constr_2, memb_qci_constraint_1 }, - 0, 0, /* No default value */ - "qci" - }, - { ATF_POINTER, 2, offsetof(struct PerQCIReportListItemFormat, pDCPBytesDL), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_INTEGER, - 0, - { &asn_OER_memb_pDCPBytesDL_constr_3, &asn_PER_memb_pDCPBytesDL_constr_3, memb_pDCPBytesDL_constraint_1 }, - 0, 0, /* No default value */ - "pDCPBytesDL" - }, - { ATF_POINTER, 1, offsetof(struct PerQCIReportListItemFormat, pDCPBytesUL), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_INTEGER, - 0, - { &asn_OER_memb_pDCPBytesUL_constr_4, &asn_PER_memb_pDCPBytesUL_constr_4, memb_pDCPBytesUL_constraint_1 }, - 0, 0, /* No default value */ - "pDCPBytesUL" - }, -}; -static const int asn_MAP_PerQCIReportListItemFormat_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_PerQCIReportListItemFormat_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_PerQCIReportListItemFormat_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qci */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDCPBytesDL */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* pDCPBytesUL */ -}; -asn_SEQUENCE_specifics_t asn_SPC_PerQCIReportListItemFormat_specs_1 = { - sizeof(struct PerQCIReportListItemFormat), - offsetof(struct PerQCIReportListItemFormat, _asn_ctx), - asn_MAP_PerQCIReportListItemFormat_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_PerQCIReportListItemFormat_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PerQCIReportListItemFormat = { - "PerQCIReportListItemFormat", - "PerQCIReportListItemFormat", - &asn_OP_SEQUENCE, - asn_DEF_PerQCIReportListItemFormat_tags_1, - sizeof(asn_DEF_PerQCIReportListItemFormat_tags_1) - /sizeof(asn_DEF_PerQCIReportListItemFormat_tags_1[0]), /* 1 */ - asn_DEF_PerQCIReportListItemFormat_tags_1, /* Same as above */ - sizeof(asn_DEF_PerQCIReportListItemFormat_tags_1) - /sizeof(asn_DEF_PerQCIReportListItemFormat_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PerQCIReportListItemFormat_1, - 3, /* Elements count */ - &asn_SPC_PerQCIReportListItemFormat_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PerQCIReportListItemFormat.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PerQCIReportListItemFormat.h deleted file mode 100644 index 7fb1ecf..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PerQCIReportListItemFormat.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _PerQCIReportListItemFormat_H_ -#define _PerQCIReportListItemFormat_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* PerQCIReportListItemFormat */ -typedef struct PerQCIReportListItemFormat { - long qci; - INTEGER_t *pDCPBytesDL; /* OPTIONAL */ - INTEGER_t *pDCPBytesUL; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PerQCIReportListItemFormat_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PerQCIReportListItemFormat; -extern asn_SEQUENCE_specifics_t asn_SPC_PerQCIReportListItemFormat_specs_1; -extern asn_TYPE_member_t asn_MBR_PerQCIReportListItemFormat_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _PerQCIReportListItemFormat_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PlmnID-List.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PlmnID-List.c deleted file mode 100644 index 2126cf5..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PlmnID-List.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PlmnID-List.h" - -asn_TYPE_member_t asn_MBR_PlmnID_List_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct PlmnID_List, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_POINTER, 2, offsetof(struct PlmnID_List, cu_UP_PM_5GC), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_FGC_CUUP_PM_Format, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cu-UP-PM-5GC" - }, - { ATF_POINTER, 1, offsetof(struct PlmnID_List, cu_UP_PM_EPC), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_EPC_CUUP_PM_Format, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cu-UP-PM-EPC" - }, -}; -static const int asn_MAP_PlmnID_List_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_PlmnID_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_PlmnID_List_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cu-UP-PM-5GC */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* cu-UP-PM-EPC */ -}; -asn_SEQUENCE_specifics_t asn_SPC_PlmnID_List_specs_1 = { - sizeof(struct PlmnID_List), - offsetof(struct PlmnID_List, _asn_ctx), - asn_MAP_PlmnID_List_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_PlmnID_List_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PlmnID_List = { - "PlmnID-List", - "PlmnID-List", - &asn_OP_SEQUENCE, - asn_DEF_PlmnID_List_tags_1, - sizeof(asn_DEF_PlmnID_List_tags_1) - /sizeof(asn_DEF_PlmnID_List_tags_1[0]), /* 1 */ - asn_DEF_PlmnID_List_tags_1, /* Same as above */ - sizeof(asn_DEF_PlmnID_List_tags_1) - /sizeof(asn_DEF_PlmnID_List_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PlmnID_List_1, - 3, /* Elements count */ - &asn_SPC_PlmnID_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PlmnID-List.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PlmnID-List.h deleted file mode 100644 index 79d1dd5..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PlmnID-List.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _PlmnID_List_H_ -#define _PlmnID_List_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct FGC_CUUP_PM_Format; -struct EPC_CUUP_PM_Format; - -/* PlmnID-List */ -typedef struct PlmnID_List { - PLMN_Identity_t pLMN_Identity; - struct FGC_CUUP_PM_Format *cu_UP_PM_5GC; /* OPTIONAL */ - struct EPC_CUUP_PM_Format *cu_UP_PM_EPC; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PlmnID_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PlmnID_List; -extern asn_SEQUENCE_specifics_t asn_SPC_PlmnID_List_specs_1; -extern asn_TYPE_member_t asn_MBR_PlmnID_List_1[3]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "FGC-CUUP-PM-Format.h" -#include "EPC-CUUP-PM-Format.h" - -#endif /* _PlmnID_List_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Presence.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Presence.c deleted file mode 100644 index 4f55ae3..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Presence.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "Presence.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_Presence_constr_1 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_INTEGER_enum_map_t asn_MAP_Presence_value2enum_1[] = { - { 0, 8, "optional" }, - { 1, 11, "conditional" }, - { 2, 9, "mandatory" } -}; -static const unsigned int asn_MAP_Presence_enum2value_1[] = { - 1, /* conditional(1) */ - 2, /* mandatory(2) */ - 0 /* optional(0) */ -}; -const asn_INTEGER_specifics_t asn_SPC_Presence_specs_1 = { - asn_MAP_Presence_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_Presence_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 0, /* Enumeration is not extensible */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_Presence_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Presence = { - "Presence", - "Presence", - &asn_OP_NativeEnumerated, - asn_DEF_Presence_tags_1, - sizeof(asn_DEF_Presence_tags_1) - /sizeof(asn_DEF_Presence_tags_1[0]), /* 1 */ - asn_DEF_Presence_tags_1, /* Same as above */ - sizeof(asn_DEF_Presence_tags_1) - /sizeof(asn_DEF_Presence_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Presence_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_Presence_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Presence.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Presence.h deleted file mode 100644 index 8f93430..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Presence.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _Presence_H_ -#define _Presence_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum Presence { - Presence_optional = 0, - Presence_conditional = 1, - Presence_mandatory = 2 -} e_Presence; - -/* Presence */ -typedef long Presence_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Presence_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Presence; -extern const asn_INTEGER_specifics_t asn_SPC_Presence_specs_1; -asn_struct_free_f Presence_free; -asn_struct_print_f Presence_print; -asn_constr_check_f Presence_constraint; -ber_type_decoder_f Presence_decode_ber; -der_type_encoder_f Presence_encode_der; -xer_type_decoder_f Presence_decode_xer; -xer_type_encoder_f Presence_encode_xer; -per_type_decoder_f Presence_decode_uper; -per_type_encoder_f Presence_encode_uper; -per_type_decoder_f Presence_decode_aper; -per_type_encoder_f Presence_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Presence_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PrintableString.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PrintableString.c deleted file mode 100644 index 8fc3939..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PrintableString.c +++ /dev/null @@ -1,130 +0,0 @@ -/*- - * 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/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PrintableString.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PrintableString.h deleted file mode 100644 index 8c2b61a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/PrintableString.h +++ /dev/null @@ -1,37 +0,0 @@ -/*- - * 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/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProcedureCode.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProcedureCode.c deleted file mode 100644 index 0e488d4..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProcedureCode.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProcedureCode.h" - -int -ProcedureCode_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. - */ -asn_per_constraints_t asn_PER_type_ProcedureCode_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 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_ProcedureCode_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProcedureCode = { - "ProcedureCode", - "ProcedureCode", - &asn_OP_NativeInteger, - asn_DEF_ProcedureCode_tags_1, - sizeof(asn_DEF_ProcedureCode_tags_1) - /sizeof(asn_DEF_ProcedureCode_tags_1[0]), /* 1 */ - asn_DEF_ProcedureCode_tags_1, /* Same as above */ - sizeof(asn_DEF_ProcedureCode_tags_1) - /sizeof(asn_DEF_ProcedureCode_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ProcedureCode_constr_1, ProcedureCode_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProcedureCode.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProcedureCode.h deleted file mode 100644 index a2e8fe8..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProcedureCode.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProcedureCode_H_ -#define _ProcedureCode_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ProcedureCode */ -typedef long ProcedureCode_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ProcedureCode_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ProcedureCode; -asn_struct_free_f ProcedureCode_free; -asn_struct_print_f ProcedureCode_print; -asn_constr_check_f ProcedureCode_constraint; -ber_type_decoder_f ProcedureCode_decode_ber; -der_type_encoder_f ProcedureCode_encode_der; -xer_type_decoder_f ProcedureCode_decode_xer; -xer_type_encoder_f ProcedureCode_encode_xer; -per_type_decoder_f ProcedureCode_decode_uper; -per_type_encoder_f ProcedureCode_encode_uper; -per_type_decoder_f ProcedureCode_decode_aper; -per_type_encoder_f ProcedureCode_encode_aper; -#define ProcedureCode_id_E2setup ((ProcedureCode_t)1) -#define ProcedureCode_id_ErrorIndication ((ProcedureCode_t)2) -#define ProcedureCode_id_Reset ((ProcedureCode_t)3) -#define ProcedureCode_id_RICcontrol ((ProcedureCode_t)4) -#define ProcedureCode_id_RICindication ((ProcedureCode_t)5) -#define ProcedureCode_id_RICserviceQuery ((ProcedureCode_t)6) -#define ProcedureCode_id_RICserviceUpdate ((ProcedureCode_t)7) -#define ProcedureCode_id_RICsubscription ((ProcedureCode_t)8) -#define ProcedureCode_id_RICsubscriptionDelete ((ProcedureCode_t)9) - -#ifdef __cplusplus -} -#endif - -#endif /* _ProcedureCode_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-Container.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-Container.c deleted file mode 100644 index 4046387..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-Container.c +++ /dev/null @@ -1,810 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProtocolIE-Container.h" - -#include "ProtocolIE-Field.h" -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P0_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P1_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P2_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P3_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P4_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P5_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P6_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P7_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P8_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P9_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P10_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P11_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P12_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P13_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P14_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P15_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P16_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P17_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P18_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P19_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_Container_1527P0_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P0_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P0_specs_1 = { - sizeof(struct ProtocolIE_Container_1527P0), - offsetof(struct ProtocolIE_Container_1527P0, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P0 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P0_tags_1, - sizeof(asn_DEF_ProtocolIE_Container_1527P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_Container_1527P0_tags_1[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P0_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_Container_1527P0_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P0_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P0_1, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P0_specs_1 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P1_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionResponse_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P1_tags_3[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P1_specs_3 = { - sizeof(struct ProtocolIE_Container_1527P1), - offsetof(struct ProtocolIE_Container_1527P1, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P1 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P1_tags_3, - sizeof(asn_DEF_ProtocolIE_Container_1527P1_tags_3) - /sizeof(asn_DEF_ProtocolIE_Container_1527P1_tags_3[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P1_tags_3, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P1_tags_3) - /sizeof(asn_DEF_ProtocolIE_Container_1527P1_tags_3[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P1_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P1_3, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P1_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P2_5[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P2_tags_5[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P2_specs_5 = { - sizeof(struct ProtocolIE_Container_1527P2), - offsetof(struct ProtocolIE_Container_1527P2, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P2 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P2_tags_5, - sizeof(asn_DEF_ProtocolIE_Container_1527P2_tags_5) - /sizeof(asn_DEF_ProtocolIE_Container_1527P2_tags_5[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P2_tags_5, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P2_tags_5) - /sizeof(asn_DEF_ProtocolIE_Container_1527P2_tags_5[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P2_constr_5, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P2_5, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P2_specs_5 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P3_7[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P3_tags_7[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P3_specs_7 = { - sizeof(struct ProtocolIE_Container_1527P3), - offsetof(struct ProtocolIE_Container_1527P3, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P3 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P3_tags_7, - sizeof(asn_DEF_ProtocolIE_Container_1527P3_tags_7) - /sizeof(asn_DEF_ProtocolIE_Container_1527P3_tags_7[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P3_tags_7, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P3_tags_7) - /sizeof(asn_DEF_ProtocolIE_Container_1527P3_tags_7[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P3_constr_7, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P3_7, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P3_specs_7 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P4_9[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteResponse_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P4_tags_9[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P4_specs_9 = { - sizeof(struct ProtocolIE_Container_1527P4), - offsetof(struct ProtocolIE_Container_1527P4, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P4 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P4_tags_9, - sizeof(asn_DEF_ProtocolIE_Container_1527P4_tags_9) - /sizeof(asn_DEF_ProtocolIE_Container_1527P4_tags_9[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P4_tags_9, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P4_tags_9) - /sizeof(asn_DEF_ProtocolIE_Container_1527P4_tags_9[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P4_constr_9, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P4_9, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P4_specs_9 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P5_11[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P5_tags_11[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P5_specs_11 = { - sizeof(struct ProtocolIE_Container_1527P5), - offsetof(struct ProtocolIE_Container_1527P5, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P5 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P5_tags_11, - sizeof(asn_DEF_ProtocolIE_Container_1527P5_tags_11) - /sizeof(asn_DEF_ProtocolIE_Container_1527P5_tags_11[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P5_tags_11, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P5_tags_11) - /sizeof(asn_DEF_ProtocolIE_Container_1527P5_tags_11[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P5_constr_11, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P5_11, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P5_specs_11 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P6_13[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICindication_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P6_tags_13[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P6_specs_13 = { - sizeof(struct ProtocolIE_Container_1527P6), - offsetof(struct ProtocolIE_Container_1527P6, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P6 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P6_tags_13, - sizeof(asn_DEF_ProtocolIE_Container_1527P6_tags_13) - /sizeof(asn_DEF_ProtocolIE_Container_1527P6_tags_13[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P6_tags_13, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P6_tags_13) - /sizeof(asn_DEF_ProtocolIE_Container_1527P6_tags_13[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P6_constr_13, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P6_13, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P6_specs_13 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P7_15[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P7_tags_15[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P7_specs_15 = { - sizeof(struct ProtocolIE_Container_1527P7), - offsetof(struct ProtocolIE_Container_1527P7, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P7 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P7_tags_15, - sizeof(asn_DEF_ProtocolIE_Container_1527P7_tags_15) - /sizeof(asn_DEF_ProtocolIE_Container_1527P7_tags_15[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P7_tags_15, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P7_tags_15) - /sizeof(asn_DEF_ProtocolIE_Container_1527P7_tags_15[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P7_constr_15, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P7_15, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P7_specs_15 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P8_17[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolAcknowledge_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P8_tags_17[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P8_specs_17 = { - sizeof(struct ProtocolIE_Container_1527P8), - offsetof(struct ProtocolIE_Container_1527P8, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P8 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P8_tags_17, - sizeof(asn_DEF_ProtocolIE_Container_1527P8_tags_17) - /sizeof(asn_DEF_ProtocolIE_Container_1527P8_tags_17[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P8_tags_17, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P8_tags_17) - /sizeof(asn_DEF_ProtocolIE_Container_1527P8_tags_17[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P8_constr_17, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P8_17, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P8_specs_17 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P9_19[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P9_tags_19[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P9_specs_19 = { - sizeof(struct ProtocolIE_Container_1527P9), - offsetof(struct ProtocolIE_Container_1527P9, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P9 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P9_tags_19, - sizeof(asn_DEF_ProtocolIE_Container_1527P9_tags_19) - /sizeof(asn_DEF_ProtocolIE_Container_1527P9_tags_19[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P9_tags_19, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P9_tags_19) - /sizeof(asn_DEF_ProtocolIE_Container_1527P9_tags_19[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P9_constr_19, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P9_19, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P9_specs_19 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P10_21[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ErrorIndication_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P10_tags_21[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P10_specs_21 = { - sizeof(struct ProtocolIE_Container_1527P10), - offsetof(struct ProtocolIE_Container_1527P10, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P10 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P10_tags_21, - sizeof(asn_DEF_ProtocolIE_Container_1527P10_tags_21) - /sizeof(asn_DEF_ProtocolIE_Container_1527P10_tags_21[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P10_tags_21, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P10_tags_21) - /sizeof(asn_DEF_ProtocolIE_Container_1527P10_tags_21[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P10_constr_21, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P10_21, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P10_specs_21 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P11_23[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupRequestIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P11_tags_23[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P11_specs_23 = { - sizeof(struct ProtocolIE_Container_1527P11), - offsetof(struct ProtocolIE_Container_1527P11, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P11 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P11_tags_23, - sizeof(asn_DEF_ProtocolIE_Container_1527P11_tags_23) - /sizeof(asn_DEF_ProtocolIE_Container_1527P11_tags_23[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P11_tags_23, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P11_tags_23) - /sizeof(asn_DEF_ProtocolIE_Container_1527P11_tags_23[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P11_constr_23, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P11_23, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P11_specs_23 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P12_25[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupResponseIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P12_tags_25[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P12_specs_25 = { - sizeof(struct ProtocolIE_Container_1527P12), - offsetof(struct ProtocolIE_Container_1527P12, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P12 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P12_tags_25, - sizeof(asn_DEF_ProtocolIE_Container_1527P12_tags_25) - /sizeof(asn_DEF_ProtocolIE_Container_1527P12_tags_25[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P12_tags_25, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P12_tags_25) - /sizeof(asn_DEF_ProtocolIE_Container_1527P12_tags_25[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P12_constr_25, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P12_25, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P12_specs_25 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P13_27[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupFailureIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P13_tags_27[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P13_specs_27 = { - sizeof(struct ProtocolIE_Container_1527P13), - offsetof(struct ProtocolIE_Container_1527P13, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P13 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P13_tags_27, - sizeof(asn_DEF_ProtocolIE_Container_1527P13_tags_27) - /sizeof(asn_DEF_ProtocolIE_Container_1527P13_tags_27[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P13_tags_27, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P13_tags_27) - /sizeof(asn_DEF_ProtocolIE_Container_1527P13_tags_27[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P13_constr_27, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P13_27, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P13_specs_27 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P14_29[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResetRequestIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P14_tags_29[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P14_specs_29 = { - sizeof(struct ProtocolIE_Container_1527P14), - offsetof(struct ProtocolIE_Container_1527P14, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P14 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P14_tags_29, - sizeof(asn_DEF_ProtocolIE_Container_1527P14_tags_29) - /sizeof(asn_DEF_ProtocolIE_Container_1527P14_tags_29[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P14_tags_29, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P14_tags_29) - /sizeof(asn_DEF_ProtocolIE_Container_1527P14_tags_29[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P14_constr_29, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P14_29, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P14_specs_29 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P15_31[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResetResponseIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P15_tags_31[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P15_specs_31 = { - sizeof(struct ProtocolIE_Container_1527P15), - offsetof(struct ProtocolIE_Container_1527P15, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P15 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P15_tags_31, - sizeof(asn_DEF_ProtocolIE_Container_1527P15_tags_31) - /sizeof(asn_DEF_ProtocolIE_Container_1527P15_tags_31[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P15_tags_31, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P15_tags_31) - /sizeof(asn_DEF_ProtocolIE_Container_1527P15_tags_31[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P15_constr_31, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P15_31, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P15_specs_31 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P16_33[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdate_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P16_tags_33[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P16_specs_33 = { - sizeof(struct ProtocolIE_Container_1527P16), - offsetof(struct ProtocolIE_Container_1527P16, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P16 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P16_tags_33, - sizeof(asn_DEF_ProtocolIE_Container_1527P16_tags_33) - /sizeof(asn_DEF_ProtocolIE_Container_1527P16_tags_33[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P16_tags_33, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P16_tags_33) - /sizeof(asn_DEF_ProtocolIE_Container_1527P16_tags_33[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P16_constr_33, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P16_33, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P16_specs_33 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P17_35[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdateAcknowledge_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P17_tags_35[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P17_specs_35 = { - sizeof(struct ProtocolIE_Container_1527P17), - offsetof(struct ProtocolIE_Container_1527P17, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P17 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P17_tags_35, - sizeof(asn_DEF_ProtocolIE_Container_1527P17_tags_35) - /sizeof(asn_DEF_ProtocolIE_Container_1527P17_tags_35[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P17_tags_35, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P17_tags_35) - /sizeof(asn_DEF_ProtocolIE_Container_1527P17_tags_35[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P17_constr_35, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P17_35, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P17_specs_35 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P18_37[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdateFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P18_tags_37[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P18_specs_37 = { - sizeof(struct ProtocolIE_Container_1527P18), - offsetof(struct ProtocolIE_Container_1527P18, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P18 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P18_tags_37, - sizeof(asn_DEF_ProtocolIE_Container_1527P18_tags_37) - /sizeof(asn_DEF_ProtocolIE_Container_1527P18_tags_37[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P18_tags_37, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P18_tags_37) - /sizeof(asn_DEF_ProtocolIE_Container_1527P18_tags_37[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P18_constr_37, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P18_37, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P18_specs_37 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P19_39[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceQuery_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P19_tags_39[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P19_specs_39 = { - sizeof(struct ProtocolIE_Container_1527P19), - offsetof(struct ProtocolIE_Container_1527P19, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P19 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P19_tags_39, - sizeof(asn_DEF_ProtocolIE_Container_1527P19_tags_39) - /sizeof(asn_DEF_ProtocolIE_Container_1527P19_tags_39[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P19_tags_39, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P19_tags_39) - /sizeof(asn_DEF_ProtocolIE_Container_1527P19_tags_39[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P19_constr_39, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P19_39, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P19_specs_39 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-Container.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-Container.h deleted file mode 100644 index 5034a64..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-Container.h +++ /dev/null @@ -1,253 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProtocolIE_Container_H_ -#define _ProtocolIE_Container_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct RICsubscriptionRequest_IEs; -struct RICsubscriptionResponse_IEs; -struct RICsubscriptionFailure_IEs; -struct RICsubscriptionDeleteRequest_IEs; -struct RICsubscriptionDeleteResponse_IEs; -struct RICsubscriptionDeleteFailure_IEs; -struct RICindication_IEs; -struct RICcontrolRequest_IEs; -struct RICcontrolAcknowledge_IEs; -struct RICcontrolFailure_IEs; -struct ErrorIndication_IEs; -struct E2setupRequestIEs; -struct E2setupResponseIEs; -struct E2setupFailureIEs; -struct ResetRequestIEs; -struct ResetResponseIEs; -struct RICserviceUpdate_IEs; -struct RICserviceUpdateAcknowledge_IEs; -struct RICserviceUpdateFailure_IEs; -struct RICserviceQuery_IEs; - -/* ProtocolIE-Container */ -typedef struct ProtocolIE_Container_1527P0 { - A_SEQUENCE_OF(struct RICsubscriptionRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P0_t; -typedef struct ProtocolIE_Container_1527P1 { - A_SEQUENCE_OF(struct RICsubscriptionResponse_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P1_t; -typedef struct ProtocolIE_Container_1527P2 { - A_SEQUENCE_OF(struct RICsubscriptionFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P2_t; -typedef struct ProtocolIE_Container_1527P3 { - A_SEQUENCE_OF(struct RICsubscriptionDeleteRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P3_t; -typedef struct ProtocolIE_Container_1527P4 { - A_SEQUENCE_OF(struct RICsubscriptionDeleteResponse_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P4_t; -typedef struct ProtocolIE_Container_1527P5 { - A_SEQUENCE_OF(struct RICsubscriptionDeleteFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P5_t; -typedef struct ProtocolIE_Container_1527P6 { - A_SEQUENCE_OF(struct RICindication_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P6_t; -typedef struct ProtocolIE_Container_1527P7 { - A_SEQUENCE_OF(struct RICcontrolRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P7_t; -typedef struct ProtocolIE_Container_1527P8 { - A_SEQUENCE_OF(struct RICcontrolAcknowledge_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P8_t; -typedef struct ProtocolIE_Container_1527P9 { - A_SEQUENCE_OF(struct RICcontrolFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P9_t; -typedef struct ProtocolIE_Container_1527P10 { - A_SEQUENCE_OF(struct ErrorIndication_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P10_t; -typedef struct ProtocolIE_Container_1527P11 { - A_SEQUENCE_OF(struct E2setupRequestIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P11_t; -typedef struct ProtocolIE_Container_1527P12 { - A_SEQUENCE_OF(struct E2setupResponseIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P12_t; -typedef struct ProtocolIE_Container_1527P13 { - A_SEQUENCE_OF(struct E2setupFailureIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P13_t; -typedef struct ProtocolIE_Container_1527P14 { - A_SEQUENCE_OF(struct ResetRequestIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P14_t; -typedef struct ProtocolIE_Container_1527P15 { - A_SEQUENCE_OF(struct ResetResponseIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P15_t; -typedef struct ProtocolIE_Container_1527P16 { - A_SEQUENCE_OF(struct RICserviceUpdate_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P16_t; -typedef struct ProtocolIE_Container_1527P17 { - A_SEQUENCE_OF(struct RICserviceUpdateAcknowledge_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P17_t; -typedef struct ProtocolIE_Container_1527P18 { - A_SEQUENCE_OF(struct RICserviceUpdateFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P18_t; -typedef struct ProtocolIE_Container_1527P19 { - A_SEQUENCE_OF(struct RICserviceQuery_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P19_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P0; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P0_specs_1; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P0_1[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P0_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P1; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P1_specs_3; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P1_3[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P1_constr_3; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P2; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P2_specs_5; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P2_5[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P2_constr_5; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P3; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P3_specs_7; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P3_7[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P3_constr_7; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P4; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P4_specs_9; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P4_9[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P4_constr_9; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P5; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P5_specs_11; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P5_11[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P5_constr_11; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P6; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P6_specs_13; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P6_13[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P6_constr_13; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P7; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P7_specs_15; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P7_15[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P7_constr_15; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P8; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P8_specs_17; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P8_17[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P8_constr_17; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P9; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P9_specs_19; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P9_19[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P9_constr_19; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P10; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P10_specs_21; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P10_21[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P10_constr_21; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P11; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P11_specs_23; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P11_23[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P11_constr_23; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P12; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P12_specs_25; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P12_25[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P12_constr_25; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P13; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P13_specs_27; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P13_27[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P13_constr_27; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P14; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P14_specs_29; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P14_29[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P14_constr_29; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P15; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P15_specs_31; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P15_31[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P15_constr_31; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P16; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P16_specs_33; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P16_33[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P16_constr_33; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P17; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P17_specs_35; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P17_35[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P17_constr_35; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P18; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P18_specs_37; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P18_37[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P18_constr_37; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P19; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P19_specs_39; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P19_39[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P19_constr_39; - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_Container_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-ContainerList.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-ContainerList.c deleted file mode 100644 index c9d5808..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-ContainerList.c +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProtocolIE-ContainerList.h" - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-ContainerList.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-ContainerList.h deleted file mode 100644 index 3376410..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-ContainerList.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProtocolIE_ContainerList_H_ -#define _ProtocolIE_ContainerList_H_ - - -#include "asn_application.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_ContainerList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-ContainerPair.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-ContainerPair.c deleted file mode 100644 index ad1c8b8..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-ContainerPair.c +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProtocolIE-ContainerPair.h" - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-ContainerPair.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-ContainerPair.h deleted file mode 100644 index 5b730c7..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-ContainerPair.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProtocolIE_ContainerPair_H_ -#define _ProtocolIE_ContainerPair_H_ - - -#include "asn_application.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_ContainerPair_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-ContainerPairList.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-ContainerPairList.c deleted file mode 100644 index f77445b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-ContainerPairList.c +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProtocolIE-ContainerPairList.h" - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-ContainerPairList.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-ContainerPairList.h deleted file mode 100644 index 1837ac8..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-ContainerPairList.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProtocolIE_ContainerPairList_H_ -#define _ProtocolIE_ContainerPairList_H_ - - -#include "asn_application.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_ContainerPairList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-Field.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-Field.c deleted file mode 100644 index af5597c..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-Field.c +++ /dev/null @@ -1,7190 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProtocolIE-Field.h" - -static const long asn_VAL_4_id_RICaction_ToBeSetup_Item = 19; -static const long asn_VAL_4_ignore = 1; -static const long asn_VAL_4_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICaction_ToBeSetup_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_4_id_RICaction_ToBeSetup_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_ignore }, - { "&Value", aioc__type, &asn_DEF_RICaction_ToBeSetup_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_4_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICaction_ToBeSetup_ItemIEs_1[] = { - { 1, 4, asn_IOS_RICaction_ToBeSetup_ItemIEs_1_rows } -}; -static const long asn_VAL_9_id_RICaction_Admitted_Item = 14; -static const long asn_VAL_9_ignore = 1; -static const long asn_VAL_9_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICaction_Admitted_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_9_id_RICaction_Admitted_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore }, - { "&Value", aioc__type, &asn_DEF_RICaction_Admitted_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_9_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICaction_Admitted_ItemIEs_1[] = { - { 1, 4, asn_IOS_RICaction_Admitted_ItemIEs_1_rows } -}; -static const long asn_VAL_10_id_RICaction_NotAdmitted_Item = 16; -static const long asn_VAL_10_ignore = 1; -static const long asn_VAL_10_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICaction_NotAdmitted_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_10_id_RICaction_NotAdmitted_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_ignore }, - { "&Value", aioc__type, &asn_DEF_RICaction_NotAdmitted_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_10_mandatory } -}; -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 asn_ioc_cell_t asn_IOS_RANfunction_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_64_id_RANfunction_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_64_ignore }, - { "&Value", aioc__type, &asn_DEF_RANfunction_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_64_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 asn_ioc_cell_t asn_IOS_RANfunctionID_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_65_id_RANfunctionID_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_65_ignore }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_65_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 asn_ioc_cell_t asn_IOS_RANfunctionIDcause_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_68_id_RANfunctionIEcause_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_68_ignore }, - { "&Value", aioc__type, &asn_DEF_RANfunctionIDcause_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_68_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RANfunctionIDcause_ItemIEs_1[] = { - { 1, 4, asn_IOS_RANfunctionIDcause_ItemIEs_1_rows } -}; -static const long asn_VAL_1_id_RICrequestID = 29; -static const long asn_VAL_1_reject = 0; -static const long asn_VAL_1_mandatory = 2; -static const long asn_VAL_2_id_RANfunctionID = 5; -static const long asn_VAL_2_reject = 0; -static const long asn_VAL_2_mandatory = 2; -static const long asn_VAL_3_id_RICsubscriptionDetails = 30; -static const long asn_VAL_3_reject = 0; -static const long asn_VAL_3_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_1_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_1_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_2_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_2_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_3_id_RICsubscriptionDetails }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, - { "&Value", aioc__type, &asn_DEF_RICsubscriptionDetails }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_3_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionRequest_IEs_1[] = { - { 3, 4, asn_IOS_RICsubscriptionRequest_IEs_1_rows } -}; -static const long asn_VAL_5_id_RICrequestID = 29; -static const long asn_VAL_5_reject = 0; -static const long asn_VAL_5_mandatory = 2; -static const long asn_VAL_6_id_RANfunctionID = 5; -static const long asn_VAL_6_reject = 0; -static const long asn_VAL_6_mandatory = 2; -static const long asn_VAL_7_id_RICactions_Admitted = 17; -static const long asn_VAL_7_reject = 0; -static const long asn_VAL_7_mandatory = 2; -static const long asn_VAL_8_id_RICactions_NotAdmitted = 18; -static const long asn_VAL_8_reject = 0; -static const long asn_VAL_8_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionResponse_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_5_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_5_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_6_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_6_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_7_id_RICactions_Admitted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_reject }, - { "&Value", aioc__type, &asn_DEF_RICaction_Admitted_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_7_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_8_id_RICactions_NotAdmitted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_reject }, - { "&Value", aioc__type, &asn_DEF_RICaction_NotAdmitted_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_8_optional } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionResponse_IEs_1[] = { - { 4, 4, asn_IOS_RICsubscriptionResponse_IEs_1_rows } -}; -static const long asn_VAL_11_id_RICrequestID = 29; -static const long asn_VAL_11_reject = 0; -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_reject = 0; -static const long asn_VAL_13_mandatory = 2; -static const long asn_VAL_14_id_CriticalityDiagnostics = 2; -static const long asn_VAL_14_ignore = 1; -static const long asn_VAL_14_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_11_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_11_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_12_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_12_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_13_id_RICactions_NotAdmitted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_13_reject }, - { "&Value", aioc__type, &asn_DEF_RICaction_NotAdmitted_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_13_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_14_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_14_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_14_optional } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionFailure_IEs_1[] = { - { 4, 4, asn_IOS_RICsubscriptionFailure_IEs_1_rows } -}; -static const long asn_VAL_15_id_RICrequestID = 29; -static const long asn_VAL_15_reject = 0; -static const long asn_VAL_15_mandatory = 2; -static const long asn_VAL_16_id_RANfunctionID = 5; -static const long asn_VAL_16_reject = 0; -static const long asn_VAL_16_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_15_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_15_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_15_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_16_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_16_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_16_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionDeleteRequest_IEs_1[] = { - { 2, 4, asn_IOS_RICsubscriptionDeleteRequest_IEs_1_rows } -}; -static const long asn_VAL_17_id_RICrequestID = 29; -static const long asn_VAL_17_reject = 0; -static const long asn_VAL_17_mandatory = 2; -static const long asn_VAL_18_id_RANfunctionID = 5; -static const long asn_VAL_18_reject = 0; -static const long asn_VAL_18_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteResponse_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_17_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_17_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_17_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_18_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_18_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_18_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionDeleteResponse_IEs_1[] = { - { 2, 4, asn_IOS_RICsubscriptionDeleteResponse_IEs_1_rows } -}; -static const long asn_VAL_19_id_RICrequestID = 29; -static const long asn_VAL_19_reject = 0; -static const long asn_VAL_19_mandatory = 2; -static const long asn_VAL_20_id_RANfunctionID = 5; -static const long asn_VAL_20_reject = 0; -static const long asn_VAL_20_mandatory = 2; -static const long asn_VAL_21_id_Cause = 1; -static const long asn_VAL_21_ignore = 1; -static const long asn_VAL_21_mandatory = 2; -static const long asn_VAL_22_id_CriticalityDiagnostics = 2; -static const long asn_VAL_22_ignore = 1; -static const long asn_VAL_22_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_19_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_19_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_19_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_20_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_20_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_20_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_21_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_21_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_21_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_22_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_22_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_22_optional } -}; -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_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 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_reject = 0; -static const long asn_VAL_26_optional = 0; -static const long asn_VAL_27_id_RICindicationType = 28; -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_reject = 0; -static const long asn_VAL_28_mandatory = 2; -static const long asn_VAL_29_id_RICindicationMessage = 26; -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_reject = 0; -static const long asn_VAL_30_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICindication_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_23_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_23_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_23_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_24_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_24_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_24_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_25_id_RICactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_25_reject }, - { "&Value", aioc__type, &asn_DEF_RICactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_25_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_26_id_RICindicationSN }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_26_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationSN }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_26_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_27_id_RICindicationType }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_27_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationType }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_27_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_28_id_RICindicationHeader }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_28_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationHeader }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_28_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_29_id_RICindicationMessage }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_29_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationMessage }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_29_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_30_id_RICcallProcessID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_30_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_30_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_reject = 0; -static const long asn_VAL_33_optional = 0; -static const long asn_VAL_34_id_RICcontrolHeader = 22; -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_reject = 0; -static const long asn_VAL_35_mandatory = 2; -static const long asn_VAL_36_id_RICcontrolAckRequest = 21; -static const long asn_VAL_36_reject = 0; -static const long asn_VAL_36_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICcontrolRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_31_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_31_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_31_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_32_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_32_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_32_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_33_id_RICcallProcessID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_33_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_33_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_34_id_RICcontrolHeader }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_34_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolHeader }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_34_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_35_id_RICcontrolMessage }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_35_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolMessage }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_35_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_36_id_RICcontrolAckRequest }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_36_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolAckRequest }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_36_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_reject = 0; -static const long asn_VAL_39_optional = 0; -static const long asn_VAL_40_id_RICcontrolStatus = 24; -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_reject = 0; -static const long asn_VAL_41_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICcontrolAcknowledge_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_37_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_37_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_37_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_38_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_38_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_38_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_39_id_RICcallProcessID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_39_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_39_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_40_id_RICcontrolStatus }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_40_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolStatus }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_40_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_41_id_RICcontrolOutcome }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_41_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolOutcome }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_41_optional } -}; -static const asn_ioc_set_t asn_IOS_RICcontrolAcknowledge_IEs_1[] = { - { 5, 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_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_reject = 0; -static const long asn_VAL_44_optional = 0; -static const long asn_VAL_45_id_Cause = 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 asn_ioc_cell_t asn_IOS_RICcontrolFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_42_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_42_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_42_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_43_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_43_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_43_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_44_id_RICcallProcessID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_44_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_44_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_45_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_45_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_45_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_46_id_RICcontrolOutcome }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_46_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolOutcome }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_46_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_reject = 0; -static const long asn_VAL_48_optional = 0; -static const long asn_VAL_49_id_Cause = 1; -static const long asn_VAL_49_ignore = 1; -static const long asn_VAL_49_optional = 0; -static const long asn_VAL_50_id_CriticalityDiagnostics = 2; -static const long asn_VAL_50_ignore = 1; -static const long asn_VAL_50_optional = 0; -static const asn_ioc_cell_t asn_IOS_ErrorIndication_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_47_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_47_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_47_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_48_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_48_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_48_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_49_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_49_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_49_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_50_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_50_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_50_optional } -}; -static const asn_ioc_set_t asn_IOS_ErrorIndication_IEs_1[] = { - { 4, 4, asn_IOS_ErrorIndication_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_ID, &asn_VAL_51_id_GlobalE2node_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_51_reject }, - { "&Value", aioc__type, &asn_DEF_GlobalE2node_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_51_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_52_id_RANfunctionsAdded }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_52_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctions_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_52_optional } -}; -static const asn_ioc_set_t asn_IOS_E2setupRequestIEs_1[] = { - { 2, 4, asn_IOS_E2setupRequestIEs_1_rows } -}; -static const long asn_VAL_53_id_GlobalRIC_ID = 4; -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_reject = 0; -static const long asn_VAL_54_optional = 0; -static const long asn_VAL_55_id_RANfunctionsRejected = 13; -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_ID, &asn_VAL_53_id_GlobalRIC_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_53_reject }, - { "&Value", aioc__type, &asn_DEF_GlobalRIC_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_53_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_54_id_RANfunctionsAccepted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_54_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_54_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_55_id_RANfunctionsRejected }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_55_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_55_optional } -}; -static const asn_ioc_set_t asn_IOS_E2setupResponseIEs_1[] = { - { 3, 4, asn_IOS_E2setupResponseIEs_1_rows } -}; -static const long asn_VAL_56_id_Cause = 1; -static const long asn_VAL_56_ignore = 1; -static const long asn_VAL_56_mandatory = 2; -static const long asn_VAL_57_id_TimeToWait = 31; -static const long asn_VAL_57_ignore = 1; -static const long asn_VAL_57_optional = 0; -static const long asn_VAL_58_id_CriticalityDiagnostics = 2; -static const long asn_VAL_58_ignore = 1; -static const long asn_VAL_58_optional = 0; -static const asn_ioc_cell_t asn_IOS_E2setupFailureIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_56_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_56_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_56_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_57_id_TimeToWait }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_57_ignore }, - { "&Value", aioc__type, &asn_DEF_TimeToWait }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_57_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_58_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_58_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_58_optional } -}; -static const asn_ioc_set_t asn_IOS_E2setupFailureIEs_1[] = { - { 3, 4, asn_IOS_E2setupFailureIEs_1_rows } -}; -static const long asn_VAL_59_id_Cause = 1; -static const long asn_VAL_59_ignore = 1; -static const long asn_VAL_59_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_ResetRequestIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_59_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_59_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_59_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_CriticalityDiagnostics = 2; -static const long asn_VAL_60_ignore = 1; -static const long asn_VAL_60_optional = 0; -static const asn_ioc_cell_t asn_IOS_ResetResponseIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_60_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_60_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_60_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; -static const asn_ioc_cell_t asn_IOS_RICserviceUpdate_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_61_id_RANfunctionsAdded }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_61_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctions_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_61_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_62_id_RANfunctionsModified }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_62_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctions_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_62_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_63_id_RANfunctionsDeleted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_63_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_63_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; -static const asn_ioc_cell_t asn_IOS_RICserviceUpdateAcknowledge_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_66_id_RANfunctionsAccepted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_66_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_66_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_67_id_RANfunctionsRejected }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_67_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_67_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_TimeToWait = 31; -static const long asn_VAL_70_ignore = 1; -static const long asn_VAL_70_optional = 0; -static const long asn_VAL_71_id_CriticalityDiagnostics = 2; -static const long asn_VAL_71_ignore = 1; -static const long asn_VAL_71_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICserviceUpdateFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_69_id_RANfunctionsRejected }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_69_ignore }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_69_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_70_id_TimeToWait }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_70_ignore }, - { "&Value", aioc__type, &asn_DEF_TimeToWait }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_70_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_71_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_71_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_71_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; -static const asn_ioc_cell_t asn_IOS_RICserviceQuery_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_72_id_RANfunctionsAccepted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_72_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_72_optional } -}; -static const asn_ioc_set_t asn_IOS_RICserviceQuery_IEs_1[] = { - { 1, 4, asn_IOS_RICserviceQuery_IEs_1_rows } -}; -static int -memb_id_constraint_1(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_RICaction_ToBeSetup_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_RICaction_ToBeSetup_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 RICaction_ToBeSetup_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]; - 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_1(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_RICaction_ToBeSetup_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_RICaction_ToBeSetup_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 RICaction_ToBeSetup_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]; - 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_1(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_5(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_RICaction_Admitted_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_RICaction_Admitted_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 RICaction_Admitted_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]; - 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_5(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_RICaction_Admitted_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_RICaction_Admitted_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 RICaction_Admitted_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]; - 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_5(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_9(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_RICaction_NotAdmitted_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_RICaction_NotAdmitted_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 RICaction_NotAdmitted_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]; - 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_9(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_RICaction_NotAdmitted_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_RICaction_NotAdmitted_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 RICaction_NotAdmitted_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]; - 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_9(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_13(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_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_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 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]; - 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_13(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_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_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 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]; - 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_13(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_17(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_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_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 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]; - 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_17(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_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_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 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]; - 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_17(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_21(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_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_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 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]; - 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_21(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_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_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 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]; - 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_21(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_25(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_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_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 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]; - 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_25(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_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_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 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]; - 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_25(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_29(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_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_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 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]; - 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_29(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_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_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 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]; - 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_29(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_33(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_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_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 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]; - 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_33(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_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_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 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]; - 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_33(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_37(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_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_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 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]; - 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_37(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_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_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 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]; - 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_37(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_41(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_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_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 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]; - 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_41(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_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_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 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]; - 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_41(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_45(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_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_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 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]; - 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_45(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_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_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 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]; - 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_45(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_49(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_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_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 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]; - 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_49(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_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_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 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]; - 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_49(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_53(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_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_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 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]; - 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_53(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_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_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 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]; - 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_53(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_57(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_57(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_57(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_61(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_61(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_61(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_65(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_ErrorIndication_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_ErrorIndication_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 ErrorIndication_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_65(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_ErrorIndication_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_ErrorIndication_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 ErrorIndication_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_65(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_69(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_69(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_69(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_73(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_73(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_73(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_77(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_77(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_77(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_81(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_81(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_81(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_85(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_85(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_85(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_89(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_89(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_89(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_93(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_93(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_93(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_97(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_97(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_97(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_101(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_101(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_101(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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_ID, - 0, - { 0, &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_Criticality, - select_RICaction_ToBeSetup_ItemIEs_criticality_type, - { 0, &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, - { 0, &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_ID, - 0, - { 0, &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_Criticality, - select_RICaction_Admitted_ItemIEs_criticality_type, - { 0, &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, - { 0, &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_ID, - 0, - { 0, &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_Criticality, - select_RICaction_NotAdmitted_ItemIEs_criticality_type, - { 0, &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, - { 0, &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 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 const asn_TYPE_tag2member_t asn_MAP_value_tag2el_16[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunction-Item */ -}; -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, - -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_RANfunction_ItemIEs_13[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_14, memb_id_constraint_13 }, - 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_Criticality, - select_RANfunction_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_15, memb_criticality_constraint_13 }, - 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_16, - select_RANfunction_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_16, memb_value_constraint_13 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunction_ItemIEs_tags_13[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunction_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_RANfunction_ItemIEs_specs_13 = { - sizeof(struct RANfunction_ItemIEs), - offsetof(struct RANfunction_ItemIEs, _asn_ctx), - asn_MAP_RANfunction_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_RANfunction_ItemIEs = { - "RANfunction-ItemIEs", - "RANfunction-ItemIEs", - &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 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunction_ItemIEs_13, - 3, /* Elements count */ - &asn_SPC_RANfunction_ItemIEs_specs_13 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_20[] = { - { 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 const asn_TYPE_tag2member_t asn_MAP_value_tag2el_20[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionID-Item */ -}; -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, - -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_RANfunctionID_ItemIEs_17[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_18, memb_id_constraint_17 }, - 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_Criticality, - select_RANfunctionID_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_19, memb_criticality_constraint_17 }, - 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_20, - select_RANfunctionID_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_20, memb_value_constraint_17 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionID_ItemIEs_tags_17[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunctionID_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_RANfunctionID_ItemIEs_specs_17 = { - sizeof(struct RANfunctionID_ItemIEs), - offsetof(struct RANfunctionID_ItemIEs, _asn_ctx), - asn_MAP_RANfunctionID_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_RANfunctionID_ItemIEs = { - "RANfunctionID-ItemIEs", - "RANfunctionID-ItemIEs", - &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 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionID_ItemIEs_17, - 3, /* Elements count */ - &asn_SPC_RANfunctionID_ItemIEs_specs_17 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_24[] = { - { 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 const asn_TYPE_tag2member_t asn_MAP_value_tag2el_24[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionIDcause-Item */ -}; -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, - 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_RANfunctionIDcause_ItemIEs_21[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_22, memb_id_constraint_21 }, - 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_Criticality, - select_RANfunctionIDcause_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_23, memb_criticality_constraint_21 }, - 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_24, - select_RANfunctionIDcause_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_24, memb_value_constraint_21 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionIDcause_ItemIEs_tags_21[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunctionIDcause_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_RANfunctionIDcause_ItemIEs_specs_21 = { - sizeof(struct RANfunctionIDcause_ItemIEs), - offsetof(struct RANfunctionIDcause_ItemIEs, _asn_ctx), - asn_MAP_RANfunctionIDcause_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_RANfunctionIDcause_ItemIEs = { - "RANfunctionIDcause-ItemIEs", - "RANfunctionIDcause-ItemIEs", - &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 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionIDcause_ItemIEs_21, - 3, /* Elements count */ - &asn_SPC_RANfunctionIDcause_ItemIEs_specs_21 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_28[] = { - { 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 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 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, - -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, - 3, /* Elements count */ - &asn_SPC_value_specs_28 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_IEs_25[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_26, memb_id_constraint_25 }, - 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_Criticality, - select_RICsubscriptionRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_27, memb_criticality_constraint_25 }, - 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_28, - select_RICsubscriptionRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_28, memb_value_constraint_25 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionRequest_IEs_tags_25[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionRequest_IEs_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_RICsubscriptionRequest_IEs_specs_25 = { - sizeof(struct RICsubscriptionRequest_IEs), - offsetof(struct RICsubscriptionRequest_IEs, _asn_ctx), - asn_MAP_RICsubscriptionRequest_IEs_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_RICsubscriptionRequest_IEs = { - "RICsubscriptionRequest-IEs", - "RICsubscriptionRequest-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 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionRequest_IEs_25, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionRequest_IEs_specs_25 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_32[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_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 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 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[] = { - { (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_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, - -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, - 4, /* Elements count */ - &asn_SPC_value_specs_32 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_IEs_29[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_30, memb_id_constraint_29 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionResponse_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_31, memb_criticality_constraint_29 }, - 0, 0, /* No default value */ - "criticality" - }, - { 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_32, - select_RICsubscriptionResponse_IEs_value_type, - { 0, &asn_PER_memb_value_constr_32, memb_value_constraint_29 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionResponse_IEs_tags_29[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionResponse_IEs_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_RICsubscriptionResponse_IEs_specs_29 = { - sizeof(struct RICsubscriptionResponse_IEs), - offsetof(struct RICsubscriptionResponse_IEs, _asn_ctx), - asn_MAP_RICsubscriptionResponse_IEs_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_RICsubscriptionResponse_IEs = { - "RICsubscriptionResponse-IEs", - "RICsubscriptionResponse-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 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionResponse_IEs_29, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionResponse_IEs_specs_29 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_36[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_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 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.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" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -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[] = { - { (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 } /* CriticalityDiagnostics */ -}; -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, - 4, /* Count of tags in the map */ - asn_MAP_value_to_canonical_36, - asn_MAP_value_from_canonical_36, - -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, - 4, /* Elements count */ - &asn_SPC_value_specs_36 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_IEs_33[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_34, memb_id_constraint_33 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_35, memb_criticality_constraint_33 }, - 0, 0, /* No default value */ - "criticality" - }, - { 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_36, - select_RICsubscriptionFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_36, memb_value_constraint_33 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionFailure_IEs_tags_33[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionFailure_IEs_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_RICsubscriptionFailure_IEs_specs_33 = { - sizeof(struct RICsubscriptionFailure_IEs), - offsetof(struct RICsubscriptionFailure_IEs, _asn_ctx), - asn_MAP_RICsubscriptionFailure_IEs_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_RICsubscriptionFailure_IEs = { - "RICsubscriptionFailure-IEs", - "RICsubscriptionFailure-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 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionFailure_IEs_33, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionFailure_IEs_specs_33 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_40[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_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 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 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[] = { - { (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_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, - -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, - 2, /* Elements count */ - &asn_SPC_value_specs_40 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_IEs_37[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_38, memb_id_constraint_37 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionDeleteRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_39, memb_criticality_constraint_37 }, - 0, 0, /* No default value */ - "criticality" - }, - { 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_40, - select_RICsubscriptionDeleteRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_40, memb_value_constraint_37 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteRequest_IEs_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_RICsubscriptionDeleteRequest_IEs_specs_37 = { - sizeof(struct RICsubscriptionDeleteRequest_IEs), - offsetof(struct RICsubscriptionDeleteRequest_IEs, _asn_ctx), - asn_MAP_RICsubscriptionDeleteRequest_IEs_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_RICsubscriptionDeleteRequest_IEs = { - "RICsubscriptionDeleteRequest-IEs", - "RICsubscriptionDeleteRequest-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 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteRequest_IEs_37, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_37 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_44[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_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 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 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, - -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, - 2, /* Elements count */ - &asn_SPC_value_specs_44 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_IEs_41[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_42, memb_id_constraint_41 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionDeleteResponse_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_43, memb_criticality_constraint_41 }, - 0, 0, /* No default value */ - "criticality" - }, - { 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_44, - select_RICsubscriptionDeleteResponse_IEs_value_type, - { 0, &asn_PER_memb_value_constr_44, memb_value_constraint_41 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteResponse_IEs_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_RICsubscriptionDeleteResponse_IEs_specs_41 = { - sizeof(struct RICsubscriptionDeleteResponse_IEs), - offsetof(struct RICsubscriptionDeleteResponse_IEs, _asn_ctx), - asn_MAP_RICsubscriptionDeleteResponse_IEs_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_RICsubscriptionDeleteResponse_IEs = { - "RICsubscriptionDeleteResponse-IEs", - "RICsubscriptionDeleteResponse-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 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteResponse_IEs_41, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_41 /* 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)), - 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.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -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 }, /* CriticalityDiagnostics */ - { (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_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, - -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, - 4, /* Elements count */ - &asn_SPC_value_specs_48 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_IEs_45[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_46, memb_id_constraint_45 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionDeleteFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_47, memb_criticality_constraint_45 }, - 0, 0, /* No default value */ - "criticality" - }, - { 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_48, - select_RICsubscriptionDeleteFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_48, memb_value_constraint_45 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteFailure_IEs_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 */ -}; -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, - 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_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 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteFailure_IEs_45, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_45 /* 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), - (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_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 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, - -1 /* Extensions start */ -}; -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, - 8, /* Elements count */ - &asn_SPC_value_specs_52 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICindication_IEs_49[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_50, memb_id_constraint_49 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICindication_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_51, memb_criticality_constraint_49 }, - 0, 0, /* No default value */ - "criticality" - }, - { 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_52, - select_RICindication_IEs_value_type, - { 0, &asn_PER_memb_value_constr_52, memb_value_constraint_49 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICindication_IEs_tags_49[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICindication_IEs_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 */ -}; -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, - 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_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 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICindication_IEs_49, - 3, /* Elements count */ - &asn_SPC_RICindication_IEs_specs_49 /* 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), - (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 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_RICcontrolMessage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolMessage" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICcontrolAckRequest), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_RICcontrolAckRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolAckRequest" - }, -}; -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 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, - -1 /* Extensions start */ -}; -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, - 6, /* Elements count */ - &asn_SPC_value_specs_56 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICcontrolRequest_IEs_53[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_54, memb_id_constraint_53 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICcontrolRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_55, memb_criticality_constraint_53 }, - 0, 0, /* No default value */ - "criticality" - }, - { 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_56, - select_RICcontrolRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_56, memb_value_constraint_53 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolRequest_IEs_tags_53[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolRequest_IEs_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 */ -}; -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, - 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_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 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolRequest_IEs_53, - 3, /* Elements count */ - &asn_SPC_RICcontrolRequest_IEs_specs_53 /* 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), - (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, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcallProcessID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICcontrolStatus), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_RICcontrolStatus, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolStatus" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_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_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 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, - -1 /* Extensions start */ -}; -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, - 5, /* Elements count */ - &asn_SPC_value_specs_60 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_IEs_57[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_58, memb_id_constraint_57 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICcontrolAcknowledge_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_59, memb_criticality_constraint_57 }, - 0, 0, /* No default value */ - "criticality" - }, - { 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_60, - select_RICcontrolAcknowledge_IEs_value_type, - { 0, &asn_PER_memb_value_constr_60, memb_value_constraint_57 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolAcknowledge_IEs_tags_57[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolAcknowledge_IEs_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 */ -}; -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, - 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_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 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolAcknowledge_IEs_57, - 3, /* Elements count */ - &asn_SPC_RICcontrolAcknowledge_IEs_specs_57 /* 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), - (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, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcallProcessID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { 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_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 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, - -1 /* Extensions start */ -}; -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, - 5, /* Elements count */ - &asn_SPC_value_specs_64 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICcontrolFailure_IEs_61[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_62, memb_id_constraint_61 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICcontrolFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_63, memb_criticality_constraint_61 }, - 0, 0, /* No default value */ - "criticality" - }, - { 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_64, - select_RICcontrolFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_64, memb_value_constraint_61 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolFailure_IEs_tags_61[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolFailure_IEs_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 */ -}; -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, - 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_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 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolFailure_IEs_61, - 3, /* Elements count */ - &asn_SPC_RICcontrolFailure_IEs_specs_61 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_68[] = { - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_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 ErrorIndication_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 ErrorIndication_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -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 }, /* CriticalityDiagnostics */ - { (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 ErrorIndication_IEs__value), - offsetof(struct ErrorIndication_IEs__value, _asn_ctx), - offsetof(struct ErrorIndication_IEs__value, present), - sizeof(((struct ErrorIndication_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, - -1 /* Extensions start */ -}; -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, - 4, /* Elements count */ - &asn_SPC_value_specs_68 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ErrorIndication_IEs_65[] = { - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_66, memb_id_constraint_65 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ErrorIndication_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_67, memb_criticality_constraint_65 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_68, - select_ErrorIndication_IEs_value_type, - { 0, &asn_PER_memb_value_constr_68, memb_value_constraint_65 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ErrorIndication_IEs_tags_65[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ErrorIndication_IEs_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 */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_IEs_specs_65 = { - sizeof(struct ErrorIndication_IEs), - offsetof(struct ErrorIndication_IEs, _asn_ctx), - asn_MAP_ErrorIndication_IEs_tag2el_65, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ErrorIndication_IEs = { - "ErrorIndication-IEs", - "ErrorIndication-IEs", - &asn_OP_SEQUENCE, - asn_DEF_ErrorIndication_IEs_tags_65, - sizeof(asn_DEF_ErrorIndication_IEs_tags_65) - /sizeof(asn_DEF_ErrorIndication_IEs_tags_65[0]), /* 1 */ - asn_DEF_ErrorIndication_IEs_tags_65, /* Same as above */ - sizeof(asn_DEF_ErrorIndication_IEs_tags_65) - /sizeof(asn_DEF_ErrorIndication_IEs_tags_65[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ErrorIndication_IEs_65, - 3, /* Elements count */ - &asn_SPC_ErrorIndication_IEs_specs_65 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_72[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__value, choice.GlobalE2node_ID), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_GlobalE2node_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GlobalE2node-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__value, choice.RANfunctions_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctions_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, - -1 /* Extensions start */ -}; -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, - 2, /* Elements count */ - &asn_SPC_value_specs_72 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E2setupRequestIEs_69[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_70, memb_id_constraint_69 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E2setupRequestIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_71, memb_criticality_constraint_69 }, - 0, 0, /* No default value */ - "criticality" - }, - { 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_72, - select_E2setupRequestIEs_value_type, - { 0, &asn_PER_memb_value_constr_72, memb_value_constraint_69 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2setupRequestIEs_tags_69[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2setupRequestIEs_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 */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2setupRequestIEs_specs_69 = { - sizeof(struct E2setupRequestIEs), - offsetof(struct E2setupRequestIEs, _asn_ctx), - asn_MAP_E2setupRequestIEs_tag2el_69, - 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_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 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupRequestIEs_69, - 3, /* Elements count */ - &asn_SPC_E2setupRequestIEs_specs_69 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_76[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.GlobalRIC_ID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GlobalRIC_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GlobalRIC-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.RANfunctionsID_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsID_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsID-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.RANfunctionsIDcause_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsIDcause_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsIDcause-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 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 */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_76 = { - "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_76, - 3, /* Elements count */ - &asn_SPC_value_specs_76 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E2setupResponseIEs_73[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_74, memb_id_constraint_73 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E2setupResponseIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_75, memb_criticality_constraint_73 }, - 0, 0, /* No default value */ - "criticality" - }, - { 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_76, - select_E2setupResponseIEs_value_type, - { 0, &asn_PER_memb_value_constr_76, memb_value_constraint_73 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2setupResponseIEs_tags_73[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2setupResponseIEs_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_E2setupResponseIEs_specs_73 = { - sizeof(struct E2setupResponseIEs), - offsetof(struct E2setupResponseIEs, _asn_ctx), - asn_MAP_E2setupResponseIEs_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_E2setupResponseIEs = { - "E2setupResponseIEs", - "E2setupResponseIEs", - &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 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupResponseIEs_73, - 3, /* Elements count */ - &asn_SPC_E2setupResponseIEs_specs_73 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_80[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.TimeToWait), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_TimeToWait, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TimeToWait" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -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 }, /* TimeToWait */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* CriticalityDiagnostics */ - { (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, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_80 = { - "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_80, - 3, /* Elements count */ - &asn_SPC_value_specs_80 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E2setupFailureIEs_77[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_78, memb_id_constraint_77 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E2setupFailureIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_79, memb_criticality_constraint_77 }, - 0, 0, /* No default value */ - "criticality" - }, - { 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_80, - select_E2setupFailureIEs_value_type, - { 0, &asn_PER_memb_value_constr_80, memb_value_constraint_77 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2setupFailureIEs_tags_77[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2setupFailureIEs_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_E2setupFailureIEs_specs_77 = { - sizeof(struct E2setupFailureIEs), - offsetof(struct E2setupFailureIEs, _asn_ctx), - asn_MAP_E2setupFailureIEs_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_E2setupFailureIEs = { - "E2setupFailureIEs", - "E2setupFailureIEs", - &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 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupFailureIEs_77, - 3, /* Elements count */ - &asn_SPC_E2setupFailureIEs_specs_77 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_84[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, -}; -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 asn_CHOICE_specifics_t asn_SPC_value_specs_84 = { - 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 */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_84 = { - "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_84, - 1, /* Elements count */ - &asn_SPC_value_specs_84 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ResetRequestIEs_81[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_82, memb_id_constraint_81 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ResetRequestIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_83, memb_criticality_constraint_81 }, - 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, - select_ResetRequestIEs_value_type, - { 0, &asn_PER_memb_value_constr_84, memb_value_constraint_81 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResetRequestIEs_tags_81[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResetRequestIEs_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_ResetRequestIEs_specs_81 = { - sizeof(struct ResetRequestIEs), - offsetof(struct ResetRequestIEs, _asn_ctx), - asn_MAP_ResetRequestIEs_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_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 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResetRequestIEs_81, - 3, /* Elements count */ - &asn_SPC_ResetRequestIEs_specs_81 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_88[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_88[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* CriticalityDiagnostics */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_88 = { - 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 */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_88 = { - "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_88, - 1, /* Elements count */ - &asn_SPC_value_specs_88 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ResetResponseIEs_85[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_86, memb_id_constraint_85 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ResetResponseIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_87, memb_criticality_constraint_85 }, - 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, - select_ResetResponseIEs_value_type, - { 0, &asn_PER_memb_value_constr_88, memb_value_constraint_85 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResetResponseIEs_tags_85[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResetResponseIEs_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_ResetResponseIEs_specs_85 = { - sizeof(struct ResetResponseIEs), - offsetof(struct ResetResponseIEs, _asn_ctx), - asn_MAP_ResetResponseIEs_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_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 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResetResponseIEs_85, - 3, /* Elements count */ - &asn_SPC_ResetResponseIEs_specs_85 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_92[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs__value, choice.RANfunctions_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctions_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctions-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs__value, choice.RANfunctionsID_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsID_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "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 asn_CHOICE_specifics_t asn_SPC_value_specs_92 = { - 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 */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_92 = { - "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_92, - 2, /* Elements count */ - &asn_SPC_value_specs_92 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICserviceUpdate_IEs_89[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_90, memb_id_constraint_89 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICserviceUpdate_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_91, memb_criticality_constraint_89 }, - 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, - select_RICserviceUpdate_IEs_value_type, - { 0, &asn_PER_memb_value_constr_92, memb_value_constraint_89 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdate_IEs_tags_89[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdate_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_RICserviceUpdate_IEs_specs_89 = { - sizeof(struct RICserviceUpdate_IEs), - offsetof(struct RICserviceUpdate_IEs, _asn_ctx), - asn_MAP_RICserviceUpdate_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_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 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdate_IEs_89, - 3, /* Elements count */ - &asn_SPC_RICserviceUpdate_IEs_specs_89 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_96[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs__value, choice.RANfunctionsID_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsID_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsID-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs__value, choice.RANfunctionsIDcause_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsIDcause_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "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 asn_CHOICE_specifics_t asn_SPC_value_specs_96 = { - 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 */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_96 = { - "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_96, - 2, /* Elements count */ - &asn_SPC_value_specs_96 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_IEs_93[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_94, memb_id_constraint_93 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICserviceUpdateAcknowledge_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_95, memb_criticality_constraint_93 }, - 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, - select_RICserviceUpdateAcknowledge_IEs_value_type, - { 0, &asn_PER_memb_value_constr_96, memb_value_constraint_93 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateAcknowledge_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_RICserviceUpdateAcknowledge_IEs_specs_93 = { - sizeof(struct RICserviceUpdateAcknowledge_IEs), - offsetof(struct RICserviceUpdateAcknowledge_IEs, _asn_ctx), - asn_MAP_RICserviceUpdateAcknowledge_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_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 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdateAcknowledge_IEs_93, - 3, /* Elements count */ - &asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_93 /* 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)), - 0, - &asn_DEF_RANfunctionsIDcause_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsIDcause-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.TimeToWait), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_TimeToWait, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TimeToWait" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -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 }, /* TimeToWait */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RANfunctionsIDcause-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* CriticalityDiagnostics */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_100 = { - 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, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_100 = { - "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_100, - 3, /* Elements count */ - &asn_SPC_value_specs_100 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_IEs_97[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_98, memb_id_constraint_97 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICserviceUpdateFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_99, memb_criticality_constraint_97 }, - 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, - select_RICserviceUpdateFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_100, memb_value_constraint_97 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdateFailure_IEs_tags_97[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateFailure_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_RICserviceUpdateFailure_IEs_specs_97 = { - sizeof(struct RICserviceUpdateFailure_IEs), - offsetof(struct RICserviceUpdateFailure_IEs, _asn_ctx), - asn_MAP_RICserviceUpdateFailure_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_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 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdateFailure_IEs_97, - 3, /* Elements count */ - &asn_SPC_RICserviceUpdateFailure_IEs_specs_97 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_104[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs__value, choice.RANfunctionsID_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsID_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "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 asn_CHOICE_specifics_t asn_SPC_value_specs_104 = { - 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 */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_104 = { - "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_104, - 1, /* Elements count */ - &asn_SPC_value_specs_104 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_101[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_102, memb_id_constraint_101 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICserviceQuery_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_103, memb_criticality_constraint_101 }, - 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, - select_RICserviceQuery_IEs_value_type, - { 0, &asn_PER_memb_value_constr_104, memb_value_constraint_101 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceQuery_IEs_tags_101[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceQuery_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_RICserviceQuery_IEs_specs_101 = { - sizeof(struct RICserviceQuery_IEs), - offsetof(struct RICserviceQuery_IEs, _asn_ctx), - asn_MAP_RICserviceQuery_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_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 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceQuery_IEs_101, - 3, /* Elements count */ - &asn_SPC_RICserviceQuery_IEs_specs_101 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-Field.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-Field.h deleted file mode 100644 index 573edcf..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-Field.h +++ /dev/null @@ -1,757 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProtocolIE_Field_H_ -#define _ProtocolIE_Field_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-ID.h" -#include "Criticality.h" -#include "ANY.h" -#include "asn_ioc.h" -#include "RICaction-ToBeSetup-Item.h" -#include "Presence.h" -#include "OPEN_TYPE.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" -#include "RICaction-Admitted-Item.h" -#include "RICaction-NotAdmitted-Item.h" -#include "RANfunction-Item.h" -#include "RANfunctionID-Item.h" -#include "RANfunctionIDcause-Item.h" -#include "RICrequestID.h" -#include "RANfunctionID.h" -#include "RICsubscriptionDetails.h" -#include "RICaction-Admitted-List.h" -#include "RICaction-NotAdmitted-List.h" -#include "CriticalityDiagnostics.h" -#include "Cause.h" -#include "RICactionID.h" -#include "RICindicationSN.h" -#include "RICindicationType.h" -#include "RICindicationHeader.h" -#include "RICindicationMessage.h" -#include "RICcallProcessID.h" -#include "RICcontrolHeader.h" -#include "RICcontrolMessage.h" -#include "RICcontrolAckRequest.h" -#include "RICcontrolStatus.h" -#include "RICcontrolOutcome.h" -#include "GlobalE2node-ID.h" -#include "RANfunctions-List.h" -#include "GlobalRIC-ID.h" -#include "RANfunctionsID-List.h" -#include "RANfunctionsIDcause-List.h" -#include "TimeToWait.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICaction_ToBeSetup_ItemIEs__value_PR { - RICaction_ToBeSetup_ItemIEs__value_PR_NOTHING, /* No components present */ - RICaction_ToBeSetup_ItemIEs__value_PR_RICaction_ToBeSetup_Item -} RICaction_ToBeSetup_ItemIEs__value_PR; -typedef enum RICaction_Admitted_ItemIEs__value_PR { - RICaction_Admitted_ItemIEs__value_PR_NOTHING, /* No components present */ - RICaction_Admitted_ItemIEs__value_PR_RICaction_Admitted_Item -} RICaction_Admitted_ItemIEs__value_PR; -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 RANfunction_ItemIEs__value_PR { - RANfunction_ItemIEs__value_PR_NOTHING, /* No components present */ - RANfunction_ItemIEs__value_PR_RANfunction_Item -} RANfunction_ItemIEs__value_PR; -typedef enum RANfunctionID_ItemIEs__value_PR { - RANfunctionID_ItemIEs__value_PR_NOTHING, /* No components present */ - RANfunctionID_ItemIEs__value_PR_RANfunctionID_Item -} RANfunctionID_ItemIEs__value_PR; -typedef enum RANfunctionIDcause_ItemIEs__value_PR { - RANfunctionIDcause_ItemIEs__value_PR_NOTHING, /* No components present */ - RANfunctionIDcause_ItemIEs__value_PR_RANfunctionIDcause_Item -} RANfunctionIDcause_ItemIEs__value_PR; -typedef enum RICsubscriptionRequest_IEs__value_PR { - RICsubscriptionRequest_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionRequest_IEs__value_PR_RICrequestID, - RICsubscriptionRequest_IEs__value_PR_RANfunctionID, - RICsubscriptionRequest_IEs__value_PR_RICsubscriptionDetails -} RICsubscriptionRequest_IEs__value_PR; -typedef enum RICsubscriptionResponse_IEs__value_PR { - RICsubscriptionResponse_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionResponse_IEs__value_PR_RICrequestID, - RICsubscriptionResponse_IEs__value_PR_RANfunctionID, - RICsubscriptionResponse_IEs__value_PR_RICaction_Admitted_List, - RICsubscriptionResponse_IEs__value_PR_RICaction_NotAdmitted_List -} RICsubscriptionResponse_IEs__value_PR; -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_CriticalityDiagnostics -} RICsubscriptionFailure_IEs__value_PR; -typedef enum RICsubscriptionDeleteRequest_IEs__value_PR { - RICsubscriptionDeleteRequest_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionDeleteRequest_IEs__value_PR_RICrequestID, - RICsubscriptionDeleteRequest_IEs__value_PR_RANfunctionID -} RICsubscriptionDeleteRequest_IEs__value_PR; -typedef enum RICsubscriptionDeleteResponse_IEs__value_PR { - RICsubscriptionDeleteResponse_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionDeleteResponse_IEs__value_PR_RICrequestID, - RICsubscriptionDeleteResponse_IEs__value_PR_RANfunctionID -} RICsubscriptionDeleteResponse_IEs__value_PR; -typedef enum RICsubscriptionDeleteFailure_IEs__value_PR { - RICsubscriptionDeleteFailure_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionDeleteFailure_IEs__value_PR_RICrequestID, - RICsubscriptionDeleteFailure_IEs__value_PR_RANfunctionID, - RICsubscriptionDeleteFailure_IEs__value_PR_Cause, - RICsubscriptionDeleteFailure_IEs__value_PR_CriticalityDiagnostics -} RICsubscriptionDeleteFailure_IEs__value_PR; -typedef enum RICindication_IEs__value_PR { - RICindication_IEs__value_PR_NOTHING, /* No components present */ - RICindication_IEs__value_PR_RICrequestID, - RICindication_IEs__value_PR_RANfunctionID, - RICindication_IEs__value_PR_RICactionID, - RICindication_IEs__value_PR_RICindicationSN, - RICindication_IEs__value_PR_RICindicationType, - RICindication_IEs__value_PR_RICindicationHeader, - RICindication_IEs__value_PR_RICindicationMessage, - RICindication_IEs__value_PR_RICcallProcessID -} RICindication_IEs__value_PR; -typedef enum RICcontrolRequest_IEs__value_PR { - RICcontrolRequest_IEs__value_PR_NOTHING, /* No components present */ - RICcontrolRequest_IEs__value_PR_RICrequestID, - RICcontrolRequest_IEs__value_PR_RANfunctionID, - RICcontrolRequest_IEs__value_PR_RICcallProcessID, - RICcontrolRequest_IEs__value_PR_RICcontrolHeader, - RICcontrolRequest_IEs__value_PR_RICcontrolMessage, - RICcontrolRequest_IEs__value_PR_RICcontrolAckRequest -} RICcontrolRequest_IEs__value_PR; -typedef enum RICcontrolAcknowledge_IEs__value_PR { - RICcontrolAcknowledge_IEs__value_PR_NOTHING, /* No components present */ - 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 { - RICcontrolFailure_IEs__value_PR_NOTHING, /* No components present */ - RICcontrolFailure_IEs__value_PR_RICrequestID, - RICcontrolFailure_IEs__value_PR_RANfunctionID, - RICcontrolFailure_IEs__value_PR_RICcallProcessID, - RICcontrolFailure_IEs__value_PR_Cause, - RICcontrolFailure_IEs__value_PR_RICcontrolOutcome -} RICcontrolFailure_IEs__value_PR; -typedef enum ErrorIndication_IEs__value_PR { - ErrorIndication_IEs__value_PR_NOTHING, /* No components present */ - ErrorIndication_IEs__value_PR_RICrequestID, - ErrorIndication_IEs__value_PR_RANfunctionID, - ErrorIndication_IEs__value_PR_Cause, - ErrorIndication_IEs__value_PR_CriticalityDiagnostics -} ErrorIndication_IEs__value_PR; -typedef enum E2setupRequestIEs__value_PR { - E2setupRequestIEs__value_PR_NOTHING, /* No components present */ - E2setupRequestIEs__value_PR_GlobalE2node_ID, - E2setupRequestIEs__value_PR_RANfunctions_List -} E2setupRequestIEs__value_PR; -typedef enum E2setupResponseIEs__value_PR { - E2setupResponseIEs__value_PR_NOTHING, /* No components present */ - E2setupResponseIEs__value_PR_GlobalRIC_ID, - E2setupResponseIEs__value_PR_RANfunctionsID_List, - E2setupResponseIEs__value_PR_RANfunctionsIDcause_List -} E2setupResponseIEs__value_PR; -typedef enum E2setupFailureIEs__value_PR { - E2setupFailureIEs__value_PR_NOTHING, /* No components present */ - E2setupFailureIEs__value_PR_Cause, - E2setupFailureIEs__value_PR_TimeToWait, - E2setupFailureIEs__value_PR_CriticalityDiagnostics -} E2setupFailureIEs__value_PR; -typedef enum ResetRequestIEs__value_PR { - ResetRequestIEs__value_PR_NOTHING, /* No components present */ - ResetRequestIEs__value_PR_Cause -} ResetRequestIEs__value_PR; -typedef enum ResetResponseIEs__value_PR { - ResetResponseIEs__value_PR_NOTHING, /* No components present */ - ResetResponseIEs__value_PR_CriticalityDiagnostics -} ResetResponseIEs__value_PR; -typedef enum RICserviceUpdate_IEs__value_PR { - RICserviceUpdate_IEs__value_PR_NOTHING, /* No components present */ - 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_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_TimeToWait, - RICserviceUpdateFailure_IEs__value_PR_CriticalityDiagnostics -} RICserviceUpdateFailure_IEs__value_PR; -typedef enum RICserviceQuery_IEs__value_PR { - RICserviceQuery_IEs__value_PR_NOTHING, /* No components present */ - RICserviceQuery_IEs__value_PR_RANfunctionsID_List -} RICserviceQuery_IEs__value_PR; - -/* ProtocolIE-Field */ -typedef struct RICaction_ToBeSetup_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICaction_ToBeSetup_ItemIEs__value { - RICaction_ToBeSetup_ItemIEs__value_PR present; - union RICaction_ToBeSetup_ItemIEs__value_u { - RICaction_ToBeSetup_Item_t RICaction_ToBeSetup_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; -} RICaction_ToBeSetup_ItemIEs_t; -typedef struct RICaction_Admitted_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICaction_Admitted_ItemIEs__value { - RICaction_Admitted_ItemIEs__value_PR present; - union RICaction_Admitted_ItemIEs__value_u { - RICaction_Admitted_Item_t RICaction_Admitted_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; -} RICaction_Admitted_ItemIEs_t; -typedef struct RICaction_NotAdmitted_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICaction_NotAdmitted_ItemIEs__value { - RICaction_NotAdmitted_ItemIEs__value_PR present; - union RICaction_NotAdmitted_ItemIEs__value_u { - RICaction_NotAdmitted_Item_t RICaction_NotAdmitted_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; -} RICaction_NotAdmitted_ItemIEs_t; -typedef struct RANfunction_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RANfunction_ItemIEs__value { - RANfunction_ItemIEs__value_PR present; - union RANfunction_ItemIEs__value_u { - RANfunction_Item_t RANfunction_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; -} RANfunction_ItemIEs_t; -typedef struct RANfunctionID_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RANfunctionID_ItemIEs__value { - RANfunctionID_ItemIEs__value_PR present; - union RANfunctionID_ItemIEs__value_u { - RANfunctionID_Item_t RANfunctionID_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; -} RANfunctionID_ItemIEs_t; -typedef struct RANfunctionIDcause_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RANfunctionIDcause_ItemIEs__value { - RANfunctionIDcause_ItemIEs__value_PR present; - union RANfunctionIDcause_ItemIEs__value_u { - RANfunctionIDcause_Item_t RANfunctionIDcause_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; -} RANfunctionIDcause_ItemIEs_t; -typedef struct RICsubscriptionRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionRequest_IEs__value { - RICsubscriptionRequest_IEs__value_PR present; - union RICsubscriptionRequest_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICsubscriptionDetails_t RICsubscriptionDetails; - } 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; -} RICsubscriptionRequest_IEs_t; -typedef struct RICsubscriptionResponse_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionResponse_IEs__value { - RICsubscriptionResponse_IEs__value_PR present; - union RICsubscriptionResponse_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICaction_Admitted_List_t RICaction_Admitted_List; - RICaction_NotAdmitted_List_t RICaction_NotAdmitted_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; -} RICsubscriptionResponse_IEs_t; -typedef struct RICsubscriptionFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionFailure_IEs__value { - RICsubscriptionFailure_IEs__value_PR present; - union RICsubscriptionFailure_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICaction_NotAdmitted_List_t RICaction_NotAdmitted_List; - CriticalityDiagnostics_t CriticalityDiagnostics; - } 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; -} RICsubscriptionFailure_IEs_t; -typedef struct RICsubscriptionDeleteRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionDeleteRequest_IEs__value { - RICsubscriptionDeleteRequest_IEs__value_PR present; - union RICsubscriptionDeleteRequest_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - } 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; -} RICsubscriptionDeleteRequest_IEs_t; -typedef struct RICsubscriptionDeleteResponse_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionDeleteResponse_IEs__value { - RICsubscriptionDeleteResponse_IEs__value_PR present; - union RICsubscriptionDeleteResponse_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - } 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; -} RICsubscriptionDeleteResponse_IEs_t; -typedef struct RICsubscriptionDeleteFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionDeleteFailure_IEs__value { - RICsubscriptionDeleteFailure_IEs__value_PR present; - union RICsubscriptionDeleteFailure_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - Cause_t Cause; - CriticalityDiagnostics_t CriticalityDiagnostics; - } 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; -} RICsubscriptionDeleteFailure_IEs_t; -typedef struct RICindication_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICindication_IEs__value { - RICindication_IEs__value_PR present; - union RICindication_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICactionID_t RICactionID; - RICindicationSN_t RICindicationSN; - RICindicationType_t RICindicationType; - RICindicationHeader_t RICindicationHeader; - RICindicationMessage_t RICindicationMessage; - RICcallProcessID_t RICcallProcessID; - } 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; -} RICindication_IEs_t; -typedef struct RICcontrolRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICcontrolRequest_IEs__value { - RICcontrolRequest_IEs__value_PR present; - union RICcontrolRequest_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICcallProcessID_t RICcallProcessID; - RICcontrolHeader_t RICcontrolHeader; - RICcontrolMessage_t RICcontrolMessage; - RICcontrolAckRequest_t RICcontrolAckRequest; - } 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; -} RICcontrolRequest_IEs_t; -typedef struct RICcontrolAcknowledge_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICcontrolAcknowledge_IEs__value { - RICcontrolAcknowledge_IEs__value_PR present; - union RICcontrolAcknowledge_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICcallProcessID_t RICcallProcessID; - RICcontrolStatus_t RICcontrolStatus; - RICcontrolOutcome_t RICcontrolOutcome; - } 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; -} RICcontrolAcknowledge_IEs_t; -typedef struct RICcontrolFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICcontrolFailure_IEs__value { - RICcontrolFailure_IEs__value_PR present; - union RICcontrolFailure_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICcallProcessID_t RICcallProcessID; - Cause_t Cause; - RICcontrolOutcome_t RICcontrolOutcome; - } 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; -} RICcontrolFailure_IEs_t; -typedef struct ErrorIndication_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ErrorIndication_IEs__value { - ErrorIndication_IEs__value_PR present; - union ErrorIndication_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - Cause_t Cause; - CriticalityDiagnostics_t CriticalityDiagnostics; - } 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; -} ErrorIndication_IEs_t; -typedef struct E2setupRequestIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E2setupRequestIEs__value { - E2setupRequestIEs__value_PR present; - union E2setupRequestIEs__value_u { - GlobalE2node_ID_t GlobalE2node_ID; - RANfunctions_List_t RANfunctions_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; -} E2setupRequestIEs_t; -typedef struct E2setupResponseIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E2setupResponseIEs__value { - E2setupResponseIEs__value_PR present; - union E2setupResponseIEs__value_u { - GlobalRIC_ID_t GlobalRIC_ID; - RANfunctionsID_List_t RANfunctionsID_List; - RANfunctionsIDcause_List_t RANfunctionsIDcause_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; -} E2setupResponseIEs_t; -typedef struct E2setupFailureIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E2setupFailureIEs__value { - E2setupFailureIEs__value_PR present; - union E2setupFailureIEs__value_u { - Cause_t Cause; - TimeToWait_t TimeToWait; - CriticalityDiagnostics_t CriticalityDiagnostics; - } 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; -} E2setupFailureIEs_t; -typedef struct ResetRequestIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ResetRequestIEs__value { - ResetRequestIEs__value_PR present; - union ResetRequestIEs__value_u { - Cause_t Cause; - } 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; -} ResetRequestIEs_t; -typedef struct ResetResponseIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ResetResponseIEs__value { - ResetResponseIEs__value_PR present; - union ResetResponseIEs__value_u { - CriticalityDiagnostics_t CriticalityDiagnostics; - } 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; -} ResetResponseIEs_t; -typedef struct RICserviceUpdate_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICserviceUpdate_IEs__value { - RICserviceUpdate_IEs__value_PR present; - union RICserviceUpdate_IEs__value_u { - RANfunctions_List_t RANfunctions_List; - RANfunctionsID_List_t RANfunctionsID_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; -} RICserviceUpdate_IEs_t; -typedef struct RICserviceUpdateAcknowledge_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICserviceUpdateAcknowledge_IEs__value { - RICserviceUpdateAcknowledge_IEs__value_PR present; - union RICserviceUpdateAcknowledge_IEs__value_u { - RANfunctionsID_List_t RANfunctionsID_List; - RANfunctionsIDcause_List_t RANfunctionsIDcause_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; -} RICserviceUpdateAcknowledge_IEs_t; -typedef struct RICserviceUpdateFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICserviceUpdateFailure_IEs__value { - RICserviceUpdateFailure_IEs__value_PR present; - union RICserviceUpdateFailure_IEs__value_u { - RANfunctionsIDcause_List_t RANfunctionsIDcause_List; - TimeToWait_t TimeToWait; - CriticalityDiagnostics_t CriticalityDiagnostics; - } 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; -} RICserviceUpdateFailure_IEs_t; -typedef struct RICserviceQuery_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICserviceQuery_IEs__value { - RICserviceQuery_IEs__value_PR present; - union RICserviceQuery_IEs__value_u { - RANfunctionsID_List_t RANfunctionsID_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; -} RICserviceQuery_IEs_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1; -extern asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_ItemIEs_1[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_ItemIEs_specs_5; -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_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_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_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_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_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_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_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_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_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_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_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_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_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_TYPE_descriptor_t asn_DEF_ErrorIndication_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_IEs_specs_65; -extern asn_TYPE_member_t asn_MBR_ErrorIndication_IEs_65[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_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_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_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_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_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_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_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_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]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_Field_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-FieldPair.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-FieldPair.c deleted file mode 100644 index 9c7e653..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-FieldPair.c +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProtocolIE-FieldPair.h" - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-FieldPair.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-FieldPair.h deleted file mode 100644 index 8193bd6..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-FieldPair.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProtocolIE_FieldPair_H_ -#define _ProtocolIE_FieldPair_H_ - - -#include "asn_application.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_FieldPair_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-ID.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-ID.c deleted file mode 100644 index 9afe610..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-ID.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProtocolIE-ID.h" - -int -ProtocolIE_ID_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 <= 65535)) { - /* 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. - */ -asn_per_constraints_t asn_PER_type_ProtocolIE_ID_constr_1 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_ProtocolIE_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ID = { - "ProtocolIE-ID", - "ProtocolIE-ID", - &asn_OP_NativeInteger, - asn_DEF_ProtocolIE_ID_tags_1, - sizeof(asn_DEF_ProtocolIE_ID_tags_1) - /sizeof(asn_DEF_ProtocolIE_ID_tags_1[0]), /* 1 */ - asn_DEF_ProtocolIE_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_ID_tags_1) - /sizeof(asn_DEF_ProtocolIE_ID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_ID_constr_1, ProtocolIE_ID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-ID.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-ID.h deleted file mode 100644 index f6d2261..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-ID.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProtocolIE_ID_H_ -#define _ProtocolIE_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ProtocolIE-ID */ -typedef long ProtocolIE_ID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ProtocolIE_ID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ID; -asn_struct_free_f ProtocolIE_ID_free; -asn_struct_print_f ProtocolIE_ID_print; -asn_constr_check_f ProtocolIE_ID_constraint; -ber_type_decoder_f ProtocolIE_ID_decode_ber; -der_type_encoder_f ProtocolIE_ID_encode_der; -xer_type_decoder_f ProtocolIE_ID_decode_xer; -xer_type_encoder_f ProtocolIE_ID_encode_xer; -per_type_decoder_f ProtocolIE_ID_decode_uper; -per_type_encoder_f ProtocolIE_ID_encode_uper; -per_type_decoder_f ProtocolIE_ID_decode_aper; -per_type_encoder_f ProtocolIE_ID_encode_aper; -#define ProtocolIE_ID_id_Cause ((ProtocolIE_ID_t)1) -#define ProtocolIE_ID_id_CriticalityDiagnostics ((ProtocolIE_ID_t)2) -#define ProtocolIE_ID_id_GlobalE2node_ID ((ProtocolIE_ID_t)3) -#define ProtocolIE_ID_id_GlobalRIC_ID ((ProtocolIE_ID_t)4) -#define ProtocolIE_ID_id_RANfunctionID ((ProtocolIE_ID_t)5) -#define ProtocolIE_ID_id_RANfunctionID_Item ((ProtocolIE_ID_t)6) -#define ProtocolIE_ID_id_RANfunctionIEcause_Item ((ProtocolIE_ID_t)7) -#define ProtocolIE_ID_id_RANfunction_Item ((ProtocolIE_ID_t)8) -#define ProtocolIE_ID_id_RANfunctionsAccepted ((ProtocolIE_ID_t)9) -#define ProtocolIE_ID_id_RANfunctionsAdded ((ProtocolIE_ID_t)10) -#define ProtocolIE_ID_id_RANfunctionsDeleted ((ProtocolIE_ID_t)11) -#define ProtocolIE_ID_id_RANfunctionsModified ((ProtocolIE_ID_t)12) -#define ProtocolIE_ID_id_RANfunctionsRejected ((ProtocolIE_ID_t)13) -#define ProtocolIE_ID_id_RICaction_Admitted_Item ((ProtocolIE_ID_t)14) -#define ProtocolIE_ID_id_RICactionID ((ProtocolIE_ID_t)15) -#define ProtocolIE_ID_id_RICaction_NotAdmitted_Item ((ProtocolIE_ID_t)16) -#define ProtocolIE_ID_id_RICactions_Admitted ((ProtocolIE_ID_t)17) -#define ProtocolIE_ID_id_RICactions_NotAdmitted ((ProtocolIE_ID_t)18) -#define ProtocolIE_ID_id_RICaction_ToBeSetup_Item ((ProtocolIE_ID_t)19) -#define ProtocolIE_ID_id_RICcallProcessID ((ProtocolIE_ID_t)20) -#define ProtocolIE_ID_id_RICcontrolAckRequest ((ProtocolIE_ID_t)21) -#define ProtocolIE_ID_id_RICcontrolHeader ((ProtocolIE_ID_t)22) -#define ProtocolIE_ID_id_RICcontrolMessage ((ProtocolIE_ID_t)23) -#define ProtocolIE_ID_id_RICcontrolStatus ((ProtocolIE_ID_t)24) -#define ProtocolIE_ID_id_RICindicationHeader ((ProtocolIE_ID_t)25) -#define ProtocolIE_ID_id_RICindicationMessage ((ProtocolIE_ID_t)26) -#define ProtocolIE_ID_id_RICindicationSN ((ProtocolIE_ID_t)27) -#define ProtocolIE_ID_id_RICindicationType ((ProtocolIE_ID_t)28) -#define ProtocolIE_ID_id_RICrequestID ((ProtocolIE_ID_t)29) -#define ProtocolIE_ID_id_RICsubscriptionDetails ((ProtocolIE_ID_t)30) -#define ProtocolIE_ID_id_TimeToWait ((ProtocolIE_ID_t)31) -#define ProtocolIE_ID_id_RICcontrolOutcome ((ProtocolIE_ID_t)32) - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-SingleContainer.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-SingleContainer.c deleted file mode 100644 index c516962..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-SingleContainer.c +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProtocolIE-SingleContainer.h" - -/* - * This type is implemented using RICaction_ToBeSetup_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using RICaction_Admitted_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using RICaction_NotAdmitted_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using RANfunction_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using RANfunctionID_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using RANfunctionIDcause_ItemIEs, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1530P0_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P0 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1530P0_tags_1, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P0_tags_1[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1530P0_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P0_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_SingleContainer_1530P1_tags_2[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P1 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1530P1_tags_2, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P1_tags_2) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P1_tags_2[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1530P1_tags_2, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P1_tags_2) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P1_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_SingleContainer_1530P2_tags_3[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P2 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1530P2_tags_3, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P2_tags_3) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P2_tags_3[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1530P2_tags_3, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P2_tags_3) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P2_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_SingleContainer_1530P3_tags_4[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P3 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1530P3_tags_4, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P3_tags_4) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P3_tags_4[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1530P3_tags_4, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P3_tags_4) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P3_tags_4[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunction_ItemIEs_13, - 3, /* Elements count */ - &asn_SPC_RANfunction_ItemIEs_specs_13 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1530P4_tags_5[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P4 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1530P4_tags_5, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P4_tags_5) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P4_tags_5[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1530P4_tags_5, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P4_tags_5) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P4_tags_5[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionID_ItemIEs_17, - 3, /* Elements count */ - &asn_SPC_RANfunctionID_ItemIEs_specs_17 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1530P5_tags_6[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P5 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1530P5_tags_6, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P5_tags_6) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P5_tags_6[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1530P5_tags_6, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P5_tags_6) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P5_tags_6[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionIDcause_ItemIEs_21, - 3, /* Elements count */ - &asn_SPC_RANfunctionIDcause_ItemIEs_specs_21 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-SingleContainer.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-SingleContainer.h deleted file mode 100644 index b17c298..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ProtocolIE-SingleContainer.h +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProtocolIE_SingleContainer_H_ -#define _ProtocolIE_SingleContainer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Field.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ProtocolIE-SingleContainer */ -typedef RICaction_ToBeSetup_ItemIEs_t ProtocolIE_SingleContainer_1530P0_t; -typedef RICaction_Admitted_ItemIEs_t ProtocolIE_SingleContainer_1530P1_t; -typedef RICaction_NotAdmitted_ItemIEs_t ProtocolIE_SingleContainer_1530P2_t; -typedef RANfunction_ItemIEs_t ProtocolIE_SingleContainer_1530P3_t; -typedef RANfunctionID_ItemIEs_t ProtocolIE_SingleContainer_1530P4_t; -typedef RANfunctionIDcause_ItemIEs_t ProtocolIE_SingleContainer_1530P5_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P0; -asn_struct_free_f ProtocolIE_SingleContainer_1530P0_free; -asn_struct_print_f ProtocolIE_SingleContainer_1530P0_print; -asn_constr_check_f ProtocolIE_SingleContainer_1530P0_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1530P0_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1530P0_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1530P0_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1530P0_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1530P0_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P0_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1530P0_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P0_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P1; -asn_struct_free_f ProtocolIE_SingleContainer_1530P1_free; -asn_struct_print_f ProtocolIE_SingleContainer_1530P1_print; -asn_constr_check_f ProtocolIE_SingleContainer_1530P1_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1530P1_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1530P1_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1530P1_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1530P1_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1530P1_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P1_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1530P1_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P1_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P2; -asn_struct_free_f ProtocolIE_SingleContainer_1530P2_free; -asn_struct_print_f ProtocolIE_SingleContainer_1530P2_print; -asn_constr_check_f ProtocolIE_SingleContainer_1530P2_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1530P2_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1530P2_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1530P2_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1530P2_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1530P2_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P2_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1530P2_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P2_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P3; -asn_struct_free_f ProtocolIE_SingleContainer_1530P3_free; -asn_struct_print_f ProtocolIE_SingleContainer_1530P3_print; -asn_constr_check_f ProtocolIE_SingleContainer_1530P3_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1530P3_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1530P3_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1530P3_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1530P3_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1530P3_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P3_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1530P3_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P3_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P4; -asn_struct_free_f ProtocolIE_SingleContainer_1530P4_free; -asn_struct_print_f ProtocolIE_SingleContainer_1530P4_print; -asn_constr_check_f ProtocolIE_SingleContainer_1530P4_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1530P4_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1530P4_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1530P4_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1530P4_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1530P4_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P4_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1530P4_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P4_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P5; -asn_struct_free_f ProtocolIE_SingleContainer_1530P5_free; -asn_struct_print_f ProtocolIE_SingleContainer_1530P5_print; -asn_constr_check_f ProtocolIE_SingleContainer_1530P5_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1530P5_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1530P5_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1530P5_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1530P5_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1530P5_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P5_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1530P5_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P5_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_SingleContainer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RAN-Container.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RAN-Container.c deleted file mode 100644 index 373508b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RAN-Container.c +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RAN-Container.h" - -static asn_oer_constraints_t asn_OER_type_reportContainer_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_reportContainer_constr_3 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 asn_TYPE_member_t asn_MBR_reportContainer_3[] = { - { ATF_NOFLAGS, 0, offsetof(struct RAN_Container__reportContainer, choice.oDU_UE), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_DU_Usage_Report_Per_UE, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oDU-UE" - }, - { ATF_NOFLAGS, 0, offsetof(struct RAN_Container__reportContainer, choice.oCU_CP_UE), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CU_CP_Usage_Report_Per_UE, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oCU-CP-UE" - }, - { ATF_NOFLAGS, 0, offsetof(struct RAN_Container__reportContainer, choice.oCU_UP_UE), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CU_UP_Usage_Report_Per_UE, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oCU-UP-UE" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_reportContainer_tag2el_3[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* oDU-UE */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* oCU-CP-UE */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* oCU-UP-UE */ -}; -static asn_CHOICE_specifics_t asn_SPC_reportContainer_specs_3 = { - sizeof(struct RAN_Container__reportContainer), - offsetof(struct RAN_Container__reportContainer, _asn_ctx), - offsetof(struct RAN_Container__reportContainer, present), - sizeof(((struct RAN_Container__reportContainer *)0)->present), - asn_MAP_reportContainer_tag2el_3, - 3, /* Count of tags in the map */ - 0, 0, - 3 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_reportContainer_3 = { - "reportContainer", - "reportContainer", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_reportContainer_constr_3, &asn_PER_type_reportContainer_constr_3, CHOICE_constraint }, - asn_MBR_reportContainer_3, - 3, /* Elements count */ - &asn_SPC_reportContainer_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RAN_Container_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RAN_Container, timestamp), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Timestamp, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "timestamp" - }, - { ATF_NOFLAGS, 0, offsetof(struct RAN_Container, reportContainer), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_reportContainer_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "reportContainer" - }, -}; -static const ber_tlv_tag_t asn_DEF_RAN_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RAN_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timestamp */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* reportContainer */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RAN_Container_specs_1 = { - sizeof(struct RAN_Container), - offsetof(struct RAN_Container, _asn_ctx), - asn_MAP_RAN_Container_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_RAN_Container = { - "RAN-Container", - "RAN-Container", - &asn_OP_SEQUENCE, - asn_DEF_RAN_Container_tags_1, - sizeof(asn_DEF_RAN_Container_tags_1) - /sizeof(asn_DEF_RAN_Container_tags_1[0]), /* 1 */ - asn_DEF_RAN_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_RAN_Container_tags_1) - /sizeof(asn_DEF_RAN_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RAN_Container_1, - 2, /* Elements count */ - &asn_SPC_RAN_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RAN-Container.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RAN-Container.h deleted file mode 100644 index 8184460..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RAN-Container.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RAN_Container_H_ -#define _RAN_Container_H_ - - -#include - -/* Including external dependencies */ -#include "Timestamp.h" -#include "DU-Usage-Report-Per-UE.h" -#include "CU-CP-Usage-Report-Per-UE.h" -#include "CU-UP-Usage-Report-Per-UE.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RAN_Container__reportContainer_PR { - RAN_Container__reportContainer_PR_NOTHING, /* No components present */ - RAN_Container__reportContainer_PR_oDU_UE, - RAN_Container__reportContainer_PR_oCU_CP_UE, - RAN_Container__reportContainer_PR_oCU_UP_UE - /* Extensions may appear below */ - -} RAN_Container__reportContainer_PR; - -/* RAN-Container */ -typedef struct RAN_Container { - Timestamp_t timestamp; - struct RAN_Container__reportContainer { - RAN_Container__reportContainer_PR present; - union RAN_Container__reportContainer_u { - DU_Usage_Report_Per_UE_t oDU_UE; - CU_CP_Usage_Report_Per_UE_t oCU_CP_UE; - CU_UP_Usage_Report_Per_UE_t oCU_UP_UE; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } reportContainer; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RAN_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RAN_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_RAN_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_RAN_Container_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RAN_Container_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANcallProcess-ID-string.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANcallProcess-ID-string.c deleted file mode 100644 index 4cd1b70..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANcallProcess-ID-string.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RANcallProcess-ID-string.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 -RANcallProcess_ID_string_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_RANcallProcess_ID_string_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_RANcallProcess_ID_string_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_RANcallProcess_ID_string_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -static asn_per_constraints_t asn_PER_type_RANcallProcess_ID_string_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_RANcallProcess_ID_string_1_v2c, /* Value to PER code map */ - asn_PER_MAP_RANcallProcess_ID_string_1_c2v /* PER code to value map */ -}; -static const ber_tlv_tag_t asn_DEF_RANcallProcess_ID_string_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RANcallProcess_ID_string = { - "RANcallProcess-ID-string", - "RANcallProcess-ID-string", - &asn_OP_PrintableString, - asn_DEF_RANcallProcess_ID_string_tags_1, - sizeof(asn_DEF_RANcallProcess_ID_string_tags_1) - /sizeof(asn_DEF_RANcallProcess_ID_string_tags_1[0]), /* 1 */ - asn_DEF_RANcallProcess_ID_string_tags_1, /* Same as above */ - sizeof(asn_DEF_RANcallProcess_ID_string_tags_1) - /sizeof(asn_DEF_RANcallProcess_ID_string_tags_1[0]), /* 1 */ - { &asn_OER_type_RANcallProcess_ID_string_constr_1, &asn_PER_type_RANcallProcess_ID_string_constr_1, RANcallProcess_ID_string_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANcallProcess-ID-string.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANcallProcess-ID-string.h deleted file mode 100644 index 087cdc0..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANcallProcess-ID-string.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RANcallProcess_ID_string_H_ -#define _RANcallProcess_ID_string_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANcallProcess-ID-string */ -typedef PrintableString_t RANcallProcess_ID_string_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANcallProcess_ID_string; -asn_struct_free_f RANcallProcess_ID_string_free; -asn_struct_print_f RANcallProcess_ID_string_print; -asn_constr_check_f RANcallProcess_ID_string_constraint; -ber_type_decoder_f RANcallProcess_ID_string_decode_ber; -der_type_encoder_f RANcallProcess_ID_string_encode_der; -xer_type_decoder_f RANcallProcess_ID_string_decode_xer; -xer_type_encoder_f RANcallProcess_ID_string_encode_xer; -oer_type_decoder_f RANcallProcess_ID_string_decode_oer; -oer_type_encoder_f RANcallProcess_ID_string_encode_oer; -per_type_decoder_f RANcallProcess_ID_string_decode_uper; -per_type_encoder_f RANcallProcess_ID_string_encode_uper; -per_type_decoder_f RANcallProcess_ID_string_decode_aper; -per_type_encoder_f RANcallProcess_ID_string_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANcallProcess_ID_string_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunction-Item.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunction-Item.c deleted file mode 100644 index f1554d0..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunction-Item.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunction-Item.h" - -static asn_TYPE_member_t asn_MBR_RANfunction_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Item, ranFunctionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 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 RANfunction_Item, ranFunctionDefinition), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunctionDefinition, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunctionDefinition" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Item, ranFunctionRevision), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunctionRevision, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunctionRevision" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunction_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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 */ -}; -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 */ - 0, 0, 0, /* Optional elements (not needed) */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunction_Item = { - "RANfunction-Item", - "RANfunction-Item", - &asn_OP_SEQUENCE, - asn_DEF_RANfunction_Item_tags_1, - sizeof(asn_DEF_RANfunction_Item_tags_1) - /sizeof(asn_DEF_RANfunction_Item_tags_1[0]), /* 1 */ - asn_DEF_RANfunction_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunction_Item_tags_1) - /sizeof(asn_DEF_RANfunction_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunction_Item_1, - 3, /* Elements count */ - &asn_SPC_RANfunction_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunction-Item.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunction-Item.h deleted file mode 100644 index e7fd073..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunction-Item.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunction_Item_H_ -#define _RANfunction_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RANfunctionID.h" -#include "RANfunctionDefinition.h" -#include "RANfunctionRevision.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunction-Item */ -typedef struct RANfunction_Item { - RANfunctionID_t ranFunctionID; - RANfunctionDefinition_t ranFunctionDefinition; - RANfunctionRevision_t ranFunctionRevision; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunction_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunction_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunction_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunction-Name.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunction-Name.c deleted file mode 100644 index 72a90a9..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunction-Name.c +++ /dev/null @@ -1,316 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RANfunction-Name.h" - -static const int permitted_alphabet_table_2[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_2[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_2(const void *sptr) { - const int *table = permitted_alphabet_table_2; - /* 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; -} - -static const int permitted_alphabet_table_3[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_3[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_3(const void *sptr) { - const int *table = permitted_alphabet_table_3; - /* 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; -} - -static const int permitted_alphabet_table_4[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_4[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_4(const void *sptr) { - const int *table = permitted_alphabet_table_4; - /* 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; -} - -static int -memb_ranFunction_ShortName_constraint_1(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_2(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_ranFunction_ShortName_2_v2c(unsigned int value) { - if(value >= sizeof(permitted_alphabet_table_2)/sizeof(permitted_alphabet_table_2[0])) - return -1; - return permitted_alphabet_table_2[value] - 1; -} -static int asn_PER_MAP_ranFunction_ShortName_2_c2v(unsigned int code) { - if(code >= sizeof(permitted_alphabet_code2value_2)/sizeof(permitted_alphabet_code2value_2[0])) - return -1; - return permitted_alphabet_code2value_2[code]; -} -static int -memb_ranFunction_E2SM_OID_constraint_1(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_3(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_ranFunction_E2SM_OID_3_v2c(unsigned int value) { - if(value >= sizeof(permitted_alphabet_table_3)/sizeof(permitted_alphabet_table_3[0])) - return -1; - return permitted_alphabet_table_3[value] - 1; -} -static int asn_PER_MAP_ranFunction_E2SM_OID_3_c2v(unsigned int code) { - if(code >= sizeof(permitted_alphabet_code2value_3)/sizeof(permitted_alphabet_code2value_3[0])) - return -1; - return permitted_alphabet_code2value_3[code]; -} -static int -memb_ranFunction_Description_constraint_1(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_4(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_ranFunction_Description_4_v2c(unsigned int value) { - if(value >= sizeof(permitted_alphabet_table_4)/sizeof(permitted_alphabet_table_4[0])) - return -1; - return permitted_alphabet_table_4[value] - 1; -} -static int asn_PER_MAP_ranFunction_Description_4_c2v(unsigned int code) { - if(code >= sizeof(permitted_alphabet_code2value_4)/sizeof(permitted_alphabet_code2value_4[0])) - return -1; - return permitted_alphabet_code2value_4[code]; -} -static asn_oer_constraints_t asn_OER_memb_ranFunction_ShortName_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -static asn_per_constraints_t asn_PER_memb_ranFunction_ShortName_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, - { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, - asn_PER_MAP_ranFunction_ShortName_2_v2c, /* Value to PER code map */ - asn_PER_MAP_ranFunction_ShortName_2_c2v /* PER code to value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ranFunction_E2SM_OID_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -static asn_per_constraints_t asn_PER_memb_ranFunction_E2SM_OID_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, - { APC_CONSTRAINED | APC_EXTENSIBLE, 10, 10, 1, 1000 } /* (SIZE(1..1000,...)) */, - asn_PER_MAP_ranFunction_E2SM_OID_3_v2c, /* Value to PER code map */ - asn_PER_MAP_ranFunction_E2SM_OID_3_c2v /* PER code to value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ranFunction_Description_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -static asn_per_constraints_t asn_PER_memb_ranFunction_Description_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, - { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, - asn_PER_MAP_ranFunction_Description_4_v2c, /* Value to PER code map */ - asn_PER_MAP_ranFunction_Description_4_c2v /* PER code to value map */ -}; -asn_TYPE_member_t asn_MBR_RANfunction_Name_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Name, ranFunction_ShortName), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PrintableString, - 0, - { &asn_OER_memb_ranFunction_ShortName_constr_2, &asn_PER_memb_ranFunction_ShortName_constr_2, memb_ranFunction_ShortName_constraint_1 }, - 0, 0, /* No default value */ - "ranFunction-ShortName" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Name, ranFunction_E2SM_OID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PrintableString, - 0, - { &asn_OER_memb_ranFunction_E2SM_OID_constr_3, &asn_PER_memb_ranFunction_E2SM_OID_constr_3, memb_ranFunction_E2SM_OID_constraint_1 }, - 0, 0, /* No default value */ - "ranFunction-E2SM-OID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Name, ranFunction_Description), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PrintableString, - 0, - { &asn_OER_memb_ranFunction_Description_constr_4, &asn_PER_memb_ranFunction_Description_constr_4, memb_ranFunction_Description_constraint_1 }, - 0, 0, /* No default value */ - "ranFunction-Description" - }, - { ATF_POINTER, 1, offsetof(struct RANfunction_Name, ranFunction_Instance), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunction-Instance" - }, -}; -static const int asn_MAP_RANfunction_Name_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_RANfunction_Name_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunction_Name_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunction-ShortName */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ranFunction-E2SM-OID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ranFunction-Description */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ranFunction-Instance */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RANfunction_Name_specs_1 = { - sizeof(struct RANfunction_Name), - offsetof(struct RANfunction_Name, _asn_ctx), - asn_MAP_RANfunction_Name_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_RANfunction_Name_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunction_Name = { - "RANfunction-Name", - "RANfunction-Name", - &asn_OP_SEQUENCE, - asn_DEF_RANfunction_Name_tags_1, - sizeof(asn_DEF_RANfunction_Name_tags_1) - /sizeof(asn_DEF_RANfunction_Name_tags_1[0]), /* 1 */ - asn_DEF_RANfunction_Name_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunction_Name_tags_1) - /sizeof(asn_DEF_RANfunction_Name_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunction_Name_1, - 4, /* Elements count */ - &asn_SPC_RANfunction_Name_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunction-Name.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunction-Name.h deleted file mode 100644 index 0fe182b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunction-Name.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RANfunction_Name_H_ -#define _RANfunction_Name_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunction-Name */ -typedef struct RANfunction_Name { - PrintableString_t ranFunction_ShortName; - PrintableString_t ranFunction_E2SM_OID; - PrintableString_t ranFunction_Description; - long *ranFunction_Instance; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunction_Name_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunction_Name; -extern asn_SEQUENCE_specifics_t asn_SPC_RANfunction_Name_specs_1; -extern asn_TYPE_member_t asn_MBR_RANfunction_Name_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunction_Name_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionDefinition.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionDefinition.c deleted file mode 100644 index 3d8697d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionDefinition.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunctionDefinition.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RANfunctionDefinition_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionDefinition = { - "RANfunctionDefinition", - "RANfunctionDefinition", - &asn_OP_OCTET_STRING, - asn_DEF_RANfunctionDefinition_tags_1, - sizeof(asn_DEF_RANfunctionDefinition_tags_1) - /sizeof(asn_DEF_RANfunctionDefinition_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionDefinition_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionDefinition_tags_1) - /sizeof(asn_DEF_RANfunctionDefinition_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionDefinition.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionDefinition.h deleted file mode 100644 index 4e54dde..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionDefinition.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunctionDefinition_H_ -#define _RANfunctionDefinition_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionDefinition */ -typedef OCTET_STRING_t RANfunctionDefinition_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionDefinition; -asn_struct_free_f RANfunctionDefinition_free; -asn_struct_print_f RANfunctionDefinition_print; -asn_constr_check_f RANfunctionDefinition_constraint; -ber_type_decoder_f RANfunctionDefinition_decode_ber; -der_type_encoder_f RANfunctionDefinition_encode_der; -xer_type_decoder_f RANfunctionDefinition_decode_xer; -xer_type_encoder_f RANfunctionDefinition_encode_xer; -per_type_decoder_f RANfunctionDefinition_decode_uper; -per_type_encoder_f RANfunctionDefinition_encode_uper; -per_type_decoder_f RANfunctionDefinition_decode_aper; -per_type_encoder_f RANfunctionDefinition_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionDefinition_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionID-Item.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionID-Item.c deleted file mode 100644 index 7661a88..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionID-Item.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunctionID-Item.h" - -static asn_TYPE_member_t asn_MBR_RANfunctionID_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_Item, ranFunctionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 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 RANfunctionID_Item, ranFunctionRevision), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunctionRevision, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunctionRevision" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionID_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunctionID_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunctionID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ranFunctionRevision */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_Item_specs_1 = { - sizeof(struct RANfunctionID_Item), - offsetof(struct RANfunctionID_Item, _asn_ctx), - asn_MAP_RANfunctionID_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_RANfunctionID_Item = { - "RANfunctionID-Item", - "RANfunctionID-Item", - &asn_OP_SEQUENCE, - asn_DEF_RANfunctionID_Item_tags_1, - sizeof(asn_DEF_RANfunctionID_Item_tags_1) - /sizeof(asn_DEF_RANfunctionID_Item_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionID_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionID_Item_tags_1) - /sizeof(asn_DEF_RANfunctionID_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionID_Item_1, - 2, /* Elements count */ - &asn_SPC_RANfunctionID_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionID-Item.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionID-Item.h deleted file mode 100644 index 9b3be69..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionID-Item.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunctionID_Item_H_ -#define _RANfunctionID_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RANfunctionID.h" -#include "RANfunctionRevision.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionID-Item */ -typedef struct RANfunctionID_Item { - RANfunctionID_t ranFunctionID; - RANfunctionRevision_t ranFunctionRevision; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionID_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionID_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionID.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionID.c deleted file mode 100644 index fc95705..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionID.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunctionID.h" - -int -RANfunctionID_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 <= 4095)) { - /* 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. - */ -asn_per_constraints_t asn_PER_type_RANfunctionID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionID = { - "RANfunctionID", - "RANfunctionID", - &asn_OP_NativeInteger, - asn_DEF_RANfunctionID_tags_1, - sizeof(asn_DEF_RANfunctionID_tags_1) - /sizeof(asn_DEF_RANfunctionID_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionID_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionID_tags_1) - /sizeof(asn_DEF_RANfunctionID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctionID_constr_1, RANfunctionID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionID.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionID.h deleted file mode 100644 index f0a61a0..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunctionID_H_ -#define _RANfunctionID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionID */ -typedef long RANfunctionID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RANfunctionID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID; -asn_struct_free_f RANfunctionID_free; -asn_struct_print_f RANfunctionID_print; -asn_constr_check_f RANfunctionID_constraint; -ber_type_decoder_f RANfunctionID_decode_ber; -der_type_encoder_f RANfunctionID_encode_der; -xer_type_decoder_f RANfunctionID_decode_xer; -xer_type_encoder_f RANfunctionID_encode_xer; -per_type_decoder_f RANfunctionID_decode_uper; -per_type_encoder_f RANfunctionID_encode_uper; -per_type_decoder_f RANfunctionID_decode_aper; -per_type_encoder_f RANfunctionID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionIDcause-Item.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionIDcause-Item.c deleted file mode 100644 index 985330a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionIDcause-Item.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunctionIDcause-Item.h" - -static asn_TYPE_member_t asn_MBR_RANfunctionIDcause_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_Item, ranFunctionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 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 RANfunctionIDcause_Item, cause), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cause" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionIDcause_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunctionIDcause_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunctionID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cause */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_Item_specs_1 = { - sizeof(struct RANfunctionIDcause_Item), - offsetof(struct RANfunctionIDcause_Item, _asn_ctx), - asn_MAP_RANfunctionIDcause_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_RANfunctionIDcause_Item = { - "RANfunctionIDcause-Item", - "RANfunctionIDcause-Item", - &asn_OP_SEQUENCE, - asn_DEF_RANfunctionIDcause_Item_tags_1, - sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1) - /sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionIDcause_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1) - /sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionIDcause_Item_1, - 2, /* Elements count */ - &asn_SPC_RANfunctionIDcause_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionIDcause-Item.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionIDcause-Item.h deleted file mode 100644 index 033ed53..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionIDcause-Item.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunctionIDcause_Item_H_ -#define _RANfunctionIDcause_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RANfunctionID.h" -#include "Cause.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionIDcause-Item */ -typedef struct RANfunctionIDcause_Item { - RANfunctionID_t ranFunctionID; - Cause_t cause; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionIDcause_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionIDcause_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionRevision.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionRevision.c deleted file mode 100644 index a0b271b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionRevision.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunctionRevision.h" - -int -RANfunctionRevision_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 <= 4095)) { - /* 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. - */ -asn_per_constraints_t asn_PER_type_RANfunctionRevision_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionRevision_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionRevision = { - "RANfunctionRevision", - "RANfunctionRevision", - &asn_OP_NativeInteger, - asn_DEF_RANfunctionRevision_tags_1, - sizeof(asn_DEF_RANfunctionRevision_tags_1) - /sizeof(asn_DEF_RANfunctionRevision_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionRevision_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionRevision_tags_1) - /sizeof(asn_DEF_RANfunctionRevision_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctionRevision_constr_1, RANfunctionRevision_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionRevision.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionRevision.h deleted file mode 100644 index 58ec9ba..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionRevision.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunctionRevision_H_ -#define _RANfunctionRevision_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionRevision */ -typedef long RANfunctionRevision_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RANfunctionRevision_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionRevision; -asn_struct_free_f RANfunctionRevision_free; -asn_struct_print_f RANfunctionRevision_print; -asn_constr_check_f RANfunctionRevision_constraint; -ber_type_decoder_f RANfunctionRevision_decode_ber; -der_type_encoder_f RANfunctionRevision_encode_der; -xer_type_decoder_f RANfunctionRevision_decode_xer; -xer_type_encoder_f RANfunctionRevision_encode_xer; -per_type_decoder_f RANfunctionRevision_decode_uper; -per_type_encoder_f RANfunctionRevision_encode_uper; -per_type_decoder_f RANfunctionRevision_decode_aper; -per_type_encoder_f RANfunctionRevision_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionRevision_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctions-List.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctions-List.c deleted file mode 100644 index f55d0a1..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctions-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunctions-List.h" - -#include "ProtocolIE-SingleContainer.h" -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)) */, - 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_SingleContainer_1530P3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctions_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RANfunctions_List_specs_1 = { - sizeof(struct RANfunctions_List), - offsetof(struct RANfunctions_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctions_List = { - "RANfunctions-List", - "RANfunctions-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RANfunctions_List_tags_1, - sizeof(asn_DEF_RANfunctions_List_tags_1) - /sizeof(asn_DEF_RANfunctions_List_tags_1[0]), /* 1 */ - asn_DEF_RANfunctions_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctions_List_tags_1) - /sizeof(asn_DEF_RANfunctions_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctions_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RANfunctions_List_1, - 1, /* Single element */ - &asn_SPC_RANfunctions_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctions-List.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctions-List.h deleted file mode 100644 index 9e45736..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctions-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunctions_List_H_ -#define _RANfunctions_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RANfunctions-List */ -typedef struct RANfunctions_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctions_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctions_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctions_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionsID-List.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionsID-List.c deleted file mode 100644 index c52b90c..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionsID-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunctionsID-List.h" - -#include "ProtocolIE-SingleContainer.h" -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)) */, - 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_SingleContainer_1530P4, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionsID_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RANfunctionsID_List_specs_1 = { - sizeof(struct RANfunctionsID_List), - offsetof(struct RANfunctionsID_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionsID_List = { - "RANfunctionsID-List", - "RANfunctionsID-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RANfunctionsID_List_tags_1, - sizeof(asn_DEF_RANfunctionsID_List_tags_1) - /sizeof(asn_DEF_RANfunctionsID_List_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionsID_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionsID_List_tags_1) - /sizeof(asn_DEF_RANfunctionsID_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctionsID_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RANfunctionsID_List_1, - 1, /* Single element */ - &asn_SPC_RANfunctionsID_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionsID-List.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionsID-List.h deleted file mode 100644 index b8bd23c..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionsID-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunctionsID_List_H_ -#define _RANfunctionsID_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RANfunctionsID-List */ -typedef struct RANfunctionsID_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionsID_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionsID_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionsID_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionsIDcause-List.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionsIDcause-List.c deleted file mode 100644 index fb5c08d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionsIDcause-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunctionsIDcause-List.h" - -#include "ProtocolIE-SingleContainer.h" -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)) */, - 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_SingleContainer_1530P5, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionsIDcause_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RANfunctionsIDcause_List_specs_1 = { - sizeof(struct RANfunctionsIDcause_List), - offsetof(struct RANfunctionsIDcause_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionsIDcause_List = { - "RANfunctionsIDcause-List", - "RANfunctionsIDcause-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RANfunctionsIDcause_List_tags_1, - sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1) - /sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionsIDcause_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1) - /sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctionsIDcause_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RANfunctionsIDcause_List_1, - 1, /* Single element */ - &asn_SPC_RANfunctionsIDcause_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionsIDcause-List.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionsIDcause-List.h deleted file mode 100644 index 386c289..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RANfunctionsIDcause-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunctionsIDcause_List_H_ -#define _RANfunctionsIDcause_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RANfunctionsIDcause-List */ -typedef struct RANfunctionsIDcause_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionsIDcause_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionsIDcause_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionsIDcause_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RIC-EventTriggerStyle-List.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RIC-EventTriggerStyle-List.c deleted file mode 100644 index 246322a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RIC-EventTriggerStyle-List.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RIC-EventTriggerStyle-List.h" - -asn_TYPE_member_t asn_MBR_RIC_EventTriggerStyle_List_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RIC_EventTriggerStyle_List, ric_EventTriggerStyle_Type), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Style_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-EventTriggerStyle-Type" - }, - { ATF_NOFLAGS, 0, offsetof(struct RIC_EventTriggerStyle_List, ric_EventTriggerStyle_Name), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Style_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-EventTriggerStyle-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct RIC_EventTriggerStyle_List, ric_EventTriggerFormat_Type), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Format_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-EventTriggerFormat-Type" - }, -}; -static const ber_tlv_tag_t asn_DEF_RIC_EventTriggerStyle_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RIC_EventTriggerStyle_List_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-EventTriggerStyle-Type */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ric-EventTriggerStyle-Name */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ric-EventTriggerFormat-Type */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RIC_EventTriggerStyle_List_specs_1 = { - sizeof(struct RIC_EventTriggerStyle_List), - offsetof(struct RIC_EventTriggerStyle_List, _asn_ctx), - asn_MAP_RIC_EventTriggerStyle_List_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_RIC_EventTriggerStyle_List = { - "RIC-EventTriggerStyle-List", - "RIC-EventTriggerStyle-List", - &asn_OP_SEQUENCE, - asn_DEF_RIC_EventTriggerStyle_List_tags_1, - sizeof(asn_DEF_RIC_EventTriggerStyle_List_tags_1) - /sizeof(asn_DEF_RIC_EventTriggerStyle_List_tags_1[0]), /* 1 */ - asn_DEF_RIC_EventTriggerStyle_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RIC_EventTriggerStyle_List_tags_1) - /sizeof(asn_DEF_RIC_EventTriggerStyle_List_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RIC_EventTriggerStyle_List_1, - 3, /* Elements count */ - &asn_SPC_RIC_EventTriggerStyle_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RIC-EventTriggerStyle-List.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RIC-EventTriggerStyle-List.h deleted file mode 100644 index 18a6a8a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RIC-EventTriggerStyle-List.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RIC_EventTriggerStyle_List_H_ -#define _RIC_EventTriggerStyle_List_H_ - - -#include - -/* Including external dependencies */ -#include "RIC-Style-Type.h" -#include "RIC-Style-Name.h" -#include "RIC-Format-Type.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RIC-EventTriggerStyle-List */ -typedef struct RIC_EventTriggerStyle_List { - RIC_Style_Type_t ric_EventTriggerStyle_Type; - RIC_Style_Name_t ric_EventTriggerStyle_Name; - RIC_Format_Type_t ric_EventTriggerFormat_Type; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RIC_EventTriggerStyle_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RIC_EventTriggerStyle_List; -extern asn_SEQUENCE_specifics_t asn_SPC_RIC_EventTriggerStyle_List_specs_1; -extern asn_TYPE_member_t asn_MBR_RIC_EventTriggerStyle_List_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RIC_EventTriggerStyle_List_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RIC-Format-Type.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RIC-Format-Type.c deleted file mode 100644 index 53f0624..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RIC-Format-Type.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RIC-Format-Type.h" - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RIC_Format_Type_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RIC_Format_Type = { - "RIC-Format-Type", - "RIC-Format-Type", - &asn_OP_NativeInteger, - asn_DEF_RIC_Format_Type_tags_1, - sizeof(asn_DEF_RIC_Format_Type_tags_1) - /sizeof(asn_DEF_RIC_Format_Type_tags_1[0]), /* 1 */ - asn_DEF_RIC_Format_Type_tags_1, /* Same as above */ - sizeof(asn_DEF_RIC_Format_Type_tags_1) - /sizeof(asn_DEF_RIC_Format_Type_tags_1[0]), /* 1 */ - { 0, 0, NativeInteger_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RIC-Format-Type.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RIC-Format-Type.h deleted file mode 100644 index 81cec85..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RIC-Format-Type.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RIC_Format_Type_H_ -#define _RIC_Format_Type_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RIC-Format-Type */ -typedef long RIC_Format_Type_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RIC_Format_Type; -asn_struct_free_f RIC_Format_Type_free; -asn_struct_print_f RIC_Format_Type_print; -asn_constr_check_f RIC_Format_Type_constraint; -ber_type_decoder_f RIC_Format_Type_decode_ber; -der_type_encoder_f RIC_Format_Type_encode_der; -xer_type_decoder_f RIC_Format_Type_decode_xer; -xer_type_encoder_f RIC_Format_Type_encode_xer; -oer_type_decoder_f RIC_Format_Type_decode_oer; -oer_type_encoder_f RIC_Format_Type_encode_oer; -per_type_decoder_f RIC_Format_Type_decode_uper; -per_type_encoder_f RIC_Format_Type_encode_uper; -per_type_decoder_f RIC_Format_Type_decode_aper; -per_type_encoder_f RIC_Format_Type_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RIC_Format_Type_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RIC-ReportStyle-List.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RIC-ReportStyle-List.c deleted file mode 100644 index 93d4a15..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RIC-ReportStyle-List.c +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RIC-ReportStyle-List.h" - -asn_TYPE_member_t asn_MBR_RIC_ReportStyle_List_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RIC_ReportStyle_List, ric_ReportStyle_Type), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Style_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-ReportStyle-Type" - }, - { ATF_NOFLAGS, 0, offsetof(struct RIC_ReportStyle_List, ric_ReportStyle_Name), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Style_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-ReportStyle-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct RIC_ReportStyle_List, ric_IndicationHeaderFormat_Type), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Format_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-IndicationHeaderFormat-Type" - }, - { ATF_NOFLAGS, 0, offsetof(struct RIC_ReportStyle_List, ric_IndicationMessageFormat_Type), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Format_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-IndicationMessageFormat-Type" - }, -}; -static const ber_tlv_tag_t asn_DEF_RIC_ReportStyle_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RIC_ReportStyle_List_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-ReportStyle-Type */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ric-ReportStyle-Name */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ric-IndicationHeaderFormat-Type */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ric-IndicationMessageFormat-Type */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RIC_ReportStyle_List_specs_1 = { - sizeof(struct RIC_ReportStyle_List), - offsetof(struct RIC_ReportStyle_List, _asn_ctx), - asn_MAP_RIC_ReportStyle_List_tag2el_1, - 4, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RIC_ReportStyle_List = { - "RIC-ReportStyle-List", - "RIC-ReportStyle-List", - &asn_OP_SEQUENCE, - asn_DEF_RIC_ReportStyle_List_tags_1, - sizeof(asn_DEF_RIC_ReportStyle_List_tags_1) - /sizeof(asn_DEF_RIC_ReportStyle_List_tags_1[0]), /* 1 */ - asn_DEF_RIC_ReportStyle_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RIC_ReportStyle_List_tags_1) - /sizeof(asn_DEF_RIC_ReportStyle_List_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RIC_ReportStyle_List_1, - 4, /* Elements count */ - &asn_SPC_RIC_ReportStyle_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RIC-ReportStyle-List.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RIC-ReportStyle-List.h deleted file mode 100644 index af886aa..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RIC-ReportStyle-List.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RIC_ReportStyle_List_H_ -#define _RIC_ReportStyle_List_H_ - - -#include - -/* Including external dependencies */ -#include "RIC-Style-Type.h" -#include "RIC-Style-Name.h" -#include "RIC-Format-Type.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RIC-ReportStyle-List */ -typedef struct RIC_ReportStyle_List { - RIC_Style_Type_t ric_ReportStyle_Type; - RIC_Style_Name_t ric_ReportStyle_Name; - RIC_Format_Type_t ric_IndicationHeaderFormat_Type; - RIC_Format_Type_t ric_IndicationMessageFormat_Type; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RIC_ReportStyle_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RIC_ReportStyle_List; -extern asn_SEQUENCE_specifics_t asn_SPC_RIC_ReportStyle_List_specs_1; -extern asn_TYPE_member_t asn_MBR_RIC_ReportStyle_List_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RIC_ReportStyle_List_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RIC-Style-Name.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RIC-Style-Name.c deleted file mode 100644 index 2c4a054..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RIC-Style-Name.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RIC-Style-Name.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 -RIC_Style_Name_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_RIC_Style_Name_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_RIC_Style_Name_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_RIC_Style_Name_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -asn_per_constraints_t asn_PER_type_RIC_Style_Name_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_RIC_Style_Name_1_v2c, /* Value to PER code map */ - asn_PER_MAP_RIC_Style_Name_1_c2v /* PER code to value map */ -}; -static const ber_tlv_tag_t asn_DEF_RIC_Style_Name_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RIC_Style_Name = { - "RIC-Style-Name", - "RIC-Style-Name", - &asn_OP_PrintableString, - asn_DEF_RIC_Style_Name_tags_1, - sizeof(asn_DEF_RIC_Style_Name_tags_1) - /sizeof(asn_DEF_RIC_Style_Name_tags_1[0]), /* 1 */ - asn_DEF_RIC_Style_Name_tags_1, /* Same as above */ - sizeof(asn_DEF_RIC_Style_Name_tags_1) - /sizeof(asn_DEF_RIC_Style_Name_tags_1[0]), /* 1 */ - { &asn_OER_type_RIC_Style_Name_constr_1, &asn_PER_type_RIC_Style_Name_constr_1, RIC_Style_Name_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RIC-Style-Name.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RIC-Style-Name.h deleted file mode 100644 index bb02b2c..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RIC-Style-Name.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RIC_Style_Name_H_ -#define _RIC_Style_Name_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RIC-Style-Name */ -typedef PrintableString_t RIC_Style_Name_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RIC_Style_Name_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RIC_Style_Name; -asn_struct_free_f RIC_Style_Name_free; -asn_struct_print_f RIC_Style_Name_print; -asn_constr_check_f RIC_Style_Name_constraint; -ber_type_decoder_f RIC_Style_Name_decode_ber; -der_type_encoder_f RIC_Style_Name_encode_der; -xer_type_decoder_f RIC_Style_Name_decode_xer; -xer_type_encoder_f RIC_Style_Name_encode_xer; -oer_type_decoder_f RIC_Style_Name_decode_oer; -oer_type_encoder_f RIC_Style_Name_encode_oer; -per_type_decoder_f RIC_Style_Name_decode_uper; -per_type_encoder_f RIC_Style_Name_encode_uper; -per_type_decoder_f RIC_Style_Name_decode_aper; -per_type_encoder_f RIC_Style_Name_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RIC_Style_Name_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RIC-Style-Type.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RIC-Style-Type.c deleted file mode 100644 index 5324c4a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RIC-Style-Type.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RIC-Style-Type.h" - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RIC_Style_Type_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RIC_Style_Type = { - "RIC-Style-Type", - "RIC-Style-Type", - &asn_OP_NativeInteger, - asn_DEF_RIC_Style_Type_tags_1, - sizeof(asn_DEF_RIC_Style_Type_tags_1) - /sizeof(asn_DEF_RIC_Style_Type_tags_1[0]), /* 1 */ - asn_DEF_RIC_Style_Type_tags_1, /* Same as above */ - sizeof(asn_DEF_RIC_Style_Type_tags_1) - /sizeof(asn_DEF_RIC_Style_Type_tags_1[0]), /* 1 */ - { 0, 0, NativeInteger_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RIC-Style-Type.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RIC-Style-Type.h deleted file mode 100644 index 9948bb0..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RIC-Style-Type.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RIC_Style_Type_H_ -#define _RIC_Style_Type_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RIC-Style-Type */ -typedef long RIC_Style_Type_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RIC_Style_Type; -asn_struct_free_f RIC_Style_Type_free; -asn_struct_print_f RIC_Style_Type_print; -asn_constr_check_f RIC_Style_Type_constraint; -ber_type_decoder_f RIC_Style_Type_decode_ber; -der_type_encoder_f RIC_Style_Type_encode_der; -xer_type_decoder_f RIC_Style_Type_decode_xer; -xer_type_encoder_f RIC_Style_Type_encode_xer; -oer_type_decoder_f RIC_Style_Type_decode_oer; -oer_type_encoder_f RIC_Style_Type_encode_oer; -per_type_decoder_f RIC_Style_Type_decode_uper; -per_type_encoder_f RIC_Style_Type_encode_uper; -per_type_decoder_f RIC_Style_Type_decode_aper; -per_type_encoder_f RIC_Style_Type_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RIC_Style_Type_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICaction-Admitted-Item.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICaction-Admitted-Item.c deleted file mode 100644 index 0b566bb..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICaction-Admitted-Item.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICaction-Admitted-Item.h" - -static asn_TYPE_member_t asn_MBR_RICaction_Admitted_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_Item, ricActionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionID" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_Admitted_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ricActionID */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_Item_specs_1 = { - sizeof(struct RICaction_Admitted_Item), - offsetof(struct RICaction_Admitted_Item, _asn_ctx), - asn_MAP_RICaction_Admitted_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_RICaction_Admitted_Item = { - "RICaction-Admitted-Item", - "RICaction-Admitted-Item", - &asn_OP_SEQUENCE, - asn_DEF_RICaction_Admitted_Item_tags_1, - sizeof(asn_DEF_RICaction_Admitted_Item_tags_1) - /sizeof(asn_DEF_RICaction_Admitted_Item_tags_1[0]), /* 1 */ - asn_DEF_RICaction_Admitted_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_Admitted_Item_tags_1) - /sizeof(asn_DEF_RICaction_Admitted_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_Admitted_Item_1, - 1, /* Elements count */ - &asn_SPC_RICaction_Admitted_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICaction-Admitted-Item.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICaction-Admitted-Item.h deleted file mode 100644 index d7f13c1..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICaction-Admitted-Item.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICaction_Admitted_Item_H_ -#define _RICaction_Admitted_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICactionID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICaction-Admitted-Item */ -typedef struct RICaction_Admitted_Item { - RICactionID_t ricActionID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_Admitted_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_Admitted_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICaction-Admitted-List.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICaction-Admitted-List.c deleted file mode 100644 index 692fd38..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICaction-Admitted-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICaction-Admitted-List.h" - -#include "ProtocolIE-SingleContainer.h" -static asn_per_constraints_t asn_PER_type_RICaction_Admitted_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, - 0, 0 /* No PER value map */ -}; -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_SingleContainer_1530P1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RICaction_Admitted_List_specs_1 = { - sizeof(struct RICaction_Admitted_List), - offsetof(struct RICaction_Admitted_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_List = { - "RICaction-Admitted-List", - "RICaction-Admitted-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RICaction_Admitted_List_tags_1, - sizeof(asn_DEF_RICaction_Admitted_List_tags_1) - /sizeof(asn_DEF_RICaction_Admitted_List_tags_1[0]), /* 1 */ - asn_DEF_RICaction_Admitted_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_Admitted_List_tags_1) - /sizeof(asn_DEF_RICaction_Admitted_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICaction_Admitted_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RICaction_Admitted_List_1, - 1, /* Single element */ - &asn_SPC_RICaction_Admitted_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICaction-Admitted-List.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICaction-Admitted-List.h deleted file mode 100644 index 8eaf217..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICaction-Admitted-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICaction_Admitted_List_H_ -#define _RICaction_Admitted_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RICaction-Admitted-List */ -typedef struct RICaction_Admitted_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_Admitted_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_Admitted_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICaction-NotAdmitted-Item.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICaction-NotAdmitted-Item.c deleted file mode 100644 index 515679d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICaction-NotAdmitted-Item.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICaction-NotAdmitted-Item.h" - -static asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_Item, ricActionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_Item, cause), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cause" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_NotAdmitted_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_NotAdmitted_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricActionID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cause */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_Item_specs_1 = { - sizeof(struct RICaction_NotAdmitted_Item), - offsetof(struct RICaction_NotAdmitted_Item, _asn_ctx), - asn_MAP_RICaction_NotAdmitted_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_RICaction_NotAdmitted_Item = { - "RICaction-NotAdmitted-Item", - "RICaction-NotAdmitted-Item", - &asn_OP_SEQUENCE, - asn_DEF_RICaction_NotAdmitted_Item_tags_1, - sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1) - /sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1[0]), /* 1 */ - asn_DEF_RICaction_NotAdmitted_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1) - /sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_NotAdmitted_Item_1, - 2, /* Elements count */ - &asn_SPC_RICaction_NotAdmitted_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICaction-NotAdmitted-Item.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICaction-NotAdmitted-Item.h deleted file mode 100644 index 48645e1..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICaction-NotAdmitted-Item.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICaction_NotAdmitted_Item_H_ -#define _RICaction_NotAdmitted_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICactionID.h" -#include "Cause.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICaction-NotAdmitted-Item */ -typedef struct RICaction_NotAdmitted_Item { - RICactionID_t ricActionID; - Cause_t cause; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_NotAdmitted_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_NotAdmitted_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICaction-NotAdmitted-List.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICaction-NotAdmitted-List.c deleted file mode 100644 index 51f45f4..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICaction-NotAdmitted-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICaction-NotAdmitted-List.h" - -#include "ProtocolIE-SingleContainer.h" -static asn_per_constraints_t asn_PER_type_RICaction_NotAdmitted_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 5, 5, 0, 16 } /* (SIZE(0..16)) */, - 0, 0 /* No PER value map */ -}; -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_SingleContainer_1530P2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_NotAdmitted_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RICaction_NotAdmitted_List_specs_1 = { - sizeof(struct RICaction_NotAdmitted_List), - offsetof(struct RICaction_NotAdmitted_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_List = { - "RICaction-NotAdmitted-List", - "RICaction-NotAdmitted-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RICaction_NotAdmitted_List_tags_1, - sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1) - /sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1[0]), /* 1 */ - asn_DEF_RICaction_NotAdmitted_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1) - /sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICaction_NotAdmitted_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RICaction_NotAdmitted_List_1, - 1, /* Single element */ - &asn_SPC_RICaction_NotAdmitted_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICaction-NotAdmitted-List.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICaction-NotAdmitted-List.h deleted file mode 100644 index 95bbadf..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICaction-NotAdmitted-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICaction_NotAdmitted_List_H_ -#define _RICaction_NotAdmitted_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RICaction-NotAdmitted-List */ -typedef struct RICaction_NotAdmitted_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_NotAdmitted_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_NotAdmitted_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICaction-ToBeSetup-Item.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICaction-ToBeSetup-Item.c deleted file mode 100644 index 2e8bc94..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICaction-ToBeSetup-Item.c +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICaction-ToBeSetup-Item.h" - -#include "RICsubsequentAction.h" -static asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_Item, ricActionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_Item, ricActionType), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionType, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionType" - }, - { ATF_POINTER, 2, offsetof(struct RICaction_ToBeSetup_Item, ricActionDefinition), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionDefinition, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionDefinition" - }, - { ATF_POINTER, 1, offsetof(struct RICaction_ToBeSetup_Item, ricSubsequentAction), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICsubsequentAction, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricSubsequentAction" - }, -}; -static const int asn_MAP_RICaction_ToBeSetup_Item_oms_1[] = { 2, 3 }; -static const ber_tlv_tag_t asn_DEF_RICaction_ToBeSetup_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_ToBeSetup_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricActionID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricActionType */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ricActionDefinition */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ricSubsequentAction */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_Item_specs_1 = { - sizeof(struct RICaction_ToBeSetup_Item), - offsetof(struct RICaction_ToBeSetup_Item, _asn_ctx), - asn_MAP_RICaction_ToBeSetup_Item_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_RICaction_ToBeSetup_Item_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_Item = { - "RICaction-ToBeSetup-Item", - "RICaction-ToBeSetup-Item", - &asn_OP_SEQUENCE, - asn_DEF_RICaction_ToBeSetup_Item_tags_1, - sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1) - /sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1[0]), /* 1 */ - asn_DEF_RICaction_ToBeSetup_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1) - /sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_ToBeSetup_Item_1, - 4, /* Elements count */ - &asn_SPC_RICaction_ToBeSetup_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICaction-ToBeSetup-Item.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICaction-ToBeSetup-Item.h deleted file mode 100644 index c3f5d07..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICaction-ToBeSetup-Item.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICaction_ToBeSetup_Item_H_ -#define _RICaction_ToBeSetup_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICactionID.h" -#include "RICactionType.h" -#include "RICactionDefinition.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct RICsubsequentAction; - -/* RICaction-ToBeSetup-Item */ -typedef struct RICaction_ToBeSetup_Item { - RICactionID_t ricActionID; - RICactionType_t ricActionType; - RICactionDefinition_t *ricActionDefinition; /* OPTIONAL */ - struct RICsubsequentAction *ricSubsequentAction; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_ToBeSetup_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_ToBeSetup_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICactionDefinition.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICactionDefinition.c deleted file mode 100644 index dd1d941..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICactionDefinition.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICactionDefinition.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICactionDefinition_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICactionDefinition = { - "RICactionDefinition", - "RICactionDefinition", - &asn_OP_OCTET_STRING, - asn_DEF_RICactionDefinition_tags_1, - sizeof(asn_DEF_RICactionDefinition_tags_1) - /sizeof(asn_DEF_RICactionDefinition_tags_1[0]), /* 1 */ - asn_DEF_RICactionDefinition_tags_1, /* Same as above */ - sizeof(asn_DEF_RICactionDefinition_tags_1) - /sizeof(asn_DEF_RICactionDefinition_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICactionDefinition.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICactionDefinition.h deleted file mode 100644 index e1eeca6..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICactionDefinition.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICactionDefinition_H_ -#define _RICactionDefinition_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICactionDefinition */ -typedef OCTET_STRING_t RICactionDefinition_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICactionDefinition; -asn_struct_free_f RICactionDefinition_free; -asn_struct_print_f RICactionDefinition_print; -asn_constr_check_f RICactionDefinition_constraint; -ber_type_decoder_f RICactionDefinition_decode_ber; -der_type_encoder_f RICactionDefinition_encode_der; -xer_type_decoder_f RICactionDefinition_decode_xer; -xer_type_encoder_f RICactionDefinition_encode_xer; -per_type_decoder_f RICactionDefinition_decode_uper; -per_type_encoder_f RICactionDefinition_encode_uper; -per_type_decoder_f RICactionDefinition_decode_aper; -per_type_encoder_f RICactionDefinition_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICactionDefinition_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICactionID.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICactionID.c deleted file mode 100644 index ecd1ea7..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICactionID.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICactionID.h" - -int -RICactionID_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. - */ -asn_per_constraints_t asn_PER_type_RICactionID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 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_RICactionID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICactionID = { - "RICactionID", - "RICactionID", - &asn_OP_NativeInteger, - asn_DEF_RICactionID_tags_1, - sizeof(asn_DEF_RICactionID_tags_1) - /sizeof(asn_DEF_RICactionID_tags_1[0]), /* 1 */ - asn_DEF_RICactionID_tags_1, /* Same as above */ - sizeof(asn_DEF_RICactionID_tags_1) - /sizeof(asn_DEF_RICactionID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICactionID_constr_1, RICactionID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICactionID.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICactionID.h deleted file mode 100644 index b21d3a8..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICactionID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICactionID_H_ -#define _RICactionID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICactionID */ -typedef long RICactionID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICactionID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RICactionID; -asn_struct_free_f RICactionID_free; -asn_struct_print_f RICactionID_print; -asn_constr_check_f RICactionID_constraint; -ber_type_decoder_f RICactionID_decode_ber; -der_type_encoder_f RICactionID_encode_der; -xer_type_decoder_f RICactionID_decode_xer; -xer_type_encoder_f RICactionID_encode_xer; -per_type_decoder_f RICactionID_decode_uper; -per_type_encoder_f RICactionID_encode_uper; -per_type_decoder_f RICactionID_decode_aper; -per_type_encoder_f RICactionID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICactionID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICactionType.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICactionType.c deleted file mode 100644 index 69f2101..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICactionType.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICactionType.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RICactionType_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_RICactionType_value2enum_1[] = { - { 0, 6, "report" }, - { 1, 6, "insert" }, - { 2, 6, "policy" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICactionType_enum2value_1[] = { - 1, /* insert(1) */ - 2, /* policy(2) */ - 0 /* report(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_RICactionType_specs_1 = { - asn_MAP_RICactionType_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICactionType_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_RICactionType_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICactionType = { - "RICactionType", - "RICactionType", - &asn_OP_NativeEnumerated, - asn_DEF_RICactionType_tags_1, - sizeof(asn_DEF_RICactionType_tags_1) - /sizeof(asn_DEF_RICactionType_tags_1[0]), /* 1 */ - asn_DEF_RICactionType_tags_1, /* Same as above */ - sizeof(asn_DEF_RICactionType_tags_1) - /sizeof(asn_DEF_RICactionType_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICactionType_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICactionType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICactionType.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICactionType.h deleted file mode 100644 index b51809c..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICactionType.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 "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICactionType_H_ -#define _RICactionType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICactionType { - RICactionType_report = 0, - RICactionType_insert = 1, - RICactionType_policy = 2 - /* - * Enumeration is extensible - */ -} e_RICactionType; - -/* RICactionType */ -typedef long RICactionType_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICactionType_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RICactionType; -extern const asn_INTEGER_specifics_t asn_SPC_RICactionType_specs_1; -asn_struct_free_f RICactionType_free; -asn_struct_print_f RICactionType_print; -asn_constr_check_f RICactionType_constraint; -ber_type_decoder_f RICactionType_decode_ber; -der_type_encoder_f RICactionType_encode_der; -xer_type_decoder_f RICactionType_decode_xer; -xer_type_encoder_f RICactionType_encode_xer; -per_type_decoder_f RICactionType_decode_uper; -per_type_encoder_f RICactionType_encode_uper; -per_type_decoder_f RICactionType_decode_aper; -per_type_encoder_f RICactionType_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICactionType_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICactions-ToBeSetup-List.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICactions-ToBeSetup-List.c deleted file mode 100644 index c1445fd..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICactions-ToBeSetup-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICactions-ToBeSetup-List.h" - -#include "ProtocolIE-SingleContainer.h" -asn_per_constraints_t asn_PER_type_RICactions_ToBeSetup_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_RICactions_ToBeSetup_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_SingleContainer_1530P0, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICactions_ToBeSetup_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_RICactions_ToBeSetup_List_specs_1 = { - sizeof(struct RICactions_ToBeSetup_List), - offsetof(struct RICactions_ToBeSetup_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RICactions_ToBeSetup_List = { - "RICactions-ToBeSetup-List", - "RICactions-ToBeSetup-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RICactions_ToBeSetup_List_tags_1, - sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1) - /sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1[0]), /* 1 */ - asn_DEF_RICactions_ToBeSetup_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1) - /sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICactions_ToBeSetup_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RICactions_ToBeSetup_List_1, - 1, /* Single element */ - &asn_SPC_RICactions_ToBeSetup_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICactions-ToBeSetup-List.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICactions-ToBeSetup-List.h deleted file mode 100644 index 7acfeb4..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICactions-ToBeSetup-List.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICactions_ToBeSetup_List_H_ -#define _RICactions_ToBeSetup_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RICactions-ToBeSetup-List */ -typedef struct RICactions_ToBeSetup_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICactions_ToBeSetup_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICactions_ToBeSetup_List; -extern asn_SET_OF_specifics_t asn_SPC_RICactions_ToBeSetup_List_specs_1; -extern asn_TYPE_member_t asn_MBR_RICactions_ToBeSetup_List_1[1]; -extern asn_per_constraints_t asn_PER_type_RICactions_ToBeSetup_List_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICactions_ToBeSetup_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcallProcessID.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcallProcessID.c deleted file mode 100644 index a7d682f..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcallProcessID.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcallProcessID.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICcallProcessID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcallProcessID = { - "RICcallProcessID", - "RICcallProcessID", - &asn_OP_OCTET_STRING, - asn_DEF_RICcallProcessID_tags_1, - sizeof(asn_DEF_RICcallProcessID_tags_1) - /sizeof(asn_DEF_RICcallProcessID_tags_1[0]), /* 1 */ - asn_DEF_RICcallProcessID_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcallProcessID_tags_1) - /sizeof(asn_DEF_RICcallProcessID_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcallProcessID.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcallProcessID.h deleted file mode 100644 index d388b85..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcallProcessID.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcallProcessID_H_ -#define _RICcallProcessID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcallProcessID */ -typedef OCTET_STRING_t RICcallProcessID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcallProcessID; -asn_struct_free_f RICcallProcessID_free; -asn_struct_print_f RICcallProcessID_print; -asn_constr_check_f RICcallProcessID_constraint; -ber_type_decoder_f RICcallProcessID_decode_ber; -der_type_encoder_f RICcallProcessID_encode_der; -xer_type_decoder_f RICcallProcessID_decode_xer; -xer_type_encoder_f RICcallProcessID_encode_xer; -per_type_decoder_f RICcallProcessID_decode_uper; -per_type_encoder_f RICcallProcessID_encode_uper; -per_type_decoder_f RICcallProcessID_decode_aper; -per_type_encoder_f RICcallProcessID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcallProcessID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolAckRequest.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolAckRequest.c deleted file mode 100644 index d69a24c..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolAckRequest.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcontrolAckRequest.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_RICcontrolAckRequest_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_RICcontrolAckRequest_value2enum_1[] = { - { 0, 5, "noAck" }, - { 1, 3, "ack" }, - { 2, 4, "nAck" } - /* 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 */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolAckRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolAckRequest = { - "RICcontrolAckRequest", - "RICcontrolAckRequest", - &asn_OP_NativeEnumerated, - asn_DEF_RICcontrolAckRequest_tags_1, - sizeof(asn_DEF_RICcontrolAckRequest_tags_1) - /sizeof(asn_DEF_RICcontrolAckRequest_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolAckRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolAckRequest_tags_1) - /sizeof(asn_DEF_RICcontrolAckRequest_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICcontrolAckRequest_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICcontrolAckRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolAckRequest.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolAckRequest.h deleted file mode 100644 index 73f9da7..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolAckRequest.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcontrolAckRequest_H_ -#define _RICcontrolAckRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICcontrolAckRequest { - RICcontrolAckRequest_noAck = 0, - RICcontrolAckRequest_ack = 1, - RICcontrolAckRequest_nAck = 2 - /* - * Enumeration is extensible - */ -} e_RICcontrolAckRequest; - -/* RICcontrolAckRequest */ -typedef long RICcontrolAckRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAckRequest; -asn_struct_free_f RICcontrolAckRequest_free; -asn_struct_print_f RICcontrolAckRequest_print; -asn_constr_check_f RICcontrolAckRequest_constraint; -ber_type_decoder_f RICcontrolAckRequest_decode_ber; -der_type_encoder_f RICcontrolAckRequest_encode_der; -xer_type_decoder_f RICcontrolAckRequest_decode_xer; -xer_type_encoder_f RICcontrolAckRequest_encode_xer; -per_type_decoder_f RICcontrolAckRequest_decode_uper; -per_type_encoder_f RICcontrolAckRequest_encode_uper; -per_type_decoder_f RICcontrolAckRequest_decode_aper; -per_type_encoder_f RICcontrolAckRequest_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolAckRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolAcknowledge.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolAcknowledge.c deleted file mode 100644 index eb3d6d2..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolAcknowledge.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcontrolAcknowledge.h" - -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_Container_1527P8, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolAcknowledge_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolAcknowledge_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_specs_1 = { - sizeof(struct RICcontrolAcknowledge), - offsetof(struct RICcontrolAcknowledge, _asn_ctx), - asn_MAP_RICcontrolAcknowledge_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_RICcontrolAcknowledge = { - "RICcontrolAcknowledge", - "RICcontrolAcknowledge", - &asn_OP_SEQUENCE, - asn_DEF_RICcontrolAcknowledge_tags_1, - sizeof(asn_DEF_RICcontrolAcknowledge_tags_1) - /sizeof(asn_DEF_RICcontrolAcknowledge_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolAcknowledge_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolAcknowledge_tags_1) - /sizeof(asn_DEF_RICcontrolAcknowledge_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolAcknowledge_1, - 1, /* Elements count */ - &asn_SPC_RICcontrolAcknowledge_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolAcknowledge.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolAcknowledge.h deleted file mode 100644 index 63dbb73..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolAcknowledge.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcontrolAcknowledge_H_ -#define _RICcontrolAcknowledge_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolAcknowledge */ -typedef struct RICcontrolAcknowledge { - ProtocolIE_Container_1527P8_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcontrolAcknowledge_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_specs_1; -extern asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolAcknowledge_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolFailure.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolFailure.c deleted file mode 100644 index 044706c..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcontrolFailure.h" - -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_Container_1527P9, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_specs_1 = { - sizeof(struct RICcontrolFailure), - offsetof(struct RICcontrolFailure, _asn_ctx), - asn_MAP_RICcontrolFailure_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_RICcontrolFailure = { - "RICcontrolFailure", - "RICcontrolFailure", - &asn_OP_SEQUENCE, - asn_DEF_RICcontrolFailure_tags_1, - sizeof(asn_DEF_RICcontrolFailure_tags_1) - /sizeof(asn_DEF_RICcontrolFailure_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolFailure_tags_1) - /sizeof(asn_DEF_RICcontrolFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolFailure_1, - 1, /* Elements count */ - &asn_SPC_RICcontrolFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolFailure.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolFailure.h deleted file mode 100644 index 919f11c..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcontrolFailure_H_ -#define _RICcontrolFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolFailure */ -typedef struct RICcontrolFailure { - ProtocolIE_Container_1527P9_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcontrolFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_RICcontrolFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolHeader.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolHeader.c deleted file mode 100644 index 2b0400b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolHeader.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcontrolHeader.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICcontrolHeader_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolHeader = { - "RICcontrolHeader", - "RICcontrolHeader", - &asn_OP_OCTET_STRING, - asn_DEF_RICcontrolHeader_tags_1, - sizeof(asn_DEF_RICcontrolHeader_tags_1) - /sizeof(asn_DEF_RICcontrolHeader_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolHeader_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolHeader_tags_1) - /sizeof(asn_DEF_RICcontrolHeader_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolHeader.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolHeader.h deleted file mode 100644 index f26977c..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolHeader.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcontrolHeader_H_ -#define _RICcontrolHeader_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolHeader */ -typedef OCTET_STRING_t RICcontrolHeader_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolHeader; -asn_struct_free_f RICcontrolHeader_free; -asn_struct_print_f RICcontrolHeader_print; -asn_constr_check_f RICcontrolHeader_constraint; -ber_type_decoder_f RICcontrolHeader_decode_ber; -der_type_encoder_f RICcontrolHeader_encode_der; -xer_type_decoder_f RICcontrolHeader_decode_xer; -xer_type_encoder_f RICcontrolHeader_encode_xer; -per_type_decoder_f RICcontrolHeader_decode_uper; -per_type_encoder_f RICcontrolHeader_encode_uper; -per_type_decoder_f RICcontrolHeader_decode_aper; -per_type_encoder_f RICcontrolHeader_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolHeader_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolMessage.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolMessage.c deleted file mode 100644 index f3df4b1..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolMessage.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcontrolMessage.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICcontrolMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolMessage = { - "RICcontrolMessage", - "RICcontrolMessage", - &asn_OP_OCTET_STRING, - asn_DEF_RICcontrolMessage_tags_1, - sizeof(asn_DEF_RICcontrolMessage_tags_1) - /sizeof(asn_DEF_RICcontrolMessage_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolMessage_tags_1) - /sizeof(asn_DEF_RICcontrolMessage_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolMessage.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolMessage.h deleted file mode 100644 index 5cc6cc3..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolMessage.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcontrolMessage_H_ -#define _RICcontrolMessage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolMessage */ -typedef OCTET_STRING_t RICcontrolMessage_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolMessage; -asn_struct_free_f RICcontrolMessage_free; -asn_struct_print_f RICcontrolMessage_print; -asn_constr_check_f RICcontrolMessage_constraint; -ber_type_decoder_f RICcontrolMessage_decode_ber; -der_type_encoder_f RICcontrolMessage_encode_der; -xer_type_decoder_f RICcontrolMessage_decode_xer; -xer_type_encoder_f RICcontrolMessage_encode_xer; -per_type_decoder_f RICcontrolMessage_decode_uper; -per_type_encoder_f RICcontrolMessage_encode_uper; -per_type_decoder_f RICcontrolMessage_decode_aper; -per_type_encoder_f RICcontrolMessage_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolMessage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolOutcome.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolOutcome.c deleted file mode 100644 index c40874d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolOutcome.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcontrolOutcome.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICcontrolOutcome_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolOutcome = { - "RICcontrolOutcome", - "RICcontrolOutcome", - &asn_OP_OCTET_STRING, - asn_DEF_RICcontrolOutcome_tags_1, - sizeof(asn_DEF_RICcontrolOutcome_tags_1) - /sizeof(asn_DEF_RICcontrolOutcome_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolOutcome_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolOutcome_tags_1) - /sizeof(asn_DEF_RICcontrolOutcome_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolOutcome.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolOutcome.h deleted file mode 100644 index 94481fc..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolOutcome.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcontrolOutcome_H_ -#define _RICcontrolOutcome_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolOutcome */ -typedef OCTET_STRING_t RICcontrolOutcome_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolOutcome; -asn_struct_free_f RICcontrolOutcome_free; -asn_struct_print_f RICcontrolOutcome_print; -asn_constr_check_f RICcontrolOutcome_constraint; -ber_type_decoder_f RICcontrolOutcome_decode_ber; -der_type_encoder_f RICcontrolOutcome_encode_der; -xer_type_decoder_f RICcontrolOutcome_decode_xer; -xer_type_encoder_f RICcontrolOutcome_encode_xer; -per_type_decoder_f RICcontrolOutcome_decode_uper; -per_type_encoder_f RICcontrolOutcome_encode_uper; -per_type_decoder_f RICcontrolOutcome_decode_aper; -per_type_encoder_f RICcontrolOutcome_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolOutcome_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolRequest.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolRequest.c deleted file mode 100644 index 2b54af3..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolRequest.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcontrolRequest.h" - -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_Container_1527P7, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_specs_1 = { - sizeof(struct RICcontrolRequest), - offsetof(struct RICcontrolRequest, _asn_ctx), - asn_MAP_RICcontrolRequest_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_RICcontrolRequest = { - "RICcontrolRequest", - "RICcontrolRequest", - &asn_OP_SEQUENCE, - asn_DEF_RICcontrolRequest_tags_1, - sizeof(asn_DEF_RICcontrolRequest_tags_1) - /sizeof(asn_DEF_RICcontrolRequest_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolRequest_tags_1) - /sizeof(asn_DEF_RICcontrolRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolRequest_1, - 1, /* Elements count */ - &asn_SPC_RICcontrolRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolRequest.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolRequest.h deleted file mode 100644 index f35e61d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolRequest.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcontrolRequest_H_ -#define _RICcontrolRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolRequest */ -typedef struct RICcontrolRequest { - ProtocolIE_Container_1527P7_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcontrolRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_RICcontrolRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolStatus.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolStatus.c deleted file mode 100644 index 8dc0c58..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolStatus.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcontrolStatus.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -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 */ - { 0, &asn_PER_type_RICcontrolStatus_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICcontrolStatus_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolStatus.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolStatus.h deleted file mode 100644 index 627ebaa..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICcontrolStatus.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcontrolStatus_H_ -#define _RICcontrolStatus_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#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; -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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICeventTriggerDefinition.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICeventTriggerDefinition.c deleted file mode 100644 index 4c892e0..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICeventTriggerDefinition.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICeventTriggerDefinition.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICeventTriggerDefinition_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICeventTriggerDefinition = { - "RICeventTriggerDefinition", - "RICeventTriggerDefinition", - &asn_OP_OCTET_STRING, - asn_DEF_RICeventTriggerDefinition_tags_1, - sizeof(asn_DEF_RICeventTriggerDefinition_tags_1) - /sizeof(asn_DEF_RICeventTriggerDefinition_tags_1[0]), /* 1 */ - asn_DEF_RICeventTriggerDefinition_tags_1, /* Same as above */ - sizeof(asn_DEF_RICeventTriggerDefinition_tags_1) - /sizeof(asn_DEF_RICeventTriggerDefinition_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICeventTriggerDefinition.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICeventTriggerDefinition.h deleted file mode 100644 index f323980..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICeventTriggerDefinition.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICeventTriggerDefinition_H_ -#define _RICeventTriggerDefinition_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICeventTriggerDefinition */ -typedef OCTET_STRING_t RICeventTriggerDefinition_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICeventTriggerDefinition; -asn_struct_free_f RICeventTriggerDefinition_free; -asn_struct_print_f RICeventTriggerDefinition_print; -asn_constr_check_f RICeventTriggerDefinition_constraint; -ber_type_decoder_f RICeventTriggerDefinition_decode_ber; -der_type_encoder_f RICeventTriggerDefinition_encode_der; -xer_type_decoder_f RICeventTriggerDefinition_decode_xer; -xer_type_encoder_f RICeventTriggerDefinition_encode_xer; -per_type_decoder_f RICeventTriggerDefinition_decode_uper; -per_type_encoder_f RICeventTriggerDefinition_encode_uper; -per_type_decoder_f RICeventTriggerDefinition_decode_aper; -per_type_encoder_f RICeventTriggerDefinition_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICeventTriggerDefinition_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICindication.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICindication.c deleted file mode 100644 index be2a72a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICindication.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICindication.h" - -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_Container_1527P6, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICindication_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICindication_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICindication_specs_1 = { - sizeof(struct RICindication), - offsetof(struct RICindication, _asn_ctx), - asn_MAP_RICindication_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_RICindication = { - "RICindication", - "RICindication", - &asn_OP_SEQUENCE, - asn_DEF_RICindication_tags_1, - sizeof(asn_DEF_RICindication_tags_1) - /sizeof(asn_DEF_RICindication_tags_1[0]), /* 1 */ - asn_DEF_RICindication_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindication_tags_1) - /sizeof(asn_DEF_RICindication_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICindication_1, - 1, /* Elements count */ - &asn_SPC_RICindication_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICindication.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICindication.h deleted file mode 100644 index 8a8173d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICindication.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICindication_H_ -#define _RICindication_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICindication */ -typedef struct RICindication { - ProtocolIE_Container_1527P6_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICindication_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindication; -extern asn_SEQUENCE_specifics_t asn_SPC_RICindication_specs_1; -extern asn_TYPE_member_t asn_MBR_RICindication_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindication_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICindicationHeader.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICindicationHeader.c deleted file mode 100644 index 31e2f7f..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICindicationHeader.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICindicationHeader.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICindicationHeader_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICindicationHeader = { - "RICindicationHeader", - "RICindicationHeader", - &asn_OP_OCTET_STRING, - asn_DEF_RICindicationHeader_tags_1, - sizeof(asn_DEF_RICindicationHeader_tags_1) - /sizeof(asn_DEF_RICindicationHeader_tags_1[0]), /* 1 */ - asn_DEF_RICindicationHeader_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindicationHeader_tags_1) - /sizeof(asn_DEF_RICindicationHeader_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICindicationHeader.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICindicationHeader.h deleted file mode 100644 index 0d1448d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICindicationHeader.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICindicationHeader_H_ -#define _RICindicationHeader_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICindicationHeader */ -typedef OCTET_STRING_t RICindicationHeader_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindicationHeader; -asn_struct_free_f RICindicationHeader_free; -asn_struct_print_f RICindicationHeader_print; -asn_constr_check_f RICindicationHeader_constraint; -ber_type_decoder_f RICindicationHeader_decode_ber; -der_type_encoder_f RICindicationHeader_encode_der; -xer_type_decoder_f RICindicationHeader_decode_xer; -xer_type_encoder_f RICindicationHeader_encode_xer; -per_type_decoder_f RICindicationHeader_decode_uper; -per_type_encoder_f RICindicationHeader_encode_uper; -per_type_decoder_f RICindicationHeader_decode_aper; -per_type_encoder_f RICindicationHeader_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindicationHeader_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICindicationMessage.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICindicationMessage.c deleted file mode 100644 index 096f61d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICindicationMessage.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICindicationMessage.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICindicationMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICindicationMessage = { - "RICindicationMessage", - "RICindicationMessage", - &asn_OP_OCTET_STRING, - asn_DEF_RICindicationMessage_tags_1, - sizeof(asn_DEF_RICindicationMessage_tags_1) - /sizeof(asn_DEF_RICindicationMessage_tags_1[0]), /* 1 */ - asn_DEF_RICindicationMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindicationMessage_tags_1) - /sizeof(asn_DEF_RICindicationMessage_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICindicationMessage.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICindicationMessage.h deleted file mode 100644 index 97ce63e..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICindicationMessage.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICindicationMessage_H_ -#define _RICindicationMessage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICindicationMessage */ -typedef OCTET_STRING_t RICindicationMessage_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindicationMessage; -asn_struct_free_f RICindicationMessage_free; -asn_struct_print_f RICindicationMessage_print; -asn_constr_check_f RICindicationMessage_constraint; -ber_type_decoder_f RICindicationMessage_decode_ber; -der_type_encoder_f RICindicationMessage_encode_der; -xer_type_decoder_f RICindicationMessage_decode_xer; -xer_type_encoder_f RICindicationMessage_encode_xer; -per_type_decoder_f RICindicationMessage_decode_uper; -per_type_encoder_f RICindicationMessage_encode_uper; -per_type_decoder_f RICindicationMessage_decode_aper; -per_type_encoder_f RICindicationMessage_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindicationMessage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICindicationSN.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICindicationSN.c deleted file mode 100644 index 74782d8..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICindicationSN.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICindicationSN.h" - -int -RICindicationSN_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 <= 65535)) { - /* 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_per_constraints_t asn_PER_type_RICindicationSN_constr_1 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_RICindicationSN_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICindicationSN = { - "RICindicationSN", - "RICindicationSN", - &asn_OP_NativeInteger, - asn_DEF_RICindicationSN_tags_1, - sizeof(asn_DEF_RICindicationSN_tags_1) - /sizeof(asn_DEF_RICindicationSN_tags_1[0]), /* 1 */ - asn_DEF_RICindicationSN_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindicationSN_tags_1) - /sizeof(asn_DEF_RICindicationSN_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICindicationSN_constr_1, RICindicationSN_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICindicationSN.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICindicationSN.h deleted file mode 100644 index 30d8c55..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICindicationSN.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICindicationSN_H_ -#define _RICindicationSN_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICindicationSN */ -typedef long RICindicationSN_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindicationSN; -asn_struct_free_f RICindicationSN_free; -asn_struct_print_f RICindicationSN_print; -asn_constr_check_f RICindicationSN_constraint; -ber_type_decoder_f RICindicationSN_decode_ber; -der_type_encoder_f RICindicationSN_encode_der; -xer_type_decoder_f RICindicationSN_decode_xer; -xer_type_encoder_f RICindicationSN_encode_xer; -per_type_decoder_f RICindicationSN_decode_uper; -per_type_encoder_f RICindicationSN_encode_uper; -per_type_decoder_f RICindicationSN_decode_aper; -per_type_encoder_f RICindicationSN_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindicationSN_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICindicationType.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICindicationType.c deleted file mode 100644 index 81beabe..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICindicationType.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICindicationType.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_RICindicationType_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 */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICindicationType_value2enum_1[] = { - { 0, 6, "report" }, - { 1, 6, "insert" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICindicationType_enum2value_1[] = { - 1, /* insert(1) */ - 0 /* report(0) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_RICindicationType_specs_1 = { - asn_MAP_RICindicationType_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICindicationType_enum2value_1, /* 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_RICindicationType_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICindicationType = { - "RICindicationType", - "RICindicationType", - &asn_OP_NativeEnumerated, - asn_DEF_RICindicationType_tags_1, - sizeof(asn_DEF_RICindicationType_tags_1) - /sizeof(asn_DEF_RICindicationType_tags_1[0]), /* 1 */ - asn_DEF_RICindicationType_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindicationType_tags_1) - /sizeof(asn_DEF_RICindicationType_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICindicationType_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICindicationType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICindicationType.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICindicationType.h deleted file mode 100644 index ae14d7a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICindicationType.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICindicationType_H_ -#define _RICindicationType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICindicationType { - RICindicationType_report = 0, - RICindicationType_insert = 1 - /* - * Enumeration is extensible - */ -} e_RICindicationType; - -/* RICindicationType */ -typedef long RICindicationType_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindicationType; -asn_struct_free_f RICindicationType_free; -asn_struct_print_f RICindicationType_print; -asn_constr_check_f RICindicationType_constraint; -ber_type_decoder_f RICindicationType_decode_ber; -der_type_encoder_f RICindicationType_encode_der; -xer_type_decoder_f RICindicationType_decode_xer; -xer_type_encoder_f RICindicationType_encode_xer; -per_type_decoder_f RICindicationType_decode_uper; -per_type_encoder_f RICindicationType_encode_uper; -per_type_decoder_f RICindicationType_decode_aper; -per_type_encoder_f RICindicationType_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindicationType_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICrequestID.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICrequestID.c deleted file mode 100644 index dfe67b5..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICrequestID.c +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICrequestID.h" - -static int -memb_ricRequestorID_constraint_1(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 int -memb_ricInstanceID_constraint_1(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_per_constraints_t asn_PER_memb_ricRequestorID_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_per_constraints_t asn_PER_memb_ricInstanceID_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_RICrequestID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICrequestID, ricRequestorID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_ricRequestorID_constr_2, memb_ricRequestorID_constraint_1 }, - 0, 0, /* No default value */ - "ricRequestorID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICrequestID, ricInstanceID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_ricInstanceID_constr_3, memb_ricInstanceID_constraint_1 }, - 0, 0, /* No default value */ - "ricInstanceID" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICrequestID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICrequestID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequestorID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricInstanceID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICrequestID_specs_1 = { - sizeof(struct RICrequestID), - offsetof(struct RICrequestID, _asn_ctx), - asn_MAP_RICrequestID_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_RICrequestID = { - "RICrequestID", - "RICrequestID", - &asn_OP_SEQUENCE, - asn_DEF_RICrequestID_tags_1, - sizeof(asn_DEF_RICrequestID_tags_1) - /sizeof(asn_DEF_RICrequestID_tags_1[0]), /* 1 */ - asn_DEF_RICrequestID_tags_1, /* Same as above */ - sizeof(asn_DEF_RICrequestID_tags_1) - /sizeof(asn_DEF_RICrequestID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICrequestID_1, - 2, /* Elements count */ - &asn_SPC_RICrequestID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICrequestID.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICrequestID.h deleted file mode 100644 index 24636d4..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICrequestID.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICrequestID_H_ -#define _RICrequestID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICrequestID */ -typedef struct RICrequestID { - long ricRequestorID; - long ricInstanceID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICrequestID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICrequestID; -extern asn_SEQUENCE_specifics_t asn_SPC_RICrequestID_specs_1; -extern asn_TYPE_member_t asn_MBR_RICrequestID_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICrequestID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICserviceQuery.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICserviceQuery.c deleted file mode 100644 index a2c83c8..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICserviceQuery.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICserviceQuery.h" - -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_Container_1527P19, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceQuery_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceQuery_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_specs_1 = { - sizeof(struct RICserviceQuery), - offsetof(struct RICserviceQuery, _asn_ctx), - asn_MAP_RICserviceQuery_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_RICserviceQuery = { - "RICserviceQuery", - "RICserviceQuery", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceQuery_tags_1, - sizeof(asn_DEF_RICserviceQuery_tags_1) - /sizeof(asn_DEF_RICserviceQuery_tags_1[0]), /* 1 */ - asn_DEF_RICserviceQuery_tags_1, /* Same as above */ - sizeof(asn_DEF_RICserviceQuery_tags_1) - /sizeof(asn_DEF_RICserviceQuery_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceQuery_1, - 1, /* Elements count */ - &asn_SPC_RICserviceQuery_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICserviceQuery.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICserviceQuery.h deleted file mode 100644 index 7db0a4f..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICserviceQuery.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICserviceQuery_H_ -#define _RICserviceQuery_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICserviceQuery */ -typedef struct RICserviceQuery { - ProtocolIE_Container_1527P19_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceQuery_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICserviceQuery; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_specs_1; -extern asn_TYPE_member_t asn_MBR_RICserviceQuery_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICserviceQuery_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICserviceUpdate.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICserviceUpdate.c deleted file mode 100644 index 8ec4465..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICserviceUpdate.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICserviceUpdate.h" - -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_Container_1527P16, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdate_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdate_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_specs_1 = { - sizeof(struct RICserviceUpdate), - offsetof(struct RICserviceUpdate, _asn_ctx), - asn_MAP_RICserviceUpdate_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_RICserviceUpdate = { - "RICserviceUpdate", - "RICserviceUpdate", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdate_tags_1, - sizeof(asn_DEF_RICserviceUpdate_tags_1) - /sizeof(asn_DEF_RICserviceUpdate_tags_1[0]), /* 1 */ - asn_DEF_RICserviceUpdate_tags_1, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdate_tags_1) - /sizeof(asn_DEF_RICserviceUpdate_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdate_1, - 1, /* Elements count */ - &asn_SPC_RICserviceUpdate_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICserviceUpdate.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICserviceUpdate.h deleted file mode 100644 index f9353cb..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICserviceUpdate.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICserviceUpdate_H_ -#define _RICserviceUpdate_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICserviceUpdate */ -typedef struct RICserviceUpdate { - ProtocolIE_Container_1527P16_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceUpdate_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_specs_1; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdate_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICserviceUpdate_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICserviceUpdateAcknowledge.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICserviceUpdateAcknowledge.c deleted file mode 100644 index fe21337..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICserviceUpdateAcknowledge.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICserviceUpdateAcknowledge.h" - -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_Container_1527P17, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdateAcknowledge_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateAcknowledge_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_specs_1 = { - sizeof(struct RICserviceUpdateAcknowledge), - offsetof(struct RICserviceUpdateAcknowledge, _asn_ctx), - asn_MAP_RICserviceUpdateAcknowledge_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_RICserviceUpdateAcknowledge = { - "RICserviceUpdateAcknowledge", - "RICserviceUpdateAcknowledge", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdateAcknowledge_tags_1, - sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1) - /sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1[0]), /* 1 */ - asn_DEF_RICserviceUpdateAcknowledge_tags_1, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1) - /sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdateAcknowledge_1, - 1, /* Elements count */ - &asn_SPC_RICserviceUpdateAcknowledge_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICserviceUpdateAcknowledge.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICserviceUpdateAcknowledge.h deleted file mode 100644 index ec27597..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICserviceUpdateAcknowledge.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICserviceUpdateAcknowledge_H_ -#define _RICserviceUpdateAcknowledge_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICserviceUpdateAcknowledge */ -typedef struct RICserviceUpdateAcknowledge { - ProtocolIE_Container_1527P17_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceUpdateAcknowledge_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_specs_1; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICserviceUpdateAcknowledge_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICserviceUpdateFailure.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICserviceUpdateFailure.c deleted file mode 100644 index 61334b4..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICserviceUpdateFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICserviceUpdateFailure.h" - -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_Container_1527P18, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdateFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_specs_1 = { - sizeof(struct RICserviceUpdateFailure), - offsetof(struct RICserviceUpdateFailure, _asn_ctx), - asn_MAP_RICserviceUpdateFailure_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_RICserviceUpdateFailure = { - "RICserviceUpdateFailure", - "RICserviceUpdateFailure", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdateFailure_tags_1, - sizeof(asn_DEF_RICserviceUpdateFailure_tags_1) - /sizeof(asn_DEF_RICserviceUpdateFailure_tags_1[0]), /* 1 */ - asn_DEF_RICserviceUpdateFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdateFailure_tags_1) - /sizeof(asn_DEF_RICserviceUpdateFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdateFailure_1, - 1, /* Elements count */ - &asn_SPC_RICserviceUpdateFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICserviceUpdateFailure.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICserviceUpdateFailure.h deleted file mode 100644 index 71e1e62..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICserviceUpdateFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICserviceUpdateFailure_H_ -#define _RICserviceUpdateFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICserviceUpdateFailure */ -typedef struct RICserviceUpdateFailure { - ProtocolIE_Container_1527P18_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceUpdateFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICserviceUpdateFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionDeleteFailure.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionDeleteFailure.c deleted file mode 100644 index 04b54c7..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionDeleteFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubscriptionDeleteFailure.h" - -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_Container_1527P5, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_specs_1 = { - sizeof(struct RICsubscriptionDeleteFailure), - offsetof(struct RICsubscriptionDeleteFailure, _asn_ctx), - asn_MAP_RICsubscriptionDeleteFailure_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_RICsubscriptionDeleteFailure = { - "RICsubscriptionDeleteFailure", - "RICsubscriptionDeleteFailure", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteFailure_tags_1, - sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteFailure_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionDeleteFailure.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionDeleteFailure.h deleted file mode 100644 index 1560efb..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionDeleteFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubscriptionDeleteFailure_H_ -#define _RICsubscriptionDeleteFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionDeleteFailure */ -typedef struct RICsubscriptionDeleteFailure { - ProtocolIE_Container_1527P5_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDeleteFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionDeleteFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionDeleteRequest.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionDeleteRequest.c deleted file mode 100644 index 4ff78c6..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionDeleteRequest.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubscriptionDeleteRequest.h" - -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_Container_1527P3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_specs_1 = { - sizeof(struct RICsubscriptionDeleteRequest), - offsetof(struct RICsubscriptionDeleteRequest, _asn_ctx), - asn_MAP_RICsubscriptionDeleteRequest_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_RICsubscriptionDeleteRequest = { - "RICsubscriptionDeleteRequest", - "RICsubscriptionDeleteRequest", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteRequest_tags_1, - sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteRequest_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionDeleteRequest.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionDeleteRequest.h deleted file mode 100644 index f25c782..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionDeleteRequest.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubscriptionDeleteRequest_H_ -#define _RICsubscriptionDeleteRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionDeleteRequest */ -typedef struct RICsubscriptionDeleteRequest { - ProtocolIE_Container_1527P3_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDeleteRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionDeleteRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionDeleteResponse.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionDeleteResponse.c deleted file mode 100644 index 70a20c7..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionDeleteResponse.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubscriptionDeleteResponse.h" - -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_Container_1527P4, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_specs_1 = { - sizeof(struct RICsubscriptionDeleteResponse), - offsetof(struct RICsubscriptionDeleteResponse, _asn_ctx), - asn_MAP_RICsubscriptionDeleteResponse_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_RICsubscriptionDeleteResponse = { - "RICsubscriptionDeleteResponse", - "RICsubscriptionDeleteResponse", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteResponse_tags_1, - sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteResponse_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionDeleteResponse.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionDeleteResponse.h deleted file mode 100644 index 9b93735..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionDeleteResponse.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubscriptionDeleteResponse_H_ -#define _RICsubscriptionDeleteResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionDeleteResponse */ -typedef struct RICsubscriptionDeleteResponse { - ProtocolIE_Container_1527P4_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDeleteResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionDeleteResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionDetails.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionDetails.c deleted file mode 100644 index 39475fd..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionDetails.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubscriptionDetails.h" - -static asn_TYPE_member_t asn_MBR_RICsubscriptionDetails_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDetails, ricEventTriggerDefinition), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICeventTriggerDefinition, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricEventTriggerDefinition" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDetails, ricAction_ToBeSetup_List), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactions_ToBeSetup_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricAction-ToBeSetup-List" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDetails_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDetails_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricEventTriggerDefinition */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricAction-ToBeSetup-List */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDetails_specs_1 = { - sizeof(struct RICsubscriptionDetails), - offsetof(struct RICsubscriptionDetails, _asn_ctx), - asn_MAP_RICsubscriptionDetails_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_RICsubscriptionDetails = { - "RICsubscriptionDetails", - "RICsubscriptionDetails", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDetails_tags_1, - sizeof(asn_DEF_RICsubscriptionDetails_tags_1) - /sizeof(asn_DEF_RICsubscriptionDetails_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionDetails_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDetails_tags_1) - /sizeof(asn_DEF_RICsubscriptionDetails_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDetails_1, - 2, /* Elements count */ - &asn_SPC_RICsubscriptionDetails_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionDetails.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionDetails.h deleted file mode 100644 index cd5b0f8..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionDetails.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubscriptionDetails_H_ -#define _RICsubscriptionDetails_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICeventTriggerDefinition.h" -#include "RICactions-ToBeSetup-List.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionDetails */ -typedef struct RICsubscriptionDetails { - RICeventTriggerDefinition_t ricEventTriggerDefinition; - RICactions_ToBeSetup_List_t ricAction_ToBeSetup_List; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDetails_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDetails; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionDetails_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionFailure.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionFailure.c deleted file mode 100644 index f0a7a43..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubscriptionFailure.h" - -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_Container_1527P2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_specs_1 = { - sizeof(struct RICsubscriptionFailure), - offsetof(struct RICsubscriptionFailure, _asn_ctx), - asn_MAP_RICsubscriptionFailure_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_RICsubscriptionFailure = { - "RICsubscriptionFailure", - "RICsubscriptionFailure", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionFailure_tags_1, - sizeof(asn_DEF_RICsubscriptionFailure_tags_1) - /sizeof(asn_DEF_RICsubscriptionFailure_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionFailure_tags_1) - /sizeof(asn_DEF_RICsubscriptionFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionFailure_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionFailure.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionFailure.h deleted file mode 100644 index fb43397..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubscriptionFailure_H_ -#define _RICsubscriptionFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionFailure */ -typedef struct RICsubscriptionFailure { - ProtocolIE_Container_1527P2_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionRequest.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionRequest.c deleted file mode 100644 index dcc451e..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionRequest.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubscriptionRequest.h" - -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_Container_1527P0, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_specs_1 = { - sizeof(struct RICsubscriptionRequest), - offsetof(struct RICsubscriptionRequest, _asn_ctx), - asn_MAP_RICsubscriptionRequest_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_RICsubscriptionRequest = { - "RICsubscriptionRequest", - "RICsubscriptionRequest", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionRequest_tags_1, - sizeof(asn_DEF_RICsubscriptionRequest_tags_1) - /sizeof(asn_DEF_RICsubscriptionRequest_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionRequest_tags_1) - /sizeof(asn_DEF_RICsubscriptionRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionRequest_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionRequest.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionRequest.h deleted file mode 100644 index d6ed804..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionRequest.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubscriptionRequest_H_ -#define _RICsubscriptionRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionRequest */ -typedef struct RICsubscriptionRequest { - ProtocolIE_Container_1527P0_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionResponse.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionResponse.c deleted file mode 100644 index 836322b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionResponse.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubscriptionResponse.h" - -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_Container_1527P1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_specs_1 = { - sizeof(struct RICsubscriptionResponse), - offsetof(struct RICsubscriptionResponse, _asn_ctx), - asn_MAP_RICsubscriptionResponse_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_RICsubscriptionResponse = { - "RICsubscriptionResponse", - "RICsubscriptionResponse", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionResponse_tags_1, - sizeof(asn_DEF_RICsubscriptionResponse_tags_1) - /sizeof(asn_DEF_RICsubscriptionResponse_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionResponse_tags_1) - /sizeof(asn_DEF_RICsubscriptionResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionResponse_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionResponse.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionResponse.h deleted file mode 100644 index 64e2e45..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubscriptionResponse.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubscriptionResponse_H_ -#define _RICsubscriptionResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionResponse */ -typedef struct RICsubscriptionResponse { - ProtocolIE_Container_1527P1_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubsequentAction.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubsequentAction.c deleted file mode 100644 index 1008fb1..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubsequentAction.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 "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubsequentAction.h" - -asn_TYPE_member_t asn_MBR_RICsubsequentAction_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubsequentAction, ricSubsequentActionType), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICsubsequentActionType, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricSubsequentActionType" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubsequentAction, ricTimeToWait), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICtimeToWait, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricTimeToWait" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubsequentAction_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubsequentAction_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricSubsequentActionType */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricTimeToWait */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubsequentAction_specs_1 = { - sizeof(struct RICsubsequentAction), - offsetof(struct RICsubsequentAction, _asn_ctx), - asn_MAP_RICsubsequentAction_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_RICsubsequentAction = { - "RICsubsequentAction", - "RICsubsequentAction", - &asn_OP_SEQUENCE, - asn_DEF_RICsubsequentAction_tags_1, - sizeof(asn_DEF_RICsubsequentAction_tags_1) - /sizeof(asn_DEF_RICsubsequentAction_tags_1[0]), /* 1 */ - asn_DEF_RICsubsequentAction_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubsequentAction_tags_1) - /sizeof(asn_DEF_RICsubsequentAction_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubsequentAction_1, - 2, /* Elements count */ - &asn_SPC_RICsubsequentAction_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubsequentAction.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubsequentAction.h deleted file mode 100644 index dae24c8..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubsequentAction.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 "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubsequentAction_H_ -#define _RICsubsequentAction_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICsubsequentActionType.h" -#include "RICtimeToWait.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubsequentAction */ -typedef struct RICsubsequentAction { - RICsubsequentActionType_t ricSubsequentActionType; - RICtimeToWait_t ricTimeToWait; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubsequentAction_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubsequentAction; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubsequentAction_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubsequentAction_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubsequentAction_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubsequentActionType.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubsequentActionType.c deleted file mode 100644 index c622986..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubsequentActionType.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubsequentActionType.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RICsubsequentActionType_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 */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICsubsequentActionType_value2enum_1[] = { - { 0, 8, "continue" }, - { 1, 4, "wait" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICsubsequentActionType_enum2value_1[] = { - 0, /* continue(0) */ - 1 /* wait(1) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_RICsubsequentActionType_specs_1 = { - asn_MAP_RICsubsequentActionType_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICsubsequentActionType_enum2value_1, /* 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_RICsubsequentActionType_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICsubsequentActionType = { - "RICsubsequentActionType", - "RICsubsequentActionType", - &asn_OP_NativeEnumerated, - asn_DEF_RICsubsequentActionType_tags_1, - sizeof(asn_DEF_RICsubsequentActionType_tags_1) - /sizeof(asn_DEF_RICsubsequentActionType_tags_1[0]), /* 1 */ - asn_DEF_RICsubsequentActionType_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubsequentActionType_tags_1) - /sizeof(asn_DEF_RICsubsequentActionType_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICsubsequentActionType_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICsubsequentActionType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubsequentActionType.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubsequentActionType.h deleted file mode 100644 index 18f61c7..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICsubsequentActionType.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubsequentActionType_H_ -#define _RICsubsequentActionType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICsubsequentActionType { - RICsubsequentActionType_continue = 0, - RICsubsequentActionType_wait = 1 - /* - * Enumeration is extensible - */ -} e_RICsubsequentActionType; - -/* RICsubsequentActionType */ -typedef long RICsubsequentActionType_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICsubsequentActionType_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RICsubsequentActionType; -extern const asn_INTEGER_specifics_t asn_SPC_RICsubsequentActionType_specs_1; -asn_struct_free_f RICsubsequentActionType_free; -asn_struct_print_f RICsubsequentActionType_print; -asn_constr_check_f RICsubsequentActionType_constraint; -ber_type_decoder_f RICsubsequentActionType_decode_ber; -der_type_encoder_f RICsubsequentActionType_encode_der; -xer_type_decoder_f RICsubsequentActionType_decode_xer; -xer_type_encoder_f RICsubsequentActionType_encode_xer; -per_type_decoder_f RICsubsequentActionType_decode_uper; -per_type_encoder_f RICsubsequentActionType_encode_uper; -per_type_decoder_f RICsubsequentActionType_decode_aper; -per_type_encoder_f RICsubsequentActionType_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubsequentActionType_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICtimeToWait.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICtimeToWait.c deleted file mode 100644 index 159b5e3..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICtimeToWait.c +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICtimeToWait.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RICtimeToWait_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 17 } /* (0..17,...) */, - { 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" } - /* 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) */ - /* 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 */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RICtimeToWait_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICtimeToWait = { - "RICtimeToWait", - "RICtimeToWait", - &asn_OP_NativeEnumerated, - asn_DEF_RICtimeToWait_tags_1, - sizeof(asn_DEF_RICtimeToWait_tags_1) - /sizeof(asn_DEF_RICtimeToWait_tags_1[0]), /* 1 */ - asn_DEF_RICtimeToWait_tags_1, /* Same as above */ - sizeof(asn_DEF_RICtimeToWait_tags_1) - /sizeof(asn_DEF_RICtimeToWait_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICtimeToWait_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICtimeToWait_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICtimeToWait.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICtimeToWait.h deleted file mode 100644 index 6bd2096..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RICtimeToWait.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICtimeToWait_H_ -#define _RICtimeToWait_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* 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 - /* - * Enumeration is extensible - */ -} e_RICtimeToWait; - -/* RICtimeToWait */ -typedef long RICtimeToWait_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICtimeToWait_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RICtimeToWait; -extern const asn_INTEGER_specifics_t asn_SPC_RICtimeToWait_specs_1; -asn_struct_free_f RICtimeToWait_free; -asn_struct_print_f RICtimeToWait_print; -asn_constr_check_f RICtimeToWait_constraint; -ber_type_decoder_f RICtimeToWait_decode_ber; -der_type_encoder_f RICtimeToWait_encode_der; -xer_type_decoder_f RICtimeToWait_decode_xer; -xer_type_encoder_f RICtimeToWait_encode_xer; -per_type_decoder_f RICtimeToWait_decode_uper; -per_type_encoder_f RICtimeToWait_encode_uper; -per_type_decoder_f RICtimeToWait_decode_aper; -per_type_encoder_f RICtimeToWait_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICtimeToWait_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RT-Period-IE.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RT-Period-IE.c deleted file mode 100644 index 5f99297..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RT-Period-IE.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RT-Period-IE.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_RT_Period_IE_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_RT_Period_IE_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 19 } /* (0..19,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RT_Period_IE_value2enum_1[] = { - { 0, 4, "ms10" }, - { 1, 4, "ms20" }, - { 2, 4, "ms32" }, - { 3, 4, "ms40" }, - { 4, 4, "ms60" }, - { 5, 4, "ms64" }, - { 6, 4, "ms70" }, - { 7, 4, "ms80" }, - { 8, 5, "ms128" }, - { 9, 5, "ms160" }, - { 10, 5, "ms256" }, - { 11, 5, "ms320" }, - { 12, 5, "ms512" }, - { 13, 5, "ms640" }, - { 14, 6, "ms1024" }, - { 15, 6, "ms1280" }, - { 16, 6, "ms2048" }, - { 17, 6, "ms2560" }, - { 18, 6, "ms5120" }, - { 19, 7, "ms10240" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RT_Period_IE_enum2value_1[] = { - 0, /* ms10(0) */ - 14, /* ms1024(14) */ - 19, /* ms10240(19) */ - 8, /* ms128(8) */ - 15, /* ms1280(15) */ - 9, /* ms160(9) */ - 1, /* ms20(1) */ - 16, /* ms2048(16) */ - 10, /* ms256(10) */ - 17, /* ms2560(17) */ - 2, /* ms32(2) */ - 11, /* ms320(11) */ - 3, /* ms40(3) */ - 12, /* ms512(12) */ - 18, /* ms5120(18) */ - 4, /* ms60(4) */ - 5, /* ms64(5) */ - 13, /* ms640(13) */ - 6, /* ms70(6) */ - 7 /* ms80(7) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_RT_Period_IE_specs_1 = { - asn_MAP_RT_Period_IE_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RT_Period_IE_enum2value_1, /* N => "tag"; sorted by N */ - 20, /* Number of elements in the maps */ - 21, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RT_Period_IE_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RT_Period_IE = { - "RT-Period-IE", - "RT-Period-IE", - &asn_OP_NativeEnumerated, - asn_DEF_RT_Period_IE_tags_1, - sizeof(asn_DEF_RT_Period_IE_tags_1) - /sizeof(asn_DEF_RT_Period_IE_tags_1[0]), /* 1 */ - asn_DEF_RT_Period_IE_tags_1, /* Same as above */ - sizeof(asn_DEF_RT_Period_IE_tags_1) - /sizeof(asn_DEF_RT_Period_IE_tags_1[0]), /* 1 */ - { &asn_OER_type_RT_Period_IE_constr_1, &asn_PER_type_RT_Period_IE_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RT_Period_IE_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RT-Period-IE.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RT-Period-IE.h deleted file mode 100644 index 30d2843..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/RT-Period-IE.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RT_Period_IE_H_ -#define _RT_Period_IE_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RT_Period_IE { - RT_Period_IE_ms10 = 0, - RT_Period_IE_ms20 = 1, - RT_Period_IE_ms32 = 2, - RT_Period_IE_ms40 = 3, - RT_Period_IE_ms60 = 4, - RT_Period_IE_ms64 = 5, - RT_Period_IE_ms70 = 6, - RT_Period_IE_ms80 = 7, - RT_Period_IE_ms128 = 8, - RT_Period_IE_ms160 = 9, - RT_Period_IE_ms256 = 10, - RT_Period_IE_ms320 = 11, - RT_Period_IE_ms512 = 12, - RT_Period_IE_ms640 = 13, - RT_Period_IE_ms1024 = 14, - RT_Period_IE_ms1280 = 15, - RT_Period_IE_ms2048 = 16, - RT_Period_IE_ms2560 = 17, - RT_Period_IE_ms5120 = 18, - RT_Period_IE_ms10240 = 19 - /* - * Enumeration is extensible - */ -} e_RT_Period_IE; - -/* RT-Period-IE */ -typedef long RT_Period_IE_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RT_Period_IE_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RT_Period_IE; -extern const asn_INTEGER_specifics_t asn_SPC_RT_Period_IE_specs_1; -asn_struct_free_f RT_Period_IE_free; -asn_struct_print_f RT_Period_IE_print; -asn_constr_check_f RT_Period_IE_constraint; -ber_type_decoder_f RT_Period_IE_decode_ber; -der_type_encoder_f RT_Period_IE_encode_der; -xer_type_decoder_f RT_Period_IE_decode_xer; -xer_type_encoder_f RT_Period_IE_encode_xer; -oer_type_decoder_f RT_Period_IE_decode_oer; -oer_type_encoder_f RT_Period_IE_encode_oer; -per_type_decoder_f RT_Period_IE_decode_uper; -per_type_encoder_f RT_Period_IE_encode_uper; -per_type_decoder_f RT_Period_IE_decode_aper; -per_type_encoder_f RT_Period_IE_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RT_Period_IE_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ResetRequest.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ResetRequest.c deleted file mode 100644 index 3f96a6d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ResetRequest.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ResetRequest.h" - -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_Container_1527P14, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResetRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResetRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResetRequest_specs_1 = { - sizeof(struct ResetRequest), - offsetof(struct ResetRequest, _asn_ctx), - asn_MAP_ResetRequest_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_ResetRequest = { - "ResetRequest", - "ResetRequest", - &asn_OP_SEQUENCE, - asn_DEF_ResetRequest_tags_1, - sizeof(asn_DEF_ResetRequest_tags_1) - /sizeof(asn_DEF_ResetRequest_tags_1[0]), /* 1 */ - asn_DEF_ResetRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_ResetRequest_tags_1) - /sizeof(asn_DEF_ResetRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResetRequest_1, - 1, /* Elements count */ - &asn_SPC_ResetRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ResetRequest.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ResetRequest.h deleted file mode 100644 index e7f6ec8..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ResetRequest.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ResetRequest_H_ -#define _ResetRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ResetRequest */ -typedef struct ResetRequest { - ProtocolIE_Container_1527P14_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResetRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ResetRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_ResetRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_ResetRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ResetRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ResetResponse.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ResetResponse.c deleted file mode 100644 index c8afcc4..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ResetResponse.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ResetResponse.h" - -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_Container_1527P15, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResetResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResetResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResetResponse_specs_1 = { - sizeof(struct ResetResponse), - offsetof(struct ResetResponse, _asn_ctx), - asn_MAP_ResetResponse_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_ResetResponse = { - "ResetResponse", - "ResetResponse", - &asn_OP_SEQUENCE, - asn_DEF_ResetResponse_tags_1, - sizeof(asn_DEF_ResetResponse_tags_1) - /sizeof(asn_DEF_ResetResponse_tags_1[0]), /* 1 */ - asn_DEF_ResetResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_ResetResponse_tags_1) - /sizeof(asn_DEF_ResetResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResetResponse_1, - 1, /* Elements count */ - &asn_SPC_ResetResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ResetResponse.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ResetResponse.h deleted file mode 100644 index 08a576e..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ResetResponse.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ResetResponse_H_ -#define _ResetResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ResetResponse */ -typedef struct ResetResponse { - ProtocolIE_Container_1527P15_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResetResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ResetResponse; -extern asn_SEQUENCE_specifics_t asn_SPC_ResetResponse_specs_1; -extern asn_TYPE_member_t asn_MBR_ResetResponse_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ResetResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/SNSSAI.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/SNSSAI.c deleted file mode 100644 index 39afcad..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/SNSSAI.c +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "SNSSAI.h" - -static int -memb_sST_constraint_1(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; - - 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)) { - /* 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_sD_constraint_1(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; - - 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 == 3)) { - /* 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_sST_constr_2 CC_NOTUSED = { - { 0, 0 }, - 1 /* (SIZE(1..1)) */}; -static asn_per_constraints_t asn_PER_memb_sST_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 1, 1 } /* (SIZE(1..1)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_sD_constr_3 CC_NOTUSED = { - { 0, 0 }, - 3 /* (SIZE(3..3)) */}; -static asn_per_constraints_t asn_PER_memb_sD_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_SNSSAI_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SNSSAI, sST), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { &asn_OER_memb_sST_constr_2, &asn_PER_memb_sST_constr_2, memb_sST_constraint_1 }, - 0, 0, /* No default value */ - "sST" - }, - { ATF_POINTER, 1, offsetof(struct SNSSAI, sD), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { &asn_OER_memb_sD_constr_3, &asn_PER_memb_sD_constr_3, memb_sD_constraint_1 }, - 0, 0, /* No default value */ - "sD" - }, -}; -static const int asn_MAP_SNSSAI_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_SNSSAI_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SNSSAI_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sST */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sD */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SNSSAI_specs_1 = { - sizeof(struct SNSSAI), - offsetof(struct SNSSAI, _asn_ctx), - asn_MAP_SNSSAI_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_SNSSAI_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SNSSAI = { - "SNSSAI", - "SNSSAI", - &asn_OP_SEQUENCE, - asn_DEF_SNSSAI_tags_1, - sizeof(asn_DEF_SNSSAI_tags_1) - /sizeof(asn_DEF_SNSSAI_tags_1[0]), /* 1 */ - asn_DEF_SNSSAI_tags_1, /* Same as above */ - sizeof(asn_DEF_SNSSAI_tags_1) - /sizeof(asn_DEF_SNSSAI_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SNSSAI_1, - 2, /* Elements count */ - &asn_SPC_SNSSAI_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/SNSSAI.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/SNSSAI.h deleted file mode 100644 index b854e6f..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/SNSSAI.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _SNSSAI_H_ -#define _SNSSAI_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* SNSSAI */ -typedef struct SNSSAI { - OCTET_STRING_t sST; - OCTET_STRING_t *sD; /* OPTIONAL */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SNSSAI_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SNSSAI; -extern asn_SEQUENCE_specifics_t asn_SPC_SNSSAI_specs_1; -extern asn_TYPE_member_t asn_MBR_SNSSAI_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _SNSSAI_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ServedPlmnPerCellListItem.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ServedPlmnPerCellListItem.c deleted file mode 100644 index 52fbaf5..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ServedPlmnPerCellListItem.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "ServedPlmnPerCellListItem.h" - -asn_TYPE_member_t asn_MBR_ServedPlmnPerCellListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ServedPlmnPerCellListItem, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_POINTER, 2, offsetof(struct ServedPlmnPerCellListItem, du_PM_5GC), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_FGC_DU_PM_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "du-PM-5GC" - }, - { ATF_POINTER, 1, offsetof(struct ServedPlmnPerCellListItem, du_PM_EPC), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_EPC_DU_PM_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "du-PM-EPC" - }, -}; -static const int asn_MAP_ServedPlmnPerCellListItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_ServedPlmnPerCellListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ServedPlmnPerCellListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* du-PM-5GC */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* du-PM-EPC */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ServedPlmnPerCellListItem_specs_1 = { - sizeof(struct ServedPlmnPerCellListItem), - offsetof(struct ServedPlmnPerCellListItem, _asn_ctx), - asn_MAP_ServedPlmnPerCellListItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_ServedPlmnPerCellListItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ServedPlmnPerCellListItem = { - "ServedPlmnPerCellListItem", - "ServedPlmnPerCellListItem", - &asn_OP_SEQUENCE, - asn_DEF_ServedPlmnPerCellListItem_tags_1, - sizeof(asn_DEF_ServedPlmnPerCellListItem_tags_1) - /sizeof(asn_DEF_ServedPlmnPerCellListItem_tags_1[0]), /* 1 */ - asn_DEF_ServedPlmnPerCellListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_ServedPlmnPerCellListItem_tags_1) - /sizeof(asn_DEF_ServedPlmnPerCellListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ServedPlmnPerCellListItem_1, - 3, /* Elements count */ - &asn_SPC_ServedPlmnPerCellListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ServedPlmnPerCellListItem.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ServedPlmnPerCellListItem.h deleted file mode 100644 index be5ecd6..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ServedPlmnPerCellListItem.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _ServedPlmnPerCellListItem_H_ -#define _ServedPlmnPerCellListItem_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct FGC_DU_PM_Container; -struct EPC_DU_PM_Container; - -/* ServedPlmnPerCellListItem */ -typedef struct ServedPlmnPerCellListItem { - PLMN_Identity_t pLMN_Identity; - struct FGC_DU_PM_Container *du_PM_5GC; /* OPTIONAL */ - struct EPC_DU_PM_Container *du_PM_EPC; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedPlmnPerCellListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ServedPlmnPerCellListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_ServedPlmnPerCellListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_ServedPlmnPerCellListItem_1[3]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "FGC-DU-PM-Container.h" -#include "EPC-DU-PM-Container.h" - -#endif /* _ServedPlmnPerCellListItem_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/SlicePerPlmnPerCellListItem.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/SlicePerPlmnPerCellListItem.c deleted file mode 100644 index a463803..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/SlicePerPlmnPerCellListItem.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "SlicePerPlmnPerCellListItem.h" - -static int -memb_fQIPERSlicesPerPlmnPerCellList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 64)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_fQIPERSlicesPerPlmnPerCellList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..64)) */}; -static asn_per_constraints_t asn_PER_type_fQIPERSlicesPerPlmnPerCellList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_fQIPERSlicesPerPlmnPerCellList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..64)) */}; -static asn_per_constraints_t asn_PER_memb_fQIPERSlicesPerPlmnPerCellList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_fQIPERSlicesPerPlmnPerCellList_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_FQIPERSlicesPerPlmnPerCellListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_fQIPERSlicesPerPlmnPerCellList_specs_3 = { - sizeof(struct SlicePerPlmnPerCellListItem__fQIPERSlicesPerPlmnPerCellList), - offsetof(struct SlicePerPlmnPerCellListItem__fQIPERSlicesPerPlmnPerCellList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_fQIPERSlicesPerPlmnPerCellList_3 = { - "fQIPERSlicesPerPlmnPerCellList", - "fQIPERSlicesPerPlmnPerCellList", - &asn_OP_SEQUENCE_OF, - asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3, - sizeof(asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3) - /sizeof(asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3[0]) - 1, /* 1 */ - asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3, /* Same as above */ - sizeof(asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3) - /sizeof(asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3[0]), /* 2 */ - { &asn_OER_type_fQIPERSlicesPerPlmnPerCellList_constr_3, &asn_PER_type_fQIPERSlicesPerPlmnPerCellList_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_fQIPERSlicesPerPlmnPerCellList_3, - 1, /* Single element */ - &asn_SPC_fQIPERSlicesPerPlmnPerCellList_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SlicePerPlmnPerCellListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SlicePerPlmnPerCellListItem, sliceID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SNSSAI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sliceID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SlicePerPlmnPerCellListItem, fQIPERSlicesPerPlmnPerCellList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_fQIPERSlicesPerPlmnPerCellList_3, - 0, - { &asn_OER_memb_fQIPERSlicesPerPlmnPerCellList_constr_3, &asn_PER_memb_fQIPERSlicesPerPlmnPerCellList_constr_3, memb_fQIPERSlicesPerPlmnPerCellList_constraint_1 }, - 0, 0, /* No default value */ - "fQIPERSlicesPerPlmnPerCellList" - }, -}; -static const ber_tlv_tag_t asn_DEF_SlicePerPlmnPerCellListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SlicePerPlmnPerCellListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sliceID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fQIPERSlicesPerPlmnPerCellList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SlicePerPlmnPerCellListItem_specs_1 = { - sizeof(struct SlicePerPlmnPerCellListItem), - offsetof(struct SlicePerPlmnPerCellListItem, _asn_ctx), - asn_MAP_SlicePerPlmnPerCellListItem_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_SlicePerPlmnPerCellListItem = { - "SlicePerPlmnPerCellListItem", - "SlicePerPlmnPerCellListItem", - &asn_OP_SEQUENCE, - asn_DEF_SlicePerPlmnPerCellListItem_tags_1, - sizeof(asn_DEF_SlicePerPlmnPerCellListItem_tags_1) - /sizeof(asn_DEF_SlicePerPlmnPerCellListItem_tags_1[0]), /* 1 */ - asn_DEF_SlicePerPlmnPerCellListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_SlicePerPlmnPerCellListItem_tags_1) - /sizeof(asn_DEF_SlicePerPlmnPerCellListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SlicePerPlmnPerCellListItem_1, - 2, /* Elements count */ - &asn_SPC_SlicePerPlmnPerCellListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/SlicePerPlmnPerCellListItem.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/SlicePerPlmnPerCellListItem.h deleted file mode 100644 index 1d704d5..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/SlicePerPlmnPerCellListItem.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _SlicePerPlmnPerCellListItem_H_ -#define _SlicePerPlmnPerCellListItem_H_ - - -#include - -/* Including external dependencies */ -#include "SNSSAI.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct FQIPERSlicesPerPlmnPerCellListItem; - -/* SlicePerPlmnPerCellListItem */ -typedef struct SlicePerPlmnPerCellListItem { - SNSSAI_t sliceID; - struct SlicePerPlmnPerCellListItem__fQIPERSlicesPerPlmnPerCellList { - A_SEQUENCE_OF(struct FQIPERSlicesPerPlmnPerCellListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } fQIPERSlicesPerPlmnPerCellList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SlicePerPlmnPerCellListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SlicePerPlmnPerCellListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_SlicePerPlmnPerCellListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_SlicePerPlmnPerCellListItem_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "FQIPERSlicesPerPlmnPerCellListItem.h" - -#endif /* _SlicePerPlmnPerCellListItem_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/SliceToReportListItem.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/SliceToReportListItem.c deleted file mode 100644 index ae32ba9..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/SliceToReportListItem.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "SliceToReportListItem.h" - -static int -memb_fQIPERSlicesPerPlmnList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 64)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_fQIPERSlicesPerPlmnList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..64)) */}; -static asn_per_constraints_t asn_PER_type_fQIPERSlicesPerPlmnList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_fQIPERSlicesPerPlmnList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..64)) */}; -static asn_per_constraints_t asn_PER_memb_fQIPERSlicesPerPlmnList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_fQIPERSlicesPerPlmnList_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_FQIPERSlicesPerPlmnListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_fQIPERSlicesPerPlmnList_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_fQIPERSlicesPerPlmnList_specs_3 = { - sizeof(struct SliceToReportListItem__fQIPERSlicesPerPlmnList), - offsetof(struct SliceToReportListItem__fQIPERSlicesPerPlmnList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_fQIPERSlicesPerPlmnList_3 = { - "fQIPERSlicesPerPlmnList", - "fQIPERSlicesPerPlmnList", - &asn_OP_SEQUENCE_OF, - asn_DEF_fQIPERSlicesPerPlmnList_tags_3, - sizeof(asn_DEF_fQIPERSlicesPerPlmnList_tags_3) - /sizeof(asn_DEF_fQIPERSlicesPerPlmnList_tags_3[0]) - 1, /* 1 */ - asn_DEF_fQIPERSlicesPerPlmnList_tags_3, /* Same as above */ - sizeof(asn_DEF_fQIPERSlicesPerPlmnList_tags_3) - /sizeof(asn_DEF_fQIPERSlicesPerPlmnList_tags_3[0]), /* 2 */ - { &asn_OER_type_fQIPERSlicesPerPlmnList_constr_3, &asn_PER_type_fQIPERSlicesPerPlmnList_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_fQIPERSlicesPerPlmnList_3, - 1, /* Single element */ - &asn_SPC_fQIPERSlicesPerPlmnList_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SliceToReportListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SliceToReportListItem, sliceID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SNSSAI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sliceID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SliceToReportListItem, fQIPERSlicesPerPlmnList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_fQIPERSlicesPerPlmnList_3, - 0, - { &asn_OER_memb_fQIPERSlicesPerPlmnList_constr_3, &asn_PER_memb_fQIPERSlicesPerPlmnList_constr_3, memb_fQIPERSlicesPerPlmnList_constraint_1 }, - 0, 0, /* No default value */ - "fQIPERSlicesPerPlmnList" - }, -}; -static const ber_tlv_tag_t asn_DEF_SliceToReportListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SliceToReportListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sliceID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fQIPERSlicesPerPlmnList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SliceToReportListItem_specs_1 = { - sizeof(struct SliceToReportListItem), - offsetof(struct SliceToReportListItem, _asn_ctx), - asn_MAP_SliceToReportListItem_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_SliceToReportListItem = { - "SliceToReportListItem", - "SliceToReportListItem", - &asn_OP_SEQUENCE, - asn_DEF_SliceToReportListItem_tags_1, - sizeof(asn_DEF_SliceToReportListItem_tags_1) - /sizeof(asn_DEF_SliceToReportListItem_tags_1[0]), /* 1 */ - asn_DEF_SliceToReportListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_SliceToReportListItem_tags_1) - /sizeof(asn_DEF_SliceToReportListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SliceToReportListItem_1, - 2, /* Elements count */ - &asn_SPC_SliceToReportListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/SliceToReportListItem.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/SliceToReportListItem.h deleted file mode 100644 index c25b20a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/SliceToReportListItem.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _SliceToReportListItem_H_ -#define _SliceToReportListItem_H_ - - -#include - -/* Including external dependencies */ -#include "SNSSAI.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct FQIPERSlicesPerPlmnListItem; - -/* SliceToReportListItem */ -typedef struct SliceToReportListItem { - SNSSAI_t sliceID; - struct SliceToReportListItem__fQIPERSlicesPerPlmnList { - A_SEQUENCE_OF(struct FQIPERSlicesPerPlmnListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } fQIPERSlicesPerPlmnList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SliceToReportListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SliceToReportListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_SliceToReportListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_SliceToReportListItem_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "FQIPERSlicesPerPlmnListItem.h" - -#endif /* _SliceToReportListItem_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/SuccessfulOutcome.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/SuccessfulOutcome.c deleted file mode 100644 index 55bad07..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/SuccessfulOutcome.c +++ /dev/null @@ -1,359 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "SuccessfulOutcome.h" - -static const long asn_VAL_1_id_RICsubscription = 8; -static const long asn_VAL_1_reject = 0; -static const long asn_VAL_2_id_RICsubscriptionDelete = 9; -static const long asn_VAL_2_reject = 0; -static const long asn_VAL_3_id_RICserviceUpdate = 7; -static const long asn_VAL_3_reject = 0; -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_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_ErrorIndication = 2; -static const long asn_VAL_9_ignore = 1; -static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_RICsubscription }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_RICsubscriptionDelete }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_RICserviceUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICcontrolRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_RICcontrol }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_E2setupRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2setupResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2setupFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_E2setup }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ResetRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_Reset }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICindication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_RICindication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceQuery }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_RICserviceQuery }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_ErrorIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore } -}; -static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { - { 9, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } -}; -static int -memb_procedureCode_constraint_1(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; - } -} - -static asn_type_selector_result_t -select_SuccessfulOutcome_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_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 4; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SuccessfulOutcome, procedureCode)); - - 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_1(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_SuccessfulOutcome_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_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 1; /* &SuccessfulOutcome */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SuccessfulOutcome, procedureCode)); - - 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_1(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_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -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_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_TYPE_member_t asn_MBR_value_4[] = { - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICsubscriptionResponse), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionResponse, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionResponse" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICsubscriptionDeleteResponse), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteResponse, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionDeleteResponse" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICserviceUpdateAcknowledge), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdateAcknowledge, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICserviceUpdateAcknowledge" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICcontrolAcknowledge), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolAcknowledge, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolAcknowledge" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.E2setupResponse), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupResponse, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2setupResponse" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.ResetResponse), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResetResponse, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ResetResponse" - }, -}; -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 */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { - sizeof(struct SuccessfulOutcome__value), - offsetof(struct SuccessfulOutcome__value, _asn_ctx), - offsetof(struct SuccessfulOutcome__value, present), - sizeof(((struct SuccessfulOutcome__value *)0)->present), - asn_MAP_value_tag2el_4, - 6, /* 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, - 6, /* Elements count */ - &asn_SPC_value_specs_4 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SuccessfulOutcome_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome, procedureCode), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProcedureCode, - 0, - { 0, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, - 0, 0, /* No default value */ - "procedureCode" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SuccessfulOutcome_criticality_type, - { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_4, - select_SuccessfulOutcome_value_type, - { 0, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SuccessfulOutcome_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SuccessfulOutcome_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ - { (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_SuccessfulOutcome_specs_1 = { - sizeof(struct SuccessfulOutcome), - offsetof(struct SuccessfulOutcome, _asn_ctx), - asn_MAP_SuccessfulOutcome_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_SuccessfulOutcome = { - "SuccessfulOutcome", - "SuccessfulOutcome", - &asn_OP_SEQUENCE, - asn_DEF_SuccessfulOutcome_tags_1, - sizeof(asn_DEF_SuccessfulOutcome_tags_1) - /sizeof(asn_DEF_SuccessfulOutcome_tags_1[0]), /* 1 */ - asn_DEF_SuccessfulOutcome_tags_1, /* Same as above */ - sizeof(asn_DEF_SuccessfulOutcome_tags_1) - /sizeof(asn_DEF_SuccessfulOutcome_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SuccessfulOutcome_1, - 3, /* Elements count */ - &asn_SPC_SuccessfulOutcome_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/SuccessfulOutcome.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/SuccessfulOutcome.h deleted file mode 100644 index fd04d94..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/SuccessfulOutcome.h +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _SuccessfulOutcome_H_ -#define _SuccessfulOutcome_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProcedureCode.h" -#include "Criticality.h" -#include "ANY.h" -#include "asn_ioc.h" -#include "RICsubscriptionRequest.h" -#include "RICsubscriptionResponse.h" -#include "RICsubscriptionFailure.h" -#include "RICsubscriptionDeleteRequest.h" -#include "RICsubscriptionDeleteResponse.h" -#include "RICsubscriptionDeleteFailure.h" -#include "RICserviceUpdate.h" -#include "RICserviceUpdateAcknowledge.h" -#include "RICserviceUpdateFailure.h" -#include "RICcontrolRequest.h" -#include "RICcontrolAcknowledge.h" -#include "RICcontrolFailure.h" -#include "E2setupRequest.h" -#include "E2setupResponse.h" -#include "E2setupFailure.h" -#include "ResetRequest.h" -#include "ResetResponse.h" -#include "RICindication.h" -#include "RICserviceQuery.h" -#include "ErrorIndication.h" -#include "OPEN_TYPE.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum SuccessfulOutcome__value_PR { - SuccessfulOutcome__value_PR_NOTHING, /* No components present */ - SuccessfulOutcome__value_PR_RICsubscriptionResponse, - SuccessfulOutcome__value_PR_RICsubscriptionDeleteResponse, - SuccessfulOutcome__value_PR_RICserviceUpdateAcknowledge, - SuccessfulOutcome__value_PR_RICcontrolAcknowledge, - SuccessfulOutcome__value_PR_E2setupResponse, - SuccessfulOutcome__value_PR_ResetResponse -} SuccessfulOutcome__value_PR; - -/* SuccessfulOutcome */ -typedef struct SuccessfulOutcome { - ProcedureCode_t procedureCode; - Criticality_t criticality; - struct SuccessfulOutcome__value { - SuccessfulOutcome__value_PR present; - union SuccessfulOutcome__value_u { - RICsubscriptionResponse_t RICsubscriptionResponse; - RICsubscriptionDeleteResponse_t RICsubscriptionDeleteResponse; - RICserviceUpdateAcknowledge_t RICserviceUpdateAcknowledge; - RICcontrolAcknowledge_t RICcontrolAcknowledge; - E2setupResponse_t E2setupResponse; - ResetResponse_t ResetResponse; - } 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; -} SuccessfulOutcome_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SuccessfulOutcome; -extern asn_SEQUENCE_specifics_t asn_SPC_SuccessfulOutcome_specs_1; -extern asn_TYPE_member_t asn_MBR_SuccessfulOutcome_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _SuccessfulOutcome_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/TimeToWait.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/TimeToWait.c deleted file mode 100644 index c4eec34..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/TimeToWait.c +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "TimeToWait.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_TimeToWait_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_TimeToWait_value2enum_1[] = { - { 0, 3, "v1s" }, - { 1, 3, "v2s" }, - { 2, 3, "v5s" }, - { 3, 4, "v10s" }, - { 4, 4, "v20s" }, - { 5, 4, "v60s" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_TimeToWait_enum2value_1[] = { - 3, /* v10s(3) */ - 0, /* v1s(0) */ - 4, /* v20s(4) */ - 1, /* v2s(1) */ - 2, /* v5s(2) */ - 5 /* v60s(5) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_TimeToWait_specs_1 = { - asn_MAP_TimeToWait_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_TimeToWait_enum2value_1, /* N => "tag"; sorted by N */ - 6, /* Number of elements in the maps */ - 7, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_TimeToWait_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_TimeToWait = { - "TimeToWait", - "TimeToWait", - &asn_OP_NativeEnumerated, - asn_DEF_TimeToWait_tags_1, - sizeof(asn_DEF_TimeToWait_tags_1) - /sizeof(asn_DEF_TimeToWait_tags_1[0]), /* 1 */ - asn_DEF_TimeToWait_tags_1, /* Same as above */ - sizeof(asn_DEF_TimeToWait_tags_1) - /sizeof(asn_DEF_TimeToWait_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_TimeToWait_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_TimeToWait_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/TimeToWait.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/TimeToWait.h deleted file mode 100644 index 6fad8ee..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/TimeToWait.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _TimeToWait_H_ -#define _TimeToWait_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum TimeToWait { - TimeToWait_v1s = 0, - TimeToWait_v2s = 1, - TimeToWait_v5s = 2, - TimeToWait_v10s = 3, - TimeToWait_v20s = 4, - TimeToWait_v60s = 5 - /* - * Enumeration is extensible - */ -} e_TimeToWait; - -/* TimeToWait */ -typedef long TimeToWait_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_TimeToWait; -asn_struct_free_f TimeToWait_free; -asn_struct_print_f TimeToWait_print; -asn_constr_check_f TimeToWait_constraint; -ber_type_decoder_f TimeToWait_decode_ber; -der_type_encoder_f TimeToWait_encode_der; -xer_type_decoder_f TimeToWait_decode_xer; -xer_type_encoder_f TimeToWait_encode_xer; -per_type_decoder_f TimeToWait_decode_uper; -per_type_encoder_f TimeToWait_encode_uper; -per_type_decoder_f TimeToWait_decode_aper; -per_type_encoder_f TimeToWait_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _TimeToWait_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Timestamp.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Timestamp.c deleted file mode 100644 index 4087751..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Timestamp.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "Timestamp.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_Timestamp_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Timestamp = { - "Timestamp", - "Timestamp", - &asn_OP_OCTET_STRING, - asn_DEF_Timestamp_tags_1, - sizeof(asn_DEF_Timestamp_tags_1) - /sizeof(asn_DEF_Timestamp_tags_1[0]), /* 1 */ - asn_DEF_Timestamp_tags_1, /* Same as above */ - sizeof(asn_DEF_Timestamp_tags_1) - /sizeof(asn_DEF_Timestamp_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Timestamp.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Timestamp.h deleted file mode 100644 index f77ac4a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Timestamp.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _Timestamp_H_ -#define _Timestamp_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Timestamp */ -typedef OCTET_STRING_t Timestamp_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_Timestamp; -asn_struct_free_f Timestamp_free; -asn_struct_print_f Timestamp_print; -asn_constr_check_f Timestamp_constraint; -ber_type_decoder_f Timestamp_decode_ber; -der_type_encoder_f Timestamp_encode_der; -xer_type_decoder_f Timestamp_decode_xer; -xer_type_encoder_f Timestamp_encode_xer; -oer_type_decoder_f Timestamp_decode_oer; -oer_type_encoder_f Timestamp_encode_oer; -per_type_decoder_f Timestamp_decode_uper; -per_type_encoder_f Timestamp_encode_uper; -per_type_decoder_f Timestamp_decode_aper; -per_type_encoder_f Timestamp_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Timestamp_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Trigger-ConditionIE-Item.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Trigger-ConditionIE-Item.c deleted file mode 100644 index 069fd1d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Trigger-ConditionIE-Item.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "Trigger-ConditionIE-Item.h" - -asn_TYPE_member_t asn_MBR_Trigger_ConditionIE_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct Trigger_ConditionIE_Item, report_Period_IE), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RT_Period_IE, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "report-Period-IE" - }, -}; -static const ber_tlv_tag_t asn_DEF_Trigger_ConditionIE_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_Trigger_ConditionIE_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* report-Period-IE */ -}; -asn_SEQUENCE_specifics_t asn_SPC_Trigger_ConditionIE_Item_specs_1 = { - sizeof(struct Trigger_ConditionIE_Item), - offsetof(struct Trigger_ConditionIE_Item, _asn_ctx), - asn_MAP_Trigger_ConditionIE_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_Trigger_ConditionIE_Item = { - "Trigger-ConditionIE-Item", - "Trigger-ConditionIE-Item", - &asn_OP_SEQUENCE, - asn_DEF_Trigger_ConditionIE_Item_tags_1, - sizeof(asn_DEF_Trigger_ConditionIE_Item_tags_1) - /sizeof(asn_DEF_Trigger_ConditionIE_Item_tags_1[0]), /* 1 */ - asn_DEF_Trigger_ConditionIE_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_Trigger_ConditionIE_Item_tags_1) - /sizeof(asn_DEF_Trigger_ConditionIE_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_Trigger_ConditionIE_Item_1, - 1, /* Elements count */ - &asn_SPC_Trigger_ConditionIE_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Trigger-ConditionIE-Item.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Trigger-ConditionIE-Item.h deleted file mode 100644 index 173b46a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/Trigger-ConditionIE-Item.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _Trigger_ConditionIE_Item_H_ -#define _Trigger_ConditionIE_Item_H_ - - -#include - -/* Including external dependencies */ -#include "RT-Period-IE.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Trigger-ConditionIE-Item */ -typedef struct Trigger_ConditionIE_Item { - RT_Period_IE_t report_Period_IE; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} Trigger_ConditionIE_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_Trigger_ConditionIE_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_Trigger_ConditionIE_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_Trigger_ConditionIE_Item_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _Trigger_ConditionIE_Item_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/TriggeringMessage.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/TriggeringMessage.c deleted file mode 100644 index 45dcd5f..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/TriggeringMessage.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "TriggeringMessage.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_TriggeringMessage_constr_1 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_INTEGER_enum_map_t asn_MAP_TriggeringMessage_value2enum_1[] = { - { 0, 18, "initiating-message" }, - { 1, 18, "successful-outcome" }, - { 2, 21, "unsuccessfull-outcome" } -}; -static const unsigned int asn_MAP_TriggeringMessage_enum2value_1[] = { - 0, /* initiating-message(0) */ - 1, /* successful-outcome(1) */ - 2 /* unsuccessfull-outcome(2) */ -}; -const asn_INTEGER_specifics_t asn_SPC_TriggeringMessage_specs_1 = { - asn_MAP_TriggeringMessage_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_TriggeringMessage_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 0, /* Enumeration is not extensible */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_TriggeringMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_TriggeringMessage = { - "TriggeringMessage", - "TriggeringMessage", - &asn_OP_NativeEnumerated, - asn_DEF_TriggeringMessage_tags_1, - sizeof(asn_DEF_TriggeringMessage_tags_1) - /sizeof(asn_DEF_TriggeringMessage_tags_1[0]), /* 1 */ - asn_DEF_TriggeringMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_TriggeringMessage_tags_1) - /sizeof(asn_DEF_TriggeringMessage_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_TriggeringMessage_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_TriggeringMessage_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/TriggeringMessage.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/TriggeringMessage.h deleted file mode 100644 index 734cefa..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/TriggeringMessage.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _TriggeringMessage_H_ -#define _TriggeringMessage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum TriggeringMessage { - TriggeringMessage_initiating_message = 0, - TriggeringMessage_successful_outcome = 1, - TriggeringMessage_unsuccessfull_outcome = 2 -} e_TriggeringMessage; - -/* TriggeringMessage */ -typedef long TriggeringMessage_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_TriggeringMessage_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_TriggeringMessage; -extern const asn_INTEGER_specifics_t asn_SPC_TriggeringMessage_specs_1; -asn_struct_free_f TriggeringMessage_free; -asn_struct_print_f TriggeringMessage_print; -asn_constr_check_f TriggeringMessage_constraint; -ber_type_decoder_f TriggeringMessage_decode_ber; -der_type_encoder_f TriggeringMessage_encode_der; -xer_type_decoder_f TriggeringMessage_decode_xer; -xer_type_encoder_f TriggeringMessage_encode_xer; -per_type_decoder_f TriggeringMessage_decode_uper; -per_type_encoder_f TriggeringMessage_encode_uper; -per_type_decoder_f TriggeringMessage_decode_aper; -per_type_encoder_f TriggeringMessage_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _TriggeringMessage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/TypeOfError.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/TypeOfError.c deleted file mode 100644 index 76beba5..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/TypeOfError.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "TypeOfError.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_TypeOfError_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 */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_TypeOfError_value2enum_1[] = { - { 0, 14, "not-understood" }, - { 1, 7, "missing" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_TypeOfError_enum2value_1[] = { - 1, /* missing(1) */ - 0 /* not-understood(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_TypeOfError_specs_1 = { - asn_MAP_TypeOfError_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_TypeOfError_enum2value_1, /* 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_TypeOfError_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_TypeOfError = { - "TypeOfError", - "TypeOfError", - &asn_OP_NativeEnumerated, - asn_DEF_TypeOfError_tags_1, - sizeof(asn_DEF_TypeOfError_tags_1) - /sizeof(asn_DEF_TypeOfError_tags_1[0]), /* 1 */ - asn_DEF_TypeOfError_tags_1, /* Same as above */ - sizeof(asn_DEF_TypeOfError_tags_1) - /sizeof(asn_DEF_TypeOfError_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_TypeOfError_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_TypeOfError_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/TypeOfError.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/TypeOfError.h deleted file mode 100644 index 9451b1e..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/TypeOfError.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _TypeOfError_H_ -#define _TypeOfError_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum TypeOfError { - TypeOfError_not_understood = 0, - TypeOfError_missing = 1 - /* - * Enumeration is extensible - */ -} e_TypeOfError; - -/* TypeOfError */ -typedef long TypeOfError_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_TypeOfError_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_TypeOfError; -extern const asn_INTEGER_specifics_t asn_SPC_TypeOfError_specs_1; -asn_struct_free_f TypeOfError_free; -asn_struct_print_f TypeOfError_print; -asn_constr_check_f TypeOfError_constraint; -ber_type_decoder_f TypeOfError_decode_ber; -der_type_encoder_f TypeOfError_encode_der; -xer_type_decoder_f TypeOfError_decode_xer; -xer_type_encoder_f TypeOfError_encode_xer; -per_type_decoder_f TypeOfError_decode_uper; -per_type_encoder_f TypeOfError_encode_uper; -per_type_decoder_f TypeOfError_decode_aper; -per_type_encoder_f TypeOfError_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _TypeOfError_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/UE-Report-Type.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/UE-Report-Type.c deleted file mode 100644 index 1966c27..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/UE-Report-Type.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "UE-Report-Type.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_UE_Report_Type_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_UE_Report_Type_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_UE_Report_Type_value2enum_1[] = { - { 0, 17, "oDU-Report-Per-UE" }, - { 1, 20, "oCU-CP-Report-Per-UE" }, - { 2, 20, "oCU-UP-Report-Per-UE" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_UE_Report_Type_enum2value_1[] = { - 1, /* oCU-CP-Report-Per-UE(1) */ - 2, /* oCU-UP-Report-Per-UE(2) */ - 0 /* oDU-Report-Per-UE(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_UE_Report_Type_specs_1 = { - asn_MAP_UE_Report_Type_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_UE_Report_Type_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_UE_Report_Type_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_UE_Report_Type = { - "UE-Report-Type", - "UE-Report-Type", - &asn_OP_NativeEnumerated, - asn_DEF_UE_Report_Type_tags_1, - sizeof(asn_DEF_UE_Report_Type_tags_1) - /sizeof(asn_DEF_UE_Report_Type_tags_1[0]), /* 1 */ - asn_DEF_UE_Report_Type_tags_1, /* Same as above */ - sizeof(asn_DEF_UE_Report_Type_tags_1) - /sizeof(asn_DEF_UE_Report_Type_tags_1[0]), /* 1 */ - { &asn_OER_type_UE_Report_Type_constr_1, &asn_PER_type_UE_Report_Type_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_UE_Report_Type_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/UE-Report-Type.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/UE-Report-Type.h deleted file mode 100644 index 02e7cb5..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/UE-Report-Type.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _UE_Report_Type_H_ -#define _UE_Report_Type_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum UE_Report_Type { - UE_Report_Type_oDU_Report_Per_UE = 0, - UE_Report_Type_oCU_CP_Report_Per_UE = 1, - UE_Report_Type_oCU_UP_Report_Per_UE = 2 - /* - * Enumeration is extensible - */ -} e_UE_Report_Type; - -/* UE-Report-Type */ -typedef long UE_Report_Type_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_UE_Report_Type_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_UE_Report_Type; -extern const asn_INTEGER_specifics_t asn_SPC_UE_Report_Type_specs_1; -asn_struct_free_f UE_Report_Type_free; -asn_struct_print_f UE_Report_Type_print; -asn_constr_check_f UE_Report_Type_constraint; -ber_type_decoder_f UE_Report_Type_decode_ber; -der_type_encoder_f UE_Report_Type_encode_der; -xer_type_decoder_f UE_Report_Type_decode_xer; -xer_type_encoder_f UE_Report_Type_encode_xer; -oer_type_decoder_f UE_Report_Type_decode_oer; -oer_type_encoder_f UE_Report_Type_encode_oer; -per_type_decoder_f UE_Report_Type_decode_uper; -per_type_encoder_f UE_Report_Type_encode_uper; -per_type_decoder_f UE_Report_Type_decode_aper; -per_type_encoder_f UE_Report_Type_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _UE_Report_Type_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/UnsuccessfulOutcome.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/UnsuccessfulOutcome.c deleted file mode 100644 index 327134e..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/UnsuccessfulOutcome.c +++ /dev/null @@ -1,349 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "UnsuccessfulOutcome.h" - -static const long asn_VAL_1_id_RICsubscription = 8; -static const long asn_VAL_1_reject = 0; -static const long asn_VAL_2_id_RICsubscriptionDelete = 9; -static const long asn_VAL_2_reject = 0; -static const long asn_VAL_3_id_RICserviceUpdate = 7; -static const long asn_VAL_3_reject = 0; -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_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_ErrorIndication = 2; -static const long asn_VAL_9_ignore = 1; -static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_RICsubscription }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_RICsubscriptionDelete }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_RICserviceUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICcontrolRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_RICcontrol }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_E2setupRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2setupResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2setupFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_E2setup }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ResetRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_Reset }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICindication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_RICindication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceQuery }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_RICserviceQuery }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_ErrorIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore } -}; -static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { - { 9, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } -}; -static int -memb_procedureCode_constraint_1(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; - } -} - -static asn_type_selector_result_t -select_UnsuccessfulOutcome_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_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 4; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UnsuccessfulOutcome, procedureCode)); - - 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_1(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_UnsuccessfulOutcome_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_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 2; /* &UnsuccessfulOutcome */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UnsuccessfulOutcome, procedureCode)); - - 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_1(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_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -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_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_TYPE_member_t asn_MBR_value_4[] = { - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICsubscriptionFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICsubscriptionDeleteFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionDeleteFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICserviceUpdateFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdateFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICserviceUpdateFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICcontrolFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.E2setupFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2setupFailure" - }, -}; -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 */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { - sizeof(struct UnsuccessfulOutcome__value), - offsetof(struct UnsuccessfulOutcome__value, _asn_ctx), - offsetof(struct UnsuccessfulOutcome__value, present), - sizeof(((struct UnsuccessfulOutcome__value *)0)->present), - asn_MAP_value_tag2el_4, - 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_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, - 5, /* Elements count */ - &asn_SPC_value_specs_4 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_UnsuccessfulOutcome_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome, procedureCode), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProcedureCode, - 0, - { 0, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, - 0, 0, /* No default value */ - "procedureCode" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_UnsuccessfulOutcome_criticality_type, - { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_4, - select_UnsuccessfulOutcome_value_type, - { 0, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_UnsuccessfulOutcome_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UnsuccessfulOutcome_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ - { (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_UnsuccessfulOutcome_specs_1 = { - sizeof(struct UnsuccessfulOutcome), - offsetof(struct UnsuccessfulOutcome, _asn_ctx), - asn_MAP_UnsuccessfulOutcome_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_UnsuccessfulOutcome = { - "UnsuccessfulOutcome", - "UnsuccessfulOutcome", - &asn_OP_SEQUENCE, - asn_DEF_UnsuccessfulOutcome_tags_1, - sizeof(asn_DEF_UnsuccessfulOutcome_tags_1) - /sizeof(asn_DEF_UnsuccessfulOutcome_tags_1[0]), /* 1 */ - asn_DEF_UnsuccessfulOutcome_tags_1, /* Same as above */ - sizeof(asn_DEF_UnsuccessfulOutcome_tags_1) - /sizeof(asn_DEF_UnsuccessfulOutcome_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UnsuccessfulOutcome_1, - 3, /* Elements count */ - &asn_SPC_UnsuccessfulOutcome_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/UnsuccessfulOutcome.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/UnsuccessfulOutcome.h deleted file mode 100644 index 7762209..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/UnsuccessfulOutcome.h +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _UnsuccessfulOutcome_H_ -#define _UnsuccessfulOutcome_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProcedureCode.h" -#include "Criticality.h" -#include "ANY.h" -#include "asn_ioc.h" -#include "RICsubscriptionRequest.h" -#include "RICsubscriptionResponse.h" -#include "RICsubscriptionFailure.h" -#include "RICsubscriptionDeleteRequest.h" -#include "RICsubscriptionDeleteResponse.h" -#include "RICsubscriptionDeleteFailure.h" -#include "RICserviceUpdate.h" -#include "RICserviceUpdateAcknowledge.h" -#include "RICserviceUpdateFailure.h" -#include "RICcontrolRequest.h" -#include "RICcontrolAcknowledge.h" -#include "RICcontrolFailure.h" -#include "E2setupRequest.h" -#include "E2setupResponse.h" -#include "E2setupFailure.h" -#include "ResetRequest.h" -#include "ResetResponse.h" -#include "RICindication.h" -#include "RICserviceQuery.h" -#include "ErrorIndication.h" -#include "OPEN_TYPE.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum UnsuccessfulOutcome__value_PR { - UnsuccessfulOutcome__value_PR_NOTHING, /* No components present */ - UnsuccessfulOutcome__value_PR_RICsubscriptionFailure, - UnsuccessfulOutcome__value_PR_RICsubscriptionDeleteFailure, - UnsuccessfulOutcome__value_PR_RICserviceUpdateFailure, - UnsuccessfulOutcome__value_PR_RICcontrolFailure, - UnsuccessfulOutcome__value_PR_E2setupFailure -} UnsuccessfulOutcome__value_PR; - -/* UnsuccessfulOutcome */ -typedef struct UnsuccessfulOutcome { - ProcedureCode_t procedureCode; - Criticality_t criticality; - struct UnsuccessfulOutcome__value { - UnsuccessfulOutcome__value_PR present; - union UnsuccessfulOutcome__value_u { - RICsubscriptionFailure_t RICsubscriptionFailure; - RICsubscriptionDeleteFailure_t RICsubscriptionDeleteFailure; - RICserviceUpdateFailure_t RICserviceUpdateFailure; - RICcontrolFailure_t RICcontrolFailure; - E2setupFailure_t E2setupFailure; - } 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; -} UnsuccessfulOutcome_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UnsuccessfulOutcome; -extern asn_SEQUENCE_specifics_t asn_SPC_UnsuccessfulOutcome_specs_1; -extern asn_TYPE_member_t asn_MBR_UnsuccessfulOutcome_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _UnsuccessfulOutcome_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_application.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_application.c deleted file mode 100644 index 2bff460..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_application.c +++ /dev/null @@ -1,481 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -static asn_enc_rval_t asn_encode_internal(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, - const asn_TYPE_descriptor_t *td, - const void *sptr, - asn_app_consume_bytes_f *callback, - void *callback_key); - - -struct callback_count_bytes_key { - asn_app_consume_bytes_f *callback; - void *callback_key; - size_t computed_size; -}; - -/* - * Encoder which just counts bytes that come through it. - */ -static int -callback_count_bytes_cb(const void *data, size_t size, void *keyp) { - struct callback_count_bytes_key *key = keyp; - int ret; - - ret = key->callback(data, size, key->callback_key); - if(ret >= 0) { - key->computed_size += size; - } - - return ret; -} - -struct overrun_encoder_key { - void *buffer; - size_t buffer_size; - size_t computed_size; -}; - -struct dynamic_encoder_key { - void *buffer; - size_t buffer_size; - size_t computed_size; -}; - -struct callback_failure_catch_key { - asn_app_consume_bytes_f *callback; - void *callback_key; - int callback_failed; -}; - -/* - * Encoder which doesn't stop counting bytes - * even if it reaches the end of the buffer. - */ -static int -overrun_encoder_cb(const void *data, size_t size, void *keyp) { - struct overrun_encoder_key *key = keyp; - - if(key->computed_size + size > key->buffer_size) { - /* - * Avoid accident on the next call: - * stop adding bytes to the buffer. - */ - key->buffer_size = 0; - } else { - memcpy((char *)key->buffer + key->computed_size, data, size); - } - key->computed_size += size; - - return 0; -} - -/* - * Encoder which dynamically allocates output, and continues - * to count even if allocation failed. - */ -static int -dynamic_encoder_cb(const void *data, size_t size, void *keyp) { - struct dynamic_encoder_key *key = keyp; - - if(key->buffer) { - if(key->computed_size + size >= key->buffer_size) { - void *p; - size_t new_size = key->buffer_size; - - do { - new_size *= 2; - } while(new_size <= key->computed_size + size); - - p = REALLOC(key->buffer, new_size); - if(p) { - key->buffer = p; - key->buffer_size = new_size; - } else { - FREEMEM(key->buffer); - key->buffer = 0; - key->buffer_size = 0; - key->computed_size += size; - return 0; - } - } - memcpy((char *)key->buffer + key->computed_size, data, size); - } - - key->computed_size += size; - - return 0; -} - -/* - * Encoder which help convert the application level encoder failure into EIO. - */ -static int -callback_failure_catch_cb(const void *data, size_t size, void *keyp) { - struct callback_failure_catch_key *key = keyp; - int ret; - - ret = key->callback(data, size, key->callback_key); - if(ret < 0) { - key->callback_failed = 1; - } - - return ret; -} - -asn_enc_rval_t -asn_encode(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, const asn_TYPE_descriptor_t *td, - const void *sptr, asn_app_consume_bytes_f *callback, void *callback_key) { - struct callback_failure_catch_key cb_key; - asn_enc_rval_t er = {0,0,0}; - - if(!callback) { - errno = EINVAL; - ASN__ENCODE_FAILED; - } - - cb_key.callback = callback; - cb_key.callback_key = callback_key; - cb_key.callback_failed = 0; - - er = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, - callback_failure_catch_cb, &cb_key); - if(cb_key.callback_failed) { - assert(er.encoded == -1); - assert(errno == EBADF); - errno = EIO; - } - - return er; -} - -asn_enc_rval_t -asn_encode_to_buffer(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, - const asn_TYPE_descriptor_t *td, const void *sptr, - void *buffer, size_t buffer_size) { - struct overrun_encoder_key buf_key; - asn_enc_rval_t er = {0,0,0}; - - if(buffer_size > 0 && !buffer) { - errno = EINVAL; - ASN__ENCODE_FAILED; - } - - buf_key.buffer = buffer; - buf_key.buffer_size = buffer_size; - buf_key.computed_size = 0; - - er = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, - overrun_encoder_cb, &buf_key); - - if(er.encoded >= 0 && (size_t)er.encoded != buf_key.computed_size) { - ASN_DEBUG("asn_encode() returned %" ASN_PRI_SSIZE - " yet produced %" ASN_PRI_SIZE " bytes", - er.encoded, buf_key.computed_size); - assert(er.encoded < 0 || (size_t)er.encoded == buf_key.computed_size); - } - - return er; -} - -asn_encode_to_new_buffer_result_t -asn_encode_to_new_buffer(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, - const asn_TYPE_descriptor_t *td, const void *sptr) { - struct dynamic_encoder_key buf_key; - asn_encode_to_new_buffer_result_t res; - - buf_key.buffer_size = 16; - buf_key.buffer = MALLOC(buf_key.buffer_size); - buf_key.computed_size = 0; - - res.result = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, - dynamic_encoder_cb, &buf_key); - - if(res.result.encoded >= 0 - && (size_t)res.result.encoded != buf_key.computed_size) { - ASN_DEBUG("asn_encode() returned %" ASN_PRI_SSIZE - " yet produced %" ASN_PRI_SIZE " bytes", - res.result.encoded, buf_key.computed_size); - assert(res.result.encoded < 0 - || (size_t)res.result.encoded == buf_key.computed_size); - } - - res.buffer = buf_key.buffer; - - /* 0-terminate just in case. */ - if(res.buffer) { - assert(buf_key.computed_size < buf_key.buffer_size); - ((char *)res.buffer)[buf_key.computed_size] = '\0'; - } - - return res; -} - -static asn_enc_rval_t -asn_encode_internal(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, - const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_consume_bytes_f *callback, void *callback_key) { - asn_enc_rval_t er = {0,0,0}; - enum xer_encoder_flags_e xer_flags = XER_F_CANONICAL; - - (void)opt_codec_ctx; /* Parameters are not checked on encode yet. */ - - if(!td || !sptr) { - errno = EINVAL; - ASN__ENCODE_FAILED; - } - - switch(syntax) { - case ATS_NONSTANDARD_PLAINTEXT: - if(td->op->print_struct) { - struct callback_count_bytes_key cb_key; - cb_key.callback = callback; - cb_key.callback_key = callback_key; - cb_key.computed_size = 0; - if(td->op->print_struct(td, sptr, 1, callback_count_bytes_cb, - &cb_key) - < 0 - || callback_count_bytes_cb("\n", 1, &cb_key) < 0) { - errno = EBADF; /* Structure has incorrect form. */ - er.encoded = -1; - er.failed_type = td; - er.structure_ptr = sptr; - } else { - er.encoded = cb_key.computed_size; - er.failed_type = 0; - er.structure_ptr = 0; - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; - - case ATS_RANDOM: - errno = ENOENT; /* Randomization doesn't make sense on output. */ - ASN__ENCODE_FAILED; - - case ATS_BER: - /* BER is a superset of DER. */ - /* Fall through. */ - case ATS_DER: - if(td->op->der_encoder) { - er = der_encode(td, sptr, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->der_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* DER is not defined for this type. */ - } - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; - case ATS_CER: - errno = ENOENT; /* Transfer syntax is not defined for any type. */ - ASN__ENCODE_FAILED; - -#ifdef ASN_DISABLE_OER_SUPPORT - case ATS_BASIC_OER: - case ATS_CANONICAL_OER: - errno = ENOENT; /* PER is not defined. */ - ASN__ENCODE_FAILED; - break; -#else /* ASN_DISABLE_OER_SUPPORT */ - case ATS_BASIC_OER: - /* CANONICAL-OER is a superset of BASIC-OER. */ - /* Fall through. */ - case ATS_CANONICAL_OER: - if(td->op->oer_encoder) { - er = oer_encode(td, sptr, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->oer_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* OER is not defined for this type. */ - } - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; -#endif /* ASN_DISABLE_OER_SUPPORT */ - -#ifdef ASN_DISABLE_PER_SUPPORT - case ATS_UNALIGNED_BASIC_PER: - case ATS_UNALIGNED_CANONICAL_PER: - case ATS_ALIGNED_BASIC_PER: - case ATS_ALIGNED_CANONICAL_PER: - errno = ENOENT; /* PER is not defined. */ - ASN__ENCODE_FAILED; - break; -#else /* ASN_DISABLE_PER_SUPPORT */ - case ATS_UNALIGNED_BASIC_PER: - /* CANONICAL-UPER is a superset of BASIC-UPER. */ - /* Fall through. */ - case ATS_UNALIGNED_CANONICAL_PER: - if(td->op->uper_encoder) { - er = uper_encode(td, 0, sptr, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->uper_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* UPER is not defined for this type. */ - } - } else { - ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); - if(er.encoded == 0) { - /* Enforce "Complete Encoding" of X.691 #11.1 */ - if(callback("\0", 1, callback_key) < 0) { - errno = EBADF; - ASN__ENCODE_FAILED; - } - er.encoded = 8; /* Exactly 8 zero bits is added. */ - } - /* Convert bits into bytes */ - er.encoded = (er.encoded + 7) >> 3; - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; - case ATS_ALIGNED_BASIC_PER: - /* CANONICAL-APER is a superset of BASIC-APER. */ - /* Fall through. */ - case ATS_ALIGNED_CANONICAL_PER: - if(td->op->aper_encoder) { - er = aper_encode(td, 0, sptr, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->aper_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* APER is not defined for this type. */ - } - } else { - ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); - if(er.encoded == 0) { - /* Enforce "Complete Encoding" of X.691 #11.1 */ - if(callback("\0", 1, callback_key) < 0) { - errno = EBADF; - ASN__ENCODE_FAILED; - } - er.encoded = 8; /* Exactly 8 zero bits is added. */ - } - /* Convert bits into bytes */ - er.encoded = (er.encoded + 7) >> 3; - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; -#endif /* ASN_DISABLE_PER_SUPPORT */ - - case ATS_BASIC_XER: - /* CANONICAL-XER is a superset of BASIC-XER. */ - xer_flags &= ~XER_F_CANONICAL; - xer_flags |= XER_F_BASIC; - /* Fall through. */ - case ATS_CANONICAL_XER: - if(td->op->xer_encoder) { - er = xer_encode(td, sptr, xer_flags, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->xer_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* XER is not defined for this type. */ - } - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; - - default: - errno = ENOENT; - ASN__ENCODE_FAILED; - } - - return er; -} - -asn_dec_rval_t -asn_decode(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, const asn_TYPE_descriptor_t *td, - void **sptr, const void *buffer, size_t size) { - if(!td || !td->op || !sptr || (size && !buffer)) { - ASN__DECODE_FAILED; - } - - switch(syntax) { - case ATS_CER: - case ATS_NONSTANDARD_PLAINTEXT: - default: - errno = ENOENT; - ASN__DECODE_FAILED; - - case ATS_RANDOM: - if(!td->op->random_fill) { - ASN__DECODE_FAILED; - } else { - if(asn_random_fill(td, sptr, 16000) == 0) { - asn_dec_rval_t ret = {RC_OK, 0}; - return ret; - } else { - ASN__DECODE_FAILED; - } - } - break; - - case ATS_DER: - case ATS_BER: - return ber_decode(opt_codec_ctx, td, sptr, buffer, size); - - case ATS_BASIC_OER: - case ATS_CANONICAL_OER: -#ifdef ASN_DISABLE_OER_SUPPORT - errno = ENOENT; - ASN__DECODE_FAILED; -#else - return oer_decode(opt_codec_ctx, td, sptr, buffer, size); -#endif - - case ATS_UNALIGNED_BASIC_PER: - case ATS_UNALIGNED_CANONICAL_PER: -#ifdef ASN_DISABLE_PER_SUPPORT - errno = ENOENT; - ASN__DECODE_FAILED; -#else - return uper_decode_complete(opt_codec_ctx, td, sptr, buffer, size); -#endif - - case ATS_ALIGNED_BASIC_PER: - case ATS_ALIGNED_CANONICAL_PER: -#ifdef ASN_DISABLE_PER_SUPPORT - errno = ENOENT; - ASN__DECODE_FAILED; -#else - return aper_decode_complete(opt_codec_ctx, td, sptr, buffer, size); -#endif - - case ATS_BASIC_XER: - case ATS_CANONICAL_XER: - return xer_decode(opt_codec_ctx, td, sptr, buffer, size); - } -} - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_application.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_application.h deleted file mode 100644 index 034f646..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_application.h +++ /dev/null @@ -1,171 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Application-level ASN.1 callbacks. - */ -#ifndef ASN_APPLICATION_H -#define ASN_APPLICATION_H - -#include "asn_system.h" /* for platform-dependent types */ -#include "asn_codecs.h" /* for ASN.1 codecs specifics */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * A selection of ASN.1 Transfer Syntaxes to use with generalized - * encoders and decoders declared further in this .h file. - */ -enum asn_transfer_syntax { - /* Avoid appearance of a default transfer syntax. */ - ATS_INVALID = 0, - /* Plaintext output (not conforming to any standard), for debugging. */ - ATS_NONSTANDARD_PLAINTEXT, - /* Returns a randomly generated structure. */ - ATS_RANDOM, - /* - * X.690: - * BER: Basic Encoding Rules. - * DER: Distinguished Encoding Rules. - * CER: Canonical Encoding Rules. - * DER and CER are more strict variants of BER. - */ - ATS_BER, - ATS_DER, - ATS_CER, /* Only decoding is supported */ - /* - * X.696: - * OER: Octet Encoding Rules. - * CANONICAL-OER is a more strict variant of BASIC-OER. - */ - ATS_BASIC_OER, - ATS_CANONICAL_OER, - /* - * X.691: - * PER: Packed Encoding Rules. - * CANONICAL-PER is a more strict variant of BASIC-PER. - * NOTE: Produces or consumes a complete encoding (X.691 (08/2015) #11.1). - */ - ATS_UNALIGNED_BASIC_PER, - ATS_UNALIGNED_CANONICAL_PER, - ATS_ALIGNED_BASIC_PER, - ATS_ALIGNED_CANONICAL_PER, - /* - * X.693: - * XER: XML Encoding Rules. - * CANONICAL-XER is a more strict variant of BASIC-XER. - */ - ATS_BASIC_XER, - ATS_CANONICAL_XER -}; - -/* - * A generic encoder for any supported transfer syntax. - * RETURN VALUES: - * The (.encoded) field of the return value is REDEFINED to mean the following: - * >=0: The computed size of the encoded data. Can exceed the (buffer_size). - * -1: Error encoding the structure. See the error code in (errno): - * EINVAL: Incorrect parameters to the function, such as NULLs. - * ENOENT: Encoding transfer syntax is not defined (for this type). - * EBADF: The structure has invalid form or content constraint failed. - * The (.failed_type) and (.structure_ptr) MIGHT be set to the appropriate - * values at the place of failure, if at all possible. - * WARNING: The (.encoded) field of the return value can exceed the buffer_size. - * This is similar to snprintf(3) contract which might return values - * greater than the buffer size. - */ -asn_enc_rval_t asn_encode_to_buffer( - const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ - enum asn_transfer_syntax, - const struct asn_TYPE_descriptor_s *type_to_encode, - const void *structure_to_encode, void *buffer, size_t buffer_size); - -/* - * A variant of asn_encode_to_buffer() with automatically allocated buffer. - * RETURN VALUES: - * On success, returns a newly allocated (.buffer) containing the whole message. - * The message size is returned in (.result.encoded). - * On failure: - * (.buffer) is NULL, - * (.result.encoded) as in asn_encode_to_buffer(), - * The errno codes as in asn_encode_to_buffer(), plus the following: - * ENOMEM: Memory allocation failed due to system or internal limits. - * The user is responsible for freeing the (.buffer). - */ -typedef struct asn_encode_to_new_buffer_result_s { - void *buffer; /* NULL if failed to encode. */ - asn_enc_rval_t result; -} asn_encode_to_new_buffer_result_t; -asn_encode_to_new_buffer_result_t asn_encode_to_new_buffer( - const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ - enum asn_transfer_syntax, - const struct asn_TYPE_descriptor_s *type_to_encode, - const void *structure_to_encode); - - -/* - * Generic type of an application-defined callback to return various - * types of data to the application. - * EXPECTED RETURN VALUES: - * -1: Failed to consume bytes. Abort the mission. - * Non-negative return values indicate success, and ignored. - */ -typedef int(asn_app_consume_bytes_f)(const void *buffer, size_t size, - void *application_specific_key); - - -/* - * A generic encoder for any supported transfer syntax. - * Returns the comprehensive encoding result descriptor (see asn_codecs.h). - * RETURN VALUES: - * The negative (.encoded) field of the return values is accompanied with the - * following error codes (errno): - * EINVAL: Incorrect parameters to the function, such as NULLs. - * ENOENT: Encoding transfer syntax is not defined (for this type). - * EBADF: The structure has invalid form or content constraint failed. - * EIO: The (callback) has returned negative value during encoding. - */ -asn_enc_rval_t asn_encode( - const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ - enum asn_transfer_syntax, - const struct asn_TYPE_descriptor_s *type_to_encode, - const void *structure_to_encode, - asn_app_consume_bytes_f *callback, void *callback_key); - - -/* - * A generic decoder for any supported transfer syntax. - */ -asn_dec_rval_t asn_decode( - const asn_codec_ctx_t *opt_codec_parameters, enum asn_transfer_syntax, - const struct asn_TYPE_descriptor_s *type_to_decode, - void **structure_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of that buffer */ -); - - -/* - * A callback of this type is called whenever constraint validation fails - * on some ASN.1 type. See "constraints.h" for more details on constraint - * validation. - * This callback specifies a descriptor of the ASN.1 type which failed - * the constraint check, as well as human readable message on what - * particular constraint has failed. - */ -typedef void (asn_app_constraint_failed_f)(void *application_specific_key, - const struct asn_TYPE_descriptor_s *type_descriptor_which_failed, - const void *structure_which_failed_ptr, - const char *error_message_format, ...) CC_PRINTFLIKE(4, 5); - - -#ifdef __cplusplus -} -#endif - -#include "constr_TYPE.h" /* for asn_TYPE_descriptor_t */ - -#endif /* ASN_APPLICATION_H */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_bit_data.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_bit_data.h deleted file mode 100644 index 59de7af..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_bit_data.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_BIT_DATA -#define ASN_BIT_DATA - -#include /* Platform-specific types */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * This structure describes a position inside an incoming PER bit stream. - */ -typedef struct asn_bit_data_s { - const uint8_t *buffer; /* Pointer to the octet stream */ - size_t nboff; /* Bit offset to the meaningful bit */ - size_t nbits; /* Number of bits in the stream */ - size_t moved; /* Number of bits moved through this bit stream */ - int (*refill)(struct asn_bit_data_s *); - void *refill_key; -} asn_bit_data_t; - -/* - * Create a contiguous non-refillable bit data structure. - * Can be freed by FREEMEM(). - */ -asn_bit_data_t *asn_bit_data_new_contiguous(const void *data, size_t size_bits); - -/* - * Extract a small number of bits (<= 31) from the specified PER data pointer. - * This function returns -1 if the specified number of bits could not be - * extracted due to EOD or other conditions. - */ -int32_t asn_get_few_bits(asn_bit_data_t *, int get_nbits); - -/* Undo the immediately preceeding "get_few_bits" operation */ -void asn_get_undo(asn_bit_data_t *, int get_nbits); - -/* - * Extract a large number of bits from the specified PER data pointer. - * This function returns -1 if the specified number of bits could not be - * extracted due to EOD or other conditions. - */ -int asn_get_many_bits(asn_bit_data_t *, uint8_t *dst, int right_align, - int get_nbits); - -/* Non-thread-safe debugging function, don't use it */ -char *asn_bit_data_string(asn_bit_data_t *); - -/* - * This structure supports forming bit output. - */ -typedef struct asn_bit_outp_s { - uint8_t *buffer; /* Pointer into the (tmpspace) */ - size_t nboff; /* Bit offset to the meaningful bit */ - size_t nbits; /* Number of bits left in (tmpspace) */ - uint8_t tmpspace[32]; /* Preliminary storage to hold data */ - int (*output)(const void *data, size_t size, void *op_key); - void *op_key; /* Key for (output) data callback */ - size_t flushed_bytes; /* Bytes already flushed through (output) */ -} asn_bit_outp_t; - -/* Output a small number of bits (<= 31) */ -int asn_put_few_bits(asn_bit_outp_t *, uint32_t bits, int obits); - -/* Output a large number of bits */ -int asn_put_many_bits(asn_bit_outp_t *, const uint8_t *src, int put_nbits); - -/* - * Flush whole bytes (0 or more) through (outper) member. - * The least significant bits which are not used are guaranteed to be set to 0. - * Returns -1 if callback returns -1. Otherwise, 0. - */ -int asn_put_aligned_flush(asn_bit_outp_t *); - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_BIT_DATA */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_codecs_prim.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_codecs_prim.c deleted file mode 100644 index fc24247..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_codecs_prim.c +++ /dev/null @@ -1,317 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Decode an always-primitive type. - */ -asn_dec_rval_t -ber_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const void *buf_ptr, size_t size, int tag_mode) { - ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)*sptr; - asn_dec_rval_t rval; - ber_tlv_len_t length = 0; /* =0 to avoid [incorrect] warning. */ - - /* - * If the structure is not there, allocate it. - */ - if(st == NULL) { - st = (ASN__PRIMITIVE_TYPE_t *)CALLOC(1, sizeof(*st)); - if(st == NULL) ASN__DECODE_FAILED; - *sptr = (void *)st; - } - - ASN_DEBUG("Decoding %s as plain primitive (tm=%d)", - td->name, tag_mode); - - /* - * Check tags and extract value length. - */ - rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size, - tag_mode, 0, &length, 0); - if(rval.code != RC_OK) - return rval; - - ASN_DEBUG("%s length is %d bytes", td->name, (int)length); - - /* - * Make sure we have this length. - */ - buf_ptr = ((const char *)buf_ptr) + rval.consumed; - size -= rval.consumed; - if(length > (ber_tlv_len_t)size) { - rval.code = RC_WMORE; - rval.consumed = 0; - return rval; - } - - st->size = (int)length; - /* The following better be optimized away. */ - if(sizeof(st->size) != sizeof(length) - && (ber_tlv_len_t)st->size != length) { - st->size = 0; - ASN__DECODE_FAILED; - } - - st->buf = (uint8_t *)MALLOC(length + 1); - if(!st->buf) { - st->size = 0; - ASN__DECODE_FAILED; - } - - memcpy(st->buf, buf_ptr, length); - st->buf[length] = '\0'; /* Just in case */ - - rval.code = RC_OK; - rval.consumed += length; - - ASN_DEBUG("Took %ld/%ld bytes to encode %s", - (long)rval.consumed, - (long)length, td->name); - - return rval; -} - -/* - * Encode an always-primitive type using DER. - */ -asn_enc_rval_t -der_encode_primitive(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t erval = {0,0,0}; - const ASN__PRIMITIVE_TYPE_t *st = (const ASN__PRIMITIVE_TYPE_t *)sptr; - - ASN_DEBUG("%s %s as a primitive type (tm=%d)", - cb?"Encoding":"Estimating", td->name, tag_mode); - - erval.encoded = der_write_tags(td, st->size, tag_mode, 0, tag, - cb, app_key); - ASN_DEBUG("%s wrote tags %d", td->name, (int)erval.encoded); - if(erval.encoded == -1) { - erval.failed_type = td; - erval.structure_ptr = sptr; - return erval; - } - - if(cb && st->buf) { - if(cb(st->buf, st->size, app_key) < 0) { - erval.encoded = -1; - erval.failed_type = td; - erval.structure_ptr = sptr; - return erval; - } - } else { - assert(st->buf || st->size == 0); - } - - erval.encoded += st->size; - ASN__ENCODED_OK(erval); -} - -void -ASN__PRIMITIVE_TYPE_free(const asn_TYPE_descriptor_t *td, void *sptr, - enum asn_struct_free_method method) { - ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)sptr; - - if(!td || !sptr) - return; - - ASN_DEBUG("Freeing %s as a primitive type", td->name); - - if(st->buf) - FREEMEM(st->buf); - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(sptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(sptr, 0, sizeof(ASN__PRIMITIVE_TYPE_t)); - break; - } -} - - -/* - * Local internal type passed around as an argument. - */ -struct xdp_arg_s { - const asn_TYPE_descriptor_t *type_descriptor; - void *struct_key; - xer_primitive_body_decoder_f *prim_body_decoder; - int decoded_something; - int want_more; -}; - -/* - * Since some kinds of primitive values can be encoded using value-specific - * tags (, , etc), the primitive decoder must - * be supplied with such tags to parse them as needed. - */ -static int -xer_decode__unexpected_tag(void *key, const void *chunk_buf, size_t chunk_size) { - struct xdp_arg_s *arg = (struct xdp_arg_s *)key; - enum xer_pbd_rval bret; - - /* - * The chunk_buf is guaranteed to start at '<'. - */ - assert(chunk_size && ((const char *)chunk_buf)[0] == 0x3c); - - /* - * Decoding was performed once already. Prohibit doing it again. - */ - if(arg->decoded_something) - return -1; - - bret = arg->prim_body_decoder(arg->type_descriptor, - arg->struct_key, chunk_buf, chunk_size); - switch(bret) { - case XPBD_SYSTEM_FAILURE: - case XPBD_DECODER_LIMIT: - case XPBD_BROKEN_ENCODING: - break; - case XPBD_BODY_CONSUMED: - /* Tag decoded successfully */ - arg->decoded_something = 1; - /* Fall through */ - case XPBD_NOT_BODY_IGNORE: /* Safe to proceed further */ - return 0; - } - - return -1; -} - -static ssize_t -xer_decode__primitive_body(void *key, const void *chunk_buf, size_t chunk_size, int have_more) { - struct xdp_arg_s *arg = (struct xdp_arg_s *)key; - enum xer_pbd_rval bret; - size_t lead_wsp_size; - - if(arg->decoded_something) { - if(xer_whitespace_span(chunk_buf, chunk_size) == chunk_size) { - /* - * Example: - * "123 " - * ^- chunk_buf position. - */ - return chunk_size; - } - /* - * Decoding was done once already. Prohibit doing it again. - */ - return -1; - } - - if(!have_more) { - /* - * If we've received something like "1", we can't really - * tell whether it is really `1` or `123`, until we know - * that there is no more data coming. - * The have_more argument will be set to 1 once something - * like this is available to the caller of this callback: - * "1want_more = 1; - return -1; - } - - lead_wsp_size = xer_whitespace_span(chunk_buf, chunk_size); - chunk_buf = (const char *)chunk_buf + lead_wsp_size; - chunk_size -= lead_wsp_size; - - bret = arg->prim_body_decoder(arg->type_descriptor, - arg->struct_key, chunk_buf, chunk_size); - switch(bret) { - case XPBD_SYSTEM_FAILURE: - case XPBD_DECODER_LIMIT: - case XPBD_BROKEN_ENCODING: - break; - case XPBD_BODY_CONSUMED: - /* Tag decoded successfully */ - arg->decoded_something = 1; - /* Fall through */ - case XPBD_NOT_BODY_IGNORE: /* Safe to proceed further */ - return lead_wsp_size + chunk_size; - } - - return -1; -} - - -asn_dec_rval_t -xer_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - size_t struct_size, const char *opt_mname, - const void *buf_ptr, size_t size, - xer_primitive_body_decoder_f *prim_body_decoder) { - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - asn_struct_ctx_t s_ctx; - struct xdp_arg_s s_arg; - asn_dec_rval_t rc; - - /* - * Create the structure if does not exist. - */ - if(!*sptr) { - *sptr = CALLOC(1, struct_size); - if(!*sptr) ASN__DECODE_FAILED; - } - - memset(&s_ctx, 0, sizeof(s_ctx)); - s_arg.type_descriptor = td; - s_arg.struct_key = *sptr; - s_arg.prim_body_decoder = prim_body_decoder; - s_arg.decoded_something = 0; - s_arg.want_more = 0; - - rc = xer_decode_general(opt_codec_ctx, &s_ctx, &s_arg, - xml_tag, buf_ptr, size, - xer_decode__unexpected_tag, xer_decode__primitive_body); - switch(rc.code) { - case RC_OK: - if(!s_arg.decoded_something) { - char ch; - ASN_DEBUG("Primitive body is not recognized, " - "supplying empty one"); - /* - * Decoding opportunity has come and gone. - * Where's the result? - * Try to feed with empty body, see if it eats it. - */ - if(prim_body_decoder(s_arg.type_descriptor, - s_arg.struct_key, &ch, 0) - != XPBD_BODY_CONSUMED) { - /* - * This decoder does not like empty stuff. - */ - ASN__DECODE_FAILED; - } - } - break; - case RC_WMORE: - /* - * Redo the whole thing later. - * We don't have a context to save intermediate parsing state. - */ - rc.consumed = 0; - break; - case RC_FAIL: - rc.consumed = 0; - if(s_arg.want_more) - rc.code = RC_WMORE; - else - ASN__DECODE_FAILED; - break; - } - return rc; -} - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_codecs_prim.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_codecs_prim.h deleted file mode 100644 index fbc5576..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_codecs_prim.h +++ /dev/null @@ -1,51 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_CODECS_PRIM_H -#define ASN_CODECS_PRIM_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct ASN__PRIMITIVE_TYPE_s { - uint8_t *buf; /* Buffer with consecutive primitive encoding bytes */ - size_t size; /* Size of the buffer */ -} ASN__PRIMITIVE_TYPE_t; /* Do not use this type directly! */ - -asn_struct_free_f ASN__PRIMITIVE_TYPE_free; -ber_type_decoder_f ber_decode_primitive; -der_type_encoder_f der_encode_primitive; - -/* - * A callback specification for the xer_decode_primitive() function below. - */ -enum xer_pbd_rval { - XPBD_SYSTEM_FAILURE, /* System failure (memory shortage, etc) */ - XPBD_DECODER_LIMIT, /* Hit some decoder limitation or deficiency */ - XPBD_BROKEN_ENCODING, /* Encoding of a primitive body is broken */ - XPBD_NOT_BODY_IGNORE, /* Not a body format, but safe to ignore */ - XPBD_BODY_CONSUMED /* Body is recognized and consumed */ -}; -typedef enum xer_pbd_rval(xer_primitive_body_decoder_f)( - const asn_TYPE_descriptor_t *td, void *struct_ptr, const void *chunk_buf, - size_t chunk_size); - -/* - * Specific function to decode simple primitive types. - * Also see xer_decode_general() in xer_decoder.h - */ -asn_dec_rval_t xer_decode_primitive( - const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, - size_t struct_size, const char *opt_mname, const void *buf_ptr, size_t size, - xer_primitive_body_decoder_f *prim_body_decoder); - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_CODECS_PRIM_H */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_constant.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_constant.h deleted file mode 100644 index af5a0fd..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_constant.h +++ /dev/null @@ -1,30 +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 maxofMessageProtocolTests (15) -#define maxofRICstyles (63) -#define maxnoofQCI (256) -#define maxnoofQoSFlows (64) -#define maxnoofSliceItems (1024) -#define maxnoofContainerListItems (3) -#define maxCellingNBDU (512) -#define maxofContainers (8) -#define maxPLMN (12) -#define maxofRANparamters (65536) -#define maxUeReport (32) -#define maxCellingNB (16384) - - -#ifdef __cplusplus -} -#endif - -#endif /* _ASN_CONSTANT_H */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_internal.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_internal.c deleted file mode 100644 index 1aff95f..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_internal.c +++ /dev/null @@ -1,48 +0,0 @@ -#include - -ssize_t -asn__format_to_callback(int (*cb)(const void *, size_t, void *key), void *key, - const char *fmt, ...) { - char scratch[64]; - char *buf = scratch; - size_t buf_size = sizeof(scratch); - int wrote; - int cb_ret; - - do { - va_list args; - va_start(args, fmt); - - wrote = vsnprintf(buf, buf_size, fmt, args); - if(wrote < (ssize_t)buf_size) { - if(wrote < 0) { - if(buf != scratch) FREEMEM(buf); - va_end(args); - return -1; - } - break; - } - - buf_size <<= 1; - if(buf == scratch) { - buf = MALLOC(buf_size); - if(!buf) return -1; - } else { - void *p = REALLOC(buf, buf_size); - if(!p) { - FREEMEM(buf); - return -1; - } - buf = p; - } - } while(1); - - cb_ret = cb(buf, wrote, key); - if(buf != scratch) FREEMEM(buf); - if(cb_ret < 0) { - return -1; - } - - return wrote; -} - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_internal.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_internal.h deleted file mode 100644 index c4105ad..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_internal.h +++ /dev/null @@ -1,159 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Declarations internally useful for the ASN.1 support code. - */ -#ifndef ASN_INTERNAL_H -#define ASN_INTERNAL_H -#define __EXTENSIONS__ /* for Sun */ - -#include "asn_application.h" /* Application-visible API */ - -#ifndef __NO_ASSERT_H__ /* Include assert.h only for internal use. */ -#include /* for assert() macro */ -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* Environment version might be used to avoid running with the old library */ -#define ASN1C_ENVIRONMENT_VERSION 923 /* Compile-time version */ -int get_asn1c_environment_version(void); /* Run-time version */ - -#define CALLOC(nmemb, size) calloc(nmemb, size) -#define MALLOC(size) malloc(size) -#define REALLOC(oldptr, size) realloc(oldptr, size) -#define FREEMEM(ptr) free(ptr) - -#define asn_debug_indent 0 -#define ASN_DEBUG_INDENT_ADD(i) do{}while(0) - -#ifdef EMIT_ASN_DEBUG -#warning "Use ASN_EMIT_DEBUG instead of EMIT_ASN_DEBUG" -#define ASN_EMIT_DEBUG EMIT_ASN_DEBUG -#endif - -/* - * A macro for debugging the ASN.1 internals. - * You may enable or override it. - */ -#ifndef ASN_DEBUG /* If debugging code is not defined elsewhere... */ -#if ASN_EMIT_DEBUG == 1 /* And it was asked to emit this code... */ -#if !defined(BELL_LABS) /* Bell Labs */ - //#if __STDC_VERSION__ >= 199901L -#ifdef ASN_THREAD_SAFE -/* Thread safety requires sacrifice in output indentation: - * Retain empty definition of ASN_DEBUG_INDENT_ADD. */ -#else /* !ASN_THREAD_SAFE */ -#undef ASN_DEBUG_INDENT_ADD -#undef asn_debug_indent -int asn_debug_indent; -#define ASN_DEBUG_INDENT_ADD(i) do { asn_debug_indent += i; } while(0) -#endif /* ASN_THREAD_SAFE */ -#if defined(BELL_LABS) /* Bell Labs version */ -extern int logAsn1c(const char *filename, int linenumber, const char *format, ...); -#define ASN_DEBUG(fmt, args...) do { \ - (void) logAsn1c(__FILE__, __LINE__, fmt, ##args); \ - } while(0) -#else -#define ASN_DEBUG(fmt, args...) do { \ - int adi = asn_debug_indent; \ - while(adi--) fprintf(stderr, " "); \ - fprintf(stderr, fmt, ##args); \ - fprintf(stderr, " (%s:%d)\n", \ - __FILE__, __LINE__); \ - } while(0) -#endif /* BELL_LABS */ -#else /* !C99 */ -void CC_PRINTFLIKE(1, 2) ASN_DEBUG_f(const char *fmt, ...); -#define ASN_DEBUG ASN_DEBUG_f -#endif /* C99 */ -#else /* ASN_EMIT_DEBUG != 1 */ -#if __STDC_VERSION__ >= 199901L -#define ASN_DEBUG(...) do{}while(0) -#else /* not C99 */ -static void CC_PRINTFLIKE(1, 2) ASN_DEBUG(const char *fmt, ...) { (void)fmt; } -#endif /* C99 or better */ -#endif /* ASN_EMIT_DEBUG */ -#endif /* ASN_DEBUG */ - -/* - * Print to a callback. - * The callback is expected to return negative values on error. - * 0 and positive values are treated as success. - * RETURN VALUES: - * -1: Failed to format or invoke the callback. - * >0: Size of the data that got delivered to the callback. - */ -ssize_t CC_PRINTFLIKE(3, 4) -asn__format_to_callback( - int (*callback)(const void *, size_t, void *key), void *key, - const char *fmt, ...); - -/* - * Invoke the application-supplied callback and fail, if something is wrong. - */ -#define ASN__E_cbc(buf, size) (cb((buf), (size), app_key) < 0) -#define ASN__E_CALLBACK(size, foo) \ - do { \ - if(foo) goto cb_failed; \ - er.encoded += (size); \ - } while(0) -#define ASN__CALLBACK(buf, size) ASN__E_CALLBACK(size, ASN__E_cbc(buf, size)) -#define ASN__CALLBACK2(buf1, size1, buf2, size2) \ - ASN__E_CALLBACK((size1) + (size2), \ - ASN__E_cbc(buf1, size1) || ASN__E_cbc(buf2, size2)) -#define ASN__CALLBACK3(buf1, size1, buf2, size2, buf3, size3) \ - ASN__E_CALLBACK((size1) + (size2) + (size3), \ - ASN__E_cbc(buf1, size1) || ASN__E_cbc(buf2, size2) \ - || ASN__E_cbc(buf3, size3)) - -#define ASN__TEXT_INDENT(nl, level) \ - do { \ - int tmp_level = (level); \ - int tmp_nl = ((nl) != 0); \ - int tmp_i; \ - if(tmp_nl) ASN__CALLBACK("\n", 1); \ - if(tmp_level < 0) tmp_level = 0; \ - for(tmp_i = 0; tmp_i < tmp_level; tmp_i++) ASN__CALLBACK(" ", 4); \ - } while(0) - -#define _i_INDENT(nl) do { \ - int tmp_i; \ - if((nl) && cb("\n", 1, app_key) < 0) \ - return -1; \ - for(tmp_i = 0; tmp_i < ilevel; tmp_i++) \ - if(cb(" ", 4, app_key) < 0) \ - return -1; \ - } while(0) - -/* - * Check stack against overflow, if limit is set. - */ -#define ASN__DEFAULT_STACK_MAX (30000) -static int CC_NOTUSED -ASN__STACK_OVERFLOW_CHECK(const asn_codec_ctx_t *ctx) { - if(ctx && ctx->max_stack_size) { - - /* ctx MUST be allocated on the stack */ - ptrdiff_t usedstack = ((const char *)ctx - (const char *)&ctx); - if(usedstack > 0) usedstack = -usedstack; /* grows up! */ - - /* double negative required to avoid int wrap-around */ - if(usedstack < -(ptrdiff_t)ctx->max_stack_size) { - ASN_DEBUG("Stack limit %ld reached", - (long)ctx->max_stack_size); - return -1; - } - } - return 0; -} - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_INTERNAL_H */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_random_fill.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_random_fill.c deleted file mode 100644 index 819cf70..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_random_fill.c +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -int -asn_random_fill(const struct asn_TYPE_descriptor_s *td, void **struct_ptr, - size_t length) { - - if(td && td->op->random_fill) { - asn_random_fill_result_t res = - td->op->random_fill(td, struct_ptr, 0, length); - return (res.code == ARFILL_OK) ? 0 : -1; - } else { - return -1; - } -} - -static uintmax_t -asn__intmax_range(intmax_t lb, intmax_t ub) { - assert(lb <= ub); - if((ub < 0) == (lb < 0)) { - return ub - lb; - } else if(lb < 0) { - return 1 + ((uintmax_t)ub + (uintmax_t)-(lb + 1)); - } else { - assert(!"Unreachable"); - return 0; - } -} - -intmax_t -asn_random_between(intmax_t lb, intmax_t rb) { - if(lb == rb) { - return lb; - } else { - const uintmax_t intmax_max = ((~(uintmax_t)0) >> 1); - uintmax_t range = asn__intmax_range(lb, rb); - uintmax_t value = 0; - uintmax_t got_entropy = 0; - - assert(RAND_MAX > 0xffffff); /* Seen 7ffffffd! */ - assert(range < intmax_max); - - for(; got_entropy < range;) { - got_entropy = (got_entropy << 24) | 0xffffff; - value = (value << 24) | (random() % 0xffffff); - } - - return lb + (intmax_t)(value % (range + 1)); - } -} diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_system.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_system.h deleted file mode 100644 index fa8cf11..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/asn_system.h +++ /dev/null @@ -1,150 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Miscellaneous system-dependent types. - */ -#ifndef ASN_SYSTEM_H -#define ASN_SYSTEM_H - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#ifndef _DEFAULT_SOURCE -#define _DEFAULT_SOURCE 1 -#endif - -#ifndef _BSD_SOURCE -#define _BSD_SOURCE /* for snprintf() on some linux systems */ -#endif - -#include /* For snprintf(3) */ -#include /* For *alloc(3) */ -#include /* For memcpy(3) */ -#include /* For size_t */ -#include /* For LONG_MAX */ -#include /* For va_start */ -#include /* for offsetof and ptrdiff_t */ - -#ifdef _WIN32 - -#include -#define snprintf _snprintf -#define vsnprintf _vsnprintf - -/* To avoid linking with ws2_32.lib, here's the definition of ntohl() */ -#define sys_ntohl(l) ((((l) << 24) & 0xff000000) \ - | (((l) << 8) & 0xff0000) \ - | (((l) >> 8) & 0xff00) \ - | ((l >> 24) & 0xff)) - -#ifdef _MSC_VER /* MSVS.Net */ -#ifndef __cplusplus -#define inline __inline -#endif -#ifndef ASSUMESTDTYPES /* Standard types have been defined elsewhere */ -#define ssize_t SSIZE_T -#if _MSC_VER < 1600 -typedef char int8_t; -typedef short int16_t; -typedef int int32_t; -typedef unsigned char uint8_t; -typedef unsigned short uint16_t; -typedef unsigned int uint32_t; -#else /* _MSC_VER >= 1600 */ -#include -#endif /* _MSC_VER < 1600 */ -#endif /* ASSUMESTDTYPES */ -#define WIN32_LEAN_AND_MEAN -#include -#include -#define isnan _isnan -#define finite _finite -#define copysign _copysign -#define ilogb _logb -#else /* !_MSC_VER */ -#include -#endif /* _MSC_VER */ - -#else /* !_WIN32 */ - -#if defined(__vxworks) -#include -#else /* !defined(__vxworks) */ - -#include /* C99 specifies this file */ -#include /* for ntohl() */ -#define sys_ntohl(foo) ntohl(foo) -#endif /* defined(__vxworks) */ - -#endif /* _WIN32 */ - -#if __GNUC__ >= 3 || defined(__clang__) -#define CC_ATTRIBUTE(attr) __attribute__((attr)) -#else -#define CC_ATTRIBUTE(attr) -#endif -#define CC_PRINTFLIKE(fmt, var) CC_ATTRIBUTE(format(printf, fmt, var)) -#define CC_NOTUSED CC_ATTRIBUTE(unused) -#ifndef CC_ATTR_NO_SANITIZE -#define CC_ATTR_NO_SANITIZE(what) CC_ATTRIBUTE(no_sanitize(what)) -#endif - -/* Figure out if thread safety is requested */ -#if !defined(ASN_THREAD_SAFE) && (defined(THREAD_SAFE) || defined(_REENTRANT)) -#define ASN_THREAD_SAFE -#endif /* Thread safety */ - -#ifndef offsetof /* If not defined by */ -#define offsetof(s, m) ((ptrdiff_t)&(((s *)0)->m) - (ptrdiff_t)((s *)0)) -#endif /* offsetof */ - -#ifndef MIN /* Suitable for comparing primitive types (integers) */ -#if defined(__GNUC__) -#define MIN(a,b) ({ __typeof a _a = a; __typeof b _b = b; \ - ((_a)<(_b)?(_a):(_b)); }) -#else /* !__GNUC__ */ -#define MIN(a,b) ((a)<(b)?(a):(b)) /* Unsafe variant */ -#endif /* __GNUC__ */ -#endif /* MIN */ - -#if __STDC_VERSION__ >= 199901L -#ifndef SIZE_MAX -#define SIZE_MAX ((~((size_t)0)) >> 1) -#endif - -#ifndef RSIZE_MAX /* C11, Annex K */ -#define RSIZE_MAX (SIZE_MAX >> 1) -#endif -#ifndef RSSIZE_MAX /* Halve signed size even further than unsigned */ -#define RSSIZE_MAX ((ssize_t)(RSIZE_MAX >> 1)) -#endif -#else /* Old compiler */ -#undef SIZE_MAX -#undef RSIZE_MAX -#undef RSSIZE_MAX -#define SIZE_MAX ((~((size_t)0)) >> 1) -#define RSIZE_MAX (SIZE_MAX >> 1) -#define RSSIZE_MAX ((ssize_t)(RSIZE_MAX >> 1)) -#endif - -#if __STDC_VERSION__ >= 199901L -#define ASN_PRI_SIZE "zu" -#define ASN_PRI_SSIZE "zd" -#define ASN_PRIuMAX PRIuMAX -#define ASN_PRIdMAX PRIdMAX -#else -#define ASN_PRI_SIZE "lu" -#define ASN_PRI_SSIZE "ld" -#if LLONG_MAX > LONG_MAX -#define ASN_PRIuMAX "llu" -#define ASN_PRIdMAX "lld" -#else -#define ASN_PRIuMAX "lu" -#define ASN_PRIdMAX "ld" -#endif -#endif - -#endif /* ASN_SYSTEM_H */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ber_tlv_tag.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ber_tlv_tag.c deleted file mode 100644 index 4a7d732..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/ber_tlv_tag.c +++ /dev/null @@ -1,144 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -ssize_t -ber_fetch_tag(const void *ptr, size_t size, ber_tlv_tag_t *tag_r) { - ber_tlv_tag_t val; - ber_tlv_tag_t tclass; - size_t skipped; - - if(size == 0) - return 0; - - val = *(const uint8_t *)ptr; - tclass = (val >> 6); - if((val &= 0x1F) != 0x1F) { - /* - * Simple form: everything encoded in a single octet. - * Tag Class is encoded using two least significant bits. - */ - *tag_r = (val << 2) | tclass; - return 1; - } - - /* - * Each octet contains 7 bits of useful information. - * The MSB is 0 if it is the last octet of the tag. - */ - for(val = 0, ptr = ((const char *)ptr) + 1, skipped = 2; - skipped <= size; - ptr = ((const char *)ptr) + 1, skipped++) { - unsigned int oct = *(const uint8_t *)ptr; - if(oct & 0x80) { - val = (val << 7) | (oct & 0x7F); - /* - * Make sure there are at least 9 bits spare - * at the MS side of a value. - */ - if(val >> ((8 * sizeof(val)) - 9)) { - /* - * We would not be able to accomodate - * any more tag bits. - */ - return -1; - } - } else { - val = (val << 7) | oct; - *tag_r = (val << 2) | tclass; - return skipped; - } - } - - return 0; /* Want more */ -} - - -ssize_t -ber_tlv_tag_fwrite(ber_tlv_tag_t tag, FILE *f) { - char buf[sizeof("[APPLICATION ]") + 32]; - ssize_t ret; - - ret = ber_tlv_tag_snprint(tag, buf, sizeof(buf)); - if(ret >= (ssize_t)sizeof(buf) || ret < 2) { - errno = EPERM; - return -1; - } - - return fwrite(buf, 1, ret, f); -} - -ssize_t -ber_tlv_tag_snprint(ber_tlv_tag_t tag, char *buf, size_t size) { - const char *type = 0; - int ret; - - switch(tag & 0x3) { - case ASN_TAG_CLASS_UNIVERSAL: type = "UNIVERSAL "; break; - case ASN_TAG_CLASS_APPLICATION: type = "APPLICATION "; break; - case ASN_TAG_CLASS_CONTEXT: type = ""; break; - case ASN_TAG_CLASS_PRIVATE: type = "PRIVATE "; break; - } - - ret = snprintf(buf, size, "[%s%u]", type, ((unsigned)tag) >> 2); - if(ret <= 0 && size) buf[0] = '\0'; /* against broken libc's */ - - return ret; -} - -char * -ber_tlv_tag_string(ber_tlv_tag_t tag) { - static char buf[sizeof("[APPLICATION ]") + 32]; - - (void)ber_tlv_tag_snprint(tag, buf, sizeof(buf)); - - return buf; -} - - -size_t -ber_tlv_tag_serialize(ber_tlv_tag_t tag, void *bufp, size_t size) { - int tclass = BER_TAG_CLASS(tag); - ber_tlv_tag_t tval = BER_TAG_VALUE(tag); - uint8_t *buf = (uint8_t *)bufp; - uint8_t *end; - size_t required_size; - size_t i; - - if(tval <= 30) { - /* Encoded in 1 octet */ - if(size) buf[0] = (tclass << 6) | tval; - return 1; - } else if(size) { - *buf++ = (tclass << 6) | 0x1F; - size--; - } - - /* - * Compute the size of the subsequent bytes. - */ - for(required_size = 1, i = 7; i < 8 * sizeof(tval); i += 7) { - if(tval >> i) - required_size++; - else - break; - } - - if(size < required_size) - return required_size + 1; - - /* - * Fill in the buffer, space permitting. - */ - end = buf + required_size - 1; - for(i -= 7; buf < end; i -= 7, buf++) - *buf = 0x80 | ((tval >> i) & 0x7F); - *buf = (tval & 0x7F); /* Last octet without high bit */ - - return required_size + 1; -} - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_CHOICE.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_CHOICE.c deleted file mode 100644 index 86dcbb0..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_CHOICE.c +++ /dev/null @@ -1,1533 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Number of bytes left for this structure. - * (ctx->left) indicates the number of bytes _transferred_ for the structure. - * (size) contains the number of bytes in the buffer passed. - */ -#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) - -/* - * If the subprocessor function returns with an indication that it wants - * more data, it may well be a fatal decoding problem, because the - * size is constrained by the 's L, even if the buffer size allows - * reading more data. - * For example, consider the buffer containing the following TLVs: - * ... - * The TLV length clearly indicates that one byte is expected in V, but - * if the V processor returns with "want more data" even if the buffer - * contains way more data than the V processor have seen. - */ -#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) - -/* - * This macro "eats" the part of the buffer which is definitely "consumed", - * i.e. was correctly converted into local representation or rightfully skipped. - */ -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num;\ - size -= num; \ - if(ctx->left >= 0) \ - ctx->left -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#define NEXT_PHASE(ctx) do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself;\ - return rval; \ - } while(0) - -/* - * See the definitions. - */ -static unsigned _fetch_present_idx(const void *struct_ptr, unsigned off, - unsigned size); -static void _set_present_idx(void *sptr, unsigned offset, unsigned size, - unsigned pres); -static const void *_get_member_ptr(const asn_TYPE_descriptor_t *, - const void *sptr, asn_TYPE_member_t **elm, - unsigned *present); - -/* - * Tags are canonically sorted in the tag to member table. - */ -static int -_search4tag(const void *ap, const void *bp) { - const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap; - const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp; - - int a_class = BER_TAG_CLASS(a->el_tag); - int b_class = BER_TAG_CLASS(b->el_tag); - - if(a_class == b_class) { - ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag); - ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag); - - if(a_value == b_value) - return 0; - else if(a_value < b_value) - return -1; - else - return 1; - } else if(a_class < b_class) { - return -1; - } else { - return 1; - } -} - -/* - * The decoder of the CHOICE type. - */ -asn_dec_rval_t -CHOICE_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const void *ptr, size_t size, int tag_mode) { - /* - * Bring closer parts of structure description. - */ - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_TYPE_member_t *elements = td->elements; - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - ber_tlv_tag_t tlv_tag; /* T from TLV */ - ssize_t tag_len; /* Length of TLV's T */ - asn_dec_rval_t rval; /* Return code from subparsers */ - - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - - ASN_DEBUG("Decoding %s as CHOICE", td->name); - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Start to parse where left previously - */ - switch(ctx->phase) { - case 0: - /* - * PHASE 0. - * Check that the set of tags associated with given structure - * perfectly fits our expectations. - */ - - if(tag_mode || td->tags_count) { - rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, - tag_mode, -1, &ctx->left, 0); - if(rval.code != RC_OK) { - ASN_DEBUG("%s tagging check failed: %d", - td->name, rval.code); - return rval; - } - - if(ctx->left >= 0) { - /* ?Substracted below! */ - ctx->left += rval.consumed; - } - ADVANCE(rval.consumed); - } else { - ctx->left = -1; - } - - NEXT_PHASE(ctx); - - ASN_DEBUG("Structure consumes %ld bytes, buffer %ld", - (long)ctx->left, (long)size); - - /* Fall through */ - case 1: - /* - * Fetch the T from TLV. - */ - tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); - ASN_DEBUG("In %s CHOICE tag length %d", td->name, (int)tag_len); - switch(tag_len) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - do { - const asn_TYPE_tag2member_t *t2m; - asn_TYPE_tag2member_t key; - - key.el_tag = tlv_tag; - t2m = (const asn_TYPE_tag2member_t *)bsearch(&key, - specs->tag2el, specs->tag2el_count, - sizeof(specs->tag2el[0]), _search4tag); - if(t2m) { - /* - * Found the element corresponding to the tag. - */ - NEXT_PHASE(ctx); - ctx->step = t2m->el_no; - break; - } else if(specs->ext_start == -1) { - ASN_DEBUG("Unexpected tag %s " - "in non-extensible CHOICE %s", - ber_tlv_tag_string(tlv_tag), td->name); - RETURN(RC_FAIL); - } else { - /* Skip this tag */ - ssize_t skip; - - ASN_DEBUG("Skipping unknown tag %s", - ber_tlv_tag_string(tlv_tag)); - - skip = ber_skip_length(opt_codec_ctx, - BER_TLV_CONSTRUCTED(ptr), - (const char *)ptr + tag_len, - LEFT - tag_len); - - switch(skip) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - ADVANCE(skip + tag_len); - RETURN(RC_OK); - } - } while(0); - - case 2: - /* - * PHASE 2. - * Read in the element. - */ - do { - asn_TYPE_member_t *elm;/* CHOICE's element */ - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - - elm = &elements[ctx->step]; - - /* - * Compute the position of the member inside a structure, - * and also a type of containment (it may be contained - * as pointer or using inline inclusion). - */ - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - /* - * A pointer to a pointer - * holding the start of the structure - */ - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - /* Set presence to be able to free it properly at any time */ - _set_present_idx(st, specs->pres_offset, - specs->pres_size, ctx->step + 1); - /* - * Invoke the member fetch routine according to member's type - */ - rval = elm->type->op->ber_decoder(opt_codec_ctx, elm->type, - memb_ptr2, ptr, LEFT, elm->tag_mode); - switch(rval.code) { - case RC_OK: - break; - case RC_WMORE: /* More data expected */ - if(!SIZE_VIOLATION) { - ADVANCE(rval.consumed); - RETURN(RC_WMORE); - } - RETURN(RC_FAIL); - case RC_FAIL: /* Fatal error */ - RETURN(rval.code); - } /* switch(rval) */ - - ADVANCE(rval.consumed); - } while(0); - - NEXT_PHASE(ctx); - - /* Fall through */ - case 3: - ASN_DEBUG("CHOICE %s Leftover: %ld, size = %ld, tm=%d, tc=%d", - td->name, (long)ctx->left, (long)size, - tag_mode, td->tags_count); - - if(ctx->left > 0) { - /* - * The type must be fully decoded - * by the CHOICE member-specific decoder. - */ - RETURN(RC_FAIL); - } - - if(ctx->left == -1 - && !(tag_mode || td->tags_count)) { - /* - * This is an untagged CHOICE. - * It doesn't contain nothing - * except for the member itself, including all its tags. - * The decoding is completed. - */ - NEXT_PHASE(ctx); - break; - } - - /* - * Read in the "end of data chunks"'s. - */ - while(ctx->left < 0) { - ssize_t tl; - - tl = ber_fetch_tag(ptr, LEFT, &tlv_tag); - switch(tl) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - /* - * Expected <0><0>... - */ - if(((const uint8_t *)ptr)[0] == 0) { - if(LEFT < 2) { - if(SIZE_VIOLATION) - RETURN(RC_FAIL); - else - RETURN(RC_WMORE); - } else if(((const uint8_t *)ptr)[1] == 0) { - /* - * Correctly finished with <0><0>. - */ - ADVANCE(2); - ctx->left++; - continue; - } - } else { - ASN_DEBUG("Unexpected continuation in %s", - td->name); - RETURN(RC_FAIL); - } - - /* UNREACHABLE */ - } - - NEXT_PHASE(ctx); - case 4: - /* No meaningful work here */ - break; - } - - RETURN(RC_OK); -} - -asn_enc_rval_t -CHOICE_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, - void *app_key) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - asn_TYPE_member_t *elm; /* CHOICE element */ - asn_enc_rval_t erval = {0,0,0}; - const void *memb_ptr; - size_t computed_size = 0; - unsigned present; - - if(!sptr) ASN__ENCODE_FAILED; - - ASN_DEBUG("%s %s as CHOICE", - cb?"Encoding":"Estimating", td->name); - - present = _fetch_present_idx(sptr, - specs->pres_offset, specs->pres_size); - - /* - * If the structure was not initialized, it cannot be encoded: - * can't deduce what to encode in the choice type. - */ - if(present == 0 || present > td->elements_count) { - if(present == 0 && td->elements_count == 0) { - /* The CHOICE is empty?! */ - erval.encoded = 0; - ASN__ENCODED_OK(erval); - } - ASN__ENCODE_FAILED; - } - - /* - * Seek over the present member of the structure. - */ - elm = &td->elements[present-1]; - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(memb_ptr == 0) { - if(elm->optional) { - erval.encoded = 0; - ASN__ENCODED_OK(erval); - } - /* Mandatory element absent */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - /* - * If the CHOICE itself is tagged EXPLICIT: - * T ::= [2] EXPLICIT CHOICE { ... } - * Then emit the appropriate tags. - */ - if(tag_mode == 1 || td->tags_count) { - /* - * For this, we need to pre-compute the member. - */ - ssize_t ret; - - /* Encode member with its tag */ - erval = elm->type->op->der_encoder(elm->type, memb_ptr, - elm->tag_mode, elm->tag, 0, 0); - if(erval.encoded == -1) - return erval; - - /* Encode CHOICE with parent or my own tag */ - ret = der_write_tags(td, erval.encoded, tag_mode, 1, tag, - cb, app_key); - if(ret == -1) - ASN__ENCODE_FAILED; - computed_size += ret; - } - - /* - * Encode the single underlying member. - */ - erval = elm->type->op->der_encoder(elm->type, memb_ptr, - elm->tag_mode, elm->tag, cb, app_key); - if(erval.encoded == -1) - return erval; - - ASN_DEBUG("Encoded CHOICE member in %ld bytes (+%ld)", - (long)erval.encoded, (long)computed_size); - - erval.encoded += computed_size; - - return erval; -} - -ber_tlv_tag_t -CHOICE_outmost_tag(const asn_TYPE_descriptor_t *td, const void *ptr, int tag_mode, ber_tlv_tag_t tag) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - assert(tag_mode == 0); (void)tag_mode; - assert(tag == 0); (void)tag; - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(ptr, specs->pres_offset, specs->pres_size); - - if(present > 0 && present <= td->elements_count) { - const asn_TYPE_member_t *elm = &td->elements[present-1]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *) - ((const char *)ptr + elm->memb_offset); - } else { - memb_ptr = (const void *) - ((const char *)ptr + elm->memb_offset); - } - - return asn_TYPE_outmost_tag(elm->type, memb_ptr, - elm->tag_mode, elm->tag); - } else { - return (ber_tlv_tag_t)-1; - } -} - -int -CHOICE_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); - if(present > 0 && present <= td->elements_count) { - asn_TYPE_member_t *elm = &td->elements[present-1]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) { - if(elm->optional) - return 0; - ASN__CTFAIL(app_key, td, sptr, - "%s: mandatory CHOICE element %s absent (%s:%d)", - td->name, elm->name, __FILE__, __LINE__); - return -1; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - if(elm->encoding_constraints.general_constraints) { - return elm->encoding_constraints.general_constraints(elm->type, memb_ptr, - ctfailcb, app_key); - } else { - return elm->type->encoding_constraints.general_constraints(elm->type, - memb_ptr, ctfailcb, app_key); - } - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: no CHOICE element given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -#undef XER_ADVANCE -#define XER_ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - buf_ptr = (const void *)(((const char *)buf_ptr) + num); \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Decode the XER (XML) data. - */ -asn_dec_rval_t -CHOICE_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const char *opt_mname, const void *buf_ptr, size_t size) { - /* - * Bring closer parts of structure description. - */ - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - asn_dec_rval_t rval; /* Return value of a decoder */ - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - size_t edx; /* Element index */ - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) RETURN(RC_FAIL); - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - if(ctx->phase == 0 && !*xml_tag) - ctx->phase = 1; /* Skip the outer tag checking phase */ - - /* - * Phases of XER/XML processing: - * Phase 0: Check that the opening tag matches our expectations. - * Phase 1: Processing body and reacting on closing tag. - * Phase 2: Processing inner type. - * Phase 3: Only waiting for closing tag. - * Phase 4: Skipping unknown extensions. - * Phase 5: PHASED OUT - */ - for(edx = ctx->step; ctx->phase <= 4;) { - pxer_chunk_type_e ch_type; /* XER chunk type */ - ssize_t ch_size; /* Chunk size */ - xer_check_tag_e tcv; /* Tag check value */ - asn_TYPE_member_t *elm; - - /* - * Go inside the member. - */ - if(ctx->phase == 2) { - asn_dec_rval_t tmprval; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - unsigned old_present; - - elm = &td->elements[edx]; - - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st - + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - /* Start/Continue decoding the inner member */ - tmprval = elm->type->op->xer_decoder(opt_codec_ctx, - elm->type, memb_ptr2, elm->name, - buf_ptr, size); - XER_ADVANCE(tmprval.consumed); - ASN_DEBUG("XER/CHOICE: itdf: [%s] code=%d", - elm->type->name, tmprval.code); - old_present = _fetch_present_idx(st, - specs->pres_offset, specs->pres_size); - assert(old_present == 0 || old_present == edx + 1); - /* Record what we've got */ - _set_present_idx(st, - specs->pres_offset, specs->pres_size, edx + 1); - if(tmprval.code != RC_OK) - RETURN(tmprval.code); - ctx->phase = 3; - /* Fall through */ - } - - /* No need to wait for closing tag; special mode. */ - if(ctx->phase == 3 && !*xml_tag) { - ctx->phase = 5; /* Phase out */ - RETURN(RC_OK); - } - - /* - * Get the next part of the XML stream. - */ - ch_size = xer_next_token(&ctx->context, buf_ptr, size, &ch_type); - if(ch_size == -1) { - RETURN(RC_FAIL); - } else { - switch(ch_type) { - case PXER_WMORE: - RETURN(RC_WMORE); - case PXER_COMMENT: /* Got XML comment */ - case PXER_TEXT: /* Ignore free-standing text */ - XER_ADVANCE(ch_size); /* Skip silently */ - continue; - case PXER_TAG: - break; /* Check the rest down there */ - } - } - - tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); - ASN_DEBUG("XER/CHOICE checked [%c%c%c%c] vs [%s], tcv=%d", - ch_size>0?((const uint8_t *)buf_ptr)[0]:'?', - ch_size>1?((const uint8_t *)buf_ptr)[1]:'?', - ch_size>2?((const uint8_t *)buf_ptr)[2]:'?', - ch_size>3?((const uint8_t *)buf_ptr)[3]:'?', - xml_tag, tcv); - - /* Skip the extensions section */ - if(ctx->phase == 4) { - ASN_DEBUG("skip_unknown(%d, %ld)", - tcv, (long)ctx->left); - switch(xer_skip_unknown(tcv, &ctx->left)) { - case -1: - ctx->phase = 5; - RETURN(RC_FAIL); - case 1: - ctx->phase = 3; - /* Fall through */ - case 0: - XER_ADVANCE(ch_size); - continue; - case 2: - ctx->phase = 3; - break; - } - } - - switch(tcv) { - case XCT_BOTH: - break; /* No CHOICE? */ - case XCT_CLOSING: - if(ctx->phase != 3) - break; - XER_ADVANCE(ch_size); - ctx->phase = 5; /* Phase out */ - RETURN(RC_OK); - case XCT_OPENING: - if(ctx->phase == 0) { - XER_ADVANCE(ch_size); - ctx->phase = 1; /* Processing body phase */ - continue; - } - /* Fall through */ - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - - if(ctx->phase != 1) - break; /* Really unexpected */ - - /* - * Search which inner member corresponds to this tag. - */ - for(edx = 0; edx < td->elements_count; edx++) { - elm = &td->elements[edx]; - tcv = xer_check_tag(buf_ptr,ch_size,elm->name); - switch(tcv) { - case XCT_BOTH: - case XCT_OPENING: - /* - * Process this member. - */ - ctx->step = edx; - ctx->phase = 2; - break; - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - continue; - default: - edx = td->elements_count; - break; /* Phase out */ - } - break; - } - if(edx != td->elements_count) - continue; - - /* It is expected extension */ - if(specs->ext_start != -1) { - ASN_DEBUG("Got anticipated extension"); - /* - * Check for (XCT_BOTH or XCT_UNKNOWN_BO) - * By using a mask. Only record a pure - * tags. - */ - if(tcv & XCT_CLOSING) { - /* Found without body */ - ctx->phase = 3; /* Terminating */ - } else { - ctx->left = 1; - ctx->phase = 4; /* Skip ...'s */ - } - XER_ADVANCE(ch_size); - continue; - } - - /* Fall through */ - default: - break; - } - - ASN_DEBUG("Unexpected XML tag [%c%c%c%c] in CHOICE [%s]" - " (ph=%d, tag=%s)", - ch_size>0?((const uint8_t *)buf_ptr)[0]:'?', - ch_size>1?((const uint8_t *)buf_ptr)[1]:'?', - ch_size>2?((const uint8_t *)buf_ptr)[2]:'?', - ch_size>3?((const uint8_t *)buf_ptr)[3]:'?', - td->name, ctx->phase, xml_tag); - break; - } - - ctx->phase = 5; /* Phase out, just in case */ - RETURN(RC_FAIL); -} - - -asn_enc_rval_t -CHOICE_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, - void *app_key) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - unsigned present = 0; - - if(!sptr) - ASN__ENCODE_FAILED; - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); - - if(present == 0 || present > td->elements_count) { - ASN__ENCODE_FAILED; - } else { - asn_enc_rval_t tmper = {0,0,0}; - asn_TYPE_member_t *elm = &td->elements[present-1]; - const void *memb_ptr = NULL; - const char *mname = elm->name; - unsigned int mlen = strlen(mname); - - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - er.encoded = 0; - - if(!(flags & XER_F_CANONICAL)) ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - - tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, - ilevel + 1, flags, cb, app_key); - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - - ASN__CALLBACK3("", 1); - } - - if(!(flags & XER_F_CANONICAL)) ASN__TEXT_INDENT(1, ilevel - 1); - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -asn_dec_rval_t -CHOICE_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_dec_rval_t rv; - const asn_per_constraint_t *ct; - asn_TYPE_member_t *elm; /* CHOICE's element */ - void *memb_ptr; - void **memb_ptr2; - void *st = *sptr; - int value; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) ct = &td->encoding_constraints.per_constraints->value; - else ct = 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - value = per_get_few_bits(pd, 1); - if(value < 0) ASN__DECODE_STARVED; - if(value) ct = 0; /* Not restricted */ - } - - if(ct && ct->range_bits >= 0) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - ASN_DEBUG("CHOICE %s got index %d in range %d", - td->name, value, ct->range_bits); - if(value > ct->upper_bound) - ASN__DECODE_FAILED; - } else { - if(specs->ext_start == -1) - ASN__DECODE_FAILED; - value = uper_get_nsnnwn(pd); - if(value < 0) ASN__DECODE_STARVED; - value += specs->ext_start; - if((unsigned)value >= td->elements_count) - ASN__DECODE_FAILED; - } - - /* Adjust if canonical order is different from natural order */ - if(specs->from_canonical_order) { - ASN_DEBUG("CHOICE presence from wire %d", value); - value = specs->from_canonical_order[value]; - ASN_DEBUG("CHOICE presence index effective %d", value); - } - - /* Set presence to be able to free it later */ - _set_present_idx(st, specs->pres_offset, specs->pres_size, value + 1); - - elm = &td->elements[value]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - ASN_DEBUG("Discovered CHOICE %s encodes %s", td->name, elm->name); - - if(ct && ct->range_bits >= 0) { - rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } else { - rv = uper_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } - - if(rv.code != RC_OK) - ASN_DEBUG("Failed to decode %s in %s (CHOICE) %d", - elm->name, td->name, rv.code); - return rv; -} - -asn_enc_rval_t -CHOICE_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - asn_TYPE_member_t *elm; /* CHOICE's element */ - const asn_per_constraint_t *ct; - const void *memb_ptr; - unsigned present; - int present_enc; - - if(!sptr) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %s as CHOICE", td->name); - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ct = 0; - - present = _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); - - /* - * If the structure was not initialized properly, it cannot be encoded: - * can't deduce what to encode in the choice type. - */ - if(present == 0 || present > td->elements_count) - ASN__ENCODE_FAILED; - else - present--; - - ASN_DEBUG("Encoding %s CHOICE element %d", td->name, present); - - /* Adjust if canonical order is different from natural order */ - if(specs->to_canonical_order) - present_enc = specs->to_canonical_order[present]; - else - present_enc = present; - - if(ct && ct->range_bits >= 0) { - if(present_enc < ct->lower_bound - || present_enc > ct->upper_bound) { - if(ct->flags & APC_EXTENSIBLE) { - ASN_DEBUG( - "CHOICE member %d (enc %d) is an extension (%ld..%ld)", - present, present_enc, ct->lower_bound, ct->upper_bound); - if(per_put_few_bits(po, 1, 1)) - ASN__ENCODE_FAILED; - } else { - ASN__ENCODE_FAILED; - } - ct = 0; - } - } - if(ct && ct->flags & APC_EXTENSIBLE) { - ASN_DEBUG("CHOICE member %d (enc %d) is not an extension (%ld..%ld)", - present, present_enc, ct->lower_bound, ct->upper_bound); - if(per_put_few_bits(po, 0, 1)) - ASN__ENCODE_FAILED; - } - - - elm = &td->elements[present]; - ASN_DEBUG("CHOICE member \"%s\" %d (as %d)", elm->name, present, - present_enc); - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const char *)sptr + elm->memb_offset; - } - - if(ct && ct->range_bits >= 0) { - if(per_put_few_bits(po, present_enc, ct->range_bits)) - ASN__ENCODE_FAILED; - - return elm->type->op->uper_encoder( - elm->type, elm->encoding_constraints.per_constraints, memb_ptr, po); - } else { - asn_enc_rval_t rval = {0,0,0}; - if(specs->ext_start == -1) ASN__ENCODE_FAILED; - if(uper_put_nsnnwn(po, present_enc - specs->ext_start)) - ASN__ENCODE_FAILED; - if(uper_open_type_put(elm->type, - elm->encoding_constraints.per_constraints, - memb_ptr, po)) - ASN__ENCODE_FAILED; - rval.encoded = 0; - ASN__ENCODED_OK(rval); - } -} - -asn_dec_rval_t -CHOICE_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - asn_dec_rval_t rv; - const asn_per_constraint_t *ct; - const asn_per_constraint_t *ext_ct = NULL; - asn_TYPE_member_t *elm; /* CHOICE's element */ - void *memb_ptr; - void **memb_ptr2; - void *st = *sptr; - int value; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ct = 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - value = per_get_few_bits(pd, 1); - if(value < 0) ASN__DECODE_STARVED; - if(value) { - ext_ct = ct; - ct = 0; /* Not restricted */ - } - } - - - if(ct && ct->range_bits >= 0) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - ASN_DEBUG("CHOICE %s got index %d in range %d", - td->name, value, ct->range_bits); - if(value > ct->upper_bound) - ASN__DECODE_FAILED; - } else { - if(specs->ext_start == -1) - ASN__DECODE_FAILED; - value = aper_get_nsnnwn(pd, ext_ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - value += specs->ext_start; - if((unsigned)value >= td->elements_count) - ASN__DECODE_FAILED; - } - - /* Adjust if canonical order is different from natural order */ - if(specs->from_canonical_order) - value = specs->from_canonical_order[value]; - - /* Set presence to be able to free it later */ - _set_present_idx(st, specs->pres_offset, specs->pres_size, value + 1); - - elm = &td->elements[value]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - ASN_DEBUG("Discovered CHOICE %s encodes %s", td->name, elm->name); - - if(ct && ct->range_bits >= 0) { - rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } else { - rv = aper_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } - - if(rv.code != RC_OK) - ASN_DEBUG("Failed to decode %s in %s (CHOICE) %d", - elm->name, td->name, rv.code); - return rv; -} - -asn_enc_rval_t -CHOICE_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm; /* CHOICE's element */ - const asn_per_constraint_t *ct = NULL; - const asn_per_constraint_t *ext_ct = NULL; - const void *memb_ptr; - unsigned present; - int present_enc; - - if(!sptr) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %s as CHOICE using ALIGNED PER", td->name); - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ct = NULL; - - present = _fetch_present_idx(sptr, - specs->pres_offset, specs->pres_size); - - /* - * If the structure was not initialized properly, it cannot be encoded: - * can't deduce what to encode in the choice type. - */ - if(present <= 0 || (unsigned)present > td->elements_count) - ASN__ENCODE_FAILED; - else - present--; - - /* Adjust if canonical order is different from natural order */ - if(specs->to_canonical_order) - present_enc = specs->to_canonical_order[present]; - else - present_enc = present; - - ASN_DEBUG("Encoding %s CHOICE element %d", td->name, present); - - if(ct && (ct->range_bits >= 0)) { - // Value is not within the range of the primary values ? - if(present < ct->lower_bound || present > ct->upper_bound) { - if(ct->flags & APC_EXTENSIBLE) { - ASN_DEBUG("CHOICE member %d (enc %d) is an extension (%ld..%ld)", - present, present_enc, ct->lower_bound, ct->upper_bound); - // X691/23.5 Extension marker = 1 - if(per_put_few_bits(po, 1, 1)) { - ASN__ENCODE_FAILED; - } - } else { - ASN__ENCODE_FAILED; - } - // no more need of constraint. - ext_ct = ct; - ct = NULL; - } - } - - if(ct && (ct->flags & APC_EXTENSIBLE)) { - ASN_DEBUG("CHOICE member %d (enc %d) is not an extension (%ld..%ld)", - present, present, ct->lower_bound, ct->upper_bound); - // X691.23.5 Extension marker = 0 - if(per_put_few_bits(po, 0, 1)) { - ASN__ENCODE_FAILED; - } - } - - elm = &td->elements[present]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr = *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const char *)sptr + elm->memb_offset; - } - - if(ct && (ct->range_bits >= 0)) { - // By construction (ct != 0), the alternative value is a non extended one. - // X691/23.7 X691/23.6 alternative value encoded as a range_bits bits value. - if(per_put_few_bits(po, present_enc, ct->range_bits)) - ASN__ENCODE_FAILED; - - return elm->type->op->aper_encoder(elm->type, elm->encoding_constraints.per_constraints, - memb_ptr, po); - } else { - asn_enc_rval_t rval = {0,0,0}; - if(specs->ext_start == -1) - ASN__ENCODE_FAILED; - // X691/23.8 normally encoded as a small non negative whole number - - if(ext_ct && aper_put_nsnnwn(po, ext_ct->range_bits, present_enc - specs->ext_start)) - ASN__ENCODE_FAILED; - if(aper_open_type_put(elm->type, elm->encoding_constraints.per_constraints, - memb_ptr, po)) - ASN__ENCODE_FAILED; - rval.encoded = 0; - ASN__ENCODED_OK(rval); - } -} - -int -CHOICE_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); - - /* - * Print that element. - */ - if(present > 0 && present <= td->elements_count) { - asn_TYPE_member_t *elm = &td->elements[present-1]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) return (cb("", 8, app_key) < 0) ? -1 : 0; - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - /* Print member's name and stuff */ - if(0) { - if(cb(elm->name, strlen(elm->name), app_key) < 0 - || cb(": ", 2, app_key) < 0) - return -1; - } - - return elm->type->op->print_struct(elm->type, memb_ptr, ilevel, - cb, app_key); - } else { - return (cb("", 8, app_key) < 0) ? -1 : 0; - } -} - -void -CHOICE_free(const asn_TYPE_descriptor_t *td, void *ptr, - enum asn_struct_free_method method) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - if(!td || !ptr) - return; - - ASN_DEBUG("Freeing %s as CHOICE", td->name); - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(ptr, specs->pres_offset, specs->pres_size); - - /* - * Free that element. - */ - if(present > 0 && present <= td->elements_count) { - asn_TYPE_member_t *elm = &td->elements[present-1]; - void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(void **)((char *)ptr + elm->memb_offset); - if(memb_ptr) - ASN_STRUCT_FREE(*elm->type, memb_ptr); - } else { - memb_ptr = (void *)((char *)ptr + elm->memb_offset); - ASN_STRUCT_FREE_CONTENTS_ONLY(*elm->type, memb_ptr); - } - } - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(ptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(ptr, 0, specs->struct_size); - break; - } -} - - -/* - * The following functions functions offer protection against -fshort-enums, - * compatible with little- and big-endian machines. - * If assertion is triggered, either disable -fshort-enums, or add an entry - * here with the ->pres_size of your target stracture. - * Unless the target structure is packed, the ".present" member - * is guaranteed to be aligned properly. ASN.1 compiler itself does not - * produce packed code. - */ -static unsigned -_fetch_present_idx(const void *struct_ptr, unsigned pres_offset, - unsigned pres_size) { - const void *present_ptr; - unsigned present; - - present_ptr = ((const char *)struct_ptr) + pres_offset; - - switch(pres_size) { - case sizeof(int): present = *(const unsigned int *)present_ptr; break; - case sizeof(short): present = *(const unsigned short *)present_ptr; break; - case sizeof(char): present = *(const unsigned char *)present_ptr; break; - default: - /* ANSI C mandates enum to be equivalent to integer */ - assert(pres_size != sizeof(int)); - return 0; /* If not aborted, pass back safe value */ - } - - return present; -} - -static void -_set_present_idx(void *struct_ptr, unsigned pres_offset, unsigned pres_size, - unsigned present) { - void *present_ptr; - present_ptr = ((char *)struct_ptr) + pres_offset; - - switch(pres_size) { - case sizeof(int): *(unsigned int *)present_ptr = present; break; - case sizeof(short): *(unsigned short *)present_ptr = present; break; - case sizeof(char): *(unsigned char *)present_ptr = present; break; - default: - /* ANSI C mandates enum to be equivalent to integer */ - assert(pres_size != sizeof(int)); - } -} - -static const void * -_get_member_ptr(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_TYPE_member_t **elm_ptr, unsigned *present_out) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - if(!sptr) { - *elm_ptr = NULL; - *present_out = 0; - return NULL; - } - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); - *present_out = present; - - /* - * The presence index is intentionally 1-based to avoid - * treating zeroed structure as a valid one. - */ - if(present > 0 && present <= td->elements_count) { - asn_TYPE_member_t *const elm = &td->elements[present - 1]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - *elm_ptr = elm; - return memb_ptr; - } else { - *elm_ptr = NULL; - return NULL; - } - -} - -int -CHOICE_compare(const asn_TYPE_descriptor_t *td, const void *aptr, const void *bptr) { - asn_TYPE_member_t *aelm; - asn_TYPE_member_t *belm; - unsigned apresent = 0; - unsigned bpresent = 0; - const void *amember = _get_member_ptr(td, aptr, &aelm, &apresent); - const void *bmember = _get_member_ptr(td, bptr, &belm, &bpresent); - - if(amember && bmember) { - if(apresent == bpresent) { - assert(aelm == belm); - return aelm->type->op->compare_struct(aelm->type, amember, bmember); - } else if(apresent < bpresent) { - return -1; - } else { - return 1; - } - } else if(!amember) { - return -1; - } else { - return 1; - } -} - -/* - * Return the 1-based choice variant presence index. - * Returns 0 in case of error. - */ -unsigned -CHOICE_variant_get_presence(const asn_TYPE_descriptor_t *td, const void *sptr) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - return _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); -} - -/* - * Sets or resets the 1-based choice variant presence index. - * In case a previous index is not zero, the currently selected structure - * member is freed and zeroed-out first. - * Returns 0 on success and -1 on error. - */ -int -CHOICE_variant_set_presence(const asn_TYPE_descriptor_t *td, void *sptr, - unsigned present) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - unsigned old_present; - - if(!sptr) { - return -1; - } - - if(present > td->elements_count) - return -1; - - old_present = - _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); - if(present == old_present) - return 0; - - if(old_present != 0) { - assert(old_present <= td->elements_count); - ASN_STRUCT_RESET(*td, sptr); - } - - _set_present_idx(sptr, specs->pres_offset, specs->pres_size, present); - - return 0; -} - - -asn_random_fill_result_t -CHOICE_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constr, - size_t max_length) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_random_fill_result_t res; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - const asn_TYPE_member_t *elm; - unsigned present; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *st = *sptr; - - if(max_length == 0) return result_skipped; - - (void)constr; - - if(st == NULL) { - st = CALLOC(1, specs->struct_size); - if(st == NULL) { - return result_failed; - } - } - - present = asn_random_between(1, td->elements_count); - elm = &td->elements[present - 1]; - - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - res = elm->type->op->random_fill(elm->type, memb_ptr2, - &elm->encoding_constraints, max_length); - _set_present_idx(st, specs->pres_offset, specs->pres_size, present); - if(res.code == ARFILL_OK) { - *sptr = st; - } else { - if(st == *sptr) { - ASN_STRUCT_RESET(*td, st); - } else { - ASN_STRUCT_FREE(*td, st); - } - } - - return res; -} - - -asn_TYPE_operation_t asn_OP_CHOICE = { - CHOICE_free, - CHOICE_print, - CHOICE_compare, - CHOICE_decode_ber, - CHOICE_encode_der, - CHOICE_decode_xer, - CHOICE_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - CHOICE_decode_oer, - CHOICE_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - CHOICE_decode_uper, - CHOICE_encode_uper, - CHOICE_decode_aper, - CHOICE_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - CHOICE_random_fill, - CHOICE_outmost_tag -}; diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_CHOICE.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_CHOICE.h deleted file mode 100644 index a1999ed..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_CHOICE.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _CONSTR_CHOICE_H_ -#define _CONSTR_CHOICE_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct asn_CHOICE_specifics_s { - /* - * Target structure description. - */ - unsigned struct_size; /* Size of the target structure. */ - unsigned ctx_offset; /* Offset of the asn_codec_ctx_t member */ - unsigned pres_offset; /* Identifier of the present member */ - unsigned pres_size; /* Size of the identifier (enum) */ - - /* - * Tags to members mapping table. - */ - const asn_TYPE_tag2member_t *tag2el; - unsigned tag2el_count; - - /* Canonical ordering of CHOICE elements, for PER */ - const unsigned *to_canonical_order; - const unsigned *from_canonical_order; - - /* - * Extensions-related stuff. - */ - signed ext_start; /* First member of extensions, or -1 */ -} asn_CHOICE_specifics_t; - -/* - * A set specialized functions dealing with the CHOICE type. - */ -asn_struct_free_f CHOICE_free; -asn_struct_print_f CHOICE_print; -asn_struct_compare_f CHOICE_compare; -asn_constr_check_f CHOICE_constraint; -ber_type_decoder_f CHOICE_decode_ber; -der_type_encoder_f CHOICE_encode_der; -xer_type_decoder_f CHOICE_decode_xer; -xer_type_encoder_f CHOICE_encode_xer; -oer_type_decoder_f CHOICE_decode_oer; -oer_type_encoder_f CHOICE_encode_oer; -per_type_decoder_f CHOICE_decode_uper; -per_type_encoder_f CHOICE_encode_uper; -per_type_decoder_f CHOICE_decode_aper; -per_type_encoder_f CHOICE_encode_aper; -asn_outmost_tag_f CHOICE_outmost_tag; -asn_random_fill_f CHOICE_random_fill; -extern asn_TYPE_operation_t asn_OP_CHOICE; - -/* - * Return the 1-based choice variant presence index. - * Returns 0 in case of error. - */ -unsigned CHOICE_variant_get_presence(const asn_TYPE_descriptor_t *td, - const void *structure_ptr); - -/* - * Sets or resets the 1-based choice variant presence index. - * In case a previous index is not zero, the currently selected structure - * member is freed and zeroed-out first. - * Returns 0 on success and -1 on error. - */ -int CHOICE_variant_set_presence(const asn_TYPE_descriptor_t *td, - void *structure_ptr, unsigned present); - -#ifdef __cplusplus -} -#endif - -#endif /* _CONSTR_CHOICE_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_CHOICE_oer.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_CHOICE_oer.c deleted file mode 100644 index a4c591c..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_CHOICE_oer.c +++ /dev/null @@ -1,380 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) \ - do { \ - asn_dec_rval_t rval; \ - rval.code = _code; \ - rval.consumed = consumed_myself; \ - return rval; \ - } while(0) - -#undef ADVANCE -#define ADVANCE(num_bytes) \ - do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#define NEXT_PHASE(ctx) \ - do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) -#undef SET_PHASE -#define SET_PHASE(ctx, value) \ - do { \ - ctx->phase = value; \ - ctx->step = 0; \ - } while(0) - -/* - * Tags are canonically sorted in the tag to member table. - */ -static int -_search4tag(const void *ap, const void *bp) { - const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap; - const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp; - - int a_class = BER_TAG_CLASS(a->el_tag); - int b_class = BER_TAG_CLASS(b->el_tag); - - if(a_class == b_class) { - ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag); - ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag); - - if(a_value == b_value) - return 0; - else if(a_value < b_value) - return -1; - else - return 1; - } else if(a_class < b_class) { - return -1; - } else { - return 1; - } -} - -/* - * X.696 (08/2015) #8.7 Encoding of tags - */ -static ssize_t -oer_fetch_tag(const void *ptr, size_t size, ber_tlv_tag_t *tag_r) { - ber_tlv_tag_t val; - ber_tlv_tag_t tclass; - size_t skipped; - - if(size == 0) - return 0; - - val = *(const uint8_t *)ptr; - tclass = (val >> 6); - if((val & 0x3F) != 0x3F) { - /* #8.7.1 */ - *tag_r = ((val & 0x3F) << 2) | tclass; - return 1; - } - - /* - * Each octet contains 7 bits of useful information. - * The MSB is 0 if it is the last octet of the tag. - */ - for(val = 0, ptr = ((const char *)ptr) + 1, skipped = 2; skipped <= size; - ptr = ((const char *)ptr) + 1, skipped++) { - unsigned int oct = *(const uint8_t *)ptr; - if(oct & 0x80) { - val = (val << 7) | (oct & 0x7F); - /* - * Make sure there are at least 9 bits spare - * at the MS side of a value. - */ - if(val >> ((8 * sizeof(val)) - 9)) { - /* - * We would not be able to accomodate - * any more tag bits. - */ - return -1; - } - } else { - val = (val << 7) | oct; - *tag_r = (val << 2) | tclass; - return skipped; - } - } - - return 0; /* Want more */ -} - -asn_dec_rval_t -CHOICE_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **struct_ptr, - const void *ptr, size_t size) { - /* - * Bring closer parts of structure description. - */ - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_TYPE_member_t *elements = td->elements; - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - - (void)constraints; - - ASN_DEBUG("Decoding %s as CHOICE", td->name); - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - switch(ctx->phase) { - case 0: { - /* - * Discover the tag. - */ - ber_tlv_tag_t tlv_tag; /* T from TLV */ - ssize_t tag_len; /* Length of TLV's T */ - - tag_len = oer_fetch_tag(ptr, size, &tlv_tag); - switch(tag_len) { - case 0: - ASN__DECODE_STARVED; - case -1: - ASN__DECODE_FAILED; - } - - do { - const asn_TYPE_tag2member_t *t2m; - asn_TYPE_tag2member_t key = {0, 0, 0, 0}; - key.el_tag = tlv_tag; - - t2m = (const asn_TYPE_tag2member_t *)bsearch( - &key, specs->tag2el, specs->tag2el_count, - sizeof(specs->tag2el[0]), _search4tag); - if(t2m) { - /* - * Found the element corresponding to the tag. - */ - NEXT_PHASE(ctx); - ctx->step = t2m->el_no; - break; - } else if(specs->ext_start == -1) { - ASN_DEBUG( - "Unexpected tag %s " - "in non-extensible CHOICE %s", - ber_tlv_tag_string(tlv_tag), td->name); - RETURN(RC_FAIL); - } else { - /* Skip open type extension */ - ASN_DEBUG( - "Not implemented skipping open type extension for tag %s", - ber_tlv_tag_string(tlv_tag)); - RETURN(RC_FAIL); - } - } while(0); - - - ADVANCE(tag_len); - } - /* Fall through */ - case 1: { - asn_TYPE_member_t *elm = &elements[ctx->step]; /* CHOICE's element */ - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - asn_dec_rval_t rval = {0,0}; - - /* - * Compute the position of the member inside a structure, - * and also a type of containment (it may be contained - * as pointer or using inline inclusion). - */ - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - /* - * A pointer to a pointer - * holding the start of the structure - */ - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - /* Set presence to be able to free it properly at any time */ - (void)CHOICE_variant_set_presence(td, st, ctx->step + 1); - - if(specs->ext_start >= 0 && specs->ext_start <= ctx->step) { - ssize_t got = - oer_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.oer_constraints, - memb_ptr2, ptr, size); - if(got < 0) ASN__DECODE_FAILED; - if(got == 0) ASN__DECODE_STARVED; - rval.code = RC_OK; - rval.consumed = got; - } else { - rval = elm->type->op->oer_decoder( - opt_codec_ctx, elm->type, - elm->encoding_constraints.oer_constraints, memb_ptr2, ptr, - size); - } - rval.consumed += consumed_myself; - switch(rval.code) { - case RC_OK: - NEXT_PHASE(ctx); - case RC_WMORE: - break; - case RC_FAIL: - SET_PHASE(ctx, 3); /* => 3 */ - } - return rval; - } - case 2: - /* Already decoded everything */ - RETURN(RC_OK); - case 3: - /* Failed to decode, after all */ - RETURN(RC_FAIL); - } - - RETURN(RC_FAIL); -} - -/* - * X.696 (08/2015) #8.7 Encoding of tags - */ -static ssize_t -oer_put_tag(ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, void *app_key) { - uint8_t tclass = BER_TAG_CLASS(tag); - ber_tlv_tag_t tval = BER_TAG_VALUE(tag); - - if(tval < 0x3F) { - uint8_t b = (uint8_t)((tclass << 6) | tval); - if(cb(&b, 1, app_key) < 0) { - return -1; - } - return 1; - } else { - uint8_t buf[1 + 2 * sizeof(tval)]; - uint8_t *b = &buf[sizeof(buf)-1]; /* Last addressable */ - size_t encoded; - for(; ; tval >>= 7) { - if(tval >> 7) { - *b-- = 0x80 | (tval & 0x7f); - } else { - *b-- = tval & 0x7f; - break; - } - } - *b = (uint8_t)((tclass << 6) | 0x3F); - encoded = sizeof(buf) - (b - buf); - if(cb(b, encoded, app_key) < 0) { - return -1; - } - return encoded; - } - -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -CHOICE_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_TYPE_member_t *elm; /* CHOICE element */ - unsigned present; - const void *memb_ptr; - ber_tlv_tag_t tag; - ssize_t tag_len; - asn_enc_rval_t er = {0, 0, 0}; - - (void)constraints; - - if(!sptr) ASN__ENCODE_FAILED; - - ASN_DEBUG("OER %s encoding as CHOICE", td->name); - - present = CHOICE_variant_get_presence(td, sptr); - if(present == 0 || present > td->elements_count) { - ASN_DEBUG("CHOICE %s member is not selected", td->name); - ASN__ENCODE_FAILED; - } - - elm = &td->elements[present-1]; - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(memb_ptr == 0) { - /* Mandatory element absent */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - tag = asn_TYPE_outmost_tag(elm->type, memb_ptr, elm->tag_mode, elm->tag); - if(tag == 0) { - ASN__ENCODE_FAILED; - } - - tag_len = oer_put_tag(tag, cb, app_key); - if(tag_len < 0) { - ASN__ENCODE_FAILED; - } - - if(specs->ext_start >= 0 && (unsigned)specs->ext_start <= (present-1)) { - ssize_t encoded = oer_open_type_put(elm->type, - elm->encoding_constraints.oer_constraints, - memb_ptr, cb, app_key); - if(encoded < 0) ASN__ENCODE_FAILED; - er.encoded = tag_len + encoded; - } else { - er = elm->type->op->oer_encoder( - elm->type, elm->encoding_constraints.oer_constraints, memb_ptr, cb, - app_key); - if(er.encoded >= 0) er.encoded += tag_len; - } - - return er; -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_SEQUENCE.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_SEQUENCE.c deleted file mode 100644 index 43dcac7..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_SEQUENCE.c +++ /dev/null @@ -1,2059 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include -#include - -/* - * Number of bytes left for this structure. - * (ctx->left) indicates the number of bytes _transferred_ for the structure. - * (size) contains the number of bytes in the buffer passed. - */ -#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) - -/* - * If the subprocessor function returns with an indication that it wants - * more data, it may well be a fatal decoding problem, because the - * size is constrained by the 's L, even if the buffer size allows - * reading more data. - * For example, consider the buffer containing the following TLVs: - * ... - * The TLV length clearly indicates that one byte is expected in V, but - * if the V processor returns with "want more data" even if the buffer - * contains way more data than the V processor have seen. - */ -#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) - -/* - * This macro "eats" the part of the buffer which is definitely "consumed", - * i.e. was correctly converted into local representation or rightfully skipped. - */ -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - if(ctx->left >= 0) \ - ctx->left -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#undef PHASE_OUT -#define NEXT_PHASE(ctx) do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) -#define PHASE_OUT(ctx) do { ctx->phase = 10; } while(0) - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself;\ - return rval; \ - } while(0) - -/* - * Check whether we are inside the extensions group. - */ -#define IN_EXTENSION_GROUP(specs, memb_idx) \ - ((specs)->first_extension >= 0 \ - && (unsigned)(specs)->first_extension <= (memb_idx)) - -/* - * Tags are canonically sorted in the tag2element map. - */ -static int -_t2e_cmp(const void *ap, const void *bp) { - const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap; - const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp; - - int a_class = BER_TAG_CLASS(a->el_tag); - int b_class = BER_TAG_CLASS(b->el_tag); - - if(a_class == b_class) { - ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag); - ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag); - - if(a_value == b_value) { - if(a->el_no > b->el_no) - return 1; - /* - * Important: we do not check - * for a->el_no <= b->el_no! - */ - return 0; - } else if(a_value < b_value) - return -1; - else - return 1; - } else if(a_class < b_class) { - return -1; - } else { - return 1; - } -} - - -/* - * The decoder of the SEQUENCE type. - */ -asn_dec_rval_t -SEQUENCE_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const void *ptr, size_t size, int tag_mode) { - /* - * Bring closer parts of structure description. - */ - const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; - const asn_TYPE_member_t *elements = td->elements; - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - ber_tlv_tag_t tlv_tag; /* T from TLV */ - asn_dec_rval_t rval; /* Return code from subparsers */ - - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - size_t edx; /* SEQUENCE element's index */ - - ASN_DEBUG("Decoding %s as SEQUENCE", td->name); - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Start to parse where left previously - */ - switch(ctx->phase) { - case 0: - /* - * PHASE 0. - * Check that the set of tags associated with given structure - * perfectly fits our expectations. - */ - - rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, - tag_mode, 1, &ctx->left, 0); - if(rval.code != RC_OK) { - ASN_DEBUG("%s tagging check failed: %d", - td->name, rval.code); - return rval; - } - - if(ctx->left >= 0) - ctx->left += rval.consumed; /* ?Substracted below! */ - ADVANCE(rval.consumed); - - NEXT_PHASE(ctx); - - ASN_DEBUG("Structure consumes %ld bytes, buffer %ld", - (long)ctx->left, (long)size); - - /* Fall through */ - case 1: - /* - * PHASE 1. - * From the place where we've left it previously, - * try to decode the next member from the list of - * this structure's elements. - * (ctx->step) stores the member being processed - * between invocations and the microphase {0,1} of parsing - * that member: - * step = ( * 2 + ). - */ - for(edx = ((size_t)ctx->step >> 1); edx < td->elements_count; - edx++, ctx->step = (ctx->step & ~1) + 2) { - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - ssize_t tag_len; /* Length of TLV's T */ - size_t opt_edx_end; /* Next non-optional element */ - size_t n; - int use_bsearch; - - if(ctx->step & 1) - goto microphase2; - - /* - * MICROPHASE 1: Synchronize decoding. - */ - ASN_DEBUG("In %s SEQUENCE left %d, edx=%" ASN_PRI_SIZE " flags=%d" - " opt=%d ec=%d", - td->name, (int)ctx->left, edx, - elements[edx].flags, elements[edx].optional, - td->elements_count); - - if(ctx->left == 0 /* No more stuff is expected */ - && ( - /* Explicit OPTIONAL specification reaches the end */ - (edx + elements[edx].optional == td->elements_count) || - /* All extensions are optional */ - IN_EXTENSION_GROUP(specs, edx))) { - ASN_DEBUG("End of SEQUENCE %s", td->name); - /* - * Found the legitimate end of the structure. - */ - PHASE_OUT(ctx); - RETURN(RC_OK); - } - - /* - * Fetch the T from TLV. - */ - tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); - ASN_DEBUG("Current tag in %s SEQUENCE for element %" ASN_PRI_SIZE " " - "(%s) is %s encoded in %d bytes, of frame %ld", - td->name, edx, elements[edx].name, - ber_tlv_tag_string(tlv_tag), (int)tag_len, (long)LEFT); - switch(tag_len) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - if(ctx->left < 0 && ((const uint8_t *)ptr)[0] == 0) { - if(LEFT < 2) { - if(SIZE_VIOLATION) { - RETURN(RC_FAIL); - } else { - RETURN(RC_WMORE); - } - } else if(((const uint8_t *)ptr)[1] == 0) { - ASN_DEBUG("edx = %" ASN_PRI_SIZE ", opt = %d, ec=%d", edx, - elements[edx].optional, td->elements_count); - if((edx + elements[edx].optional == td->elements_count) - || IN_EXTENSION_GROUP(specs, edx)) { - /* - * Yeah, baby! Found the terminator - * of the indefinite length structure. - */ - /* - * Proceed to the canonical - * finalization function. - * No advancing is necessary. - */ - goto phase3; - } - } - } - - /* - * Find the next available type with this tag. - */ - use_bsearch = 0; - opt_edx_end = edx + elements[edx].optional + 1; - if(opt_edx_end > td->elements_count) - opt_edx_end = td->elements_count; /* Cap */ - else if(opt_edx_end - edx > 8) { - /* Limit the scope of linear search... */ - opt_edx_end = edx + 8; - use_bsearch = 1; - /* ... and resort to bsearch() */ - } - for(n = edx; n < opt_edx_end; n++) { - if(BER_TAGS_EQUAL(tlv_tag, elements[n].tag)) { - /* - * Found element corresponding to the tag - * being looked at. - * Reposition over the right element. - */ - edx = n; - ctx->step = 1 + 2 * edx; /* Remember! */ - goto microphase2; - } else if(elements[n].flags & ATF_ANY_TYPE) { - /* - * This is the ANY type, which may bear - * any flag whatsoever. - */ - edx = n; - ctx->step = 1 + 2 * edx; /* Remember! */ - goto microphase2; - } else if(elements[n].tag == (ber_tlv_tag_t)-1) { - use_bsearch = 1; - break; - } - } - if(use_bsearch) { - /* - * Resort to a binary search over - * sorted array of tags. - */ - const asn_TYPE_tag2member_t *t2m; - asn_TYPE_tag2member_t key = {0, 0, 0, 0}; - key.el_tag = tlv_tag; - key.el_no = edx; - t2m = (const asn_TYPE_tag2member_t *)bsearch(&key, - specs->tag2el, specs->tag2el_count, - sizeof(specs->tag2el[0]), _t2e_cmp); - if(t2m) { - const asn_TYPE_tag2member_t *best = 0; - const asn_TYPE_tag2member_t *t2m_f, *t2m_l; - size_t edx_max = edx + elements[edx].optional; - /* - * Rewind to the first element with that tag, - * `cause bsearch() does not guarantee order. - */ - t2m_f = t2m + t2m->toff_first; - t2m_l = t2m + t2m->toff_last; - for(t2m = t2m_f; t2m <= t2m_l; t2m++) { - if(t2m->el_no > edx_max) break; - if(t2m->el_no < edx) continue; - best = t2m; - } - if(best) { - edx = best->el_no; - ctx->step = 1 + 2 * edx; - goto microphase2; - } - } - n = opt_edx_end; - } - if(n == opt_edx_end) { - /* - * If tag is unknown, it may be either - * an unknown (thus, incorrect) tag, - * or an extension (...), - * or an end of the indefinite-length structure. - */ - if(!IN_EXTENSION_GROUP(specs, - edx + elements[edx].optional)) { - ASN_DEBUG("Unexpected tag %s (at %" ASN_PRI_SIZE ")", - ber_tlv_tag_string(tlv_tag), edx); - ASN_DEBUG("Expected tag %s (%s)%s", - ber_tlv_tag_string(elements[edx].tag), - elements[edx].name, - elements[edx].optional - ?" or alternatives":""); - RETURN(RC_FAIL); - } else { - /* Skip this tag */ - ssize_t skip; - edx += elements[edx].optional; - - ASN_DEBUG("Skipping unexpected %s (at %" ASN_PRI_SIZE ")", - ber_tlv_tag_string(tlv_tag), edx); - skip = ber_skip_length(opt_codec_ctx, - BER_TLV_CONSTRUCTED(ptr), - (const char *)ptr + tag_len, - LEFT - tag_len); - ASN_DEBUG("Skip length %d in %s", - (int)skip, td->name); - switch(skip) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - ADVANCE(skip + tag_len); - ctx->step -= 2; - edx--; - continue; /* Try again with the next tag */ - } - } - - /* - * MICROPHASE 2: Invoke the member-specific decoder. - */ - ctx->step |= 1; /* Confirm entering next microphase */ - microphase2: - ASN_DEBUG("Inside SEQUENCE %s MF2", td->name); - - /* - * Compute the position of the member inside a structure, - * and also a type of containment (it may be contained - * as pointer or using inline inclusion). - */ - if(elements[edx].flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elements[edx].memb_offset); - } else { - /* - * A pointer to a pointer - * holding the start of the structure - */ - memb_ptr = (char *)st + elements[edx].memb_offset; - memb_ptr2 = &memb_ptr; - } - /* - * Invoke the member fetch routine according to member's type - */ - if(elements[edx].flags & ATF_OPEN_TYPE) { - rval = OPEN_TYPE_ber_get(opt_codec_ctx, td, st, &elements[edx], ptr, LEFT); - } else { - rval = elements[edx].type->op->ber_decoder(opt_codec_ctx, - elements[edx].type, - memb_ptr2, ptr, LEFT, - elements[edx].tag_mode); - } - ASN_DEBUG("In %s SEQUENCE decoded %" ASN_PRI_SIZE " %s of %d " - "in %d bytes rval.code %d, size=%d", - td->name, edx, elements[edx].type->name, - (int)LEFT, (int)rval.consumed, rval.code, (int)size); - switch(rval.code) { - case RC_OK: - break; - case RC_WMORE: /* More data expected */ - if(!SIZE_VIOLATION) { - ADVANCE(rval.consumed); - RETURN(RC_WMORE); - } - ASN_DEBUG("Size violation (c->l=%ld <= s=%ld)", - (long)ctx->left, (long)size); - /* Fall through */ - case RC_FAIL: /* Fatal error */ - RETURN(RC_FAIL); - } /* switch(rval) */ - - ADVANCE(rval.consumed); - } /* for(all structure members) */ - - phase3: - ctx->phase = 3; - /* Fall through */ - case 3: /* 00 and other tags expected */ - case 4: /* only 00's expected */ - - ASN_DEBUG("SEQUENCE %s Leftover: %ld, size = %ld", - td->name, (long)ctx->left, (long)size); - - /* - * Skip everything until the end of the SEQUENCE. - */ - while(ctx->left) { - ssize_t tl, ll; - - tl = ber_fetch_tag(ptr, LEFT, &tlv_tag); - switch(tl) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - /* - * If expected <0><0>... - */ - if(ctx->left < 0 - && ((const uint8_t *)ptr)[0] == 0) { - if(LEFT < 2) { - if(SIZE_VIOLATION) - RETURN(RC_FAIL); - else - RETURN(RC_WMORE); - } else if(((const uint8_t *)ptr)[1] == 0) { - /* - * Correctly finished with <0><0>. - */ - ADVANCE(2); - ctx->left++; - ctx->phase = 4; - continue; - } - } - - if(!IN_EXTENSION_GROUP(specs, td->elements_count) - || ctx->phase == 4) { - ASN_DEBUG("Unexpected continuation " - "of a non-extensible type " - "%s (SEQUENCE): %s", - td->name, - ber_tlv_tag_string(tlv_tag)); - RETURN(RC_FAIL); - } - - ll = ber_skip_length(opt_codec_ctx, - BER_TLV_CONSTRUCTED(ptr), - (const char *)ptr + tl, LEFT - tl); - switch(ll) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - ADVANCE(tl + ll); - } - - PHASE_OUT(ctx); - } - - RETURN(RC_OK); -} - - -/* - * The DER encoder of the SEQUENCE type. - */ -asn_enc_rval_t -SEQUENCE_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - size_t computed_size = 0; - asn_enc_rval_t erval = {0,0,0}; - ssize_t ret; - size_t edx; - - ASN_DEBUG("%s %s as SEQUENCE", - cb?"Encoding":"Estimating", td->name); - - /* - * Gather the length of the underlying members sequence. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - if(!*memb_ptr2) { - ASN_DEBUG("Element %s %" ASN_PRI_SIZE " not present", - elm->name, edx); - if(elm->optional) - continue; - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - /* Eliminate default values */ - if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) - continue; - - erval = elm->type->op->der_encoder(elm->type, *memb_ptr2, - elm->tag_mode, elm->tag, - 0, 0); - if(erval.encoded == -1) - return erval; - computed_size += erval.encoded; - ASN_DEBUG("Member %" ASN_PRI_SIZE " %s estimated %ld bytes", - edx, elm->name, (long)erval.encoded); - } - - /* - * Encode the TLV for the sequence itself. - */ - ret = der_write_tags(td, computed_size, tag_mode, 1, tag, cb, app_key); - ASN_DEBUG("Wrote tags: %ld (+%ld)", (long)ret, (long)computed_size); - if(ret == -1) - ASN__ENCODE_FAILED; - erval.encoded = computed_size + ret; - - if(!cb) ASN__ENCODED_OK(erval); - - /* - * Encode all members. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - asn_enc_rval_t tmperval = {0,0,0}; - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - if(!*memb_ptr2) continue; - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - /* Eliminate default values */ - if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) - continue; - - tmperval = elm->type->op->der_encoder(elm->type, *memb_ptr2, - elm->tag_mode, elm->tag, cb, app_key); - if(tmperval.encoded == -1) - return tmperval; - computed_size -= tmperval.encoded; - ASN_DEBUG("Member %" ASN_PRI_SIZE " %s of SEQUENCE %s encoded in %ld bytes", - edx, elm->name, td->name, (long)tmperval.encoded); - } - - if(computed_size != 0) - /* - * Encoded size is not equal to the computed size. - */ - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(erval); -} - - -#undef XER_ADVANCE -#define XER_ADVANCE(num_bytes) \ - do { \ - size_t num = (num_bytes); \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Decode the XER (XML) data. - */ -asn_dec_rval_t -SEQUENCE_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const char *opt_mname, const void *ptr, size_t size) { - /* - * Bring closer parts of structure description. - */ - const asn_SEQUENCE_specifics_t *specs - = (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_TYPE_member_t *elements = td->elements; - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - - /* - * ... and parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - asn_dec_rval_t rval; /* Return value from a decoder */ - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - size_t edx; /* Element index */ - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) RETURN(RC_FAIL); - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - - /* - * Phases of XER/XML processing: - * Phase 0: Check that the opening tag matches our expectations. - * Phase 1: Processing body and reacting on closing tag. - * Phase 2: Processing inner type. - * Phase 3: Skipping unknown extensions. - * Phase 4: PHASED OUT - */ - for(edx = ctx->step; ctx->phase <= 3;) { - pxer_chunk_type_e ch_type; /* XER chunk type */ - ssize_t ch_size; /* Chunk size */ - xer_check_tag_e tcv; /* Tag check value */ - asn_TYPE_member_t *elm; - - /* - * Go inside the inner member of a sequence. - */ - if(ctx->phase == 2) { - asn_dec_rval_t tmprval; - void *memb_ptr_dontuse; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - - elm = &td->elements[edx]; - - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr_dontuse = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr_dontuse; /* Only use of memb_ptr_dontuse */ - } - - if(elm->flags & ATF_OPEN_TYPE) { - tmprval = OPEN_TYPE_xer_get(opt_codec_ctx, td, st, elm, ptr, size); - } else { - /* Invoke the inner type decoder, m.b. multiple times */ - tmprval = elm->type->op->xer_decoder(opt_codec_ctx, - elm->type, memb_ptr2, elm->name, - ptr, size); - } - XER_ADVANCE(tmprval.consumed); - if(tmprval.code != RC_OK) - RETURN(tmprval.code); - ctx->phase = 1; /* Back to body processing */ - ctx->step = ++edx; - ASN_DEBUG("XER/SEQUENCE phase => %d, step => %d", - ctx->phase, ctx->step); - /* Fall through */ - } - - /* - * Get the next part of the XML stream. - */ - ch_size = xer_next_token(&ctx->context, ptr, size, - &ch_type); - if(ch_size == -1) { - RETURN(RC_FAIL); - } else { - switch(ch_type) { - case PXER_WMORE: - RETURN(RC_WMORE); - case PXER_COMMENT: /* Got XML comment */ - case PXER_TEXT: /* Ignore free-standing text */ - XER_ADVANCE(ch_size); /* Skip silently */ - continue; - case PXER_TAG: - break; /* Check the rest down there */ - } - } - - tcv = xer_check_tag(ptr, ch_size, xml_tag); - ASN_DEBUG("XER/SEQUENCE: tcv = %d, ph=%d [%s]", - tcv, ctx->phase, xml_tag); - - /* Skip the extensions section */ - if(ctx->phase == 3) { - switch(xer_skip_unknown(tcv, &ctx->left)) { - case -1: - ctx->phase = 4; - RETURN(RC_FAIL); - case 0: - XER_ADVANCE(ch_size); - continue; - case 1: - XER_ADVANCE(ch_size); - ctx->phase = 1; - continue; - case 2: - ctx->phase = 1; - break; - } - } - - switch(tcv) { - case XCT_CLOSING: - if(ctx->phase == 0) break; - ctx->phase = 0; - /* Fall through */ - case XCT_BOTH: - if(ctx->phase == 0) { - if(edx >= td->elements_count || - /* Explicit OPTIONAL specs reaches the end */ - (edx + elements[edx].optional == td->elements_count) || - /* All extensions are optional */ - IN_EXTENSION_GROUP(specs, edx)) { - XER_ADVANCE(ch_size); - ctx->phase = 4; /* Phase out */ - RETURN(RC_OK); - } else { - ASN_DEBUG("Premature end of XER SEQUENCE"); - RETURN(RC_FAIL); - } - } - /* Fall through */ - case XCT_OPENING: - if(ctx->phase == 0) { - XER_ADVANCE(ch_size); - ctx->phase = 1; /* Processing body phase */ - continue; - } - /* Fall through */ - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - - ASN_DEBUG("XER/SEQUENCE: tcv=%d, ph=%d, edx=%" ASN_PRI_SIZE "", - tcv, ctx->phase, edx); - if(ctx->phase != 1) { - break; /* Really unexpected */ - } - - if(edx < td->elements_count) { - /* - * Search which member corresponds to this tag. - */ - size_t n; - size_t edx_end = edx + elements[edx].optional + 1; - if(edx_end > td->elements_count) - edx_end = td->elements_count; - for(n = edx; n < edx_end; n++) { - elm = &td->elements[n]; - tcv = xer_check_tag(ptr, ch_size, elm->name); - switch(tcv) { - case XCT_BOTH: - case XCT_OPENING: - /* - * Process this member. - */ - ctx->step = edx = n; - ctx->phase = 2; - break; - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - continue; - default: - n = edx_end; - break; /* Phase out */ - } - break; - } - if(n != edx_end) - continue; - } else { - ASN_DEBUG("Out of defined members: %" ASN_PRI_SIZE "/%u", - edx, td->elements_count); - } - - /* It is expected extension */ - if(IN_EXTENSION_GROUP(specs, - edx + (edx < td->elements_count - ? elements[edx].optional : 0))) { - ASN_DEBUG("Got anticipated extension at %" ASN_PRI_SIZE "", - edx); - /* - * Check for (XCT_BOTH or XCT_UNKNOWN_BO) - * By using a mask. Only record a pure - * tags. - */ - if(tcv & XCT_CLOSING) { - /* Found without body */ - } else { - ctx->left = 1; - ctx->phase = 3; /* Skip ...'s */ - } - XER_ADVANCE(ch_size); - continue; - } - - /* Fall through */ - default: - break; - } - - ASN_DEBUG("Unexpected XML tag in SEQUENCE [%c%c%c%c%c%c]", - size>0?((const char *)ptr)[0]:'.', - size>1?((const char *)ptr)[1]:'.', - size>2?((const char *)ptr)[2]:'.', - size>3?((const char *)ptr)[3]:'.', - size>4?((const char *)ptr)[4]:'.', - size>5?((const char *)ptr)[5]:'.'); - break; - } - - ctx->phase = 4; /* "Phase out" on hard failure */ - RETURN(RC_FAIL); -} - -asn_enc_rval_t -SEQUENCE_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t er = {0,0,0}; - int xcan = (flags & XER_F_CANONICAL); - asn_TYPE_descriptor_t *tmp_def_val_td = 0; - void *tmp_def_val = 0; - size_t edx; - - if(!sptr) ASN__ENCODE_FAILED; - - er.encoded = 0; - - for(edx = 0; edx < td->elements_count; edx++) { - asn_enc_rval_t tmper = {0,0,0}; - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; - const char *mname = elm->name; - unsigned int mlen = strlen(mname); - - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) { - assert(tmp_def_val == 0); - if(elm->default_value_set) { - if(elm->default_value_set(&tmp_def_val)) { - ASN__ENCODE_FAILED; - } else { - memb_ptr = tmp_def_val; - tmp_def_val_td = elm->type; - } - } else if(elm->optional) { - continue; - } else { - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - - /* Print the member itself */ - tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, ilevel + 1, - flags, cb, app_key); - if(tmp_def_val) { - ASN_STRUCT_FREE(*tmp_def_val_td, tmp_def_val); - tmp_def_val = 0; - } - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - - ASN__CALLBACK3("", 1); - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); - - ASN__ENCODED_OK(er); -cb_failed: - if(tmp_def_val) ASN_STRUCT_FREE(*tmp_def_val_td, tmp_def_val); - ASN__ENCODE_FAILED; -} - -int -SEQUENCE_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - size_t edx; - int ret; - - if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; - - /* Dump preamble */ - if(cb(td->name, strlen(td->name), app_key) < 0 - || cb(" ::= {", 6, app_key) < 0) - return -1; - - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) { - if(elm->optional) continue; - /* Print line */ - /* Fall through */ - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - /* Indentation */ - _i_INDENT(1); - - /* Print the member's name and stuff */ - if(cb(elm->name, strlen(elm->name), app_key) < 0 - || cb(": ", 2, app_key) < 0) - return -1; - - /* Print the member itself */ - ret = elm->type->op->print_struct(elm->type, memb_ptr, ilevel + 1, - cb, app_key); - if(ret) return ret; - } - - ilevel--; - _i_INDENT(1); - - return (cb("}", 1, app_key) < 0) ? -1 : 0; -} - -void -SEQUENCE_free(const asn_TYPE_descriptor_t *td, void *sptr, - enum asn_struct_free_method method) { - size_t edx; - const asn_SEQUENCE_specifics_t *specs = - (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_struct_ctx_t *ctx; /* Decoder context */ - - if(!td || !sptr) - return; - - ASN_DEBUG("Freeing %s as SEQUENCE", td->name); - - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; - if(elm->flags & ATF_POINTER) { - memb_ptr = *(void **)((char *)sptr + elm->memb_offset); - if(memb_ptr) - ASN_STRUCT_FREE(*elm->type, memb_ptr); - } else { - memb_ptr = (void *)((char *)sptr + elm->memb_offset); - ASN_STRUCT_FREE_CONTENTS_ONLY(*elm->type, memb_ptr); - } - } - - /* Clean parsing context */ - ctx = (asn_struct_ctx_t *)((char *)sptr + specs->ctx_offset); - FREEMEM(ctx->ptr); - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(sptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset( - sptr, 0, - ((const asn_SEQUENCE_specifics_t *)(td->specifics))->struct_size); - break; - } -} - -int -SEQUENCE_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t edx; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* - * Iterate over structure members and check their validity. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) { - if(elm->optional) - continue; - ASN__CTFAIL(app_key, td, sptr, - "%s: mandatory element %s absent (%s:%d)", - td->name, elm->name, __FILE__, __LINE__); - return -1; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - if(elm->encoding_constraints.general_constraints) { - int ret = elm->encoding_constraints.general_constraints(elm->type, memb_ptr, - ctfailcb, app_key); - if(ret) return ret; - } else { - return elm->type->encoding_constraints.general_constraints(elm->type, - memb_ptr, ctfailcb, app_key); - } - } - - return 0; -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -SEQUENCE_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; - void *st = *sptr; /* Target structure. */ - int extpresent; /* Extension additions are present */ - uint8_t *opres; /* Presence of optional root members */ - asn_per_data_t opmd; - asn_dec_rval_t rv; - size_t edx; - - (void)constraints; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - - ASN_DEBUG("Decoding %s as SEQUENCE (UPER)", td->name); - - /* Handle extensions */ - if(specs->first_extension < 0) { - extpresent = 0; - } else { - extpresent = per_get_few_bits(pd, 1); - if(extpresent < 0) ASN__DECODE_STARVED; - } - - /* Prepare a place and read-in the presence bitmap */ - memset(&opmd, 0, sizeof(opmd)); - if(specs->roms_count) { - opres = (uint8_t *)MALLOC(((specs->roms_count + 7) >> 3) + 1); - if(!opres) ASN__DECODE_FAILED; - /* Get the presence map */ - if(per_get_many_bits(pd, opres, 0, specs->roms_count)) { - FREEMEM(opres); - ASN__DECODE_STARVED; - } - opmd.buffer = opres; - opmd.nbits = specs->roms_count; - ASN_DEBUG("Read in presence bitmap for %s of %d bits (%x..)", - td->name, specs->roms_count, *opres); - } else { - opres = 0; - } - - /* - * Get the sequence ROOT elements. - */ - for(edx = 0; - edx < (specs->first_extension < 0 ? td->elements_count - : (size_t)specs->first_extension); - edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - - assert(!IN_EXTENSION_GROUP(specs, edx)); - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - /* Deal with optionality */ - if(elm->optional) { - int present = per_get_few_bits(&opmd, 1); - ASN_DEBUG("Member %s->%s is optional, p=%d (%d->%d)", - td->name, elm->name, present, - (int)opmd.nboff, (int)opmd.nbits); - if(present == 0) { - /* This element is not present */ - if(elm->default_value_set) { - /* Fill-in DEFAULT */ - if(elm->default_value_set(memb_ptr2)) { - FREEMEM(opres); - ASN__DECODE_FAILED; - } - ASN_DEBUG("Filled-in default"); - } - /* The member is just not present */ - continue; - } - /* Fall through */ - } - - /* Fetch the member from the stream */ - ASN_DEBUG("Decoding member \"%s\" in %s", elm->name, td->name); - - if(elm->flags & ATF_OPEN_TYPE) { - rv = OPEN_TYPE_uper_get(opt_codec_ctx, td, st, elm, pd); - } else { - rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } - if(rv.code != RC_OK) { - ASN_DEBUG("Failed decode %s in %s", - elm->name, td->name); - FREEMEM(opres); - return rv; - } - } - - /* Optionality map is not needed anymore */ - FREEMEM(opres); - - /* - * Deal with extensions. - */ - if(extpresent) { - ssize_t bmlength; - uint8_t *epres; /* Presence of extension members */ - asn_per_data_t epmd; - - bmlength = uper_get_nslength(pd); - if(bmlength < 0) ASN__DECODE_STARVED; - - ASN_DEBUG("Extensions %" ASN_PRI_SSIZE " present in %s", bmlength, td->name); - - epres = (uint8_t *)MALLOC((bmlength + 15) >> 3); - if(!epres) ASN__DECODE_STARVED; - - /* Get the extensions map */ - if(per_get_many_bits(pd, epres, 0, bmlength)) { - FREEMEM(epres); - ASN__DECODE_STARVED; - } - - memset(&epmd, 0, sizeof(epmd)); - epmd.buffer = epres; - epmd.nbits = bmlength; - ASN_DEBUG("Read in extensions bitmap for %s of %ld bits (%x..)", - td->name, (long)bmlength, *epres); - - /* Go over extensions and read them in */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - int present; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (void *)((char *)st + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - present = per_get_few_bits(&epmd, 1); - if(present <= 0) { - if(present < 0) break; /* No more extensions */ - continue; - } - - ASN_DEBUG("Decoding member %s in %s %p", elm->name, td->name, - *memb_ptr2); - rv = uper_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, - memb_ptr2, pd); - if(rv.code != RC_OK) { - FREEMEM(epres); - return rv; - } - } - - /* Skip over overflow extensions which aren't present - * in this system's version of the protocol */ - for(;;) { - ASN_DEBUG("Getting overflow extensions"); - switch(per_get_few_bits(&epmd, 1)) { - case -1: break; - case 0: continue; - default: - if(uper_open_type_skip(opt_codec_ctx, pd)) { - FREEMEM(epres); - ASN__DECODE_STARVED; - } - ASN_DEBUG("Skipped overflow extension"); - continue; - } - break; - } - - FREEMEM(epres); - } - - if(specs->first_extension >= 0) { - unsigned i; - /* Fill DEFAULT members in extensions */ - for(i = specs->roms_count; i < specs->roms_count + specs->aoms_count; - i++) { - asn_TYPE_member_t *elm; - void **memb_ptr2; /* Pointer to member pointer */ - - edx = specs->oms[i]; - elm = &td->elements[edx]; - - if(!elm->default_value_set) continue; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - if(*memb_ptr2) continue; - } else { - continue; /* Extensions are all optionals */ - } - - /* Set default value */ - if(elm->default_value_set(memb_ptr2)) { - ASN__DECODE_FAILED; - } - } - } - - rv.consumed = 0; - rv.code = RC_OK; - return rv; -} - -static int -SEQUENCE__handle_extensions(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_per_outp_t *po1, asn_per_outp_t *po2) { - const asn_SEQUENCE_specifics_t *specs = - (const asn_SEQUENCE_specifics_t *)td->specifics; - int exts_present = 0; - int exts_count = 0; - size_t edx; - - if(specs->first_extension < 0) { - return 0; - } - - /* Find out which extensions are present */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - int present; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - present = (*memb_ptr2 != 0); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - present = 1; - } - - ASN_DEBUG("checking %s:%s (@%" ASN_PRI_SIZE ") present => %d", elm->name, - elm->type->name, edx, present); - exts_count++; - exts_present += present; - - /* Encode as presence marker */ - if(po1 && per_put_few_bits(po1, present, 1)) { - return -1; - } - /* Encode as open type field */ - if(po2 && present - && uper_open_type_put(elm->type, - elm->encoding_constraints.per_constraints, - *memb_ptr2, po2)) - return -1; - } - - return exts_present ? exts_count : 0; -} - -asn_enc_rval_t -SEQUENCE_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const asn_SEQUENCE_specifics_t *specs - = (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - int n_extensions; - size_t edx; - size_t i; - - (void)constraints; - - if(!sptr) - ASN__ENCODE_FAILED; - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE (UPER)", td->name); - - /* - * X.691#18.1 Whether structure is extensible - * and whether to encode extensions - */ - if(specs->first_extension < 0) { - n_extensions = 0; /* There are no extensions to encode */ - } else { - n_extensions = SEQUENCE__handle_extensions(td, sptr, 0, 0); - if(n_extensions < 0) ASN__ENCODE_FAILED; - if(per_put_few_bits(po, n_extensions ? 1 : 0, 1)) { - ASN__ENCODE_FAILED; - } - } - - /* Encode a presence bitmap */ - for(i = 0; i < specs->roms_count; i++) { - asn_TYPE_member_t *elm; - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - int present; - - edx = specs->oms[i]; - elm = &td->elements[edx]; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - present = (*memb_ptr2 != 0); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - present = 1; - } - - /* Eliminate default values */ - if(present && elm->default_value_cmp - && elm->default_value_cmp(*memb_ptr2) == 0) - present = 0; - - ASN_DEBUG("Element %s %s %s->%s is %s", - elm->flags & ATF_POINTER ? "ptr" : "inline", - elm->default_value_cmp ? "def" : "wtv", - td->name, elm->name, present ? "present" : "absent"); - if(per_put_few_bits(po, present, 1)) - ASN__ENCODE_FAILED; - } - - /* - * Encode the sequence ROOT elements. - */ - ASN_DEBUG("first_extension = %d, elements = %d", specs->first_extension, - td->elements_count); - for(edx = 0; - edx < ((specs->first_extension < 0) ? td->elements_count - : (size_t)specs->first_extension); - edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - - ASN_DEBUG("About to encode %s", elm->type->name); - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - if(!*memb_ptr2) { - ASN_DEBUG("Element %s %" ASN_PRI_SIZE " not present", - elm->name, edx); - if(elm->optional) - continue; - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - /* Eliminate default values */ - if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) - continue; - - ASN_DEBUG("Encoding %s->%s:%s", td->name, elm->name, elm->type->name); - er = elm->type->op->uper_encoder( - elm->type, elm->encoding_constraints.per_constraints, *memb_ptr2, - po); - if(er.encoded == -1) return er; - } - - /* No extensions to encode */ - if(!n_extensions) ASN__ENCODED_OK(er); - - ASN_DEBUG("Length of extensions %d bit-map", n_extensions); - /* #18.8. Write down the presence bit-map length. */ - if(uper_put_nslength(po, n_extensions)) - ASN__ENCODE_FAILED; - - ASN_DEBUG("Bit-map of %d elements", n_extensions); - /* #18.7. Encoding the extensions presence bit-map. */ - /* TODO: act upon NOTE in #18.7 for canonical PER */ - if(SEQUENCE__handle_extensions(td, sptr, po, 0) != n_extensions) - ASN__ENCODE_FAILED; - - ASN_DEBUG("Writing %d extensions", n_extensions); - /* #18.9. Encode extensions as open type fields. */ - if(SEQUENCE__handle_extensions(td, sptr, 0, po) != n_extensions) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -SEQUENCE_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; - void *st = *sptr; /* Target structure. */ - int extpresent; /* Extension additions are present */ - uint8_t *opres; /* Presence of optional root members */ - asn_per_data_t opmd; - asn_dec_rval_t rv; - size_t edx; - - (void)constraints; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - - ASN_DEBUG("Decoding %s as SEQUENCE (APER)", td->name); - - /* Handle extensions */ - if(specs->first_extension < 0) { - extpresent = 0; - } else { - extpresent = per_get_few_bits(pd, 1); - if(extpresent < 0) ASN__DECODE_STARVED; - } - - /* Prepare a place and read-in the presence bitmap */ - memset(&opmd, 0, sizeof(opmd)); - if(specs->roms_count) { - opres = (uint8_t *)MALLOC(((specs->roms_count + 7) >> 3) + 1); - if(!opres) ASN__DECODE_FAILED; - /* Get the presence map */ - if(per_get_many_bits(pd, opres, 0, specs->roms_count)) { - FREEMEM(opres); - ASN__DECODE_STARVED; - } - opmd.buffer = opres; - opmd.nbits = specs->roms_count; - ASN_DEBUG("Read in presence bitmap for %s of %d bits (%x..)", - td->name, specs->roms_count, *opres); - } else { - opres = 0; - } - - /* - * Get the sequence ROOT elements. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ -#if 0 - int padding; -#endif - - if(IN_EXTENSION_GROUP(specs, edx)) - continue; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } -#if 0 - /* Get Padding */ - padding = (8 - (pd->moved % 8)) % 8; - if(padding > 0) - ASN_DEBUG("For element %s,offset= %ld Padding bits = %d", td->name, pd->moved, padding); -#if 0 /* old way of removing padding */ - per_get_few_bits(pd, padding); -#else /* Experimental fix proposed by @mhanna123 */ - if(edx != (td->elements_count-1)) - per_get_few_bits(pd, padding); - else { - if(specs->roms_count && (padding > 0)) - ASN_DEBUG(">>>>> not skipping padding of %d bits for element:%ld out of %d", padding, edx, td->elements_count); - else - per_get_few_bits(pd, padding); - } -#endif /* dealing with padding */ -#endif - /* Deal with optionality */ - if(elm->optional) { - int present = per_get_few_bits(&opmd, 1); - ASN_DEBUG("Member %s->%s is optional, p=%d (%d->%d)", - td->name, elm->name, present, - (int)opmd.nboff, (int)opmd.nbits); - if(present == 0) { - /* This element is not present */ - if(elm->default_value_set) { - /* Fill-in DEFAULT */ - if(elm->default_value_set(memb_ptr2)) { - FREEMEM(opres); - ASN__DECODE_FAILED; - } - ASN_DEBUG("Filled-in default"); - } - /* The member is just not present */ - continue; - } - /* Fall through */ - } - - /* Fetch the member from the stream */ - ASN_DEBUG("Decoding member \"%s\" in %s", elm->name, td->name); - - if(elm->flags & ATF_OPEN_TYPE) { - rv = OPEN_TYPE_aper_get(opt_codec_ctx, td, st, elm, pd); - } else { - rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } - if(rv.code != RC_OK) { - ASN_DEBUG("Failed decode %s in %s", - elm->name, td->name); - FREEMEM(opres); - return rv; - } - } - - /* Optionality map is not needed anymore */ - FREEMEM(opres); - - /* - * Deal with extensions. - */ - if(extpresent) { - ssize_t bmlength; - uint8_t *epres; /* Presence of extension members */ - asn_per_data_t epmd; - - bmlength = aper_get_nslength(pd); - if(bmlength < 0) ASN__DECODE_STARVED; - - ASN_DEBUG("Extensions %" ASN_PRI_SSIZE " present in %s", bmlength, td->name); - - epres = (uint8_t *)MALLOC((bmlength + 15) >> 3); - if(!epres) ASN__DECODE_STARVED; - - /* Get the extensions map */ - if(per_get_many_bits(pd, epres, 0, bmlength)) - ASN__DECODE_STARVED; - - memset(&epmd, 0, sizeof(epmd)); - epmd.buffer = epres; - epmd.nbits = bmlength; - ASN_DEBUG("Read in extensions bitmap for %s of %ld bits (%x..)", - td->name, bmlength, *epres); - - /* Go over extensions and read them in */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - int present; - - if(!IN_EXTENSION_GROUP(specs, edx)) { - ASN_DEBUG("%ld is not extension", edx); - continue; - } - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (void *)((char *)st + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - present = per_get_few_bits(&epmd, 1); - if(present <= 0) { - if(present < 0) break; /* No more extensions */ - continue; - } - - ASN_DEBUG("Decoding member %s in %s %p", elm->name, td->name, *memb_ptr2); - rv = aper_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - if(rv.code != RC_OK) { - FREEMEM(epres); - return rv; - } - } - - /* Skip over overflow extensions which aren't present - * in this system's version of the protocol */ - for(;;) { - ASN_DEBUG("Getting overflow extensions"); - switch(per_get_few_bits(&epmd, 1)) { - case -1: - break; - case 0: - continue; - default: - if(aper_open_type_skip(opt_codec_ctx, pd)) { - FREEMEM(epres); - ASN__DECODE_STARVED; - } - } - break; - } - - FREEMEM(epres); - } - - /* Fill DEFAULT members in extensions */ - for(edx = specs->roms_count; edx < specs->roms_count - + specs->aoms_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void **memb_ptr2; /* Pointer to member pointer */ - - if(!elm->default_value_set) continue; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st - + elm->memb_offset); - if(*memb_ptr2) continue; - } else { - continue; /* Extensions are all optionals */ - } - - /* Set default value */ - if(elm->default_value_set(memb_ptr2)) { - ASN__DECODE_FAILED; - } - } - - rv.consumed = 0; - rv.code = RC_OK; - return rv; -} - -static int -SEQUENCE_handle_extensions_aper(const asn_TYPE_descriptor_t *td, - const void *sptr, - asn_per_outp_t *po1, asn_per_outp_t *po2) { - const asn_SEQUENCE_specifics_t *specs - = (const asn_SEQUENCE_specifics_t *)td->specifics; - int exts_present = 0; - int exts_count = 0; - size_t edx; - - if(specs->first_extension < 0) { - return 0; - } - - /* Find out which extensions are present */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; /* Pointer to the member */ - const void * const *memb_ptr2; /* Pointer to that pointer */ - int present; - - if(!IN_EXTENSION_GROUP(specs, edx)) { - ASN_DEBUG("%s (@%ld) is not extension", elm->type->name, edx); - continue; - } - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); - present = (*memb_ptr2 != 0); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - present = 1; - } - - ASN_DEBUG("checking %s (@%ld) present => %d", - elm->type->name, edx, present); - exts_count++; - exts_present += present; - - /* Encode as presence marker */ - if(po1 && per_put_few_bits(po1, present, 1)) - return -1; - /* Encode as open type field */ - if(po2 && present && aper_open_type_put(elm->type, - elm->encoding_constraints.per_constraints, *memb_ptr2, po2)) - return -1; - - } - - return exts_present ? exts_count : 0; -} - -asn_enc_rval_t -SEQUENCE_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_SEQUENCE_specifics_t *specs - = (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - int n_extensions; - size_t edx; - size_t i; - - (void)constraints; - - if(!sptr) - ASN__ENCODE_FAILED; - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE (APER)", td->name); - - /* - * X.691#18.1 Whether structure is extensible - * and whether to encode extensions - */ - if(specs->first_extension < 0) { - n_extensions = 0; /* There are no extensions to encode */ - } else { - n_extensions = SEQUENCE_handle_extensions_aper(td, sptr, 0, 0); - if(n_extensions < 0) ASN__ENCODE_FAILED; - if(per_put_few_bits(po, n_extensions ? 1 : 0, 1)) { - ASN__ENCODE_FAILED; - } - } - - /* Encode a presence bitmap */ - for(i = 0; i < specs->roms_count; i++) { - asn_TYPE_member_t *elm; - const void *memb_ptr; /* Pointer to the member */ - const void * const *memb_ptr2; /* Pointer to that pointer */ - int present; - - edx = specs->oms[i]; - elm = &td->elements[edx]; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); - present = (*memb_ptr2 != 0); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - present = 1; - } - - /* Eliminate default values */ - if(present && elm->default_value_cmp - && elm->default_value_cmp(memb_ptr2) == 1) - present = 0; - - ASN_DEBUG("Element %s %s %s->%s is %s", - elm->flags & ATF_POINTER ? "ptr" : "inline", - elm->default_value_cmp ? "def" : "wtv", - td->name, elm->name, present ? "present" : "absent"); - if(per_put_few_bits(po, present, 1)) - ASN__ENCODE_FAILED; - } - - /* - * Encode the sequence ROOT elements. - */ - ASN_DEBUG("first_extension = %d, elements = %d", specs->first_extension, - td->elements_count); - for(edx = 0; - edx < ((specs->first_extension < 0) ? td->elements_count - : (size_t)specs->first_extension); - edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; /* Pointer to the member */ - const void * const *memb_ptr2; /* Pointer to that pointer */ - - if(IN_EXTENSION_GROUP(specs, edx)) - continue; - - ASN_DEBUG("About to encode %s", elm->type->name); - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); - if(!*memb_ptr2) { - ASN_DEBUG("Element %s %ld not present", - elm->name, edx); - if(elm->optional) - continue; - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - /* Eliminate default values */ - if(elm->default_value_cmp && elm->default_value_cmp(memb_ptr2) == 1) - continue; - - ASN_DEBUG("Encoding %s->%s", td->name, elm->name); - er = elm->type->op->aper_encoder(elm->type, elm->encoding_constraints.per_constraints, - *memb_ptr2, po); - if(er.encoded == -1) - return er; - } - - /* No extensions to encode */ - if(!n_extensions) ASN__ENCODED_OK(er); - - ASN_DEBUG("Length of %d bit-map", n_extensions); - /* #18.8. Write down the presence bit-map length. */ - if(aper_put_nslength(po, n_extensions)) - ASN__ENCODE_FAILED; - - ASN_DEBUG("Bit-map of %d elements", n_extensions); - /* #18.7. Encoding the extensions presence bit-map. */ - /* TODO: act upon NOTE in #18.7 for canonical PER */ - if(SEQUENCE_handle_extensions_aper(td, sptr, po, 0) != n_extensions) - ASN__ENCODE_FAILED; - - ASN_DEBUG("Writing %d extensions", n_extensions); - /* #18.9. Encode extensions as open type fields. */ - if(SEQUENCE_handle_extensions_aper(td, sptr, 0, po) != n_extensions) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -int -SEQUENCE_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - size_t edx; - - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *amemb; - const void *bmemb; - int ret; - - if(elm->flags & ATF_POINTER) { - amemb = - *(const void *const *)((const char *)aptr + elm->memb_offset); - bmemb = - *(const void *const *)((const char *)bptr + elm->memb_offset); - if(!amemb) { - if(!bmemb) continue; - if(elm->default_value_cmp - && elm->default_value_cmp(bmemb) == 0) { - /* A is absent, but B is present and equal to DEFAULT */ - continue; - } - return -1; - } else if(!bmemb) { - if(elm->default_value_cmp - && elm->default_value_cmp(amemb) == 0) { - /* B is absent, but A is present and equal to DEFAULT */ - continue; - } - return 1; - } - } else { - amemb = (const void *)((const char *)aptr + elm->memb_offset); - bmemb = (const void *)((const char *)bptr + elm->memb_offset); - } - - ret = elm->type->op->compare_struct(elm->type, amemb, bmemb); - if(ret != 0) return ret; - } - - return 0; -} - -asn_TYPE_operation_t asn_OP_SEQUENCE = { - SEQUENCE_free, - SEQUENCE_print, - SEQUENCE_compare, - SEQUENCE_decode_ber, - SEQUENCE_encode_der, - SEQUENCE_decode_xer, - SEQUENCE_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - SEQUENCE_decode_oer, - SEQUENCE_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - SEQUENCE_decode_uper, - SEQUENCE_encode_uper, - SEQUENCE_decode_aper, - SEQUENCE_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - SEQUENCE_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; - - -asn_random_fill_result_t -SEQUENCE_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constr, - size_t max_length) { - const asn_SEQUENCE_specifics_t *specs = - (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_random_fill_result_t result_ok = {ARFILL_OK, 0}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - void *st = *sptr; - size_t edx; - - if(max_length == 0) return result_skipped; - - (void)constr; - - if(st == NULL) { - st = CALLOC(1, specs->struct_size); - if(st == NULL) { - return result_failed; - } - } - - for(edx = 0; edx < td->elements_count; edx++) { - const asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - asn_random_fill_result_t tmpres; - - if(elm->optional && asn_random_between(0, 4) == 2) { - /* Sometimes decide not to fill the optional value */ - continue; - } - - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - tmpres = elm->type->op->random_fill( - elm->type, memb_ptr2, &elm->encoding_constraints, - max_length > result_ok.length ? max_length - result_ok.length : 0); - switch(tmpres.code) { - case ARFILL_OK: - result_ok.length += tmpres.length; - continue; - case ARFILL_SKIPPED: - assert(!(elm->flags & ATF_POINTER) || *memb_ptr2 == NULL); - continue; - case ARFILL_FAILED: - if(st == *sptr) { - ASN_STRUCT_RESET(*td, st); - } else { - ASN_STRUCT_FREE(*td, st); - } - return tmpres; - } - } - - *sptr = st; - - return result_ok; -} - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_SEQUENCE.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_SEQUENCE.h deleted file mode 100644 index a22ed3a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_SEQUENCE.h +++ /dev/null @@ -1,68 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _CONSTR_SEQUENCE_H_ -#define _CONSTR_SEQUENCE_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct asn_SEQUENCE_specifics_s { - /* - * Target structure description. - */ - unsigned struct_size; /* Size of the target structure. */ - unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ - - /* - * Tags to members mapping table (sorted). - */ - const asn_TYPE_tag2member_t *tag2el; - unsigned tag2el_count; - - /* - * Optional members of the extensions root (roms) or additions (aoms). - * Meaningful for PER. - */ - const int *oms; /* Optional MemberS */ - unsigned roms_count; /* Root optional members count */ - unsigned aoms_count; /* Additions optional members count */ - - /* - * Description of an extensions group. - * Root components are clustered at the beginning of the structure, - * whereas extensions are clustered at the end. -1 means not extensible. - */ - signed first_extension; /* First extension addition */ -} asn_SEQUENCE_specifics_t; - - -/* - * A set specialized functions dealing with the SEQUENCE type. - */ -asn_struct_free_f SEQUENCE_free; -asn_struct_print_f SEQUENCE_print; -asn_struct_compare_f SEQUENCE_compare; -asn_constr_check_f SEQUENCE_constraint; -ber_type_decoder_f SEQUENCE_decode_ber; -der_type_encoder_f SEQUENCE_encode_der; -xer_type_decoder_f SEQUENCE_decode_xer; -xer_type_encoder_f SEQUENCE_encode_xer; -oer_type_decoder_f SEQUENCE_decode_oer; -oer_type_encoder_f SEQUENCE_encode_oer; -per_type_decoder_f SEQUENCE_decode_uper; -per_type_encoder_f SEQUENCE_encode_uper; -per_type_decoder_f SEQUENCE_decode_aper; -per_type_encoder_f SEQUENCE_encode_aper; -asn_random_fill_f SEQUENCE_random_fill; -extern asn_TYPE_operation_t asn_OP_SEQUENCE; - -#ifdef __cplusplus -} -#endif - -#endif /* _CONSTR_SEQUENCE_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_SEQUENCE_OF.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_SEQUENCE_OF.c deleted file mode 100644 index 10f18cf..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_SEQUENCE_OF.c +++ /dev/null @@ -1,358 +0,0 @@ -/*- - * Copyright (c) 2003, 2004, 2006 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * The DER encoder of the SEQUENCE OF type. - */ -asn_enc_rval_t -SEQUENCE_OF_encode_der(const asn_TYPE_descriptor_t *td, const void *ptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_sequence_ *list = _A_CSEQUENCE_FROM_VOID(ptr); - size_t computed_size = 0; - ssize_t encoding_size = 0; - asn_enc_rval_t erval = {0,0,0}; - int edx; - - ASN_DEBUG("Estimating size of SEQUENCE OF %s", td->name); - - /* - * Gather the length of the underlying members sequence. - */ - for(edx = 0; edx < list->count; edx++) { - void *memb_ptr = list->array[edx]; - if(!memb_ptr) continue; - erval = elm->type->op->der_encoder(elm->type, memb_ptr, - 0, elm->tag, - 0, 0); - if(erval.encoded == -1) - return erval; - computed_size += erval.encoded; - } - - /* - * Encode the TLV for the sequence itself. - */ - encoding_size = der_write_tags(td, computed_size, tag_mode, 1, tag, - cb, app_key); - if(encoding_size == -1) { - erval.encoded = -1; - erval.failed_type = td; - erval.structure_ptr = ptr; - return erval; - } - - computed_size += encoding_size; - if(!cb) { - erval.encoded = computed_size; - ASN__ENCODED_OK(erval); - } - - ASN_DEBUG("Encoding members of SEQUENCE OF %s", td->name); - - /* - * Encode all members. - */ - for(edx = 0; edx < list->count; edx++) { - void *memb_ptr = list->array[edx]; - if(!memb_ptr) continue; - erval = elm->type->op->der_encoder(elm->type, memb_ptr, - 0, elm->tag, - cb, app_key); - if(erval.encoded == -1) - return erval; - encoding_size += erval.encoded; - } - - if(computed_size != (size_t)encoding_size) { - /* - * Encoded size is not equal to the computed size. - */ - erval.encoded = -1; - erval.failed_type = td; - erval.structure_ptr = ptr; - } else { - erval.encoded = computed_size; - erval.structure_ptr = 0; - erval.failed_type = 0; - } - - return erval; -} - -asn_enc_rval_t -SEQUENCE_OF_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t er = {0,0,0}; - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_sequence_ *list = _A_CSEQUENCE_FROM_VOID(sptr); - const char *mname = specs->as_XMLValueList - ? 0 - : ((*elm->name) ? elm->name : elm->type->xml_tag); - size_t mlen = mname ? strlen(mname) : 0; - int xcan = (flags & XER_F_CANONICAL); - int i; - - if(!sptr) ASN__ENCODE_FAILED; - - er.encoded = 0; - - for(i = 0; i < list->count; i++) { - asn_enc_rval_t tmper = {0,0,0}; - void *memb_ptr = list->array[i]; - if(!memb_ptr) continue; - - if(mname) { - if(!xcan) ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - } - - tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, ilevel + 1, - flags, cb, app_key); - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - if(tmper.encoded == 0 && specs->as_XMLValueList) { - const char *name = elm->type->xml_tag; - size_t len = strlen(name); - if(!xcan) ASN__TEXT_INDENT(1, ilevel + 1); - ASN__CALLBACK3("<", 1, name, len, "/>", 2); - } - - if(mname) { - ASN__CALLBACK3("", 1); - } - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_enc_rval_t -SEQUENCE_OF_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_anonymous_sequence_ *list; - const asn_per_constraint_t *ct; - asn_enc_rval_t er = {0,0,0}; - const asn_TYPE_member_t *elm = td->elements; - size_t encoded_edx; - - if(!sptr) ASN__ENCODE_FAILED; - list = _A_CSEQUENCE_FROM_VOID(sptr); - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE OF (%d)", td->name, list->count); - - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - /* If extensible constraint, check if size is in root */ - if(ct) { - int not_in_root = - (list->count < ct->lower_bound || list->count > ct->upper_bound); - ASN_DEBUG("lb %ld ub %ld %s", ct->lower_bound, ct->upper_bound, - ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); - if(ct->flags & APC_EXTENSIBLE) { - /* Declare whether size is in extension root */ - if(per_put_few_bits(po, not_in_root, 1)) ASN__ENCODE_FAILED; - if(not_in_root) ct = 0; - } else if(not_in_root && ct->effective_bits >= 0) { - ASN__ENCODE_FAILED; - } - - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ - if(per_put_few_bits(po, list->count - ct->lower_bound, - ct->effective_bits)) - ASN__ENCODE_FAILED; - } else if(list->count == 0) { - /* When the list is empty add only the length determinant - * X.691, #20.6 and #11.9.4.1 - */ - if (uper_put_length(po, 0, 0)) { - ASN__ENCODE_FAILED; - } - ASN__ENCODED_OK(er); - } - - for(encoded_edx = 0; (ssize_t)encoded_edx < list->count;) { - ssize_t may_encode; - size_t edx; - int need_eom = 0; - - if(ct && ct->effective_bits >= 0) { - may_encode = list->count; - } else { - may_encode = - uper_put_length(po, list->count - encoded_edx, &need_eom); - if(may_encode < 0) ASN__ENCODE_FAILED; - } - - for(edx = encoded_edx; edx < encoded_edx + may_encode; edx++) { - void *memb_ptr = list->array[edx]; - if(!memb_ptr) ASN__ENCODE_FAILED; - er = elm->type->op->uper_encoder( - elm->type, elm->encoding_constraints.per_constraints, memb_ptr, - po); - if(er.encoded == -1) ASN__ENCODE_FAILED; - } - - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - - encoded_edx += may_encode; - } - - ASN__ENCODED_OK(er); -} - -asn_enc_rval_t -SEQUENCE_OF_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_anonymous_sequence_ *list; - const asn_per_constraint_t *ct; - asn_enc_rval_t er = {0,0,0}; - asn_TYPE_member_t *elm = td->elements; - int seq; - - if(!sptr) ASN__ENCODE_FAILED; - list = _A_CSEQUENCE_FROM_VOID(sptr); - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE OF size (%d) using ALIGNED PER", td->name, list->count); - - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - /* If extensible constraint, check if size is in root */ - if(ct) { - int not_in_root = (list->count < ct->lower_bound - || list->count > ct->upper_bound); - ASN_DEBUG("lb %ld ub %ld %s", - ct->lower_bound, ct->upper_bound, - ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); - if(ct->flags & APC_EXTENSIBLE) { - /* Declare whether size is in extension root */ - if(per_put_few_bits(po, not_in_root, 1)) - ASN__ENCODE_FAILED; - if(not_in_root) ct = 0; - } else if(not_in_root && ct->effective_bits >= 0) - ASN__ENCODE_FAILED; - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ -/* if(per_put_few_bits(po, list->count - ct->lower_bound, - ct->effective_bits)) - ASN__ENCODE_FAILED; -*/ - if (aper_put_length(po, ct->upper_bound - ct->lower_bound + 1, list->count - ct->lower_bound) < 0) - ASN__ENCODE_FAILED; - } - - for(seq = -1; seq < list->count;) { - ssize_t mayEncode; - if(seq < 0) seq = 0; - if(ct && ct->effective_bits >= 0) { - mayEncode = list->count; - } else { - mayEncode = aper_put_length(po, -1, list->count - seq); - if(mayEncode < 0) ASN__ENCODE_FAILED; - } - - while(mayEncode--) { - void *memb_ptr = list->array[seq++]; - if(!memb_ptr) ASN__ENCODE_FAILED; - er = elm->type->op->aper_encoder(elm->type, - elm->encoding_constraints.per_constraints, memb_ptr, po); - if(er.encoded == -1) - ASN__ENCODE_FAILED; - } - } - - ASN__ENCODED_OK(er); -} -#endif /* ASN_DISABLE_PER_SUPPORT */ - -int -SEQUENCE_OF_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - const asn_anonymous_sequence_ *a = _A_CSEQUENCE_FROM_VOID(aptr); - const asn_anonymous_sequence_ *b = _A_CSEQUENCE_FROM_VOID(bptr); - ssize_t idx; - - if(a && b) { - ssize_t common_length = (a->count < b->count ? a->count : b->count); - for(idx = 0; idx < common_length; idx++) { - int ret = td->elements->type->op->compare_struct( - td->elements->type, a->array[idx], b->array[idx]); - if(ret) return ret; - } - - if(idx < b->count) /* more elements in b */ - return -1; /* a is shorter, so put it first */ - if(idx < a->count) return 1; - - } else if(!a) { - return -1; - } else if(!b) { - return 1; - } - - return 0; -} - - -asn_TYPE_operation_t asn_OP_SEQUENCE_OF = { - SEQUENCE_OF_free, - SEQUENCE_OF_print, - SEQUENCE_OF_compare, - SEQUENCE_OF_decode_ber, - SEQUENCE_OF_encode_der, - SEQUENCE_OF_decode_xer, - SEQUENCE_OF_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - SEQUENCE_OF_decode_oer, /* Same as SET OF decoder. */ - SEQUENCE_OF_encode_oer, /* Same as SET OF encoder */ -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - SEQUENCE_OF_decode_uper, /* Same as SET OF decoder */ - SEQUENCE_OF_encode_uper, - SEQUENCE_OF_decode_aper, - SEQUENCE_OF_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - SEQUENCE_OF_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_SEQUENCE_OF.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_SEQUENCE_OF.h deleted file mode 100644 index 6857f0f..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_SEQUENCE_OF.h +++ /dev/null @@ -1,41 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _CONSTR_SEQUENCE_OF_H_ -#define _CONSTR_SEQUENCE_OF_H_ - -#include -#include /* Implemented using SET OF */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * A set specialized functions dealing with the SEQUENCE OF type. - * Generally implemented using SET OF. - */ -asn_struct_compare_f SEQUENCE_OF_compare; -der_type_encoder_f SEQUENCE_OF_encode_der; -xer_type_encoder_f SEQUENCE_OF_encode_xer; -per_type_encoder_f SEQUENCE_OF_encode_uper; -per_type_encoder_f SEQUENCE_OF_encode_aper; -extern asn_TYPE_operation_t asn_OP_SEQUENCE_OF; - -#define SEQUENCE_OF_free SET_OF_free -#define SEQUENCE_OF_print SET_OF_print -#define SEQUENCE_OF_constraint SET_OF_constraint -#define SEQUENCE_OF_decode_ber SET_OF_decode_ber -#define SEQUENCE_OF_decode_xer SET_OF_decode_xer -#define SEQUENCE_OF_decode_oer SET_OF_decode_oer -#define SEQUENCE_OF_encode_oer SET_OF_encode_oer -#define SEQUENCE_OF_decode_uper SET_OF_decode_uper -#define SEQUENCE_OF_decode_aper SET_OF_decode_aper -#define SEQUENCE_OF_random_fill SET_OF_random_fill - -#ifdef __cplusplus -} -#endif - -#endif /* _CONSTR_SET_OF_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_SEQUENCE_oer.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_SEQUENCE_oer.c deleted file mode 100644 index ecb589c..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_SEQUENCE_oer.c +++ /dev/null @@ -1,561 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include -#include - -/* - * This macro "eats" the part of the buffer which is definitely "consumed", - * i.e. was correctly converted into local representation or rightfully skipped. - */ -#undef ADVANCE -#define ADVANCE(num_bytes) \ - do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#undef PHASE_OUT -#define NEXT_PHASE(ctx) \ - do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) - -/* - * Check whether we are inside the extensions group. - */ -#define IN_EXTENSION_GROUP(specs, memb_idx) \ - ((specs)->first_extension >= 0 \ - && (unsigned)(specs)->first_extension <= (memb_idx)) - -#define IN_ROOT_GROUP_PRED(edx) \ - edx < (specs->first_extension < 0 ? td->elements_count \ - : (size_t)specs->first_extension) - -#define FOR_IN_ROOT_GROUP(edx) for(edx = 0; IN_ROOT_GROUP_PRED(edx); edx++) - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself;\ - return rval; \ - } while(0) - -/* - * Return pointer to a member. - */ -static void ** -element_ptrptr(void *struct_ptr, asn_TYPE_member_t *elm, void **tmp_save_ptr) { - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - return (void **)((char *)struct_ptr + elm->memb_offset); - } else { - assert(tmp_save_ptr); - *tmp_save_ptr = (void *)((char *)struct_ptr + elm->memb_offset); - return tmp_save_ptr; - } -} - -static const void * -element_ptr(const void *struct_ptr, const asn_TYPE_member_t *elm) { - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - return *(const void *const *)((const char *)struct_ptr - + elm->memb_offset); - } else { - return (const void *)((const char *)struct_ptr + elm->memb_offset); - } -} - -asn_dec_rval_t -SEQUENCE_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **struct_ptr, - const void *ptr, size_t size) { - const asn_SEQUENCE_specifics_t *specs = - (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_dec_rval_t rval = {RC_OK, 0}; - void *st = *struct_ptr; /* Target structure */ - asn_struct_ctx_t *ctx; /* Decoder context */ - size_t consumed_myself = 0; /* Consumed bytes from ptr. */ - - (void)constraints; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Start to parse where left previously. - */ - switch(ctx->phase) { - case 0: { - /* - * Fetch preamble. - */ - asn_bit_data_t *preamble; - int has_extensions_bit = (specs->first_extension >= 0); - size_t preamble_bits = (has_extensions_bit + specs->roms_count); - size_t preamble_bytes = ((7 + preamble_bits) >> 3); - - ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 0", td->name); - - ASN_DEBUG( - "Expecting preamble bits %" ASN_PRI_SIZE " for %s (including %d extension bits)", - preamble_bits, td->name, has_extensions_bit); - - if(preamble_bytes > size) { - ASN__DECODE_STARVED; - } - - preamble = asn_bit_data_new_contiguous(ptr, preamble_bits); - if(!preamble) { - RETURN(RC_FAIL); - } - preamble->nboff = has_extensions_bit; - ctx->ptr = preamble; - ADVANCE(preamble_bytes); - } - NEXT_PHASE(ctx); - /* FALL THROUGH */ - case 1: { - /* Decode components of the extension root */ - asn_bit_data_t *preamble = ctx->ptr; - size_t edx; - - ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 1 (Root)", td->name); - - assert(preamble); - - for(edx = (ctx->step >> 1); IN_ROOT_GROUP_PRED(edx); - edx++, ctx->step = (ctx->step & ~1) + 2) { - asn_TYPE_member_t *elm = &td->elements[edx]; - - ASN_DEBUG("Decoding %s->%s", td->name, elm->name); - - assert(!IN_EXTENSION_GROUP(specs, edx)); - - if(ctx->step & 1) { - goto microphase2_decode_continues; - } - - - if(elm->optional) { - int32_t present = asn_get_few_bits(preamble, 1); - if(present < 0) { - ASN_DEBUG("Presence map ended prematurely: %d", present); - RETURN(RC_FAIL); - } else if(present == 0) { - if(elm->default_value_set) { - /* Fill-in DEFAULT */ - void *tmp; - if(elm->default_value_set( - element_ptrptr(st, elm, &tmp))) { - RETURN(RC_FAIL); - } - } - /* The member is not present. */ - continue; - } - /* Present OPTIONAL or DEFAULT component. */ - } - - /* - * MICROPHASE 2: Invoke the member-specific decoder. - */ - ctx->step |= 1; /* Confirm entering next microphase */ - microphase2_decode_continues: - if(elm->flags & ATF_OPEN_TYPE) { - rval = OPEN_TYPE_oer_get(opt_codec_ctx, td, st, elm, ptr, size); - } else { - void *save_memb_ptr; /* Temporary reference. */ - void **memb_ptr2; /* Pointer to a pointer to a memmber */ - - memb_ptr2 = element_ptrptr(st, elm, &save_memb_ptr); - - rval = elm->type->op->oer_decoder( - opt_codec_ctx, elm->type, - elm->encoding_constraints.oer_constraints, memb_ptr2, ptr, - size); - } - switch(rval.code) { - case RC_OK: - ADVANCE(rval.consumed); - break; - case RC_WMORE: - ASN_DEBUG("More bytes needed at element %s \"%s\"", td->name, - elm->name); - ADVANCE(rval.consumed); - RETURN(RC_WMORE); - case RC_FAIL: - ASN_DEBUG("Decoding failed at element %s \"%s\"", td->name, - elm->name); - RETURN(RC_FAIL); - } - } /* for(all root members) */ - - } - NEXT_PHASE(ctx); - /* FALL THROUGH */ - case 2: - assert(ctx->ptr); - { - /* Cleanup preamble. */ - asn_bit_data_t *preamble = ctx->ptr; - asn_bit_data_t *extadds; - int has_extensions_bit = (specs->first_extension >= 0); - int extensions_present = - has_extensions_bit - && (preamble->buffer == NULL - || (((const uint8_t *)preamble->buffer)[0] & 0x80)); - uint8_t unused_bits; - size_t len = 0; - ssize_t len_len; - - ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 2", td->name); - - preamble->buffer = 0; /* Will do extensions_present==1 next time. */ - - if(!extensions_present) { - ctx->phase = 10; - RETURN(RC_OK); - } - - /* - * X.696 (08/2015) #16.1 (c), #16.4 - * Read in the extension addition presence bitmap. - */ - - len_len = oer_fetch_length(ptr, size, &len); - if(len_len > 0) { - ADVANCE(len_len); - } else if(len_len < 0) { - RETURN(RC_FAIL); - } else { - RETURN(RC_WMORE); - } - - if(len == 0) { - /* 16.4.1-2 */ - RETURN(RC_FAIL); - } else if(len > size) { - RETURN(RC_WMORE); - } - - /* Account for unused bits */ - unused_bits = 0x7 & *(const uint8_t *)ptr; - ADVANCE(1); - len--; - if(unused_bits && len == 0) { - RETURN(RC_FAIL); - } - - /* Get the extensions map */ - extadds = asn_bit_data_new_contiguous(ptr, len * 8 - unused_bits); - if(!extadds) { - RETURN(RC_FAIL); - } - FREEMEM(preamble); - ctx->ptr = extadds; - ADVANCE(len); - } - NEXT_PHASE(ctx); - ctx->step = - (specs->first_extension < 0 ? td->elements_count - : (size_t)specs->first_extension); - /* Fall through */ - case 3: - ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 3 (Extensions)", td->name); - for(; ctx->step < (signed)td->elements_count; ctx->step++) { - asn_bit_data_t *extadds = ctx->ptr; - size_t edx = ctx->step; - asn_TYPE_member_t *elm = &td->elements[edx]; - void *tmp_memb_ptr; - void **memb_ptr2 = element_ptrptr(st, elm, &tmp_memb_ptr); - - switch(asn_get_few_bits(extadds, 1)) { - case -1: - /* - * Not every one of our extensions is known to the remote side. - * Continue filling in their defaults though. - */ - /* Fall through */ - case 0: - /* Fill-in DEFAULT */ - if(elm->default_value_set - && elm->default_value_set(memb_ptr2)) { - RETURN(RC_FAIL); - } - continue; - case 1: { - /* Read OER open type */ - ssize_t ot_size = - oer_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.oer_constraints, - memb_ptr2, ptr, size); - assert(ot_size <= (ssize_t)size); - if(ot_size > 0) { - ADVANCE(ot_size); - } else if(ot_size < 0) { - RETURN(RC_FAIL); - } else { - /* Roll back open type parsing */ - asn_get_undo(extadds, 1); - RETURN(RC_WMORE); - } - break; - } - default: - RETURN(RC_FAIL); - } - } - - NEXT_PHASE(ctx); - /* Fall through */ - case 4: - ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 4", td->name); - /* Read in the rest of Open Types while ignoring them */ - for(;;) { - asn_bit_data_t *extadds = ctx->ptr; - switch(asn_get_few_bits(extadds, 1)) { - case 0: - continue; - case 1: { - ssize_t skipped = oer_open_type_skip(ptr, size); - if(skipped > 0) { - ADVANCE(skipped); - } else if(skipped < 0) { - RETURN(RC_FAIL); - } else { - asn_get_undo(extadds, 1); - RETURN(RC_WMORE); - } - continue; - } - case -1: - /* No more Open Type encoded components */ - break; - default: - RETURN(RC_FAIL); - } - break; - } - } - - RETURN(RC_OK); -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -SEQUENCE_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; - size_t computed_size = 0; - int has_extensions_bit = (specs->first_extension >= 0); - size_t preamble_bits = (has_extensions_bit + specs->roms_count); - uint32_t has_extensions = 0; - size_t edx; - int ret; - - (void)constraints; - - if(preamble_bits) { - asn_bit_outp_t preamble; - - memset(&preamble, 0, sizeof(preamble)); - preamble.output = cb; - preamble.op_key = app_key; - - if(has_extensions_bit) { - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr = element_ptr(sptr, elm); - if(memb_ptr) { - if(elm->default_value_cmp - && elm->default_value_cmp(memb_ptr) == 0) { - /* Do not encode default values in extensions */ - } else { - has_extensions = 1; - break; - } - } - } - ret = asn_put_few_bits(&preamble, has_extensions, 1); - assert(ret == 0); - if(ret < 0) { - ASN__ENCODE_FAILED; - } - } - - /* - * Encode optional components bitmap. - */ - if(specs->roms_count) { - FOR_IN_ROOT_GROUP(edx) { - asn_TYPE_member_t *elm = &td->elements[edx]; - - if(IN_EXTENSION_GROUP(specs, edx)) break; - - if(elm->optional) { - const void *memb_ptr = element_ptr(sptr, elm); - uint32_t has_component = memb_ptr != NULL; - if(has_component && elm->default_value_cmp - && elm->default_value_cmp(memb_ptr) == 0) { - has_component = 0; - } - ret = asn_put_few_bits(&preamble, has_component, 1); - if(ret < 0) { - ASN__ENCODE_FAILED; - } - } - } - } - - asn_put_aligned_flush(&preamble); - computed_size += preamble.flushed_bytes; - } /* if(preamble_bits) */ - - /* - * Put root components and extensions root. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - asn_enc_rval_t er = {0,0,0}; - const void *memb_ptr; - - if(IN_EXTENSION_GROUP(specs, edx)) break; - - memb_ptr = element_ptr(sptr, elm); - if(memb_ptr) { - if(elm->default_value_cmp - && elm->default_value_cmp(memb_ptr) == 0) { - /* Skip default values in encoding */ - continue; - } - } else { - if(elm->optional) continue; - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - if(!elm->type->op->oer_encoder) { - ASN_DEBUG("OER encoder is not defined for type %s", elm->type->name); - ASN__ENCODE_FAILED; - } - er = elm->type->op->oer_encoder( - elm->type, elm->encoding_constraints.oer_constraints, memb_ptr, cb, - app_key); - if(er.encoded == -1) { - ASN_DEBUG("... while encoding %s member \"%s\"\n", td->name, - elm->name); - return er; - } - computed_size += er.encoded; - } - - /* - * Before encode extensions, encode extensions additions presense bitmap - # X.696 (08/2015) #16.4. - */ - if(has_extensions) { - asn_bit_outp_t extadds; - - /* Special case allowing us to use exactly one byte for #8.6 */ - size_t aoms_length_bits = specs->aoms_count; - size_t aoms_length_bytes = (7 + aoms_length_bits) >> 3; - uint8_t unused_bits = 0x07 & (8 - (aoms_length_bits & 0x07)); - - assert(1 + aoms_length_bytes <= 127); - - memset(&extadds, 0, sizeof(extadds)); - extadds.output = cb; - extadds.op_key = app_key; - - /* #8.6 length determinant */ - ret = asn_put_few_bits(&extadds, (1 + aoms_length_bytes), 8); - if(ret < 0) ASN__ENCODE_FAILED; - - /* Number of unused bytes, #16.4.2 */ - ret = asn_put_few_bits(&extadds, unused_bits, 8); - if(ret < 0) ASN__ENCODE_FAILED; - - /* Encode presence bitmap #16.4.3 */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr = element_ptr(sptr, elm); - if(memb_ptr && elm->default_value_cmp - && elm->default_value_cmp(memb_ptr) == 0) { - memb_ptr = 0; /* Do not encode default value. */ - } - ret |= asn_put_few_bits(&extadds, memb_ptr ? 1 : 0, 1); - } - if(ret < 0) ASN__ENCODE_FAILED; - - asn_put_aligned_flush(&extadds); - computed_size += extadds.flushed_bytes; - - /* Now, encode extensions */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr = element_ptr(sptr, elm); - - if(memb_ptr) { - if(elm->default_value_cmp - && elm->default_value_cmp(memb_ptr) == 0) { - /* Do not encode default value. */ - } else { - ssize_t wrote = oer_open_type_put( - elm->type, elm->encoding_constraints.oer_constraints, - memb_ptr, cb, app_key); - if(wrote == -1) { - ASN__ENCODE_FAILED; - } - computed_size += wrote; - } - } else if(!elm->optional) { - ASN__ENCODE_FAILED; - } - } - } /* if(has_extensions) */ - - - { - asn_enc_rval_t er = {0, 0, 0}; - er.encoded = computed_size; - ASN__ENCODED_OK(er); - } -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_SET_OF.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_SET_OF.c deleted file mode 100644 index bf1dc27..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_SET_OF.c +++ /dev/null @@ -1,1441 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Number of bytes left for this structure. - * (ctx->left) indicates the number of bytes _transferred_ for the structure. - * (size) contains the number of bytes in the buffer passed. - */ -#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) - -/* - * If the subprocessor function returns with an indication that it wants - * more data, it may well be a fatal decoding problem, because the - * size is constrained by the 's L, even if the buffer size allows - * reading more data. - * For example, consider the buffer containing the following TLVs: - * ... - * The TLV length clearly indicates that one byte is expected in V, but - * if the V processor returns with "want more data" even if the buffer - * contains way more data than the V processor have seen. - */ -#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) - -/* - * This macro "eats" the part of the buffer which is definitely "consumed", - * i.e. was correctly converted into local representation or rightfully skipped. - */ -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num;\ - size -= num; \ - if(ctx->left >= 0) \ - ctx->left -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#undef PHASE_OUT -#define NEXT_PHASE(ctx) do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) -#define PHASE_OUT(ctx) do { ctx->phase = 10; } while(0) - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself;\ - return rval; \ - } while(0) - -/* - * The decoder of the SET OF type. - */ -asn_dec_rval_t -SET_OF_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const void *ptr, size_t size, int tag_mode) { - /* - * Bring closer parts of structure description. - */ - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; /* Single one */ - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - ber_tlv_tag_t tlv_tag; /* T from TLV */ - asn_dec_rval_t rval; /* Return code from subparsers */ - - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - - ASN_DEBUG("Decoding %s as SET OF", td->name); - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Start to parse where left previously - */ - switch(ctx->phase) { - case 0: - /* - * PHASE 0. - * Check that the set of tags associated with given structure - * perfectly fits our expectations. - */ - - rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, - tag_mode, 1, &ctx->left, 0); - if(rval.code != RC_OK) { - ASN_DEBUG("%s tagging check failed: %d", - td->name, rval.code); - return rval; - } - - if(ctx->left >= 0) - ctx->left += rval.consumed; /* ?Substracted below! */ - ADVANCE(rval.consumed); - - ASN_DEBUG("Structure consumes %ld bytes, " - "buffer %ld", (long)ctx->left, (long)size); - - NEXT_PHASE(ctx); - /* Fall through */ - case 1: - /* - * PHASE 1. - * From the place where we've left it previously, - * try to decode the next item. - */ - for(;; ctx->step = 0) { - ssize_t tag_len; /* Length of TLV's T */ - - if(ctx->step & 1) - goto microphase2; - - /* - * MICROPHASE 1: Synchronize decoding. - */ - - if(ctx->left == 0) { - ASN_DEBUG("End of SET OF %s", td->name); - /* - * No more things to decode. - * Exit out of here. - */ - PHASE_OUT(ctx); - RETURN(RC_OK); - } - - /* - * Fetch the T from TLV. - */ - tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); - switch(tag_len) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - if(ctx->left < 0 && ((const uint8_t *)ptr)[0] == 0) { - if(LEFT < 2) { - if(SIZE_VIOLATION) - RETURN(RC_FAIL); - else - RETURN(RC_WMORE); - } else if(((const uint8_t *)ptr)[1] == 0) { - /* - * Found the terminator of the - * indefinite length structure. - */ - break; - } - } - - /* Outmost tag may be unknown and cannot be fetched/compared */ - if(elm->tag != (ber_tlv_tag_t)-1) { - if(BER_TAGS_EQUAL(tlv_tag, elm->tag)) { - /* - * The new list member of expected type has arrived. - */ - } else { - ASN_DEBUG("Unexpected tag %s fixed SET OF %s", - ber_tlv_tag_string(tlv_tag), td->name); - ASN_DEBUG("%s SET OF has tag %s", - td->name, ber_tlv_tag_string(elm->tag)); - RETURN(RC_FAIL); - } - } - - /* - * MICROPHASE 2: Invoke the member-specific decoder. - */ - ctx->step |= 1; /* Confirm entering next microphase */ - microphase2: - - /* - * Invoke the member fetch routine according to member's type - */ - rval = elm->type->op->ber_decoder(opt_codec_ctx, - elm->type, &ctx->ptr, ptr, LEFT, 0); - ASN_DEBUG("In %s SET OF %s code %d consumed %d", - td->name, elm->type->name, - rval.code, (int)rval.consumed); - switch(rval.code) { - case RC_OK: - { - asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); - if(ASN_SET_ADD(list, ctx->ptr) != 0) - RETURN(RC_FAIL); - else - ctx->ptr = 0; - } - break; - case RC_WMORE: /* More data expected */ - if(!SIZE_VIOLATION) { - ADVANCE(rval.consumed); - RETURN(RC_WMORE); - } - /* Fall through */ - case RC_FAIL: /* Fatal error */ - ASN_STRUCT_FREE(*elm->type, ctx->ptr); - ctx->ptr = 0; - RETURN(RC_FAIL); - } /* switch(rval) */ - - ADVANCE(rval.consumed); - } /* for(all list members) */ - - NEXT_PHASE(ctx); - case 2: - /* - * Read in all "end of content" TLVs. - */ - while(ctx->left < 0) { - if(LEFT < 2) { - if(LEFT > 0 && ((const char *)ptr)[0] != 0) { - /* Unexpected tag */ - RETURN(RC_FAIL); - } else { - RETURN(RC_WMORE); - } - } - if(((const char *)ptr)[0] == 0 - && ((const char *)ptr)[1] == 0) { - ADVANCE(2); - ctx->left++; - } else { - RETURN(RC_FAIL); - } - } - - PHASE_OUT(ctx); - } - - RETURN(RC_OK); -} - -/* - * Internally visible buffer holding a single encoded element. - */ -struct _el_buffer { - uint8_t *buf; - size_t length; - size_t allocated_size; - unsigned bits_unused; -}; -/* Append bytes to the above structure */ -static int _el_addbytes(const void *buffer, size_t size, void *el_buf_ptr) { - struct _el_buffer *el_buf = (struct _el_buffer *)el_buf_ptr; - - if(el_buf->length + size > el_buf->allocated_size) { - size_t new_size = el_buf->allocated_size ? el_buf->allocated_size : 8; - void *p; - - do { - new_size <<= 2; - } while(el_buf->length + size > new_size); - - p = REALLOC(el_buf->buf, new_size); - if(p) { - el_buf->buf = p; - el_buf->allocated_size = new_size; - } else { - return -1; - } - } - - memcpy(el_buf->buf + el_buf->length, buffer, size); - - el_buf->length += size; - return 0; -} - -static void assert_unused_bits(const struct _el_buffer* p) { - if(p->length) { - assert((p->buf[p->length-1] & ~(0xff << p->bits_unused)) == 0); - } else { - assert(p->bits_unused == 0); - } -} - -static int _el_buf_cmp(const void *ap, const void *bp) { - const struct _el_buffer *a = (const struct _el_buffer *)ap; - const struct _el_buffer *b = (const struct _el_buffer *)bp; - size_t common_len; - int ret = 0; - - if(a->length < b->length) - common_len = a->length; - else - common_len = b->length; - - if (a->buf && b->buf) { - ret = memcmp(a->buf, b->buf, common_len); - } - if(ret == 0) { - if(a->length < b->length) - ret = -1; - else if(a->length > b->length) - ret = 1; - /* Ignore unused bits. */ - assert_unused_bits(a); - assert_unused_bits(b); - } - - return ret; -} - -static void -SET_OF__encode_sorted_free(struct _el_buffer *el_buf, size_t count) { - size_t i; - - for(i = 0; i < count; i++) { - FREEMEM(el_buf[i].buf); - } - - FREEMEM(el_buf); -} - -enum SET_OF__encode_method { - SOES_DER, /* Distinguished Encoding Rules */ - SOES_CUPER /* Canonical Unaligned Packed Encoding Rules */ -}; - -static struct _el_buffer * -SET_OF__encode_sorted(const asn_TYPE_member_t *elm, - const asn_anonymous_set_ *list, - enum SET_OF__encode_method method) { - struct _el_buffer *encoded_els; - int edx; - - encoded_els = - (struct _el_buffer *)CALLOC(list->count, sizeof(encoded_els[0])); - if(encoded_els == NULL) { - return NULL; - } - - /* - * Encode all members. - */ - for(edx = 0; edx < list->count; edx++) { - const void *memb_ptr = list->array[edx]; - struct _el_buffer *encoding_el = &encoded_els[edx]; - asn_enc_rval_t erval = {0,0,0}; - - if(!memb_ptr) break; - - /* - * Encode the member into the prepared space. - */ - switch(method) { - case SOES_DER: - erval = elm->type->op->der_encoder(elm->type, memb_ptr, 0, elm->tag, - _el_addbytes, encoding_el); - break; - case SOES_CUPER: - erval = uper_encode(elm->type, - elm->encoding_constraints.per_constraints, - memb_ptr, _el_addbytes, encoding_el); - if(erval.encoded != -1) { - size_t extra_bits = erval.encoded % 8; - assert(encoding_el->length == (size_t)(erval.encoded + 7) / 8); - encoding_el->bits_unused = (8 - extra_bits) & 0x7; - } - break; - default: - assert(!"Unreachable"); - break; - } - if(erval.encoded < 0) break; - } - - if(edx == list->count) { - /* - * Sort the encoded elements according to their encoding. - */ - qsort(encoded_els, list->count, sizeof(encoded_els[0]), _el_buf_cmp); - - return encoded_els; - } else { - SET_OF__encode_sorted_free(encoded_els, edx); - return NULL; - } -} - - -/* - * The DER encoder of the SET OF type. - */ -asn_enc_rval_t -SET_OF_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, - void *app_key) { - const asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); - size_t computed_size = 0; - ssize_t encoding_size = 0; - struct _el_buffer *encoded_els; - int edx; - - ASN_DEBUG("Estimating size for SET OF %s", td->name); - - /* - * Gather the length of the underlying members sequence. - */ - for(edx = 0; edx < list->count; edx++) { - void *memb_ptr = list->array[edx]; - asn_enc_rval_t erval = {0,0,0}; - - if(!memb_ptr) ASN__ENCODE_FAILED; - - erval = - elm->type->op->der_encoder(elm->type, memb_ptr, 0, elm->tag, 0, 0); - if(erval.encoded == -1) return erval; - computed_size += erval.encoded; - } - - - /* - * Encode the TLV for the sequence itself. - */ - encoding_size = - der_write_tags(td, computed_size, tag_mode, 1, tag, cb, app_key); - if(encoding_size < 0) { - ASN__ENCODE_FAILED; - } - computed_size += encoding_size; - - if(!cb || list->count == 0) { - asn_enc_rval_t erval = {0,0,0}; - erval.encoded = computed_size; - ASN__ENCODED_OK(erval); - } - - ASN_DEBUG("Encoding members of %s SET OF", td->name); - - /* - * DER mandates dynamic sorting of the SET OF elements - * according to their encodings. Build an array of the - * encoded elements. - */ - encoded_els = SET_OF__encode_sorted(elm, list, SOES_DER); - - /* - * Report encoded elements to the application. - * Dispose of temporary sorted members table. - */ - for(edx = 0; edx < list->count; edx++) { - struct _el_buffer *encoded_el = &encoded_els[edx]; - /* Report encoded chunks to the application */ - if(cb(encoded_el->buf, encoded_el->length, app_key) < 0) { - break; - } else { - encoding_size += encoded_el->length; - } - } - - SET_OF__encode_sorted_free(encoded_els, list->count); - - if(edx == list->count) { - asn_enc_rval_t erval = {0,0,0}; - assert(computed_size == (size_t)encoding_size); - erval.encoded = computed_size; - ASN__ENCODED_OK(erval); - } else { - ASN__ENCODE_FAILED; - } -} - -#undef XER_ADVANCE -#define XER_ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - buf_ptr = ((const char *)buf_ptr) + num;\ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Decode the XER (XML) data. - */ -asn_dec_rval_t -SET_OF_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const char *opt_mname, const void *buf_ptr, size_t size) { - /* - * Bring closer parts of structure description. - */ - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *element = td->elements; - const char *elm_tag; - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - - /* - * ... and parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - asn_dec_rval_t rval = {RC_OK, 0};/* Return value from a decoder */ - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) RETURN(RC_FAIL); - } - - /* Which tag is expected for the downstream */ - if(specs->as_XMLValueList) { - elm_tag = (specs->as_XMLValueList == 1) ? 0 : ""; - } else { - elm_tag = (*element->name) - ? element->name : element->type->xml_tag; - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Phases of XER/XML processing: - * Phase 0: Check that the opening tag matches our expectations. - * Phase 1: Processing body and reacting on closing tag. - * Phase 2: Processing inner type. - */ - for(; ctx->phase <= 2;) { - pxer_chunk_type_e ch_type; /* XER chunk type */ - ssize_t ch_size; /* Chunk size */ - xer_check_tag_e tcv; /* Tag check value */ - - /* - * Go inside the inner member of a set. - */ - if(ctx->phase == 2) { - asn_dec_rval_t tmprval = {RC_OK, 0}; - - /* Invoke the inner type decoder, m.b. multiple times */ - ASN_DEBUG("XER/SET OF element [%s]", elm_tag); - tmprval = element->type->op->xer_decoder(opt_codec_ctx, - element->type, &ctx->ptr, elm_tag, - buf_ptr, size); - if(tmprval.code == RC_OK) { - asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); - if(ASN_SET_ADD(list, ctx->ptr) != 0) - RETURN(RC_FAIL); - ctx->ptr = 0; - XER_ADVANCE(tmprval.consumed); - } else { - XER_ADVANCE(tmprval.consumed); - RETURN(tmprval.code); - } - ctx->phase = 1; /* Back to body processing */ - ASN_DEBUG("XER/SET OF phase => %d", ctx->phase); - /* Fall through */ - } - - /* - * Get the next part of the XML stream. - */ - ch_size = xer_next_token(&ctx->context, - buf_ptr, size, &ch_type); - if(ch_size == -1) { - RETURN(RC_FAIL); - } else { - switch(ch_type) { - case PXER_WMORE: - RETURN(RC_WMORE); - case PXER_COMMENT: /* Got XML comment */ - case PXER_TEXT: /* Ignore free-standing text */ - XER_ADVANCE(ch_size); /* Skip silently */ - continue; - case PXER_TAG: - break; /* Check the rest down there */ - } - } - - tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); - ASN_DEBUG("XER/SET OF: tcv = %d, ph=%d t=%s", - tcv, ctx->phase, xml_tag); - switch(tcv) { - case XCT_CLOSING: - if(ctx->phase == 0) break; - ctx->phase = 0; - /* Fall through */ - case XCT_BOTH: - if(ctx->phase == 0) { - /* No more things to decode */ - XER_ADVANCE(ch_size); - ctx->phase = 3; /* Phase out */ - RETURN(RC_OK); - } - /* Fall through */ - case XCT_OPENING: - if(ctx->phase == 0) { - XER_ADVANCE(ch_size); - ctx->phase = 1; /* Processing body phase */ - continue; - } - /* Fall through */ - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - - ASN_DEBUG("XER/SET OF: tcv=%d, ph=%d", tcv, ctx->phase); - if(ctx->phase == 1) { - /* - * Process a single possible member. - */ - ctx->phase = 2; - continue; - } - /* Fall through */ - default: - break; - } - - ASN_DEBUG("Unexpected XML tag in SET OF"); - break; - } - - ctx->phase = 3; /* "Phase out" on hard failure */ - RETURN(RC_FAIL); -} - - - -typedef struct xer_tmp_enc_s { - void *buffer; - size_t offset; - size_t size; -} xer_tmp_enc_t; -static int -SET_OF_encode_xer_callback(const void *buffer, size_t size, void *key) { - xer_tmp_enc_t *t = (xer_tmp_enc_t *)key; - if(t->offset + size >= t->size) { - size_t newsize = (t->size << 2) + size; - void *p = REALLOC(t->buffer, newsize); - if(!p) return -1; - t->buffer = p; - t->size = newsize; - } - memcpy((char *)t->buffer + t->offset, buffer, size); - t->offset += size; - return 0; -} -static int -SET_OF_xer_order(const void *aptr, const void *bptr) { - const xer_tmp_enc_t *a = (const xer_tmp_enc_t *)aptr; - const xer_tmp_enc_t *b = (const xer_tmp_enc_t *)bptr; - size_t minlen = a->offset; - int ret; - if(b->offset < minlen) minlen = b->offset; - /* Well-formed UTF-8 has this nice lexicographical property... */ - ret = memcmp(a->buffer, b->buffer, minlen); - if(ret != 0) return ret; - if(a->offset == b->offset) - return 0; - if(a->offset == minlen) - return -1; - return 1; -} - - -asn_enc_rval_t -SET_OF_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, - void *app_key) { - asn_enc_rval_t er = {0,0,0}; - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); - const char *mname = specs->as_XMLValueList - ? 0 : ((*elm->name) ? elm->name : elm->type->xml_tag); - size_t mlen = mname ? strlen(mname) : 0; - int xcan = (flags & XER_F_CANONICAL); - xer_tmp_enc_t *encs = 0; - size_t encs_count = 0; - void *original_app_key = app_key; - asn_app_consume_bytes_f *original_cb = cb; - int i; - - if(!sptr) ASN__ENCODE_FAILED; - - if(xcan) { - encs = (xer_tmp_enc_t *)MALLOC(list->count * sizeof(encs[0])); - if(!encs) ASN__ENCODE_FAILED; - cb = SET_OF_encode_xer_callback; - } - - er.encoded = 0; - - for(i = 0; i < list->count; i++) { - asn_enc_rval_t tmper = {0,0,0}; - - void *memb_ptr = list->array[i]; - if(!memb_ptr) continue; - - if(encs) { - memset(&encs[encs_count], 0, sizeof(encs[0])); - app_key = &encs[encs_count]; - encs_count++; - } - - if(mname) { - if(!xcan) ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - } - - if(!xcan && specs->as_XMLValueList == 1) - ASN__TEXT_INDENT(1, ilevel + 1); - tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, - ilevel + (specs->as_XMLValueList != 2), - flags, cb, app_key); - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - if(tmper.encoded == 0 && specs->as_XMLValueList) { - const char *name = elm->type->xml_tag; - size_t len = strlen(name); - ASN__CALLBACK3("<", 1, name, len, "/>", 2); - } - - if(mname) { - ASN__CALLBACK3("", 1); - } - - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); - - if(encs) { - xer_tmp_enc_t *enc = encs; - xer_tmp_enc_t *end = encs + encs_count; - ssize_t control_size = 0; - - er.encoded = 0; - cb = original_cb; - app_key = original_app_key; - qsort(encs, encs_count, sizeof(encs[0]), SET_OF_xer_order); - - for(; enc < end; enc++) { - ASN__CALLBACK(enc->buffer, enc->offset); - FREEMEM(enc->buffer); - enc->buffer = 0; - control_size += enc->offset; - } - assert(control_size == er.encoded); - } - - goto cleanup; -cb_failed: - ASN__ENCODE_FAILED; -cleanup: - if(encs) { - size_t n; - for(n = 0; n < encs_count; n++) { - FREEMEM(encs[n].buffer); - } - FREEMEM(encs); - } - ASN__ENCODED_OK(er); -} - -int -SET_OF_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); - int ret; - int i; - - if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; - - /* Dump preamble */ - if(cb(td->name, strlen(td->name), app_key) < 0 - || cb(" ::= {", 6, app_key) < 0) - return -1; - - for(i = 0; i < list->count; i++) { - const void *memb_ptr = list->array[i]; - if(!memb_ptr) continue; - - _i_INDENT(1); - - ret = elm->type->op->print_struct(elm->type, memb_ptr, - ilevel + 1, cb, app_key); - if(ret) return ret; - } - - ilevel--; - _i_INDENT(1); - - return (cb("}", 1, app_key) < 0) ? -1 : 0; -} - -void -SET_OF_free(const asn_TYPE_descriptor_t *td, void *ptr, - enum asn_struct_free_method method) { - if(td && ptr) { - const asn_SET_OF_specifics_t *specs; - asn_TYPE_member_t *elm = td->elements; - asn_anonymous_set_ *list = _A_SET_FROM_VOID(ptr); - asn_struct_ctx_t *ctx; /* Decoder context */ - int i; - - /* - * Could not use set_of_empty() because of (*free) - * incompatibility. - */ - for(i = 0; i < list->count; i++) { - void *memb_ptr = list->array[i]; - if(memb_ptr) - ASN_STRUCT_FREE(*elm->type, memb_ptr); - } - list->count = 0; /* No meaningful elements left */ - - asn_set_empty(list); /* Remove (list->array) */ - - specs = (const asn_SET_OF_specifics_t *)td->specifics; - ctx = (asn_struct_ctx_t *)((char *)ptr + specs->ctx_offset); - if(ctx->ptr) { - ASN_STRUCT_FREE(*elm->type, ctx->ptr); - ctx->ptr = 0; - } - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(ptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(ptr, 0, specs->struct_size); - break; - } - } -} - -int -SET_OF_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const asn_TYPE_member_t *elm = td->elements; - asn_constr_check_f *constr; - const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); - int i; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - constr = elm->encoding_constraints.general_constraints; - if(!constr) constr = elm->type->encoding_constraints.general_constraints; - - /* - * Iterate over the members of an array. - * Validate each in turn, until one fails. - */ - for(i = 0; i < list->count; i++) { - const void *memb_ptr = list->array[i]; - int ret; - - if(!memb_ptr) continue; - - ret = constr(elm->type, memb_ptr, ctfailcb, app_key); - if(ret) return ret; - } - - return 0; -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -SET_OF_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - asn_dec_rval_t rv = {RC_OK, 0}; - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; /* Single one */ - void *st = *sptr; - asn_anonymous_set_ *list; - const asn_per_constraint_t *ct; - int repeat = 0; - ssize_t nelems; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - list = _A_SET_FROM_VOID(st); - - /* Figure out which constraints to use */ - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - int value = per_get_few_bits(pd, 1); - if(value < 0) ASN__DECODE_STARVED; - if(value) ct = 0; /* Not restricted! */ - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ - nelems = per_get_few_bits(pd, ct->effective_bits); - ASN_DEBUG("Preparing to fetch %ld+%ld elements from %s", - (long)nelems, ct->lower_bound, td->name); - if(nelems < 0) ASN__DECODE_STARVED; - nelems += ct->lower_bound; - } else { - nelems = -1; - } - - do { - int i; - if(nelems < 0) { - nelems = uper_get_length(pd, -1, 0, &repeat); - ASN_DEBUG("Got to decode %" ASN_PRI_SSIZE " elements (eff %d)", - nelems, (int)(ct ? ct->effective_bits : -1)); - if(nelems < 0) ASN__DECODE_STARVED; - } - - for(i = 0; i < nelems; i++) { - void *ptr = 0; - ASN_DEBUG("SET OF %s decoding", elm->type->name); - rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, &ptr, pd); - ASN_DEBUG("%s SET OF %s decoded %d, %p", - td->name, elm->type->name, rv.code, ptr); - if(rv.code == RC_OK) { - if(ASN_SET_ADD(list, ptr) == 0) { - if(rv.consumed == 0 && nelems > 200) { - /* Protect from SET OF NULL compression bombs. */ - ASN__DECODE_FAILED; - } - continue; - } - ASN_DEBUG("Failed to add element into %s", - td->name); - /* Fall through */ - rv.code = RC_FAIL; - } else { - ASN_DEBUG("Failed decoding %s of %s (SET OF)", - elm->type->name, td->name); - } - if(ptr) ASN_STRUCT_FREE(*elm->type, ptr); - return rv; - } - - nelems = -1; /* Allow uper_get_length() */ - } while(repeat); - - ASN_DEBUG("Decoded %s as SET OF", td->name); - - rv.code = RC_OK; - rv.consumed = 0; - return rv; -} - -asn_enc_rval_t -SET_OF_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const asn_anonymous_set_ *list; - const asn_per_constraint_t *ct; - const asn_TYPE_member_t *elm = td->elements; - struct _el_buffer *encoded_els; - asn_enc_rval_t er = {0,0,0}; - size_t encoded_edx; - - if(!sptr) ASN__ENCODE_FAILED; - - list = _A_CSET_FROM_VOID(sptr); - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE OF (%d)", td->name, list->count); - - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - /* If extensible constraint, check if size is in root */ - if(ct) { - int not_in_root = - (list->count < ct->lower_bound || list->count > ct->upper_bound); - ASN_DEBUG("lb %ld ub %ld %s", ct->lower_bound, ct->upper_bound, - ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); - if(ct->flags & APC_EXTENSIBLE) { - /* Declare whether size is in extension root */ - if(per_put_few_bits(po, not_in_root, 1)) ASN__ENCODE_FAILED; - if(not_in_root) ct = 0; - } else if(not_in_root && ct->effective_bits >= 0) { - ASN__ENCODE_FAILED; - } - - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ - if(per_put_few_bits(po, list->count - ct->lower_bound, - ct->effective_bits)) - ASN__ENCODE_FAILED; - } else if(list->count == 0) { - /* When the list is empty add only the length determinant - * X.691, #20.6 and #11.9.4.1 - */ - if (uper_put_length(po, 0, 0)) { - ASN__ENCODE_FAILED; - } - ASN__ENCODED_OK(er); - } - - - /* - * Canonical UPER #22.1 mandates dynamic sorting of the SET OF elements - * according to their encodings. Build an array of the encoded elements. - */ - encoded_els = SET_OF__encode_sorted(elm, list, SOES_CUPER); - - for(encoded_edx = 0; (ssize_t)encoded_edx < list->count;) { - ssize_t may_encode; - size_t edx; - int need_eom = 0; - - if(ct && ct->effective_bits >= 0) { - may_encode = list->count; - } else { - may_encode = - uper_put_length(po, list->count - encoded_edx, &need_eom); - if(may_encode < 0) ASN__ENCODE_FAILED; - } - - for(edx = encoded_edx; edx < encoded_edx + may_encode; edx++) { - const struct _el_buffer *el = &encoded_els[edx]; - if(asn_put_many_bits(po, el->buf, - (8 * el->length) - el->bits_unused) < 0) { - break; - } - } - - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - - encoded_edx += may_encode; - } - - SET_OF__encode_sorted_free(encoded_els, list->count); - - if((ssize_t)encoded_edx == list->count) { - ASN__ENCODED_OK(er); - } else { - ASN__ENCODE_FAILED; - } -} - -asn_dec_rval_t -SET_OF_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - asn_dec_rval_t rv = {RC_OK, 0}; - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; /* Single one */ - void *st = *sptr; - asn_anonymous_set_ *list; - const asn_per_constraint_t *ct; - int repeat = 0; - ssize_t nelems; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - list = _A_SET_FROM_VOID(st); - - /* Figure out which constraints to use */ - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - int value = per_get_few_bits(pd, 1); - if(value < 0) ASN__DECODE_STARVED; - if(value) ct = 0; /* Not restricted! */ - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ - nelems = aper_get_nsnnwn(pd, ct->upper_bound - ct->lower_bound + 1); - ASN_DEBUG("Preparing to fetch %ld+%ld elements from %s", - (long)nelems, ct->lower_bound, td->name); - if(nelems < 0) ASN__DECODE_STARVED; - nelems += ct->lower_bound; - } else { - nelems = -1; - } - - do { - int i; - if(nelems < 0) { - nelems = aper_get_length(pd, ct ? ct->upper_bound - ct->lower_bound + 1 : -1, - ct ? ct->effective_bits : -1, &repeat); - ASN_DEBUG("Got to decode %d elements (eff %d)", - (int)nelems, (int)(ct ? ct->effective_bits : -1)); - if(nelems < 0) ASN__DECODE_STARVED; - } - - for(i = 0; i < nelems; i++) { - void *ptr = 0; - ASN_DEBUG("SET OF %s decoding", elm->type->name); - rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, &ptr, pd); - ASN_DEBUG("%s SET OF %s decoded %d, %p", - td->name, elm->type->name, rv.code, ptr); - if(rv.code == RC_OK) { - if(ASN_SET_ADD(list, ptr) == 0) - continue; - ASN_DEBUG("Failed to add element into %s", - td->name); - /* Fall through */ - rv.code = RC_FAIL; - } else { - ASN_DEBUG("Failed decoding %s of %s (SET OF)", - elm->type->name, td->name); - } - if(ptr) ASN_STRUCT_FREE(*elm->type, ptr); - return rv; - } - - nelems = -1; /* Allow uper_get_length() */ - } while(repeat); - - ASN_DEBUG("Decoded %s as SET OF", td->name); - - rv.code = RC_OK; - rv.consumed = 0; - return rv; -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -struct comparable_ptr { - const asn_TYPE_descriptor_t *td; - const void *sptr; -}; - -static int -SET_OF__compare_cb(const void *aptr, const void *bptr) { - const struct comparable_ptr *a = aptr; - const struct comparable_ptr *b = bptr; - assert(a->td == b->td); - return a->td->op->compare_struct(a->td, a->sptr, b->sptr); -} - -int -SET_OF_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - const asn_anonymous_set_ *a = _A_CSET_FROM_VOID(aptr); - const asn_anonymous_set_ *b = _A_CSET_FROM_VOID(bptr); - - if(a && b) { - struct comparable_ptr *asorted; - struct comparable_ptr *bsorted; - ssize_t common_length; - ssize_t idx; - - if(a->count == 0) { - if(b->count) return -1; - return 0; - } else if(b->count == 0) { - return 1; - } - - asorted = MALLOC(a->count * sizeof(asorted[0])); - bsorted = MALLOC(b->count * sizeof(bsorted[0])); - if(!asorted || !bsorted) { - FREEMEM(asorted); - FREEMEM(bsorted); - return -1; - } - - for(idx = 0; idx < a->count; idx++) { - asorted[idx].td = td->elements->type; - asorted[idx].sptr = a->array[idx]; - } - - for(idx = 0; idx < b->count; idx++) { - bsorted[idx].td = td->elements->type; - bsorted[idx].sptr = b->array[idx]; - } - - qsort(asorted, a->count, sizeof(asorted[0]), SET_OF__compare_cb); - qsort(bsorted, b->count, sizeof(bsorted[0]), SET_OF__compare_cb); - - common_length = (a->count < b->count ? a->count : b->count); - for(idx = 0; idx < common_length; idx++) { - int ret = td->elements->type->op->compare_struct( - td->elements->type, asorted[idx].sptr, bsorted[idx].sptr); - if(ret) { - FREEMEM(asorted); - FREEMEM(bsorted); - return ret; - } - } - - FREEMEM(asorted); - FREEMEM(bsorted); - - if(idx < b->count) /* more elements in b */ - return -1; /* a is shorter, so put it first */ - if(idx < a->count) return 1; - } else if(!a) { - return -1; - } else if(!b) { - return 1; - } - - return 0; -} - - -asn_TYPE_operation_t asn_OP_SET_OF = { - SET_OF_free, - SET_OF_print, - SET_OF_compare, - SET_OF_decode_ber, - SET_OF_encode_der, - SET_OF_decode_xer, - SET_OF_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - SET_OF_decode_oer, - SET_OF_encode_oer, -#endif -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - SET_OF_decode_uper, - SET_OF_encode_uper, - SET_OF_decode_aper, - 0, /* SET_OF_encode_aper */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - SET_OF_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; - - -asn_random_fill_result_t -SET_OF_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_SET_OF_specifics_t *specs = - (const asn_SET_OF_specifics_t *)td->specifics; - asn_random_fill_result_t res_ok = {ARFILL_OK, 0}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - const asn_TYPE_member_t *elm = td->elements; - void *st = *sptr; - long max_elements = 5; - long slb = 0; /* Lower size bound */ - long sub = 0; /* Upper size bound */ - size_t rnd_len; - - if(max_length == 0) return result_skipped; - - if(st == NULL) { - st = (*sptr = CALLOC(1, specs->struct_size)); - if(st == NULL) { - return result_failed; - } - } - - switch(asn_random_between(0, 6)) { - case 0: max_elements = 0; break; - case 1: max_elements = 1; break; - case 2: max_elements = 5; break; - case 3: max_elements = max_length; break; - case 4: max_elements = max_length / 2; break; - case 5: max_elements = max_length / 4; break; - default: break; - } - sub = slb + max_elements; - - if(!constraints || !constraints->per_constraints) - constraints = &td->encoding_constraints; - if(constraints->per_constraints) { - const asn_per_constraint_t *pc = &constraints->per_constraints->size; - if(pc->flags & APC_SEMI_CONSTRAINED) { - slb = pc->lower_bound; - sub = pc->lower_bound + max_elements; - } else if(pc->flags & APC_CONSTRAINED) { - slb = pc->lower_bound; - sub = pc->upper_bound; - if(sub - slb > max_elements) sub = slb + max_elements; - } - } - - /* Bias towards edges of allowed space */ - switch(asn_random_between(-1, 4)) { - default: - case -1: - /* Prepare lengths somewhat outside of constrained range. */ - if(constraints->per_constraints - && (constraints->per_constraints->size.flags & APC_EXTENSIBLE)) { - switch(asn_random_between(0, 5)) { - default: - case 0: - rnd_len = 0; - break; - case 1: - if(slb > 0) { - rnd_len = slb - 1; - } else { - rnd_len = 0; - } - break; - case 2: - rnd_len = asn_random_between(0, slb); - break; - case 3: - if(sub < (ssize_t)max_length) { - rnd_len = sub + 1; - } else { - rnd_len = max_length; - } - break; - case 4: - if(sub < (ssize_t)max_length) { - rnd_len = asn_random_between(sub + 1, max_length); - } else { - rnd_len = max_length; - } - break; - case 5: - rnd_len = max_length; - break; - } - break; - } - /* Fall through */ - case 0: - rnd_len = asn_random_between(slb, sub); - break; - case 1: - if(slb < sub) { - rnd_len = asn_random_between(slb + 1, sub); - break; - } - /* Fall through */ - case 2: - rnd_len = asn_random_between(slb, slb); - break; - case 3: - if(slb < sub) { - rnd_len = asn_random_between(slb, sub - 1); - break; - } - /* Fall through */ - case 4: - rnd_len = asn_random_between(sub, sub); - break; - } - - for(; rnd_len > 0; rnd_len--) { - asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); - void *ptr = 0; - asn_random_fill_result_t tmpres = elm->type->op->random_fill( - elm->type, &ptr, &elm->encoding_constraints, - (max_length > res_ok.length ? max_length - res_ok.length : 0) - / rnd_len); - switch(tmpres.code) { - case ARFILL_OK: - ASN_SET_ADD(list, ptr); - res_ok.length += tmpres.length; - break; - case ARFILL_SKIPPED: - break; - case ARFILL_FAILED: - assert(ptr == 0); - return tmpres; - } - } - - return res_ok; -} - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_SET_OF.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_SET_OF.h deleted file mode 100644 index 7681062..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_SET_OF.h +++ /dev/null @@ -1,49 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef CONSTR_SET_OF_H -#define CONSTR_SET_OF_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct asn_SET_OF_specifics_s { - /* - * Target structure description. - */ - unsigned struct_size; /* Size of the target structure. */ - unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ - - /* XER-specific stuff */ - int as_XMLValueList; /* The member type must be encoded like this */ -} asn_SET_OF_specifics_t; - -/* - * A set specialized functions dealing with the SET OF type. - */ -asn_struct_free_f SET_OF_free; -asn_struct_print_f SET_OF_print; -asn_struct_compare_f SET_OF_compare; -asn_constr_check_f SET_OF_constraint; -ber_type_decoder_f SET_OF_decode_ber; -der_type_encoder_f SET_OF_encode_der; -xer_type_decoder_f SET_OF_decode_xer; -xer_type_encoder_f SET_OF_encode_xer; -oer_type_decoder_f SET_OF_decode_oer; -oer_type_encoder_f SET_OF_encode_oer; -per_type_decoder_f SET_OF_decode_uper; -per_type_encoder_f SET_OF_encode_uper; -per_type_decoder_f SET_OF_decode_aper; -per_type_encoder_f SET_OF_encode_aper; -asn_random_fill_f SET_OF_random_fill; -extern asn_TYPE_operation_t asn_OP_SET_OF; - -#ifdef __cplusplus -} -#endif - -#endif /* CONSTR_SET_OF_H */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_SET_OF_oer.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_SET_OF_oer.c deleted file mode 100644 index 5200518..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_SET_OF_oer.c +++ /dev/null @@ -1,285 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include -#include - -/* - * This macro "eats" the part of the buffer which is definitely "consumed", - * i.e. was correctly converted into local representation or rightfully skipped. - */ -#undef ADVANCE -#define ADVANCE(num_bytes) \ - do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#define NEXT_PHASE(ctx) \ - do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) -#undef SET_PHASE -#define SET_PHASE(ctx, value) \ - do { \ - ctx->phase = value; \ - ctx->step = 0; \ - } while(0) - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) \ - do { \ - asn_dec_rval_t rval; \ - rval.code = _code; \ - rval.consumed = consumed_myself; \ - return rval; \ - } while(0) - -/* - * The SEQUENCE OF and SET OF values utilize a "quantity field". - * It is is a pointless combination of #8.6 (length determinant, capable - * of encoding tiny and huge numbers in the shortest possible number of octets) - * and the variable sized integer. What could have been encoded by #8.6 alone - * is required to be encoded by #8.6 followed by that number of unsigned octets. - * This doesn't make too much sense. It seems that the original version of OER - * standard have been using the unconstrained unsigned integer as a quantity - * field, and this legacy have gone through ISO/ITU-T standardization process. - */ -static ssize_t -oer_fetch_quantity(const void *ptr, size_t size, size_t *qty_r) { - const uint8_t *b; - const uint8_t *bend; - size_t len = 0; - size_t qty; - - ssize_t len_len = oer_fetch_length(ptr, size, &len); - if(len_len <= 0) { - *qty_r = 0; - return len_len; - } - - if((len_len + len) > size) { - *qty_r = 0; - return 0; - } - - b = (const uint8_t *)ptr + len_len; - bend = b + len; - - /* Skip the leading 0-bytes */ - for(; b < bend && *b == 0; b++) { - } - - if((bend - b) > (ssize_t)sizeof(size_t)) { - /* Length is not representable by the native size_t type */ - *qty_r = 0; - return -1; - } - - for(qty = 0; b < bend; b++) { - qty = (qty << 8) + *b; - } - - if(qty > RSIZE_MAX) { /* A bit of C11 validation */ - *qty_r = 0; - return -1; - } - - *qty_r = qty; - assert((size_t)len_len + len == (size_t)(bend - (const uint8_t *)ptr)); - return len_len + len; -} - -asn_dec_rval_t -SET_OF_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **struct_ptr, - const void *ptr, size_t size) { - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - asn_dec_rval_t rval = {RC_OK, 0}; - void *st = *struct_ptr; /* Target structure */ - asn_struct_ctx_t *ctx; /* Decoder context */ - size_t consumed_myself = 0; /* Consumed bytes from ptr. */ - - (void)constraints; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Start to parse where left previously. - */ - switch(ctx->phase) { - case 0: { - /* - * Fetch number of elements to decode. - */ - size_t length = 0; - size_t len_size = oer_fetch_quantity(ptr, size, &length); - switch(len_size) { - case 0: - RETURN(RC_WMORE); - case -1: - RETURN(RC_FAIL); - default: - ADVANCE(len_size); - ctx->left = length; - } - } - NEXT_PHASE(ctx); - /* FALL THROUGH */ - case 1: { - /* Decode components of the extension root */ - asn_TYPE_member_t *elm = td->elements; - asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); - const void *base_ptr = ptr; - ber_tlv_len_t base_ctx_left = ctx->left; - - assert(td->elements_count == 1); - - ASN_DEBUG("OER SET OF %s Decoding PHASE 1", td->name); - - for(; ctx->left > 0; ctx->left--) { - asn_dec_rval_t rv = elm->type->op->oer_decoder( - opt_codec_ctx, elm->type, - elm->encoding_constraints.oer_constraints, &ctx->ptr, ptr, - size); - ADVANCE(rv.consumed); - switch(rv.code) { - case RC_OK: - if(ASN_SET_ADD(list, ctx->ptr) != 0) { - RETURN(RC_FAIL); - } else { - ctx->ptr = 0; - /* - * This check is to avoid compression bomb with - * specs like SEQUENCE/SET OF NULL which don't - * consume data at all. - */ - if(rv.consumed == 0 && base_ptr == ptr - && (base_ctx_left - ctx->left) > 200) { - ASN__DECODE_FAILED; - } - break; - } - case RC_WMORE: - RETURN(RC_WMORE); - case RC_FAIL: - ASN_STRUCT_FREE(*elm->type, ctx->ptr); - ctx->ptr = 0; - SET_PHASE(ctx, 3); - RETURN(RC_FAIL); - } - } - /* Decoded decently. */ - NEXT_PHASE(ctx); - } - /* Fall through */ - case 2: - /* Ignore fully decoded */ - assert(ctx->left == 0); - RETURN(RC_OK); - case 3: - /* Failed to decode. */ - RETURN(RC_FAIL); - } - - return rval; -} - -static ssize_t -oer_put_quantity(size_t qty, asn_app_consume_bytes_f *cb, void *app_key) { - uint8_t buf[1 + sizeof(size_t)]; - uint8_t *b = &buf[sizeof(size_t)]; /* Last addressable */ - size_t encoded; - - do { - *b-- = qty; - qty >>= 8; - } while(qty); - - *b = sizeof(buf) - (b-buf) - 1; - encoded = sizeof(buf) - (b-buf); - if(cb(b, encoded, app_key) < 0) - return -1; - return encoded; -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -SET_OF_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_TYPE_member_t *elm; - const asn_anonymous_set_ *list; - size_t computed_size = 0; - ssize_t qty_len; - int n; - - (void)constraints; - - if(!sptr) ASN__ENCODE_FAILED; - - elm = td->elements; - list = _A_CSET_FROM_VOID(sptr); - - qty_len = oer_put_quantity(list->count, cb, app_key); - if(qty_len < 0) { - ASN__ENCODE_FAILED; - } - computed_size += qty_len; - - for(n = 0; n < list->count; n++) { - void *memb_ptr = list->array[n]; - asn_enc_rval_t er = {0,0,0}; - er = elm->type->op->oer_encoder( - elm->type, elm->encoding_constraints.oer_constraints, memb_ptr, cb, - app_key); - if(er.encoded < 0) { - return er; - } else { - computed_size += er.encoded; - } - } - - { - asn_enc_rval_t erval = {0,0,0}; - erval.encoded = computed_size; - ASN__ENCODED_OK(erval); - } -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_TYPE.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_TYPE.c deleted file mode 100644 index aefaefd..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_TYPE.c +++ /dev/null @@ -1,80 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Version of the ASN.1 infrastructure shipped with compiler. - */ -int get_asn1c_environment_version() { return ASN1C_ENVIRONMENT_VERSION; } - -static asn_app_consume_bytes_f _print2fp; - -/* - * Return the outmost tag of the type. - */ -ber_tlv_tag_t -asn_TYPE_outmost_tag(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, int tag_mode, ber_tlv_tag_t tag) { - - if(tag_mode) - return tag; - - if(type_descriptor->tags_count) - return type_descriptor->tags[0]; - - return type_descriptor->op->outmost_tag(type_descriptor, struct_ptr, 0, 0); -} - -/* - * Print the target language's structure in human readable form. - */ -int -asn_fprint(FILE *stream, const asn_TYPE_descriptor_t *td, - const void *struct_ptr) { - if(!stream) stream = stdout; - if(!td || !struct_ptr) { - errno = EINVAL; - return -1; - } - - /* Invoke type-specific printer */ - if(td->op->print_struct(td, struct_ptr, 1, _print2fp, stream)) { - return -1; - } - - /* Terminate the output */ - if(_print2fp("\n", 1, stream)) { - return -1; - } - - return fflush(stream); -} - -/* Dump the data into the specified stdio stream */ -static int -_print2fp(const void *buffer, size_t size, void *app_key) { - FILE *stream = (FILE *)app_key; - - if(fwrite(buffer, 1, size, stream) != size) - return -1; - - return 0; -} - - -/* - * Some compilers do not support variable args macros. - * This function is a replacement of ASN_DEBUG() macro. - */ -void ASN_DEBUG_f(const char *fmt, ...); -void ASN_DEBUG_f(const char *fmt, ...) { - va_list ap; - va_start(ap, fmt); - vfprintf(stderr, fmt, ap); - fprintf(stderr, "\n"); - va_end(ap); -} diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_TYPE.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_TYPE.h deleted file mode 100644 index d80dea5..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constr_TYPE.h +++ /dev/null @@ -1,262 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * This file contains the declaration structure called "ASN.1 Type Definition", - * which holds all information necessary for encoding and decoding routines. - * This structure even contains pointer to these encoding and decoding routines - * for each defined ASN.1 type. - */ -#ifndef _CONSTR_TYPE_H_ -#define _CONSTR_TYPE_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ -struct asn_TYPE_member_s; /* Forward declaration */ - -/* - * This type provides the context information for various ASN.1 routines, - * primarily ones doing decoding. A member _asn_ctx of this type must be - * included into certain target language's structures, such as compound types. - */ -typedef struct asn_struct_ctx_s { - short phase; /* Decoding phase */ - short step; /* Elementary step of a phase */ - int context; /* Other context information */ - void *ptr; /* Decoder-specific stuff (stack elements) */ - ber_tlv_len_t left; /* Number of bytes left, -1 for indefinite */ -} asn_struct_ctx_t; - -#include /* Basic Encoding Rules decoder */ -#include /* Distinguished Encoding Rules encoder */ -#include /* Decoder of XER (XML, text) */ -#include /* Encoder into XER (XML, text) */ -#include /* Packet Encoding Rules decoder */ -#include /* Packet Encoding Rules encoder */ -#include /* Subtype constraints support */ -#include /* Random structures support */ - -#ifdef ASN_DISABLE_OER_SUPPORT -typedef void (oer_type_decoder_f)(void); -typedef void (oer_type_encoder_f)(void); -typedef void asn_oer_constraints_t; -#else -#include /* Octet Encoding Rules encoder */ -#include /* Octet Encoding Rules encoder */ -#endif - -/* - * Free the structure according to its specification. - * Use one of ASN_STRUCT_{FREE,RESET,CONTENTS_ONLY} macros instead. - * Do not use directly. - */ -enum asn_struct_free_method { - ASFM_FREE_EVERYTHING, /* free(struct_ptr) and underlying members */ - ASFM_FREE_UNDERLYING, /* free underlying members */ - ASFM_FREE_UNDERLYING_AND_RESET /* FREE_UNDERLYING + memset(0) */ -}; -typedef void (asn_struct_free_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - void *struct_ptr, enum asn_struct_free_method); - -/* - * Free the structure including freeing the memory pointed to by ptr itself. - */ -#define ASN_STRUCT_FREE(asn_DEF, ptr) \ - (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_EVERYTHING) - -/* - * Free the memory used by the members of the structure without freeing the - * the structure pointer itself. - * ZERO-OUT the structure to the safe clean state. - * (Retaining the pointer may be useful in case the structure is allocated - * statically or arranged on the stack, yet its elements are dynamic.) - */ -#define ASN_STRUCT_RESET(asn_DEF, ptr) \ - (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_UNDERLYING_AND_RESET) - -/* - * Free memory used by the members of the structure without freeing - * the structure pointer itself. - * (Retaining the pointer may be useful in case the structure is allocated - * statically or arranged on the stack, yet its elements are dynamic.) - * AVOID using it in the application code; - * Use a safer ASN_STRUCT_RESET() instead. - */ -#define ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF, ptr) \ - (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_UNDERLYING) - -/* - * Print the structure according to its specification. - */ -typedef int(asn_struct_print_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, - int level, /* Indentation level */ - asn_app_consume_bytes_f *callback, void *app_key); - -/* - * Compare two structs between each other. - * Returns <0 if struct_A is "smaller" than struct_B, >0 if "greater", - * and =0 if "equal to", for some type-specific, stable definition of - * "smaller", "greater" and "equal to". - */ -typedef int (asn_struct_compare_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_A, - const void *struct_B); - -/* - * Return the outmost tag of the type. - * If the type is untagged CHOICE, the dynamic operation is performed. - * NOTE: This function pointer type is only useful internally. - * Do not use it in your application. - */ -typedef ber_tlv_tag_t (asn_outmost_tag_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, int tag_mode, ber_tlv_tag_t tag); -/* The instance of the above function type; used internally. */ -asn_outmost_tag_f asn_TYPE_outmost_tag; - -/* - * Fetch the desired type of the Open Type based on the - * Information Object Set driven constraints. - */ -typedef struct asn_type_selector_result_s { - const struct asn_TYPE_descriptor_s *type_descriptor; /* Type encoded. */ - unsigned presence_index; /* Associated choice variant. */ -} asn_type_selector_result_t; -typedef asn_type_selector_result_t(asn_type_selector_f)( - const struct asn_TYPE_descriptor_s *parent_type_descriptor, - const void *parent_structure_ptr); - -/* - * Generalized functions for dealing with the speciic type. - * May be directly invoked by applications. - */ -typedef struct asn_TYPE_operation_s { - asn_struct_free_f *free_struct; /* Free the structure */ - asn_struct_print_f *print_struct; /* Human readable output */ - asn_struct_compare_f *compare_struct; /* Compare two structures */ - ber_type_decoder_f *ber_decoder; /* Generic BER decoder */ - der_type_encoder_f *der_encoder; /* Canonical DER encoder */ - xer_type_decoder_f *xer_decoder; /* Generic XER decoder */ - xer_type_encoder_f *xer_encoder; /* [Canonical] XER encoder */ - oer_type_decoder_f *oer_decoder; /* Generic OER decoder */ - oer_type_encoder_f *oer_encoder; /* Canonical OER encoder */ - per_type_decoder_f *uper_decoder; /* Unaligned PER decoder */ - per_type_encoder_f *uper_encoder; /* Unaligned PER encoder */ - per_type_decoder_f *aper_decoder; /* Aligned PER decoder */ - per_type_encoder_f *aper_encoder; /* Aligned PER encoder */ - asn_random_fill_f *random_fill; /* Initialize with a random value */ - asn_outmost_tag_f *outmost_tag; /* */ -} asn_TYPE_operation_t; - -/* - * A constraints tuple specifying both the OER and PER constraints. - */ -typedef struct asn_encoding_constraints_s { - const struct asn_oer_constraints_s *oer_constraints; - const struct asn_per_constraints_s *per_constraints; - asn_constr_check_f *general_constraints; -} asn_encoding_constraints_t; - -/* - * The definitive description of the destination language's structure. - */ -typedef struct asn_TYPE_descriptor_s { - const char *name; /* A name of the ASN.1 type. "" in some cases. */ - const char *xml_tag; /* Name used in XML tag */ - - /* - * Generalized functions for dealing with the specific type. - * May be directly invoked by applications. - */ - asn_TYPE_operation_t *op; - - /*********************************************************************** - * Internally useful members. Not to be used by applications directly. * - **********************************************************************/ - - /* - * Tags that are expected to occur. - */ - const ber_tlv_tag_t *tags; /* Effective tags sequence for this type */ - unsigned tags_count; /* Number of tags which are expected */ - const ber_tlv_tag_t *all_tags; /* Every tag for BER/containment */ - unsigned all_tags_count; /* Number of tags */ - - /* OER, PER, and general constraints */ - asn_encoding_constraints_t encoding_constraints; - - /* - * An ASN.1 production type members (members of SEQUENCE, SET, CHOICE). - */ - struct asn_TYPE_member_s *elements; - unsigned elements_count; - - /* - * Additional information describing the type, used by appropriate - * functions above. - */ - const void *specifics; -} asn_TYPE_descriptor_t; - -/* - * This type describes an element of the constructed type, - * i.e. SEQUENCE, SET, CHOICE, etc. - */ - enum asn_TYPE_flags_e { - ATF_NOFLAGS, - ATF_POINTER = 0x01, /* Represented by the pointer */ - ATF_OPEN_TYPE = 0x02, /* Open Type */ - ATF_ANY_TYPE = 0x04 /* ANY type (deprecated!) */ - }; -typedef struct asn_TYPE_member_s { - enum asn_TYPE_flags_e flags; /* Element's presentation flags */ - unsigned optional; /* Following optional members, including current */ - unsigned memb_offset; /* Offset of the element */ - ber_tlv_tag_t tag; /* Outmost (most immediate) tag */ - int tag_mode; /* IMPLICIT/no/EXPLICIT tag at current level */ - asn_TYPE_descriptor_t *type; /* Member type descriptor */ - asn_type_selector_f *type_selector; /* IoS runtime type selector */ - asn_encoding_constraints_t encoding_constraints; - int (*default_value_cmp)(const void *sptr); /* Compare DEFAULT */ - int (*default_value_set)(void **sptr); /* Set DEFAULT */ - const char *name; /* ASN.1 identifier of the element */ -} asn_TYPE_member_t; - -/* - * BER tag to element number mapping. - */ -typedef struct asn_TYPE_tag2member_s { - ber_tlv_tag_t el_tag; /* Outmost tag of the member */ - unsigned el_no; /* Index of the associated member, base 0 */ - int toff_first; /* First occurence of the el_tag, relative */ - int toff_last; /* Last occurence of the el_tag, relative */ -} asn_TYPE_tag2member_t; - -/* - * This function prints out the contents of the target language's structure - * (struct_ptr) into the file pointer (stream) in human readable form. - * RETURN VALUES: - * 0: The structure is printed. - * -1: Problem dumping the structure. - * (See also xer_fprint() in xer_encoder.h) - */ -int asn_fprint(FILE *stream, /* Destination stream descriptor */ - const asn_TYPE_descriptor_t *td, /* ASN.1 type descriptor */ - const void *struct_ptr); /* Structure to be printed */ - -#ifdef __cplusplus -} -#endif - -#endif /* _CONSTR_TYPE_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constraints.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constraints.c deleted file mode 100644 index df3c6c1..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constraints.c +++ /dev/null @@ -1,93 +0,0 @@ -#include -#include - -int -asn_generic_no_constraint(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, - asn_app_constraint_failed_f *cb, void *key) { - (void)type_descriptor; /* Unused argument */ - (void)struct_ptr; /* Unused argument */ - (void)cb; /* Unused argument */ - (void)key; /* Unused argument */ - - /* Nothing to check */ - return 0; -} - -int -asn_generic_unknown_constraint(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, - asn_app_constraint_failed_f *cb, void *key) { - (void)type_descriptor; /* Unused argument */ - (void)struct_ptr; /* Unused argument */ - (void)cb; /* Unused argument */ - (void)key; /* Unused argument */ - - /* Unknown how to check */ - return 0; -} - -struct errbufDesc { - const asn_TYPE_descriptor_t *failed_type; - const void *failed_struct_ptr; - char *errbuf; - size_t errlen; -}; - -static void -_asn_i_ctfailcb(void *key, const asn_TYPE_descriptor_t *td, const void *sptr, - const char *fmt, ...) { - struct errbufDesc *arg = key; - va_list ap; - ssize_t vlen; - ssize_t maxlen; - - arg->failed_type = td; - arg->failed_struct_ptr = sptr; - - maxlen = arg->errlen; - if(maxlen <= 0) - return; - - va_start(ap, fmt); - vlen = vsnprintf(arg->errbuf, maxlen, fmt, ap); - va_end(ap); - if(vlen >= maxlen) { - arg->errbuf[maxlen-1] = '\0'; /* Ensuring libc correctness */ - arg->errlen = maxlen - 1; /* Not counting termination */ - return; - } else if(vlen >= 0) { - arg->errbuf[vlen] = '\0'; /* Ensuring libc correctness */ - arg->errlen = vlen; /* Not counting termination */ - } else { - /* - * The libc on this system is broken. - */ - vlen = sizeof("") - 1; - maxlen--; - arg->errlen = vlen < maxlen ? vlen : maxlen; - memcpy(arg->errbuf, "", arg->errlen); - arg->errbuf[arg->errlen] = 0; - } - - return; -} - -int -asn_check_constraints(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, char *errbuf, size_t *errlen) { - struct errbufDesc arg; - int ret; - - arg.failed_type = 0; - arg.failed_struct_ptr = 0; - arg.errbuf = errbuf; - arg.errlen = errlen ? *errlen : 0; - - ret = type_descriptor->encoding_constraints.general_constraints( - type_descriptor, struct_ptr, _asn_i_ctfailcb, &arg); - if(ret == -1 && errlen) *errlen = arg.errlen; - - return ret; -} - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constraints.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constraints.h deleted file mode 100644 index 0bd86a9..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/constraints.h +++ /dev/null @@ -1,62 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN1_CONSTRAINTS_VALIDATOR_H -#define ASN1_CONSTRAINTS_VALIDATOR_H - -#include /* Platform-dependent types */ - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * Validate the structure according to the ASN.1 constraints. - * If errbuf and errlen are given, they shall be pointing to the appropriate - * buffer space and its length before calling this function. Alternatively, - * they could be passed as NULL's. If constraints validation fails, - * errlen will contain the actual number of bytes taken from the errbuf - * to encode an error message (properly 0-terminated). - * - * RETURN VALUES: - * This function returns 0 in case all ASN.1 constraints are met - * and -1 if one or more constraints were failed. - */ -int asn_check_constraints( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Target language's structure */ - char *errbuf, /* Returned error description */ - size_t *errlen /* Length of the error description */ -); - - -/* - * Generic type for constraint checking callback, - * associated with every type descriptor. - */ -typedef int(asn_constr_check_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, const void *struct_ptr, - asn_app_constraint_failed_f *optional_callback, /* Log the error */ - void *optional_app_key /* Opaque key passed to a callback */ -); - -/******************************* - * INTERNALLY USEFUL FUNCTIONS * - *******************************/ - -asn_constr_check_f asn_generic_no_constraint; /* No constraint whatsoever */ -asn_constr_check_f asn_generic_unknown_constraint; /* Not fully supported */ - -/* - * Invoke the callback with a complete error message. - */ -#define ASN__CTFAIL if(ctfailcb) ctfailcb - -#ifdef __cplusplus -} -#endif - -#endif /* ASN1_CONSTRAINTS_VALIDATOR_H */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/converter-example.mk b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/converter-example.mk deleted file mode 100644 index 0109476..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/converter-example.mk +++ /dev/null @@ -1,33 +0,0 @@ -include Makefile.am.libasncodec - -LIBS += -lm -CFLAGS += $(ASN_MODULE_CFLAGS) -DASN_PDU_COLLECTION -I. -ASN_LIBRARY ?= libasncodec.a -ASN_PROGRAM ?= converter-example -ASN_PROGRAM_SRCS ?= \ - converter-example.c\ - pdu_collection.c - -all: $(ASN_PROGRAM) - -$(ASN_PROGRAM): $(ASN_LIBRARY) $(ASN_PROGRAM_SRCS:.c=.o) - $(CC) $(CFLAGS) $(CPPFLAGS) -o $(ASN_PROGRAM) $(ASN_PROGRAM_SRCS:.c=.o) $(LDFLAGS) $(ASN_LIBRARY) $(LIBS) - -$(ASN_LIBRARY): $(ASN_MODULE_SRCS:.c=.o) - $(AR) rcs $@ $(ASN_MODULE_SRCS:.c=.o) - -.SUFFIXES: -.SUFFIXES: .c .o - -.c.o: - $(CC) $(CFLAGS) -o $@ -c $< - -clean: - rm -f $(ASN_PROGRAM) $(ASN_LIBRARY) - rm -f $(ASN_MODULE_SRCS:.c=.o) $(ASN_PROGRAM_SRCS:.c=.o) - -regen: regenerate-from-asn1-source - -regenerate-from-asn1-source: - asn1c -fcompound-names /home/rshacham/e2sm-kpm-v01.02.asn - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/oer_decoder.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/oer_decoder.c deleted file mode 100644 index 0701738..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/oer_decoder.c +++ /dev/null @@ -1,152 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -/* - * The OER decoder of any type. - */ -asn_dec_rval_t -oer_decode(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, - const void *ptr, size_t size) { - asn_codec_ctx_t s_codec_ctx; - - /* - * Stack checker requires that the codec context - * must be allocated on the stack. - */ - if(opt_codec_ctx) { - if(opt_codec_ctx->max_stack_size) { - s_codec_ctx = *opt_codec_ctx; - opt_codec_ctx = &s_codec_ctx; - } - } else { - /* If context is not given, be security-conscious anyway */ - memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); - s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; - opt_codec_ctx = &s_codec_ctx; - } - - /* - * Invoke type-specific decoder. - */ - return type_descriptor->op->oer_decoder(opt_codec_ctx, type_descriptor, 0, - struct_ptr, /* Pointer to the destination structure */ - ptr, size /* Buffer and its size */ - ); -} - -/* - * Open Type is encoded as a length (#8.6) followed by that number of bytes. - * Since we're just skipping, reading the length would be enough. - */ -ssize_t -oer_open_type_skip(const void *bufptr, size_t size) { - size_t len = 0; - return oer_fetch_length(bufptr, size, &len); -} - -/* - * Read the Open Type (X.696 (08/2015), #30). - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering length. - * >0: Number of bytes used from bufptr. - */ -ssize_t -oer_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *td, - const asn_oer_constraints_t *constraints, void **struct_ptr, - const void *bufptr, size_t size) { - asn_dec_rval_t dr; - size_t container_len = 0; - ssize_t len_len; - enum asn_struct_free_method dispose_method = - (*struct_ptr) ? ASFM_FREE_UNDERLYING_AND_RESET : ASFM_FREE_EVERYTHING; - - /* Get the size of a length determinant */ - len_len = oer_fetch_length(bufptr, size, &container_len); - if(len_len <= 0) { - return len_len; /* Error or more data expected */ - } - - /* - * len_len can't be bigger than size, but size without len_len - * should be bigger or equal to container length - */ - if(size - len_len < container_len) { - /* More data is expected */ - return 0; - } - - dr = td->op->oer_decoder(opt_codec_ctx, td, constraints, struct_ptr, - (const uint8_t *)bufptr + len_len, container_len); - if(dr.code == RC_OK) { - return len_len + container_len; - } else { - /* Even if RC_WMORE, we can't get more data into a closed container. */ - td->op->free_struct(td, *struct_ptr, dispose_method); - *struct_ptr = NULL; - return -1; - } -} - - -asn_dec_rval_t -oer_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **sptr, - const void *ptr, size_t size) { - ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)*sptr; - asn_dec_rval_t rval = {RC_OK, 0}; - size_t expected_length = 0; - ssize_t len_len; - - (void)td; - (void)opt_codec_ctx; - (void)constraints; - - if(!st) { - st = (ASN__PRIMITIVE_TYPE_t *)(*sptr = CALLOC( - 1, sizeof(ASN__PRIMITIVE_TYPE_t))); - if(!st) ASN__DECODE_FAILED; - } - - - /* - * X.696 (08/2015) #27.2 - * Encode length determinant as _number of octets_, but only - * if upper bound is not equal to lower bound. - */ - len_len = oer_fetch_length(ptr, size, &expected_length); - if(len_len > 0) { - rval.consumed = len_len; - ptr = (const char *)ptr + len_len; - size -= len_len; - } else if(len_len == 0) { - ASN__DECODE_STARVED; - } else if(len_len < 0) { - ASN__DECODE_FAILED; - } - - if(size < expected_length) { - ASN__DECODE_STARVED; - } else { - uint8_t *buf = MALLOC(expected_length + 1); - if(buf == NULL) { - ASN__DECODE_FAILED; - } else { - memcpy(buf, ptr, expected_length); - buf[expected_length] = '\0'; - } - FREEMEM(st->buf); - st->buf = buf; - st->size = expected_length; - - rval.consumed += expected_length; - return rval; - } -} diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/oer_decoder.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/oer_decoder.h deleted file mode 100644 index 40992e9..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/oer_decoder.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef OER_DECODER_H -#define OER_DECODER_H - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ -struct asn_codec_ctx_s; /* Forward declaration */ - -/* - * The Octet Encoding Rules (OER, X.696 08/2015) decoder for any given type. - * This function may be invoked directly by the application. - * Parses CANONICAL-OER and BASIC-OER. - */ -asn_dec_rval_t oer_decode(const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of that buffer */ - ); - -/* - * Type of generic function which decodes the byte stream into the structure. - */ -typedef asn_dec_rval_t(oer_type_decoder_f)( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_oer_constraints_t *constraints, - void **struct_ptr, - const void *buf_ptr, - size_t size); - -/* - * Swallow the Open Type (X.696 (08/2015), #30) into /dev/null. - * RETURN VALUES: - * -1: Fatal error deciphering length. - * 0: More data expected than bufptr contains. - * >0: Number of bytes used from bufptr. - */ -ssize_t oer_open_type_skip(const void *bufptr, size_t size); - -/* - * Read the Open Type (X.696 (08/2015), #30). - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering length. - * >0: Number of bytes used from bufptr. - */ -ssize_t oer_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *td, - const asn_oer_constraints_t *constraints, - void **struct_ptr, const void *bufptr, size_t size); - -/* - * Length-prefixed buffer decoding for primitive types. - */ -oer_type_decoder_f oer_decode_primitive; - - -#ifdef __cplusplus -} -#endif - -#endif /* OER_DECODER_H */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/oer_encoder.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/oer_encoder.c deleted file mode 100644 index a284cc2..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/oer_encoder.c +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -/* - * The OER encoder of any type. - */ -asn_enc_rval_t -oer_encode(const asn_TYPE_descriptor_t *type_descriptor, const void *struct_ptr, - asn_app_consume_bytes_f *consume_bytes, void *app_key) { - ASN_DEBUG("OER encoder invoked for %s", type_descriptor->name); - - /* - * Invoke type-specific encoder. - */ - return type_descriptor->op->oer_encoder( - type_descriptor, 0, - struct_ptr, /* Pointer to the destination structure */ - consume_bytes, app_key); -} - -/* - * Argument type and callback necessary for oer_encode_to_buffer(). - */ -typedef struct enc_to_buf_arg { - void *buffer; - size_t left; -} enc_to_buf_arg; -static int -encode_to_buffer_cb(const void *buffer, size_t size, void *key) { - enc_to_buf_arg *arg = (enc_to_buf_arg *)key; - - if(arg->left < size) return -1; /* Data exceeds the available buffer size */ - - memcpy(arg->buffer, buffer, size); - arg->buffer = ((char *)arg->buffer) + size; - arg->left -= size; - - return 0; -} - -/* - * A variant of the oer_encode() which encodes the data into the provided buffer - */ -asn_enc_rval_t -oer_encode_to_buffer(const asn_TYPE_descriptor_t *type_descriptor, - const asn_oer_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - void *buffer, /* Pre-allocated buffer */ - size_t buffer_size /* Initial buffer size (maximum) */ -) { - enc_to_buf_arg arg; - asn_enc_rval_t ec; - - arg.buffer = buffer; - arg.left = buffer_size; - - if(type_descriptor->op->oer_encoder == NULL) { - ec.encoded = -1; - ec.failed_type = type_descriptor; - ec.structure_ptr = struct_ptr; - ASN_DEBUG("OER encoder is not defined for %s", - type_descriptor->name); - } else { - ec = type_descriptor->op->oer_encoder( - type_descriptor, constraints, - struct_ptr, /* Pointer to the destination structure */ - encode_to_buffer_cb, &arg); - if(ec.encoded != -1) { - assert(ec.encoded == (ssize_t)(buffer_size - arg.left)); - /* Return the encoded contents size */ - } - } - return ec; -} - -asn_enc_rval_t -oer_encode_primitive(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - const ASN__PRIMITIVE_TYPE_t *st = (const ASN__PRIMITIVE_TYPE_t *)sptr; - asn_enc_rval_t er = {0, 0, 0}; - ssize_t ret; - - (void)constraints; - - if(!st) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %s (%" ASN_PRI_SIZE " bytes)", td ? td->name : "", st->size); - - /* - * X.696 (08/2015) #27.2 - */ - ret = oer_serialize_length(st->size, cb, app_key); - if(ret < 0) { - ASN__ENCODE_FAILED; - } - er.encoded += ret; - - er.encoded += st->size; - if(cb(st->buf, st->size, app_key) < 0) { - ASN__ENCODE_FAILED; - } else { - ASN__ENCODED_OK(er); - } -} - -static int -oer__count_bytes(const void *buffer, size_t size, void *bytes_ptr) { - size_t *bytes = bytes_ptr; - (void)buffer; - *bytes += size; - return 0; -} - -ssize_t -oer_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - size_t serialized_byte_count = 0; - asn_enc_rval_t er = {0,0,0}; - ssize_t len_len; - - er = td->op->oer_encoder(td, constraints, sptr, oer__count_bytes, - &serialized_byte_count); - if(er.encoded < 0) return -1; - assert(serialized_byte_count == (size_t)er.encoded); - - len_len = oer_serialize_length(serialized_byte_count, cb, app_key); - if(len_len == -1) return -1; - - er = td->op->oer_encoder(td, constraints, sptr, cb, app_key); - if(er.encoded < 0) return -1; - assert(serialized_byte_count == (size_t)er.encoded); - - return len_len + er.encoded; -} - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/oer_encoder.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/oer_encoder.h deleted file mode 100644 index 6a7b681..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/oer_encoder.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef OER_ENCODER_H -#define OER_ENCODER_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * The Octet Encoding Rules (OER, X.696 08/2015) encoder for any type. - * This function may be invoked directly by the application. - * Produces CANONICAL-OER output compatible with CANONICAL-OER - * and BASIC-OER decoders. - */ -asn_enc_rval_t oer_encode(const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - asn_app_consume_bytes_f *consume_bytes_cb, - void *app_key /* Arbitrary callback argument */ -); - -/* A variant of oer_encode() which encodes data into the pre-allocated buffer */ -asn_enc_rval_t oer_encode_to_buffer( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_oer_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - void *buffer, /* Pre-allocated buffer */ - size_t buffer_size /* Initial buffer size (maximum) */ -); - -/* - * Type of the generic OER encoder. - */ -typedef asn_enc_rval_t(oer_type_encoder_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_oer_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */ - void *app_key /* Arbitrary callback argument */ -); - -/* - * Write out the Open Type (X.696 (08/2015), #30). - * RETURN VALUES: - * -1: Fatal error encoding the type. - * >0: Number of bytes serialized. - */ -ssize_t oer_open_type_put(const struct asn_TYPE_descriptor_s *td, - const asn_oer_constraints_t *constraints, - const void *struct_ptr, - asn_app_consume_bytes_f *consume_bytes_cb, - void *app_key); - - -/* - * Length-prefixed buffer encoding for primitive types. - */ -oer_type_encoder_f oer_encode_primitive; - -#ifdef __cplusplus -} -#endif - -#endif /* OER_ENCODER_H */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/oer_support.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/oer_support.c deleted file mode 100644 index b15a3bc..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/oer_support.c +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -#include - -/* - * Fetch the length determinant (X.696 08/2015, #8.6) into *len_r. - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering length. - * >0: Number of bytes used from bufptr. - */ -ssize_t -oer_fetch_length(const void *bufptr, size_t size, size_t *len_r) { - uint8_t first_byte; - size_t len_len; /* Length of the length determinant */ - const uint8_t *b; - const uint8_t *bend; - size_t len; - - if(size == 0) { - *len_r = 0; - return 0; - } - - first_byte = *(const uint8_t *)bufptr; - if((first_byte & 0x80) == 0) { /* Short form */ - *len_r = first_byte; /* 0..127 */ - return 1; - } - - len_len = (first_byte & 0x7f); - if((1 + len_len) > size) { - *len_r = 0; - return 0; - } - - b = (const uint8_t *)bufptr + 1; - bend = b + len_len; - - for(; b < bend && *b == 0; b++) { - /* Skip the leading 0-bytes */ - } - - if((bend - b) > (ssize_t)sizeof(size_t)) { - /* Length is not representable by the native size_t type */ - *len_r = 0; - return -1; - } - - for(len = 0; b < bend; b++) { - len = (len << 8) + *b; - } - - if(len > RSIZE_MAX) { /* A bit of C11 validation */ - *len_r = 0; - return -1; - } - - *len_r = len; - assert(len_len + 1 == (size_t)(bend - (const uint8_t *)bufptr)); - return len_len + 1; -} - - -/* - * Serialize OER length. Returns the number of bytes serialized - * or -1 if a given callback returned with negative result. - */ -ssize_t -oer_serialize_length(size_t length, asn_app_consume_bytes_f *cb, - void *app_key) { - uint8_t scratch[1 + sizeof(length)]; - uint8_t *sp = scratch; - int littleEndian = 1; /* Run-time detection */ - const uint8_t *pstart; - const uint8_t *pend; - const uint8_t *p; - int add; - - if(length <= 127) { - uint8_t b = length; - if(cb(&b, 1, app_key) < 0) { - return -1; - } - return 1; - } - - if(*(char *)&littleEndian) { - pstart = (const uint8_t *)&length + sizeof(length) - 1; - pend = (const uint8_t *)&length; - add = -1; - } else { - pstart = (const uint8_t *)&length; - pend = pstart + sizeof(length); - add = 1; - } - - for(p = pstart; p != pend; p += add) { - /* Skip leading zeros. */ - if(*p) break; - } - - for(sp = scratch + 1; ; p += add) { - *sp++ = *p; - if(p == pend) break; - } - assert((sp - scratch) - 1 <= 0x7f); - scratch[0] = 0x80 + ((sp - scratch) - 1); - - if(cb(scratch, sp - scratch, app_key) < 0) { - return -1; - } - - return sp - scratch; -} - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/oer_support.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/oer_support.h deleted file mode 100644 index dbc9b5f..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/oer_support.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef OER_SUPPORT_H -#define OER_SUPPORT_H - -#include /* Platform-specific types */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Pre-computed OER constraints. - */ -typedef struct asn_oer_constraint_number_s { - unsigned width; /* ±8,4,2,1 fixed bytes */ - unsigned positive; /* 1 for unsigned number, 0 for signed */ -} asn_oer_constraint_number_t; -typedef struct asn_oer_constraints_s { - asn_oer_constraint_number_t value; - ssize_t size; /* -1 (no constraint) or >= 0 */ -} asn_oer_constraints_t; - - -/* - * Fetch the length determinant (X.696 (08/2015), #8.6) into *len_r. - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering length. - * >0: Number of bytes used from bufptr. - */ -ssize_t oer_fetch_length(const void *bufptr, size_t size, size_t *len_r); - -/* - * Serialize OER length. Returns the number of bytes serialized - * or -1 if a given callback returned with negative result. - */ -ssize_t oer_serialize_length(size_t length, asn_app_consume_bytes_f *cb, void *app_key); - - -#ifdef __cplusplus -} -#endif - -#endif /* OER_SUPPORT_H */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/pdu_collection.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/pdu_collection.c deleted file mode 100644 index 0d559a4..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/pdu_collection.c +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - */ - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_KPM_EventTriggerDefinition; -extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_KPM_ActionDefinition; -extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_KPM_IndicationHeader; -extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_KPM_IndicationMessage; -extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_KPM_RANfunction_Description; -extern struct asn_TYPE_descriptor_s asn_DEF_RANcallProcess_ID_string; - - -struct asn_TYPE_descriptor_s *asn_pdu_collection[] = { - /* From module E2SM-KPM-IEs in /home/rshacham/e2sm-kpm-v01.02.asn */ - &asn_DEF_E2SM_KPM_EventTriggerDefinition, - &asn_DEF_E2SM_KPM_ActionDefinition, - &asn_DEF_E2SM_KPM_IndicationHeader, - &asn_DEF_E2SM_KPM_IndicationMessage, - &asn_DEF_E2SM_KPM_RANfunction_Description, - &asn_DEF_RANcallProcess_ID_string, - 0 -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/per_decoder.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/per_decoder.c deleted file mode 100644 index 8a3e39d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/per_decoder.c +++ /dev/null @@ -1,185 +0,0 @@ -#include -#include -#include - -/* - * Decode a "Production of a complete encoding", X.691#10.1. - * The complete encoding contains at least one byte, and is an integral - * multiple of 8 bytes. - */ -asn_dec_rval_t -uper_decode_complete(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const void *buffer, size_t size) { - asn_dec_rval_t rval; - - rval = uper_decode(opt_codec_ctx, td, sptr, buffer, size, 0, 0); - if(rval.consumed) { - /* - * We've always given 8-aligned data, - * so convert bits to integral bytes. - */ - rval.consumed += 7; - rval.consumed >>= 3; - } else if(rval.code == RC_OK) { - if(size) { - if(((const uint8_t *)buffer)[0] == 0) { - rval.consumed = 1; /* 1 byte */ - } else { - ASN_DEBUG("Expecting single zeroed byte"); - rval.code = RC_FAIL; - } - } else { - /* Must contain at least 8 bits. */ - rval.code = RC_WMORE; - } - } - - return rval; -} - -asn_dec_rval_t -uper_decode(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, const void *buffer, - size_t size, int skip_bits, int unused_bits) { - asn_codec_ctx_t s_codec_ctx; - asn_dec_rval_t rval; - asn_per_data_t pd; - - if(skip_bits < 0 || skip_bits > 7 - || unused_bits < 0 || unused_bits > 7 - || (unused_bits > 0 && !size)) - ASN__DECODE_FAILED; - - /* - * Stack checker requires that the codec context - * must be allocated on the stack. - */ - if(opt_codec_ctx) { - if(opt_codec_ctx->max_stack_size) { - s_codec_ctx = *opt_codec_ctx; - opt_codec_ctx = &s_codec_ctx; - } - } else { - /* If context is not given, be security-conscious anyway */ - memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); - s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; - opt_codec_ctx = &s_codec_ctx; - } - - /* Fill in the position indicator */ - memset(&pd, 0, sizeof(pd)); - pd.buffer = (const uint8_t *)buffer; - pd.nboff = skip_bits; - pd.nbits = 8 * size - unused_bits; /* 8 is CHAR_BIT from */ - if(pd.nboff > pd.nbits) - ASN__DECODE_FAILED; - - /* - * Invoke type-specific decoder. - */ - if(!td->op->uper_decoder) - ASN__DECODE_FAILED; /* PER is not compiled in */ - rval = td->op->uper_decoder(opt_codec_ctx, td, 0, sptr, &pd); - if(rval.code == RC_OK) { - /* Return the number of consumed bits */ - rval.consumed = ((pd.buffer - (const uint8_t *)buffer) << 3) - + pd.nboff - skip_bits; - ASN_DEBUG("PER decoding consumed %ld, counted %ld", - (long)rval.consumed, (long)pd.moved); - assert(rval.consumed == pd.moved); - } else { - /* PER codec is not a restartable */ - rval.consumed = 0; - } - return rval; -} - -asn_dec_rval_t -aper_decode_complete(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const void *buffer, size_t size) { - asn_dec_rval_t rval; - - rval = aper_decode(opt_codec_ctx, td, sptr, buffer, size, 0, 0); - if(rval.consumed) { - /* - * We've always given 8-aligned data, - * so convert bits to integral bytes. - */ - rval.consumed += 7; - rval.consumed >>= 3; - } else if(rval.code == RC_OK) { - if(size) { - if(((const uint8_t *)buffer)[0] == 0) { - rval.consumed = 1; /* 1 byte */ - } else { - ASN_DEBUG("Expecting single zeroed byte"); - rval.code = RC_FAIL; - } - } else { - /* Must contain at least 8 bits. */ - rval.code = RC_WMORE; - } - } - - return rval; -} - -asn_dec_rval_t -aper_decode(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, const void *buffer, - size_t size, int skip_bits, int unused_bits) { - asn_codec_ctx_t s_codec_ctx; - asn_dec_rval_t rval; - asn_per_data_t pd; - - if(skip_bits < 0 || skip_bits > 7 - || unused_bits < 0 || unused_bits > 7 - || (unused_bits > 0 && !size)) - ASN__DECODE_FAILED; - - /* - * Stack checker requires that the codec context - * must be allocated on the stack. - */ - if(opt_codec_ctx) { - if(opt_codec_ctx->max_stack_size) { - s_codec_ctx = *opt_codec_ctx; - opt_codec_ctx = &s_codec_ctx; - } - } else { - /* If context is not given, be security-conscious anyway */ - memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); - s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; - opt_codec_ctx = &s_codec_ctx; - } - - /* Fill in the position indicator */ - memset(&pd, 0, sizeof(pd)); - pd.buffer = (const uint8_t *)buffer; - pd.nboff = skip_bits; - pd.nbits = 8 * size - unused_bits; /* 8 is CHAR_BIT from */ - if(pd.nboff > pd.nbits) - ASN__DECODE_FAILED; - - /* - * Invoke type-specific decoder. - */ - if(!td->op->aper_decoder) - ASN__DECODE_FAILED; /* PER is not compiled in */ - rval = td->op->aper_decoder(opt_codec_ctx, td, 0, sptr, &pd); - if(rval.code == RC_OK) { - /* Return the number of consumed bits */ - rval.consumed = ((pd.buffer - (const uint8_t *)buffer) << 3) - + pd.nboff - skip_bits; - ASN_DEBUG("PER decoding consumed %zu, counted %zu", - rval.consumed, pd.moved); - assert(rval.consumed == pd.moved); - } else { - /* PER codec is not a restartable */ - rval.consumed = 0; - } - return rval; -} - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/per_decoder.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/per_decoder.h deleted file mode 100644 index eea474a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/per_decoder.h +++ /dev/null @@ -1,82 +0,0 @@ -/*- - * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _PER_DECODER_H_ -#define _PER_DECODER_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * Unaligned PER decoder of a "complete encoding" as per X.691 (08/2015) #11.1. - * On success, this call always returns (.consumed >= 1), as per #11.1.3. - */ -asn_dec_rval_t uper_decode_complete( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of data buffer */ -); - -/* - * Unaligned PER decoder of any ASN.1 type. May be invoked by the application. - * WARNING: This call returns the number of BITS read from the stream. Beware. - */ -asn_dec_rval_t uper_decode( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size, /* Size of the input data buffer, in bytes */ - int skip_bits, /* Number of unused leading bits, 0..7 */ - int unused_bits /* Number of unused tailing bits, 0..7 */ -); - -/* - * Aligned PER decoder of a "complete encoding" as per X.691#10.1. - * On success, this call always returns (.consumed >= 1), in BITS, as per X.691#10.1.3. - */ -asn_dec_rval_t aper_decode_complete( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of data buffer */ - ); - -/* - * Aligned PER decoder of any ASN.1 type. May be invoked by the application. - * WARNING: This call returns the number of BITS read from the stream. Beware. - */ -asn_dec_rval_t aper_decode( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size, /* Size of data buffer */ - int skip_bits, /* Number of unused leading bits, 0..7 */ - int unused_bits /* Number of unused tailing bits, 0..7 */ - ); - -/* - * Type of the type-specific PER decoder function. - */ -typedef asn_dec_rval_t(per_type_decoder_f)( - const asn_codec_ctx_t *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, void **struct_ptr, - asn_per_data_t *per_data); - -#ifdef __cplusplus -} -#endif - -#endif /* _PER_DECODER_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/per_encoder.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/per_encoder.c deleted file mode 100644 index a35e1f0..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/per_encoder.c +++ /dev/null @@ -1,265 +0,0 @@ -#include -#include -#include - -static int _uper_encode_flush_outp(asn_per_outp_t *po); - -static int -ignore_output(const void *data, size_t size, void *app_key) { - (void)data; - (void)size; - (void)app_key; - return 0; -} - -asn_enc_rval_t -uper_encode(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_per_outp_t po; - asn_enc_rval_t er = {0,0,0}; - - /* - * Invoke type-specific encoder. - */ - if(!td || !td->op->uper_encoder) - ASN__ENCODE_FAILED; /* PER is not compiled in */ - - po.buffer = po.tmpspace; - po.nboff = 0; - po.nbits = 8 * sizeof(po.tmpspace); - po.output = cb ? cb : ignore_output; - po.op_key = app_key; - po.flushed_bytes = 0; - - er = td->op->uper_encoder(td, constraints, sptr, &po); - if(er.encoded != -1) { - size_t bits_to_flush; - - bits_to_flush = ((po.buffer - po.tmpspace) << 3) + po.nboff; - - /* Set number of bits encoded to a firm value */ - er.encoded = (po.flushed_bytes << 3) + bits_to_flush; - - if(_uper_encode_flush_outp(&po)) ASN__ENCODE_FAILED; - } - - return er; -} - -/* - * Argument type and callback necessary for uper_encode_to_buffer(). - */ -typedef struct enc_to_buf_arg { - void *buffer; - size_t left; -} enc_to_buf_arg; -static int encode_to_buffer_cb(const void *buffer, size_t size, void *key) { - enc_to_buf_arg *arg = (enc_to_buf_arg *)key; - - if(arg->left < size) - return -1; /* Data exceeds the available buffer size */ - - memcpy(arg->buffer, buffer, size); - arg->buffer = ((char *)arg->buffer) + size; - arg->left -= size; - - return 0; -} - -asn_enc_rval_t -uper_encode_to_buffer(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, void *buffer, size_t buffer_size) { - enc_to_buf_arg key; - - key.buffer = buffer; - key.left = buffer_size; - - if(td) ASN_DEBUG("Encoding \"%s\" using UNALIGNED PER", td->name); - - return uper_encode(td, constraints, sptr, encode_to_buffer_cb, &key); -} - -typedef struct enc_dyn_arg { - void *buffer; - size_t length; - size_t allocated; -} enc_dyn_arg; -static int -encode_dyn_cb(const void *buffer, size_t size, void *key) { - enc_dyn_arg *arg = key; - if(arg->length + size >= arg->allocated) { - size_t new_size = arg->allocated ? arg->allocated : 8; - void *p; - - do { - new_size <<= 2; - } while(arg->length + size >= new_size); - - p = REALLOC(arg->buffer, new_size); - if(!p) { - FREEMEM(arg->buffer); - memset(arg, 0, sizeof(*arg)); - return -1; - } - arg->buffer = p; - arg->allocated = new_size; - } - memcpy(((char *)arg->buffer) + arg->length, buffer, size); - arg->length += size; - return 0; -} -ssize_t -uper_encode_to_new_buffer(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, void **buffer_r) { - asn_enc_rval_t er = {0,0,0}; - enc_dyn_arg key; - - memset(&key, 0, sizeof(key)); - - er = uper_encode(td, constraints, sptr, encode_dyn_cb, &key); - switch(er.encoded) { - case -1: - FREEMEM(key.buffer); - return -1; - case 0: - FREEMEM(key.buffer); - key.buffer = MALLOC(1); - if(key.buffer) { - *(char *)key.buffer = '\0'; - *buffer_r = key.buffer; - return 1; - } else { - return -1; - } - default: - *buffer_r = key.buffer; - ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); - return ((er.encoded + 7) >> 3); - } -} - -/* - * Internally useful functions. - */ - -/* Flush partially filled buffer */ -static int -_uper_encode_flush_outp(asn_per_outp_t *po) { - uint8_t *buf; - - if(po->nboff == 0 && po->buffer == po->tmpspace) - return 0; - - buf = po->buffer + (po->nboff >> 3); - /* Make sure we account for the last, partially filled */ - if(po->nboff & 0x07) { - buf[0] &= 0xff << (8 - (po->nboff & 0x07)); - buf++; - } - - return po->output(po->tmpspace, buf - po->tmpspace, po->op_key); -} - -asn_enc_rval_t -aper_encode_to_buffer(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, void *buffer, size_t buffer_size) { - enc_to_buf_arg key; - - key.buffer = buffer; - key.left = buffer_size; - - if(td) ASN_DEBUG("Encoding \"%s\" using ALIGNED PER", td->name); - - return aper_encode(td, constraints, sptr, encode_to_buffer_cb, &key); -} - -ssize_t -aper_encode_to_new_buffer(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, void **buffer_r) { - asn_enc_rval_t er = {0,0,0}; - enc_dyn_arg key; - - memset(&key, 0, sizeof(key)); - - er = aper_encode(td, constraints, sptr, encode_dyn_cb, &key); - switch(er.encoded) { - case -1: - FREEMEM(key.buffer); - return -1; - case 0: - FREEMEM(key.buffer); - key.buffer = MALLOC(1); - if(key.buffer) { - *(char *)key.buffer = '\0'; - *buffer_r = key.buffer; - return 1; - } else { - return -1; - } - default: - *buffer_r = key.buffer; - ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); - return ((er.encoded + 7) >> 3); - } -} - -static int -_aper_encode_flush_outp(asn_per_outp_t *po) { - uint8_t *buf; - - if(po->nboff == 0 && po->buffer == po->tmpspace) - return 0; - - buf = po->buffer + (po->nboff >> 3); - /* Make sure we account for the last, partially filled */ - if(po->nboff & 0x07) { - buf[0] &= 0xff << (8 - (po->nboff & 0x07)); - buf++; - } - - if (po->output) { - return po->output(po->tmpspace, buf - po->tmpspace, po->op_key); - } - return 0; -} - -asn_enc_rval_t -aper_encode(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_app_consume_bytes_f *cb, void *app_key) { - asn_per_outp_t po; - asn_enc_rval_t er = {0,0,0}; - - /* - * Invoke type-specific encoder. - */ - if(!td || !td->op->aper_encoder) - ASN__ENCODE_FAILED; /* PER is not compiled in */ - - po.buffer = po.tmpspace; - po.nboff = 0; - po.nbits = 8 * sizeof(po.tmpspace); - po.output = cb; - po.op_key = app_key; - po.flushed_bytes = 0; - - er = td->op->aper_encoder(td, constraints, sptr, &po); - if(er.encoded != -1) { - size_t bits_to_flush; - - bits_to_flush = ((po.buffer - po.tmpspace) << 3) + po.nboff; - - /* Set number of bits encoded to a firm value */ - er.encoded = (po.flushed_bytes << 3) + bits_to_flush; - - if(_aper_encode_flush_outp(&po)) - ASN__ENCODE_FAILED; - } - - return er; -} diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/per_encoder.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/per_encoder.h deleted file mode 100644 index b615ef0..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/per_encoder.h +++ /dev/null @@ -1,93 +0,0 @@ -/*- - * Copyright (c) 2006-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _PER_ENCODER_H_ -#define _PER_ENCODER_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * Unaligned PER encoder of any ASN.1 type. May be invoked by the application. - * WARNING: This function returns the number of encoded bits in the .encoded - * field of the return value. Use the following formula to convert to bytes: - * bytes = ((.encoded + 7) / 8) - */ -asn_enc_rval_t uper_encode( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - asn_app_consume_bytes_f *consume_bytes_cb, /* Data collector */ - void *app_key /* Arbitrary callback argument */ -); - -asn_enc_rval_t aper_encode( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - asn_app_consume_bytes_f *consume_bytes_cb, /* Data collector */ - void *app_key /* Arbitrary callback argument */ -); - -/* - * A variant of uper_encode() which encodes data into the existing buffer - * WARNING: This function returns the number of encoded bits in the .encoded - * field of the return value. - */ -asn_enc_rval_t uper_encode_to_buffer( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - void *buffer, /* Pre-allocated buffer */ - size_t buffer_size /* Initial buffer size (max) */ -); - -asn_enc_rval_t aper_encode_to_buffer( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - void *buffer, /* Pre-allocated buffer */ - size_t buffer_size /* Initial buffer size (max) */ -); -/* - * A variant of uper_encode_to_buffer() which allocates buffer itself. - * Returns the number of bytes in the buffer or -1 in case of failure. - * WARNING: This function produces a "Production of the complete encoding", - * with length of at least one octet. Contrast this to precise bit-packing - * encoding of uper_encode() and uper_encode_to_buffer(). - */ -ssize_t uper_encode_to_new_buffer( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - void **buffer_r /* Buffer allocated and returned */ -); - -ssize_t -aper_encode_to_new_buffer( - const struct asn_TYPE_descriptor_s *td, - const asn_per_constraints_t *constraints, - const void *sptr, - void **buffer_r -); - -/* - * Type of the generic PER encoder function. - */ -typedef asn_enc_rval_t(per_type_encoder_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, const void *struct_ptr, - asn_per_outp_t *per_output); - -#ifdef __cplusplus -} -#endif - -#endif /* _PER_ENCODER_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/per_opentype.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/per_opentype.c deleted file mode 100644 index 28f3cb6..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/per_opentype.c +++ /dev/null @@ -1,533 +0,0 @@ -/* - * Copyright (c) 2007 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include -#include - -typedef struct uper_ugot_key { - asn_per_data_t oldpd; /* Old per data source */ - size_t unclaimed; - size_t ot_moved; /* Number of bits moved by OT processing */ - int repeat; -} uper_ugot_key; - -static int uper_ugot_refill(asn_per_data_t *pd); -static int per_skip_bits(asn_per_data_t *pd, int skip_nbits); -static asn_dec_rval_t uper_sot_suck(const asn_codec_ctx_t *, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd); - -/* - * Encode an "open type field". - * #10.1, #10.2 - */ -int -uper_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - void *buf; - void *bptr; - ssize_t size; - - ASN_DEBUG("Open type put %s ...", td->name); - - size = uper_encode_to_new_buffer(td, constraints, sptr, &buf); - if(size <= 0) return -1; - - ASN_DEBUG("Open type put %s of length %" ASN_PRI_SSIZE " + overhead (1byte?)", td->name, - size); - - bptr = buf; - do { - int need_eom = 0; - ssize_t may_save = uper_put_length(po, size, &need_eom); - ASN_DEBUG("Prepending length %" ASN_PRI_SSIZE - " to %s and allowing to save %" ASN_PRI_SSIZE, - size, td->name, may_save); - if(may_save < 0) break; - if(per_put_many_bits(po, bptr, may_save * 8)) break; - bptr = (char *)bptr + may_save; - size -= may_save; - if(need_eom && uper_put_length(po, 0, 0)) { - FREEMEM(buf); - return -1; - } - } while(size); - - FREEMEM(buf); - if(size) return -1; - - return 0; -} - -static asn_dec_rval_t -uper_open_type_get_simple(const asn_codec_ctx_t *ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - asn_dec_rval_t rv; - ssize_t chunk_bytes; - int repeat; - uint8_t *buf = 0; - size_t bufLen = 0; - size_t bufSize = 0; - asn_per_data_t spd; - size_t padding; - - ASN__STACK_OVERFLOW_CHECK(ctx); - - ASN_DEBUG("Getting open type %s...", td->name); - - do { - chunk_bytes = uper_get_length(pd, -1, 0, &repeat); - if(chunk_bytes < 0) { - FREEMEM(buf); - ASN__DECODE_STARVED; - } - if(bufLen + chunk_bytes > bufSize) { - void *ptr; - bufSize = chunk_bytes + (bufSize << 2); - ptr = REALLOC(buf, bufSize); - if(!ptr) { - FREEMEM(buf); - ASN__DECODE_FAILED; - } - buf = ptr; - } - if(per_get_many_bits(pd, buf + bufLen, 0, chunk_bytes << 3)) { - FREEMEM(buf); - ASN__DECODE_STARVED; - } - bufLen += chunk_bytes; - } while(repeat); - - ASN_DEBUG("Getting open type %s encoded in %ld bytes", td->name, - (long)bufLen); - - memset(&spd, 0, sizeof(spd)); - spd.buffer = buf; - spd.nbits = bufLen << 3; - - ASN_DEBUG_INDENT_ADD(+4); - rv = td->op->uper_decoder(ctx, td, constraints, sptr, &spd); - ASN_DEBUG_INDENT_ADD(-4); - - if(rv.code == RC_OK) { - /* Check padding validity */ - padding = spd.nbits - spd.nboff; - if (((padding > 0 && padding < 8) || - /* X.691#10.1.3 */ - (spd.nboff == 0 && spd.nbits == 8 && spd.buffer == buf)) && - per_get_few_bits(&spd, padding) == 0) { - /* Everything is cool */ - FREEMEM(buf); - return rv; - } - FREEMEM(buf); - if(padding >= 8) { - ASN_DEBUG("Too large padding %d in open type", (int)padding); - ASN__DECODE_FAILED; - } else { - ASN_DEBUG("No padding"); - } - } else { - FREEMEM(buf); - /* rv.code could be RC_WMORE, nonsense in this context */ - rv.code = RC_FAIL; /* Noone would give us more */ - } - - return rv; -} - -static asn_dec_rval_t CC_NOTUSED -uper_open_type_get_complex(const asn_codec_ctx_t *ctx, - const asn_TYPE_descriptor_t *td, - asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - uper_ugot_key arg; - asn_dec_rval_t rv; - ssize_t padding; - - ASN__STACK_OVERFLOW_CHECK(ctx); - - ASN_DEBUG("Getting open type %s from %s", td->name, - asn_bit_data_string(pd)); - arg.oldpd = *pd; - arg.unclaimed = 0; - arg.ot_moved = 0; - arg.repeat = 1; - pd->refill = uper_ugot_refill; - pd->refill_key = &arg; - pd->nbits = pd->nboff; /* 0 good bits at this point, will refill */ - pd->moved = 0; /* This now counts the open type size in bits */ - - ASN_DEBUG_INDENT_ADD(+4); - rv = td->op->uper_decoder(ctx, td, constraints, sptr, pd); - ASN_DEBUG_INDENT_ADD(-4); - -#define UPDRESTOREPD do { \ - /* buffer and nboff are valid, preserve them. */ \ - pd->nbits = arg.oldpd.nbits - (pd->moved - arg.ot_moved); \ - pd->moved = arg.oldpd.moved + (pd->moved - arg.ot_moved); \ - pd->refill = arg.oldpd.refill; \ - pd->refill_key = arg.oldpd.refill_key; \ - } while(0) - - if(rv.code != RC_OK) { - UPDRESTOREPD; - return rv; - } - - ASN_DEBUG("OpenType %s pd%s old%s unclaimed=%d, repeat=%d", td->name, - asn_bit_data_string(pd), - asn_bit_data_string(&arg.oldpd), - (int)arg.unclaimed, (int)arg.repeat); - - padding = pd->moved % 8; - if(padding) { - int32_t pvalue; - if(padding > 7) { - ASN_DEBUG("Too large padding %d in open type", - (int)padding); - rv.code = RC_FAIL; - UPDRESTOREPD; - return rv; - } - padding = 8 - padding; - ASN_DEBUG("Getting padding of %d bits", (int)padding); - pvalue = per_get_few_bits(pd, padding); - switch(pvalue) { - case -1: - ASN_DEBUG("Padding skip failed"); - UPDRESTOREPD; - ASN__DECODE_STARVED; - case 0: break; - default: - ASN_DEBUG("Non-blank padding (%d bits 0x%02x)", - (int)padding, (int)pvalue); - UPDRESTOREPD; - ASN__DECODE_FAILED; - } - } - if(pd->nboff != pd->nbits) { - ASN_DEBUG("Open type %s overhead pd%s old%s", td->name, - asn_bit_data_string(pd), asn_bit_data_string(&arg.oldpd)); - if(1) { - UPDRESTOREPD; - ASN__DECODE_FAILED; - } else { - arg.unclaimed += pd->nbits - pd->nboff; - } - } - - /* Adjust pd back so it points to original data */ - UPDRESTOREPD; - - /* Skip data not consumed by the decoder */ - if(arg.unclaimed) { - ASN_DEBUG("Getting unclaimed %d", (int)arg.unclaimed); - switch(per_skip_bits(pd, arg.unclaimed)) { - case -1: - ASN_DEBUG("Claim of %d failed", (int)arg.unclaimed); - ASN__DECODE_STARVED; - case 0: - ASN_DEBUG("Got claim of %d", (int)arg.unclaimed); - break; - default: - /* Padding must be blank */ - ASN_DEBUG("Non-blank unconsumed padding"); - ASN__DECODE_FAILED; - } - arg.unclaimed = 0; - } - - if(arg.repeat) { - ASN_DEBUG("Not consumed the whole thing"); - rv.code = RC_FAIL; - return rv; - } - - return rv; -} - - -asn_dec_rval_t -uper_open_type_get(const asn_codec_ctx_t *ctx, const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - return uper_open_type_get_simple(ctx, td, constraints, sptr, pd); -} - -int -uper_open_type_skip(const asn_codec_ctx_t *ctx, asn_per_data_t *pd) { - asn_TYPE_descriptor_t s_td; - asn_TYPE_operation_t s_op; - asn_dec_rval_t rv; - - s_td.name = ""; - s_td.op = &s_op; - s_op.uper_decoder = uper_sot_suck; - - rv = uper_open_type_get(ctx, &s_td, 0, 0, pd); - if(rv.code != RC_OK) - return -1; - else - return 0; -} - -/* - * Internal functions. - */ - -static asn_dec_rval_t -uper_sot_suck(const asn_codec_ctx_t *ctx, const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - asn_dec_rval_t rv; - - (void)ctx; - (void)td; - (void)constraints; - (void)sptr; - - while(per_get_few_bits(pd, 1) >= 0); - - rv.code = RC_OK; - rv.consumed = pd->moved; - - return rv; -} - -static int -uper_ugot_refill(asn_per_data_t *pd) { - uper_ugot_key *arg = pd->refill_key; - ssize_t next_chunk_bytes, next_chunk_bits; - ssize_t avail; - - asn_per_data_t *oldpd = &arg->oldpd; - - ASN_DEBUG("REFILLING pd->moved=%ld, oldpd->moved=%ld", - (long)pd->moved, (long)oldpd->moved); - - /* Advance our position to where pd is */ - oldpd->buffer = pd->buffer; - oldpd->nboff = pd->nboff; - oldpd->nbits -= pd->moved - arg->ot_moved; - oldpd->moved += pd->moved - arg->ot_moved; - arg->ot_moved = pd->moved; - - if(arg->unclaimed) { - /* Refill the container */ - if(per_get_few_bits(oldpd, 1)) - return -1; - if(oldpd->nboff == 0) { - assert(0); - return -1; - } - pd->buffer = oldpd->buffer; - pd->nboff = oldpd->nboff - 1; - pd->nbits = oldpd->nbits; - ASN_DEBUG("UNCLAIMED <- return from (pd->moved=%ld)", - (long)pd->moved); - return 0; - } - - if(!arg->repeat) { - ASN_DEBUG("Want more but refill doesn't have it"); - return -1; - } - - next_chunk_bytes = uper_get_length(oldpd, -1, 0, &arg->repeat); - ASN_DEBUG("Open type LENGTH %ld bytes at off %ld, repeat %ld", - (long)next_chunk_bytes, (long)oldpd->moved, (long)arg->repeat); - if(next_chunk_bytes < 0) return -1; - if(next_chunk_bytes == 0) { - pd->refill = 0; /* No more refills, naturally */ - assert(!arg->repeat); /* Implementation guarantee */ - } - next_chunk_bits = next_chunk_bytes << 3; - avail = oldpd->nbits - oldpd->nboff; - if(avail >= next_chunk_bits) { - pd->nbits = oldpd->nboff + next_chunk_bits; - arg->unclaimed = 0; - ASN_DEBUG("!+Parent frame %ld bits, alloting %ld [%ld..%ld] (%ld)", - (long)next_chunk_bits, (long)oldpd->moved, - (long)oldpd->nboff, (long)oldpd->nbits, - (long)(oldpd->nbits - oldpd->nboff)); - } else { - pd->nbits = oldpd->nbits; - arg->unclaimed = next_chunk_bits - avail; - ASN_DEBUG("!-Parent frame %ld, require %ld, will claim %ld", - (long)avail, (long)next_chunk_bits, - (long)arg->unclaimed); - } - pd->buffer = oldpd->buffer; - pd->nboff = oldpd->nboff; - ASN_DEBUG("Refilled pd%s old%s", - asn_bit_data_string(pd), asn_bit_data_string(oldpd)); - return 0; -} - -static int -per_skip_bits(asn_per_data_t *pd, int skip_nbits) { - int hasNonZeroBits = 0; - while(skip_nbits > 0) { - int skip; - - /* per_get_few_bits() is more efficient when nbits <= 24 */ - if(skip_nbits < 24) - skip = skip_nbits; - else - skip = 24; - skip_nbits -= skip; - - switch(per_get_few_bits(pd, skip)) { - case -1: return -1; /* Starving */ - case 0: continue; /* Skipped empty space */ - default: hasNonZeroBits = 1; continue; - } - } - return hasNonZeroBits; -} - -static asn_dec_rval_t -aper_open_type_get_simple(const asn_codec_ctx_t *ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - asn_dec_rval_t rv; - ssize_t chunk_bytes; - int repeat; - uint8_t *buf = 0; - size_t bufLen = 0; - size_t bufSize = 0; - asn_per_data_t spd; - size_t padding; - - ASN__STACK_OVERFLOW_CHECK(ctx); - - ASN_DEBUG("Getting open type %s...", td->name); - - do { - chunk_bytes = aper_get_length(pd, -1, -1, &repeat); - if(chunk_bytes < 0) { - FREEMEM(buf); - ASN__DECODE_STARVED; - } - if(bufLen + chunk_bytes > bufSize) { - void *ptr; - bufSize = chunk_bytes + (bufSize << 2); - ptr = REALLOC(buf, bufSize); - if(!ptr) { - FREEMEM(buf); - ASN__DECODE_FAILED; - } - buf = ptr; - } - if(per_get_many_bits(pd, buf + bufLen, 0, chunk_bytes << 3)) { - FREEMEM(buf); - ASN__DECODE_STARVED; - } - bufLen += chunk_bytes; - } while(repeat); - - ASN_DEBUG("Getting open type %s encoded in %ld bytes", td->name, - (long)bufLen); - - memset(&spd, 0, sizeof(spd)); - spd.buffer = buf; - spd.nbits = bufLen << 3; - - ASN_DEBUG_INDENT_ADD(+4); - rv = td->op->aper_decoder(ctx, td, constraints, sptr, &spd); - ASN_DEBUG_INDENT_ADD(-4); - - if(rv.code == RC_OK) { - /* Check padding validity */ - padding = spd.nbits - spd.nboff; - if (((padding > 0 && padding < 8) || - /* X.691#10.1.3 */ - (spd.nboff == 0 && spd.nbits == 8 && spd.buffer == buf)) && - per_get_few_bits(&spd, padding) == 0) { - /* Everything is cool */ - FREEMEM(buf); - return rv; - } - FREEMEM(buf); - if(padding >= 8) { - ASN_DEBUG("Too large padding %d in open type", (int)padding); - ASN__DECODE_FAILED; - } else { - ASN_DEBUG("No padding"); - } - } else { - FREEMEM(buf); - /* rv.code could be RC_WMORE, nonsense in this context */ - rv.code = RC_FAIL; /* Noone would give us more */ - } - - return rv; -} - -int -aper_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - void *buf; - void *bptr; - ssize_t size; - size_t toGo; - - ASN_DEBUG("Open type put %s ...", td->name); - - size = aper_encode_to_new_buffer(td, constraints, sptr, &buf); - if(size <= 0) return -1; - - for(bptr = buf, toGo = size; toGo;) { - ssize_t maySave = aper_put_length(po, -1, toGo); - if(maySave < 0) break; - if(per_put_many_bits(po, bptr, maySave * 8)) break; - bptr = (char *)bptr + maySave; - toGo -= maySave; - } - - FREEMEM(buf); - if(toGo) return -1; - - ASN_DEBUG("Open type put %s of length %ld + overhead (1byte?)", - td->name, size); - - return 0; -} - -asn_dec_rval_t -aper_open_type_get(const asn_codec_ctx_t *ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd) { - - return aper_open_type_get_simple(ctx, td, constraints, sptr, pd); -} - -int -aper_open_type_skip(const asn_codec_ctx_t *ctx, asn_per_data_t *pd) { - asn_TYPE_descriptor_t s_td; - asn_dec_rval_t rv; - asn_TYPE_operation_t op_t; - - memset(&op_t, 0, sizeof(op_t)); - s_td.name = ""; - s_td.op = &op_t; - s_td.op->aper_decoder = uper_sot_suck; - - rv = aper_open_type_get(ctx, &s_td, 0, 0, pd); - if(rv.code != RC_OK) - return -1; - else - return 0; -} - - diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/per_opentype.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/per_opentype.h deleted file mode 100644 index 1493b2d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/per_opentype.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2007-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _PER_OPENTYPE_H_ -#define _PER_OPENTYPE_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -asn_dec_rval_t uper_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd); - -int uper_open_type_skip(const asn_codec_ctx_t *opt_codec_ctx, - asn_per_data_t *pd); - -/* - * X.691 (2015/08), #11.2 - * Returns -1 if error is encountered. 0 if all OK. - */ -int uper_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po); - -asn_dec_rval_t aper_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd); - - -int aper_open_type_skip(const asn_codec_ctx_t *opt_codec_ctx, asn_per_data_t *pd); - -int aper_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po); - -#ifdef __cplusplus -} -#endif - -#endif /* _PER_OPENTYPE_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/per_support.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/per_support.c deleted file mode 100644 index 2285677..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/per_support.c +++ /dev/null @@ -1,489 +0,0 @@ -/* - * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * X.691-201508 #10.9 General rules for encoding a length determinant. - * Get the optionally constrained length "n" from the stream. - */ -ssize_t -uper_get_length(asn_per_data_t *pd, int ebits, size_t lower_bound, - int *repeat) { - ssize_t value; - - *repeat = 0; - - /* #11.9.4.1 Encoding if constrained (according to effective bits) */ - if(ebits >= 0 && ebits <= 16) { - value = per_get_few_bits(pd, ebits); - if(value >= 0) value += lower_bound; - return value; - } - - value = per_get_few_bits(pd, 8); - if((value & 0x80) == 0) { /* #11.9.3.6 */ - return (value & 0x7F); - } else if((value & 0x40) == 0) { /* #11.9.3.7 */ - /* bit 8 ... set to 1 and bit 7 ... set to zero */ - value = ((value & 0x3f) << 8) | per_get_few_bits(pd, 8); - return value; /* potential -1 from per_get_few_bits passes through. */ - } else if(value < 0) { - ASN_DEBUG("END of stream reached for PER"); - return -1; - } - value &= 0x3f; /* this is "m" from X.691, #11.9.3.8 */ - if(value < 1 || value > 4) { - return -1; /* Prohibited by #11.9.3.8 */ - } - *repeat = 1; - return (16384 * value); -} - -/* - * Get the normally small length "n". - * This procedure used to decode length of extensions bit-maps - * for SET and SEQUENCE types. - */ -ssize_t -uper_get_nslength(asn_per_data_t *pd) { - ssize_t length; - - ASN_DEBUG("Getting normally small length"); - - if(per_get_few_bits(pd, 1) == 0) { - length = per_get_few_bits(pd, 6) + 1; - if(length <= 0) return -1; - ASN_DEBUG("l=%d", (int)length); - return length; - } else { - int repeat; - length = uper_get_length(pd, -1, 0, &repeat); - if(length >= 0 && !repeat) return length; - return -1; /* Error, or do not support >16K extensions */ - } -} - -/* - * Get the normally small non-negative whole number. - * X.691, #10.6 - */ -ssize_t -uper_get_nsnnwn(asn_per_data_t *pd) { - ssize_t value; - - value = per_get_few_bits(pd, 7); - if(value & 64) { /* implicit (value < 0) */ - value &= 63; - value <<= 2; - value |= per_get_few_bits(pd, 2); - if(value & 128) /* implicit (value < 0) */ - return -1; - if(value == 0) - return 0; - if(value >= 3) - return -1; - value = per_get_few_bits(pd, 8 * value); - return value; - } - - return value; -} - -/* - * X.691-11/2008, #11.6 - * Encoding of a normally small non-negative whole number - */ -int -uper_put_nsnnwn(asn_per_outp_t *po, int n) { - int bytes; - - if(n <= 63) { - if(n < 0) return -1; - return per_put_few_bits(po, n, 7); - } - if(n < 256) - bytes = 1; - else if(n < 65536) - bytes = 2; - else if(n < 256 * 65536) - bytes = 3; - else - return -1; /* This is not a "normally small" value */ - if(per_put_few_bits(po, bytes, 8)) - return -1; - - return per_put_few_bits(po, n, 8 * bytes); -} - - -/* X.691-2008/11, #11.5.6 -> #11.3 */ -int uper_get_constrained_whole_number(asn_per_data_t *pd, unsigned long *out_value, int nbits) { - unsigned long lhalf; /* Lower half of the number*/ - long half; - - if(nbits <= 31) { - half = per_get_few_bits(pd, nbits); - if(half < 0) return -1; - *out_value = half; - return 0; - } - - if((size_t)nbits > 8 * sizeof(*out_value)) - return -1; /* RANGE */ - - half = per_get_few_bits(pd, 31); - if(half < 0) return -1; - - if(uper_get_constrained_whole_number(pd, &lhalf, nbits - 31)) - return -1; - - *out_value = ((unsigned long)half << (nbits - 31)) | lhalf; - return 0; -} - - -/* X.691-2008/11, #11.5.6 -> #11.3 */ -int -uper_put_constrained_whole_number_u(asn_per_outp_t *po, unsigned long v, - int nbits) { - if(nbits <= 31) { - return per_put_few_bits(po, v, nbits); - } else { - /* Put higher portion first, followed by lower 31-bit */ - if(uper_put_constrained_whole_number_u(po, v >> 31, nbits - 31)) - return -1; - return per_put_few_bits(po, v, 31); - } -} - -/* - * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" - * Put the length "n" (or part of it) into the stream. - */ -ssize_t -uper_put_length(asn_per_outp_t *po, size_t length, int *need_eom) { - int dummy = 0; - if(!need_eom) need_eom = &dummy; - - if(length <= 127) { /* #11.9.3.6 */ - *need_eom = 0; - return per_put_few_bits(po, length, 8) - ? -1 : (ssize_t)length; - } else if(length < 16384) { /* #10.9.3.7 */ - *need_eom = 0; - return per_put_few_bits(po, length|0x8000, 16) - ? -1 : (ssize_t)length; - } - - *need_eom = 0 == (length & 16383); - length >>= 14; - if(length > 4) { - *need_eom = 0; - length = 4; - } - - return per_put_few_bits(po, 0xC0 | length, 8) - ? -1 : (ssize_t)(length << 14); - -} - - -/* - * Put the normally small length "n" into the stream. - * This procedure used to encode length of extensions bit-maps - * for SET and SEQUENCE types. - */ -int -uper_put_nslength(asn_per_outp_t *po, size_t length) { - if(length <= 64) { - /* #11.9.3.4 */ - if(length == 0) return -1; - return per_put_few_bits(po, length - 1, 7) ? -1 : 0; - } else { - int need_eom = 0; - if(uper_put_length(po, length, &need_eom) != (ssize_t)length - || need_eom) { - /* This might happen in case of >16K extensions */ - return -1; - } - } - - return 0; -} - -static int -per__long_range(long lb, long ub, unsigned long *range_r) { - unsigned long bounds_range; - if((ub < 0) == (lb < 0)) { - bounds_range = ub - lb; - } else if(lb < 0) { - assert(ub >= 0); - bounds_range = 1 + ((unsigned long)ub + (unsigned long)-(lb + 1)); - } else { - assert(!"Unreachable"); - return -1; - } - *range_r = bounds_range; - return 0; -} - -int -per_long_range_rebase(long v, long lb, long ub, unsigned long *output) { - unsigned long range; - - assert(lb <= ub); - - if(v < lb || v > ub || per__long_range(lb, ub, &range) < 0) { - /* Range error. */ - return -1; - } - - /* - * Fundamentally what we're doing is returning (v-lb). - * However, this triggers undefined behavior when the word width - * of signed (v) is the same as the size of unsigned (*output). - * In practice, it triggers the UndefinedSanitizer. Therefore we shall - * compute the ranges accurately to avoid C's undefined behavior. - */ - if((v < 0) == (lb < 0)) { - *output = v-lb; - return 0; - } else if(v < 0) { - unsigned long rebased = 1 + (unsigned long)-(v+1) + (unsigned long)lb; - assert(rebased <= range); /* By construction */ - *output = rebased; - return 0; - } else if(lb < 0) { - unsigned long rebased = 1 + (unsigned long)-(lb+1) + (unsigned long)v; - assert(rebased <= range); /* By construction */ - *output = rebased; - return 0; - } else { - assert(!"Unreachable"); - return -1; - } -} - -int -per_long_range_unrebase(unsigned long inp, long lb, long ub, long *outp) { - unsigned long range; - - if(per__long_range(lb, ub, &range) != 0) { - return -1; - } - - if(inp > range) { - /* - * We can encode something in the given number of bits that technically - * exceeds the range. This is an avenue for security errors, - * so we don't allow that. - */ - return -1; - } - - if(inp <= LONG_MAX) { - *outp = (long)inp + lb; - } else { - *outp = (lb + LONG_MAX + 1) + (long)((inp - LONG_MAX) - 1); - } - - return 0; -} - -int32_t -aper_get_align(asn_per_data_t *pd) { - - if(pd->nboff & 0x7) { - ASN_DEBUG("Aligning %ld bits", 8 - ((unsigned long)pd->nboff & 0x7)); - return per_get_few_bits(pd, 8 - (pd->nboff & 0x7)); - } - return 0; -} - -ssize_t -aper_get_length(asn_per_data_t *pd, int range, int ebits, int *repeat) { - ssize_t value; - - *repeat = 0; - - if (range <= 65536 && range >= 0) - return aper_get_nsnnwn(pd, range); - - if (aper_get_align(pd) < 0) - return -1; - - if(ebits >= 0) return per_get_few_bits(pd, ebits); - - value = per_get_few_bits(pd, 8); - if(value < 0) return -1; - if((value & 128) == 0) /* #10.9.3.6 */ - return (value & 0x7F); - if((value & 64) == 0) { /* #10.9.3.7 */ - value = ((value & 63) << 8) | per_get_few_bits(pd, 8); - if(value < 0) return -1; - return value; - } - value &= 63; /* this is "m" from X.691, #10.9.3.8 */ - if(value < 1 || value > 4) - return -1; - *repeat = 1; - return (16384 * value); -} - -ssize_t -aper_get_nslength(asn_per_data_t *pd) { - ssize_t length; - - ASN_DEBUG("Getting normally small length"); - - if(per_get_few_bits(pd, 1) == 0) { - length = per_get_few_bits(pd, 6) + 1; - if(length <= 0) return -1; - ASN_DEBUG("l=%ld", length); - return length; - } else { - int repeat; - length = aper_get_length(pd, -1, -1, &repeat); - if(length >= 0 && !repeat) return length; - return -1; /* Error, or do not support >16K extensions */ - } -} - -ssize_t -aper_get_nsnnwn(asn_per_data_t *pd, int range) { - ssize_t value; - int bytes = 0; - - ASN_DEBUG("getting nsnnwn with range %d", range); - - if(range <= 255) { - int i; - - if (range < 0) return -1; - /* 1 -> 8 bits */ - for (i = 1; i <= 8; i++) { - int upper = 1 << i; - if (upper >= range) - break; - } - value = per_get_few_bits(pd, i); - return value; - } else if (range == 256){ - /* 1 byte */ - bytes = 1; - } else if (range <= 65536) { - /* 2 bytes */ - bytes = 2; - } else { - return -1; - } - if (aper_get_align(pd) < 0) - return -1; - value = per_get_few_bits(pd, 8 * bytes); - return value; -} - -int aper_put_align(asn_per_outp_t *po) { - - if(po->nboff & 0x7) { - ASN_DEBUG("Aligning %ld bits", 8 - ((unsigned long)po->nboff & 0x7)); - if(per_put_few_bits(po, 0x00, (8 - (po->nboff & 0x7)))) - return -1; - } - return 0; -} - -ssize_t -aper_put_length(asn_per_outp_t *po, int range, size_t length) { - - ASN_DEBUG("APER put length %zu with range %d", length, range); - - /* 10.9 X.691 Note 2 */ - if (range <= 65536 && range >= 0) - return aper_put_nsnnwn(po, range, length); - - if (aper_put_align(po) < 0) - return -1; - - if(length <= 127) /* #10.9.3.6 */{ - return per_put_few_bits(po, length, 8) - ? -1 : (ssize_t)length; - } - else if(length < 16384) /* #10.9.3.7 */ - return per_put_few_bits(po, length|0x8000, 16) - ? -1 : (ssize_t)length; - - length >>= 14; - if(length > 4) length = 4; - - return per_put_few_bits(po, 0xC0 | length, 8) - ? -1 : (ssize_t)(length << 14); -} - - -int -aper_put_nslength(asn_per_outp_t *po, size_t length) { - - if(length <= 64) { - /* #10.9.3.4 */ - if(length == 0) return -1; - return per_put_few_bits(po, length-1, 7) ? -1 : 0; - } else { - if(aper_put_length(po, -1, length) != (ssize_t)length) { - /* This might happen in case of >16K extensions */ - return -1; - } - } - - return 0; -} - -int -aper_put_nsnnwn(asn_per_outp_t *po, int range, int number) { - int bytes; - - ASN_DEBUG("aper put nsnnwn %d with range %d", number, range); - /* 10.5.7.1 X.691 */ - if(range < 0) { - int i; - for (i = 1; ; i++) { - int bits = 1 << (8 * i); - if (number <= bits) - break; - } - bytes = i; - assert(i <= 4); - } - if(range <= 255) { - int i; - for (i = 1; i <= 8; i++) { - int bits = 1 << i; - if (range <= bits) - break; - } - return per_put_few_bits(po, number, i); - } else if(range == 256) { - bytes = 1; - } else if(range <= 65536) { - bytes = 2; - } else { /* Ranges > 64K */ - int i; - for (i = 1; ; i++) { - int bits = 1 << (8 * i); - if (range <= bits) - break; - } - assert(i <= 4); - bytes = i; - } - if(aper_put_align(po) < 0) /* Aligning on octet */ - return -1; -/* if(per_put_few_bits(po, bytes, 8)) - return -1; -*/ - return per_put_few_bits(po, number, 8 * bytes); -} diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/per_support.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/per_support.h deleted file mode 100644 index 23079c9..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/per_support.h +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _PER_SUPPORT_H_ -#define _PER_SUPPORT_H_ - -#include /* Platform-specific types */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Pre-computed PER constraints. - */ -typedef struct asn_per_constraint_s { - enum asn_per_constraint_flags { - APC_UNCONSTRAINED = 0x0, /* No PER visible constraints */ - APC_SEMI_CONSTRAINED = 0x1, /* Constrained at "lb" */ - APC_CONSTRAINED = 0x2, /* Fully constrained */ - APC_EXTENSIBLE = 0x4 /* May have extension */ - } flags; - int range_bits; /* Full number of bits in the range */ - int effective_bits; /* Effective bits */ - long lower_bound; /* "lb" value */ - long upper_bound; /* "ub" value */ -} asn_per_constraint_t; -typedef struct asn_per_constraints_s { - asn_per_constraint_t value; - asn_per_constraint_t size; - int (*value2code)(unsigned int value); - int (*code2value)(unsigned int code); -} asn_per_constraints_t; - -/* Temporary compatibility layer. Will get removed. */ -typedef struct asn_bit_data_s asn_per_data_t; -#define per_get_few_bits(data, bits) asn_get_few_bits(data, bits) -#define per_get_undo(data, bits) asn_get_undo(data, bits) -#define per_get_many_bits(data, dst, align, bits) \ - asn_get_many_bits(data, dst, align, bits) - -/* - * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" - * Get the length "n" from the Unaligned PER stream. - */ -ssize_t uper_get_length(asn_per_data_t *pd, int effective_bound_bits, - size_t lower_bound, int *repeat); - -ssize_t aper_get_length(asn_per_data_t *pd, int range, - int effective_bound_bits, int *repeat); - -/* - * Get the normally small length "n". - */ -ssize_t uper_get_nslength(asn_per_data_t *pd); -ssize_t aper_get_nslength(asn_per_data_t *pd); - -/* - * Get the normally small non-negative whole number. - */ -ssize_t uper_get_nsnnwn(asn_per_data_t *pd); -ssize_t aper_get_nsnnwn(asn_per_data_t *pd, int range); - -/* X.691-2008/11, #11.5.6 */ -int uper_get_constrained_whole_number(asn_per_data_t *pd, unsigned long *v, int nbits); - - -/* Temporary compatibility layer. Will get removed. */ -typedef struct asn_bit_outp_s asn_per_outp_t; -#define per_put_few_bits(out, bits, obits) asn_put_few_bits(out, bits, obits) -#define per_put_many_bits(out, src, nbits) asn_put_many_bits(out, src, nbits) -#define per_put_aligned_flush(out) asn_put_aligned_flush(out) - - -/* - * Rebase the given value as an offset into the range specified by the - * lower bound (lb) and upper bound (ub). - * RETURN VALUES: - * -1: Conversion failed due to range problems. - * 0: Conversion was successful. - */ -int per_long_range_rebase(long v, long lb, long ub, unsigned long *output); -/* The inverse operation: restores the value by the offset and its bounds. */ -int per_long_range_unrebase(unsigned long inp, long lb, long ub, long *outp); - -/* X.691-2008/11, #11.5 */ -int uper_put_constrained_whole_number_u(asn_per_outp_t *po, unsigned long v, int nbits); - -/* - * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" - * Put the length "whole_length" to the Unaligned PER stream. - * If (opt_need_eom) is given, it will be set to 1 if final 0-length is needed. - * In that case, invoke uper_put_length(po, 0, 0) after encoding the last block. - * This function returns the number of units which may be flushed - * in the next units saving iteration. - */ -ssize_t uper_put_length(asn_per_outp_t *po, size_t whole_length, - int *opt_need_eom); - -ssize_t aper_put_length(asn_per_outp_t *po, int range, size_t length); - -/* Align the current bit position to octet bundary */ -int aper_put_align(asn_per_outp_t *po); -int32_t aper_get_align(asn_per_data_t *pd); - -/* - * Put the normally small length "n" to the Unaligned PER stream. - * Returns 0 or -1. - */ -int uper_put_nslength(asn_per_outp_t *po, size_t length); - -int aper_put_nslength(asn_per_outp_t *po, size_t length); - -/* - * Put the normally small non-negative whole number. - */ -int uper_put_nsnnwn(asn_per_outp_t *po, int n); - -int aper_put_nsnnwn(asn_per_outp_t *po, int range, int number); - -#ifdef __cplusplus -} -#endif - -#endif /* _PER_SUPPORT_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/xer_decoder.c b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/xer_decoder.c deleted file mode 100644 index 5b87703..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/xer_decoder.c +++ /dev/null @@ -1,369 +0,0 @@ -/* - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include /* XER/XML parsing support */ - - -/* - * Decode the XER encoding of a given type. - */ -asn_dec_rval_t -xer_decode(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const void *buffer, size_t size) { - asn_codec_ctx_t s_codec_ctx; - - /* - * Stack checker requires that the codec context - * must be allocated on the stack. - */ - if(opt_codec_ctx) { - if(opt_codec_ctx->max_stack_size) { - s_codec_ctx = *opt_codec_ctx; - opt_codec_ctx = &s_codec_ctx; - } - } else { - /* If context is not given, be security-conscious anyway */ - memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); - s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; - opt_codec_ctx = &s_codec_ctx; - } - - /* - * Invoke type-specific decoder. - */ - return td->op->xer_decoder(opt_codec_ctx, td, struct_ptr, 0, buffer, size); -} - - - -struct xer__cb_arg { - pxml_chunk_type_e chunk_type; - size_t chunk_size; - const void *chunk_buf; - int callback_not_invoked; -}; - -static int -xer__token_cb(pxml_chunk_type_e type, const void *_chunk_data, size_t _chunk_size, void *key) { - struct xer__cb_arg *arg = (struct xer__cb_arg *)key; - arg->chunk_type = type; - arg->chunk_size = _chunk_size; - arg->chunk_buf = _chunk_data; - arg->callback_not_invoked = 0; - return -1; /* Terminate the XML parsing */ -} - -/* - * Fetch the next token from the XER/XML stream. - */ -ssize_t -xer_next_token(int *stateContext, const void *buffer, size_t size, pxer_chunk_type_e *ch_type) { - struct xer__cb_arg arg; - int new_stateContext = *stateContext; - ssize_t ret; - - arg.callback_not_invoked = 1; - ret = pxml_parse(&new_stateContext, buffer, size, xer__token_cb, &arg); - if(ret < 0) return -1; - if(arg.callback_not_invoked) { - assert(ret == 0); /* No data was consumed */ - *ch_type = PXER_WMORE; - return 0; /* Try again with more data */ - } else { - assert(arg.chunk_size); - assert(arg.chunk_buf == buffer); - } - - /* - * Translate the XML chunk types into more convenient ones. - */ - switch(arg.chunk_type) { - case PXML_TEXT: - *ch_type = PXER_TEXT; - break; - case PXML_TAG: - *ch_type = PXER_WMORE; - return 0; /* Want more */ - case PXML_TAG_END: - *ch_type = PXER_TAG; - break; - case PXML_COMMENT: - case PXML_COMMENT_END: - *ch_type = PXER_COMMENT; - break; - } - - *stateContext = new_stateContext; - return arg.chunk_size; -} - -#define CSLASH 0x2f /* '/' */ -#define LANGLE 0x3c /* '<' */ -#define RANGLE 0x3e /* '>' */ - -xer_check_tag_e -xer_check_tag(const void *buf_ptr, int size, const char *need_tag) { - const char *buf = (const char *)buf_ptr; - const char *end; - xer_check_tag_e ct = XCT_OPENING; - - if(size < 2 || buf[0] != LANGLE || buf[size-1] != RANGLE) { - if(size >= 2) - ASN_DEBUG("Broken XML tag: \"%c...%c\"", - buf[0], buf[size - 1]); - return XCT_BROKEN; - } - - /* - * Determine the tag class. - */ - if(buf[1] == CSLASH) { - buf += 2; /* advance past "" */ - ct = XCT_CLOSING; - if(size > 0 && buf[size-1] == CSLASH) - return XCT_BROKEN; /* */ - } else { - buf++; /* advance past "<" */ - size -= 2; /* strip "<" and ">" */ - if(size > 0 && buf[size-1] == CSLASH) { - ct = XCT_BOTH; - size--; /* One more, for "/" */ - } - } - - /* Sometimes we don't care about the tag */ - if(!need_tag || !*need_tag) - return (xer_check_tag_e)(XCT__UNK__MASK | ct); - - /* - * Determine the tag name. - */ - for(end = buf + size; buf < end; buf++, need_tag++) { - int b = *buf, n = *need_tag; - if(b != n) { - if(n == 0) { - switch(b) { - case 0x09: case 0x0a: case 0x0c: case 0x0d: - case 0x20: - /* "": whitespace is normal */ - return ct; - } - } - return (xer_check_tag_e)(XCT__UNK__MASK | ct); - } - if(b == 0) - return XCT_BROKEN; /* Embedded 0 in buf?! */ - } - if(*need_tag) - return (xer_check_tag_e)(XCT__UNK__MASK | ct); - - return ct; -} - - -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = (num_bytes); \ - buf_ptr = ((const char *)buf_ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself; \ - if(rval.code != RC_OK) \ - ASN_DEBUG("Failed with %d", rval.code); \ - return rval; \ - } while(0) - -#define XER_GOT_BODY(chunk_buf, chunk_size, size) do { \ - ssize_t converted_size = body_receiver \ - (struct_key, chunk_buf, chunk_size, \ - (size_t)chunk_size < size); \ - if(converted_size == -1) RETURN(RC_FAIL); \ - if(converted_size == 0 \ - && size == (size_t)chunk_size) \ - RETURN(RC_WMORE); \ - chunk_size = converted_size; \ - } while(0) -#define XER_GOT_EMPTY() do { \ - if(body_receiver(struct_key, 0, 0, size > 0) == -1) \ - RETURN(RC_FAIL); \ - } while(0) - -/* - * Generalized function for decoding the primitive values. - */ -asn_dec_rval_t -xer_decode_general(const asn_codec_ctx_t *opt_codec_ctx, - asn_struct_ctx_t *ctx, /* Type decoder context */ - void *struct_key, - const char *xml_tag, /* Expected XML tag */ - const void *buf_ptr, size_t size, - int (*opt_unexpected_tag_decoder) - (void *struct_key, const void *chunk_buf, size_t chunk_size), - ssize_t (*body_receiver) - (void *struct_key, const void *chunk_buf, size_t chunk_size, - int have_more) - ) { - - asn_dec_rval_t rval; - ssize_t consumed_myself = 0; - - (void)opt_codec_ctx; - - /* - * Phases of XER/XML processing: - * Phase 0: Check that the opening tag matches our expectations. - * Phase 1: Processing body and reacting on closing tag. - */ - if(ctx->phase > 1) RETURN(RC_FAIL); - for(;;) { - pxer_chunk_type_e ch_type; /* XER chunk type */ - ssize_t ch_size; /* Chunk size */ - xer_check_tag_e tcv; /* Tag check value */ - - /* - * Get the next part of the XML stream. - */ - ch_size = xer_next_token(&ctx->context, buf_ptr, size, - &ch_type); - if(ch_size == -1) { - RETURN(RC_FAIL); - } else { - switch(ch_type) { - case PXER_WMORE: - RETURN(RC_WMORE); - case PXER_COMMENT: /* Got XML comment */ - ADVANCE(ch_size); /* Skip silently */ - continue; - case PXER_TEXT: - if(ctx->phase == 0) { - /* - * We have to ignore whitespace here, - * but in order to be forward compatible - * with EXTENDED-XER (EMBED-VALUES, #25) - * any text is just ignored here. - */ - } else { - XER_GOT_BODY(buf_ptr, ch_size, size); - } - ADVANCE(ch_size); - continue; - case PXER_TAG: - break; /* Check the rest down there */ - } - } - - assert(ch_type == PXER_TAG && size); - - tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); - /* - * Phase 0: - * Expecting the opening tag - * for the type being processed. - * Phase 1: - * Waiting for the closing XML tag. - */ - switch(tcv) { - case XCT_BOTH: - if(ctx->phase) break; - /* Finished decoding of an empty element */ - XER_GOT_EMPTY(); - ADVANCE(ch_size); - ctx->phase = 2; /* Phase out */ - RETURN(RC_OK); - case XCT_OPENING: - if(ctx->phase) break; - ADVANCE(ch_size); - ctx->phase = 1; /* Processing body phase */ - continue; - case XCT_CLOSING: - if(!ctx->phase) break; - ADVANCE(ch_size); - ctx->phase = 2; /* Phase out */ - RETURN(RC_OK); - case XCT_UNKNOWN_BO: - /* - * Certain tags in the body may be expected. - */ - if(opt_unexpected_tag_decoder - && opt_unexpected_tag_decoder(struct_key, - buf_ptr, ch_size) >= 0) { - /* Tag's processed fine */ - ADVANCE(ch_size); - if(!ctx->phase) { - /* We are not expecting - * the closing tag anymore. */ - ctx->phase = 2; /* Phase out */ - RETURN(RC_OK); - } - continue; - } - /* Fall through */ - default: - break; /* Unexpected tag */ - } - - ASN_DEBUG("Unexpected XML tag (expected \"%s\")", xml_tag); - break; /* Dark and mysterious things have just happened */ - } - - RETURN(RC_FAIL); -} - - -size_t -xer_whitespace_span(const void *chunk_buf, size_t chunk_size) { - const char *p = (const char *)chunk_buf; - const char *pend = p + chunk_size; - - for(; p < pend; p++) { - switch(*p) { - /* X.693, #8.1.4 - * HORISONTAL TAB (9) - * LINE FEED (10) - * CARRIAGE RETURN (13) - * SPACE (32) - */ - case 0x09: case 0x0a: case 0x0d: case 0x20: - continue; - default: - break; - } - break; - } - return (p - (const char *)chunk_buf); -} - -/* - * This is a vastly simplified, non-validating XML tree skipper. - */ -int -xer_skip_unknown(xer_check_tag_e tcv, ber_tlv_len_t *depth) { - assert(*depth > 0); - switch(tcv) { - case XCT_BOTH: - case XCT_UNKNOWN_BO: - /* These negate each other. */ - return 0; - case XCT_OPENING: - case XCT_UNKNOWN_OP: - ++(*depth); - return 0; - case XCT_CLOSING: - case XCT_UNKNOWN_CL: - if(--(*depth) == 0) - return (tcv == XCT_CLOSING) ? 2 : 1; - return 0; - default: - return -1; - } -} diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/xer_encoder.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/xer_encoder.h deleted file mode 100644 index 9d75922..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/xer_encoder.h +++ /dev/null @@ -1,83 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _XER_ENCODER_H_ -#define _XER_ENCODER_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* Flags used by the xer_encode() and (*xer_type_encoder_f), defined below */ -enum xer_encoder_flags_e { - /* Mode of encoding */ - XER_F_BASIC = 0x01, /* BASIC-XER (pretty-printing) */ - XER_F_CANONICAL = 0x02 /* Canonical XER (strict rules) */ -}; - -/* - * The XER encoder of any type. May be invoked by the application. - * Produces CANONICAL-XER and BASIC-XER depending on the (xer_flags). - */ -asn_enc_rval_t xer_encode(const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - enum xer_encoder_flags_e xer_flags, - asn_app_consume_bytes_f *consume_bytes_cb, - void *app_key /* Arbitrary callback argument */ -); - -/* - * The variant of the above function which dumps the BASIC-XER (XER_F_BASIC) - * output into the chosen file pointer. - * RETURN VALUES: - * 0: The structure is printed. - * -1: Problem printing the structure. - * WARNING: No sensible errno value is returned. - */ -int xer_fprint(FILE *stream, const struct asn_TYPE_descriptor_s *td, - const void *struct_ptr); - -/* - * A helper function that uses XER encoding/decoding to verify that: - * - Both structures encode into the same BASIC XER. - * - Both resulting XER byte streams can be decoded back. - * - Both decoded structures encode into the same BASIC XER (round-trip). - * All of this verifies equivalence between structures and a round-trip. - * ARGUMENTS: - * (opt_debug_stream) - If specified, prints ongoing details. - */ -enum xer_equivalence_e { - XEQ_SUCCESS, /* The only completely positive return value */ - XEQ_FAILURE, /* General failure */ - XEQ_ENCODE1_FAILED, /* First sructure XER encoding failed */ - XEQ_ENCODE2_FAILED, /* Second structure XER encoding failed */ - XEQ_DIFFERENT, /* Structures encoded into different XER */ - XEQ_DECODE_FAILED, /* Decode of the XER data failed */ - XEQ_ROUND_TRIP_FAILED /* Bad round-trip */ -}; -enum xer_equivalence_e xer_equivalent( - const struct asn_TYPE_descriptor_s *type_descriptor, const void *struct1, - const void *struct2, FILE *opt_debug_stream); - -/* - * Type of the generic XER encoder. - */ -typedef asn_enc_rval_t(xer_type_encoder_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - int ilevel, /* Level of indentation */ - enum xer_encoder_flags_e xer_flags, - asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */ - void *app_key /* Arbitrary callback argument */ -); - -#ifdef __cplusplus -} -#endif - -#endif /* _XER_ENCODER_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/xer_support.h b/e2sim/e2sm_examples/kpm_e2sm/ASN1c/xer_support.h deleted file mode 100644 index c3a36e7..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/ASN1c/xer_support.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2003, 2004 X/IO Labs, xiolabs.com. - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _XER_SUPPORT_H_ -#define _XER_SUPPORT_H_ - -#include /* Platform-specific types */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Types of data transferred to the application. - */ -typedef enum { - PXML_TEXT, /* Plain text between XML tags. */ - PXML_TAG, /* A tag, starting with '<'. */ - PXML_COMMENT, /* An XML comment, including "". */ - /* - * The following chunk types are reported if the chunk - * terminates the specified XML element. - */ - PXML_TAG_END, /* Tag ended */ - PXML_COMMENT_END /* Comment ended */ -} pxml_chunk_type_e; - -/* - * Callback function that is called by the parser when parsed data is - * available. The _opaque is the pointer to a field containing opaque user - * data specified in pxml_create() call. The chunk type is _type and the text - * data is the piece of buffer identified by _bufid (as supplied to - * pxml_feed() call) starting at offset _offset and of _size bytes size. - * The chunk is NOT '\0'-terminated. - */ -typedef int (pxml_callback_f)(pxml_chunk_type_e _type, - const void *_chunk_data, size_t _chunk_size, void *_key); - -/* - * Parse the given buffer as it were a chunk of XML data. - * Invoke the specified callback each time the meaninful data is found. - * This function returns number of bytes consumed from the bufer. - * It will always be lesser than or equal to the specified _size. - * The next invocation of this function must account the difference. - */ -ssize_t pxml_parse(int *_stateContext, const void *_buf, size_t _size, - pxml_callback_f *cb, void *_key); - -#ifdef __cplusplus -} -#endif - -#endif /* _XER_SUPPORT_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/CMakeLists.txt b/e2sim/e2sm_examples/kpm_e2sm/CMakeLists.txt old mode 100644 new mode 100755 index 66fbf41..07562ff --- a/e2sim/e2sm_examples/kpm_e2sm/CMakeLists.txt +++ b/e2sim/e2sm_examples/kpm_e2sm/CMakeLists.txt @@ -81,7 +81,7 @@ endif() unset( GPROF CACHE ) # ensure this does not persist # each binary is built from a subset -add_subdirectory( src/ASN1c ) +add_subdirectory( asn1c ) add_subdirectory( src/kpm ) diff --git a/e2sim/e2sm_examples/kpm_e2sm/Dockerfile b/e2sim/e2sm_examples/kpm_e2sm/Dockerfile deleted file mode 100644 index 9735353..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/Dockerfile +++ /dev/null @@ -1,106 +0,0 @@ -# vim: ts=4 sw=4 noet: -#================================================================================== -# Copyright (c) 2018-2019 AT&T Intellectual Property. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#================================================================================== - - -# -------------------------------------------------------------------------------------- -# Mnemonic: Dockerfile -# Abstract: This dockerfile is used to create an image that can be used to -# run the traffic steering xAPP in a container. -# -# Building should be as simple as: -# -# docker build -f Dockerfile -t ric-app-ts:[version] -# -# Date: 27 April 2020 -# Author: E. Scott Daniels -# -------------------------------------------------------------------------------------- - -# the builder has: git, wget, cmake, gcc/g++, make, python2/3. v7 dropped nng support -# -ARG CONTAINER_PULL_REGISTRY=nexus3.o-ran-sc.org:10001 -FROM ${CONTAINER_PULL_REGISTRY}/o-ran-sc/bldr-ubuntu18-c-go:1.9.0 as buildenv - -# spaces to save things in the build image to copy to final image -RUN mkdir -p /playpen/assets /playpen/src /playpen/bin -ARG SRC=. - -WORKDIR /playpen - -# versions we snarf from package cloud -ARG E2SIM_VER=1.0.0 - -# package cloud urls for wget -#ARG PC_REL_URL=https://packagecloud.io/o-ran-sc/release/packages/debian/stretch -#ARG PC_STG_URL=https://packagecloud.io/o-ran-sc/staging/packages/debian/stretch - - -# snarf up E2SIM dependencies, then pull E2SIM package and install -# Dependencies: sctp - -RUN apt-get update \ - && apt-get install -y \ - build-essential \ - git \ - cmake \ - libsctp-dev \ - lksctp-tools \ - autoconf \ - automake \ - libtool \ - bison \ - flex \ - libboost-all-dev \ - iputils-ping \ - net-tools \ - nano \ - vim \ - tcpdump \ - net-tools \ - nmap \ - && apt-get clean - - -#RUN wget -nv --content-disposition ${PC_STG_URL}/sdl_${SDL_VER}-1_amd64.deb/download.deb && \ -# wget -nv --content-disposition ${PC_STG_URL}/sdl-dev_${SDL_VER}-1_amd64.deb/download.deb &&\ -# dpkg -i sdl-dev_${SDL_VER}-1_amd64.deb sdl_${SDL_VER}-1_amd64.deb - -# -# build and install the application(s) -# - - -COPY e2sim_1.0.0_amd64.deb /playpen -COPY e2sim-dev_1.0.0_amd64.deb /playpen - -RUN dpkg -i e2sim_1.0.0_amd64.deb e2sim-dev_1.0.0_amd64.deb - - -RUN mkdir /usr/local/include/nlohmann -RUN git clone https://github.com/azadkuh/nlohmann_json_release.git -RUN cp nlohmann_json_release/json.hpp /usr/local/include/nlohmann - -COPY . /playpen/src/ -RUN wc -l /playpen/src/reports.json -RUN cd /playpen/src && \ - rm -fr .build &&\ - mkdir .build && \ - cd .build && \ - cmake .. && \ - make install - - -CMD kpm_sim 10.110.102.29 36422 diff --git a/e2sim/e2sm_examples/kpm_e2sm/e2sim-dev_1.0.0_amd64.deb b/e2sim/e2sm_examples/kpm_e2sm/e2sim-dev_1.0.0_amd64.deb old mode 100644 new mode 100755 index a793bf3..7abedad Binary files a/e2sim/e2sm_examples/kpm_e2sm/e2sim-dev_1.0.0_amd64.deb and b/e2sim/e2sm_examples/kpm_e2sm/e2sim-dev_1.0.0_amd64.deb differ diff --git a/e2sim/e2sm_examples/kpm_e2sm/e2sim_1.0.0_amd64.deb b/e2sim/e2sm_examples/kpm_e2sm/e2sim_1.0.0_amd64.deb old mode 100644 new mode 100755 index 70042d6..7dda0da Binary files a/e2sim/e2sm_examples/kpm_e2sm/e2sim_1.0.0_amd64.deb and b/e2sim/e2sm_examples/kpm_e2sm/e2sim_1.0.0_amd64.deb differ diff --git a/e2sim/e2sm_examples/kpm_e2sm/nlohmann_json_release b/e2sim/e2sm_examples/kpm_e2sm/nlohmann_json_release deleted file mode 160000 index 8fedbef..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/nlohmann_json_release +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 8fedbef70ff9c5ddea15cdb765687ba946f0d461 diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/AMFName.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/AMFName.c deleted file mode 100644 index cb7c0a0..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/AMFName.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/AMFName.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/AMFName.h deleted file mode 100644 index 52eef4d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/AMFName.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _AMFName_H_ -#define _AMFName_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PrintableString.h" - -#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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ANY.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ANY.c deleted file mode 100644 index 0b81557..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ANY.c +++ /dev/null @@ -1,450 +0,0 @@ -/* - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -asn_OCTET_STRING_specifics_t asn_SPC_ANY_specs = { - sizeof(ANY_t), - offsetof(ANY_t, _asn_ctx), - ASN_OSUBV_ANY -}; -asn_TYPE_operation_t asn_OP_ANY = { - OCTET_STRING_free, - OCTET_STRING_print, - OCTET_STRING_compare, - OCTET_STRING_decode_ber, - OCTET_STRING_encode_der, - OCTET_STRING_decode_xer_hex, - ANY_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - 0, - 0, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, 0, 0, 0, -#else - ANY_decode_uper, - ANY_encode_uper, - ANY_decode_aper, - ANY_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - 0, /* Random fill is not defined for ANY type */ - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_ANY = { - "ANY", - "ANY", - &asn_OP_ANY, - 0, 0, 0, 0, - { 0, 0, asn_generic_no_constraint }, /* No constraints */ - 0, 0, /* No members */ - &asn_SPC_ANY_specs, -}; - -#undef RETURN -#define RETURN(_code) \ - do { \ - asn_dec_rval_t tmprval; \ - tmprval.code = _code; \ - tmprval.consumed = consumed_myself; \ - return tmprval; \ - } while(0) - -asn_enc_rval_t -ANY_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, - void *app_key) { - if(flags & XER_F_CANONICAL) { - /* - * Canonical XER-encoding of ANY type is not supported. - */ - ASN__ENCODE_FAILED; - } - - /* Dump as binary */ - return OCTET_STRING_encode_xer(td, sptr, ilevel, flags, cb, app_key); -} - -struct _callback_arg { - uint8_t *buffer; - size_t offset; - size_t size; -}; - -static int ANY__consume_bytes(const void *buffer, size_t size, void *key); - -int -ANY_fromType(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr) { - struct _callback_arg arg; - asn_enc_rval_t erval = {0,0,0}; - - if(!st || !td) { - errno = EINVAL; - return -1; - } - - if(!sptr) { - if(st->buf) FREEMEM(st->buf); - st->size = 0; - return 0; - } - - arg.offset = arg.size = 0; - arg.buffer = 0; - - erval = der_encode(td, sptr, ANY__consume_bytes, &arg); - if(erval.encoded == -1) { - if(arg.buffer) FREEMEM(arg.buffer); - return -1; - } - assert((size_t)erval.encoded == arg.offset); - - if(st->buf) FREEMEM(st->buf); - st->buf = arg.buffer; - st->size = arg.offset; - - return 0; -} - -int -ANY_fromType_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr) { - uint8_t *buffer = NULL; - ssize_t erval; - - if(!st || !td) { - errno = EINVAL; - return -1; - } - - if(!sptr) { - if(st->buf) FREEMEM(st->buf); - st->size = 0; - return 0; - } - - erval = aper_encode_to_new_buffer(td, td->encoding_constraints.per_constraints, sptr, (void**)&buffer); - - if(erval == -1) { - if(buffer) FREEMEM(buffer); - return -1; - } - assert((size_t)erval > 0); - - if(st->buf) FREEMEM(st->buf); - st->buf = buffer; - st->size = erval; - - return 0; -} - -ANY_t * -ANY_new_fromType(asn_TYPE_descriptor_t *td, void *sptr) { - ANY_t tmp; - ANY_t *st; - - if(!td || !sptr) { - errno = EINVAL; - return 0; - } - - memset(&tmp, 0, sizeof(tmp)); - - if(ANY_fromType(&tmp, td, sptr)) return 0; - - st = (ANY_t *)CALLOC(1, sizeof(ANY_t)); - if(st) { - *st = tmp; - return st; - } else { - FREEMEM(tmp.buf); - return 0; - } -} - -ANY_t * -ANY_new_fromType_aper(asn_TYPE_descriptor_t *td, void *sptr) { - ANY_t tmp; - ANY_t *st; - - if(!td || !sptr) { - errno = EINVAL; - return 0; - } - - memset(&tmp, 0, sizeof(tmp)); - - if(ANY_fromType_aper(&tmp, td, sptr)) return 0; - - st = (ANY_t *)CALLOC(1, sizeof(ANY_t)); - if(st) { - *st = tmp; - return st; - } else { - FREEMEM(tmp.buf); - return 0; - } -} - -int -ANY_to_type(ANY_t *st, asn_TYPE_descriptor_t *td, void **struct_ptr) { - asn_dec_rval_t rval; - void *newst = 0; - - if(!st || !td || !struct_ptr) { - errno = EINVAL; - return -1; - } - - if(st->buf == 0) { - /* Nothing to convert, make it empty. */ - *struct_ptr = (void *)0; - return 0; - } - - rval = ber_decode(0, td, (void **)&newst, st->buf, st->size); - if(rval.code == RC_OK) { - *struct_ptr = newst; - return 0; - } else { - /* Remove possibly partially decoded data. */ - ASN_STRUCT_FREE(*td, newst); - return -1; - } -} - -int -ANY_to_type_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void **struct_ptr) { - asn_dec_rval_t rval; - void *newst = 0; - - if(!st || !td || !struct_ptr) { - errno = EINVAL; - return -1; - } - - if(st->buf == 0) { - /* Nothing to convert, make it empty. */ - *struct_ptr = (void *)0; - return 0; - } - - rval = aper_decode(0, td, (void **)&newst, st->buf, st->size, 0, 0); - if(rval.code == RC_OK) { - *struct_ptr = newst; - return 0; - } else { - /* Remove possibly partially decoded data. */ - ASN_STRUCT_FREE(*td, newst); - return -1; - } -} - -static int ANY__consume_bytes(const void *buffer, size_t size, void *key) { - struct _callback_arg *arg = (struct _callback_arg *)key; - - if((arg->offset + size) >= arg->size) { - size_t nsize = (arg->size ? arg->size << 2 : 16) + size; - void *p = REALLOC(arg->buffer, nsize); - if(!p) return -1; - arg->buffer = (uint8_t *)p; - arg->size = nsize; - } - - memcpy(arg->buffer + arg->offset, buffer, size); - arg->offset += size; - assert(arg->offset < arg->size); - - return 0; -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -ANY_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_ANY_specs; - size_t consumed_myself = 0; - int repeat; - ANY_t *st = (ANY_t *)*sptr; - - (void)opt_codec_ctx; - (void)constraints; - - /* - * Allocate the structure. - */ - if(!st) { - st = (ANY_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("UPER Decoding ANY type"); - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - ssize_t len_bits; - void *p; - int ret; - - /* Get the PER length */ - raw_len = uper_get_length(pd, -1, 0, &repeat); - if(raw_len < 0) RETURN(RC_WMORE); - if(raw_len == 0 && st->buf) break; - - ASN_DEBUG("Got PER length len %" ASN_PRI_SIZE ", %s (%s)", raw_len, - repeat ? "repeat" : "once", td->name); - len_bytes = raw_len; - len_bits = len_bytes * 8; - - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += len_bits; - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - RETURN(RC_OK); -} - -asn_enc_rval_t -ANY_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const ANY_t *st = (const ANY_t *)sptr; - asn_enc_rval_t er = {0, 0, 0}; - const uint8_t *buf; - size_t size; - int ret; - - (void)constraints; - - if(!st || (!st->buf && st->size)) ASN__ENCODE_FAILED; - - buf = st->buf; - size = st->size; - do { - int need_eom = 0; - ssize_t may_save = uper_put_length(po, size, &need_eom); - if(may_save < 0) ASN__ENCODE_FAILED; - - ret = per_put_many_bits(po, buf, may_save * 8); - if(ret) ASN__ENCODE_FAILED; - - buf += may_save; - size -= may_save; - assert(!(may_save & 0x07) || !size); - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - } while(size); - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -ANY_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_ANY_specs; - size_t consumed_myself = 0; - int repeat; - ANY_t *st = (ANY_t *)*sptr; - - (void)opt_codec_ctx; - (void)constraints; - - /* - * Allocate the structure. - */ - if(!st) { - st = (ANY_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("APER Decoding ANY type"); - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - ssize_t len_bits; - void *p; - int ret; - - /* Get the PER length */ - raw_len = aper_get_length(pd, -1, 0, &repeat); - if(raw_len < 0) RETURN(RC_WMORE); - if(raw_len == 0 && st->buf) break; - - ASN_DEBUG("Got PER length len %" ASN_PRI_SIZE ", %s (%s)", raw_len, - repeat ? "repeat" : "once", td->name); - len_bytes = raw_len; - len_bits = len_bytes * 8; - - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += len_bits; - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - RETURN(RC_OK); -} - -asn_enc_rval_t -ANY_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const ANY_t *st = (const ANY_t *)sptr; - asn_enc_rval_t er = {0, 0, 0}; - const uint8_t *buf; - size_t size; - int ret; - - (void)constraints; - - if(!st || (!st->buf && st->size)) ASN__ENCODE_FAILED; - - buf = st->buf; - size = st->size; - do { - int need_eom = 0; - ssize_t may_save = uper_put_length(po, size, &need_eom); - if(may_save < 0) ASN__ENCODE_FAILED; - - ret = per_put_many_bits(po, buf, may_save * 8); - if(ret) ASN__ENCODE_FAILED; - - buf += may_save; - size -= may_save; - assert(!(may_save & 0x07) || !size); - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - } while(size); - - ASN__ENCODED_OK(er); -} -#endif /* ASN_DISABLE_PER_SUPPORT */ - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ANY.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ANY.h deleted file mode 100644 index b30381f..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ANY.h +++ /dev/null @@ -1,65 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_TYPE_ANY_H -#define ASN_TYPE_ANY_H - -#include /* Implemented via OCTET STRING type */ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct ANY { - uint8_t *buf; /* BER-encoded ANY contents */ - int size; /* Size of the above buffer */ - - asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ -} ANY_t; - -extern asn_TYPE_descriptor_t asn_DEF_ANY; -extern asn_TYPE_operation_t asn_OP_ANY; -extern asn_OCTET_STRING_specifics_t asn_SPC_ANY_specs; - -asn_struct_free_f ANY_free; -asn_struct_print_f ANY_print; -ber_type_decoder_f ANY_decode_ber; -der_type_encoder_f ANY_encode_der; -xer_type_encoder_f ANY_encode_xer; -per_type_decoder_f ANY_decode_uper; -per_type_encoder_f ANY_encode_uper; -per_type_decoder_f ANY_decode_aper; -per_type_encoder_f ANY_encode_aper; - -#define ANY_free OCTET_STRING_free -#define ANY_print OCTET_STRING_print -#define ANY_compare OCTET_STRING_compare -#define ANY_constraint asn_generic_no_constraint -#define ANY_decode_ber OCTET_STRING_decode_ber -#define ANY_encode_der OCTET_STRING_encode_der -#define ANY_decode_xer OCTET_STRING_decode_xer_hex - -/****************************** - * Handy conversion routines. * - ******************************/ - -/* Convert another ASN.1 type into the ANY. This implies DER encoding. */ -int ANY_fromType(ANY_t *, asn_TYPE_descriptor_t *td, void *struct_ptr); -int ANY_fromType_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr); -ANY_t *ANY_new_fromType(asn_TYPE_descriptor_t *td, void *struct_ptr); -ANY_t *ANY_new_fromType_aper(asn_TYPE_descriptor_t *td, void *sptr); - -/* Convert the contents of the ANY type into the specified type. */ -int ANY_to_type(ANY_t *, asn_TYPE_descriptor_t *td, void **struct_ptr); -int ANY_to_type_aper(ANY_t *, asn_TYPE_descriptor_t *td, void **struct_ptr); - -#define ANY_fromBuf(s, buf, size) OCTET_STRING_fromBuf((s), (buf), (size)) -#define ANY_new_fromBuf(buf, size) OCTET_STRING_new_fromBuf( \ - &asn_DEF_ANY, (buf), (size)) - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_TYPE_ANY_H */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/BIT_STRING.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/BIT_STRING.c deleted file mode 100644 index e8d7354..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/BIT_STRING.c +++ /dev/null @@ -1,656 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * BIT STRING basic type description. - */ -static const ber_tlv_tag_t asn_DEF_BIT_STRING_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_OCTET_STRING_specifics_t asn_SPC_BIT_STRING_specs = { - sizeof(BIT_STRING_t), - offsetof(BIT_STRING_t, _asn_ctx), - ASN_OSUBV_BIT -}; -asn_TYPE_operation_t asn_OP_BIT_STRING = { - OCTET_STRING_free, /* Implemented in terms of OCTET STRING */ - BIT_STRING_print, - BIT_STRING_compare, - OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ - OCTET_STRING_encode_der, /* Implemented in terms of OCTET STRING */ - OCTET_STRING_decode_xer_binary, - BIT_STRING_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - BIT_STRING_decode_oer, - BIT_STRING_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - BIT_STRING_decode_uper, /* Unaligned PER decoder */ - BIT_STRING_encode_uper, /* Unaligned PER encoder */ - OCTET_STRING_decode_aper, /* Aligned PER decoder */ - OCTET_STRING_encode_aper, /* Aligned PER encoder */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - BIT_STRING_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_BIT_STRING = { - "BIT STRING", - "BIT_STRING", - &asn_OP_BIT_STRING, - asn_DEF_BIT_STRING_tags, - sizeof(asn_DEF_BIT_STRING_tags) - / sizeof(asn_DEF_BIT_STRING_tags[0]), - asn_DEF_BIT_STRING_tags, /* Same as above */ - sizeof(asn_DEF_BIT_STRING_tags) - / sizeof(asn_DEF_BIT_STRING_tags[0]), - { 0, 0, BIT_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs -}; - -/* - * BIT STRING generic constraint. - */ -int -BIT_STRING_constraint(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; - - if(st && st->buf) { - if((st->size == 0 && st->bits_unused) - || st->bits_unused < 0 || st->bits_unused > 7) { - ASN__CTFAIL(app_key, td, sptr, - "%s: invalid padding byte (%s:%d)", - td->name, __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; -} - -static const char *_bit_pattern[16] = { - "0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", - "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111" -}; - -asn_enc_rval_t -BIT_STRING_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t er = {0, 0, 0}; - char scratch[128]; - char *p = scratch; - char *scend = scratch + (sizeof(scratch) - 10); - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - int xcan = (flags & XER_F_CANONICAL); - uint8_t *buf; - uint8_t *end; - - if(!st || !st->buf) - ASN__ENCODE_FAILED; - - er.encoded = 0; - - buf = st->buf; - end = buf + st->size - 1; /* Last byte is special */ - - /* - * Binary dump - */ - for(; buf < end; buf++) { - int v = *buf; - int nline = xcan?0:(((buf - st->buf) % 8) == 0); - if(p >= scend || nline) { - ASN__CALLBACK(scratch, p - scratch); - p = scratch; - if(nline) ASN__TEXT_INDENT(1, ilevel); - } - memcpy(p + 0, _bit_pattern[v >> 4], 4); - memcpy(p + 4, _bit_pattern[v & 0x0f], 4); - p += 8; - } - - if(!xcan && ((buf - st->buf) % 8) == 0) - ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK(scratch, p - scratch); - p = scratch; - - if(buf == end) { - int v = *buf; - int ubits = st->bits_unused; - int i; - for(i = 7; i >= ubits; i--) - *p++ = (v & (1 << i)) ? 0x31 : 0x30; - ASN__CALLBACK(scratch, p - scratch); - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - - -/* - * BIT STRING specific contents printer. - */ -int -BIT_STRING_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - const char * const h2c = "0123456789ABCDEF"; - char scratch[64]; - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - uint8_t *buf; - uint8_t *end; - char *p = scratch; - - (void)td; /* Unused argument */ - - if(!st || !st->buf) - return (cb("", 8, app_key) < 0) ? -1 : 0; - - ilevel++; - buf = st->buf; - end = buf + st->size; - - /* - * Hexadecimal dump. - */ - for(; buf < end; buf++) { - if((buf - st->buf) % 16 == 0 && (st->size > 16) - && buf != st->buf) { - _i_INDENT(1); - /* Dump the string */ - if(cb(scratch, p - scratch, app_key) < 0) return -1; - p = scratch; - } - *p++ = h2c[*buf >> 4]; - *p++ = h2c[*buf & 0x0F]; - *p++ = 0x20; - } - - if(p > scratch) { - p--; /* Eat the tailing space */ - - if((st->size > 16)) { - _i_INDENT(1); - } - - /* Dump the incomplete 16-bytes row */ - if(cb(scratch, p - scratch, app_key) < 0) - return -1; - } - - if(st->bits_unused) { - int ret = snprintf(scratch, sizeof(scratch), " (%d bit%s unused)", - st->bits_unused, st->bits_unused == 1 ? "" : "s"); - assert(ret > 0 && ret < (ssize_t)sizeof(scratch)); - if(ret > 0 && ret < (ssize_t)sizeof(scratch) - && cb(scratch, ret, app_key) < 0) - return -1; - } - - return 0; -} - -/* - * Non-destructively remove the trailing 0-bits from the given bit string. - */ -static const BIT_STRING_t * -BIT_STRING__compactify(const BIT_STRING_t *st, BIT_STRING_t *tmp) { - const uint8_t *b; - union { - const uint8_t *c_buf; - uint8_t *nc_buf; - } unconst; - - if(st->size == 0) { - assert(st->bits_unused == 0); - return st; - } else { - for(b = &st->buf[st->size - 1]; b > st->buf && *b == 0; b--) { - ; - } - /* b points to the last byte which may contain data */ - if(*b) { - int unused = 7; - uint8_t v = *b; - v &= -(int8_t)v; - if(v & 0x0F) unused -= 4; - if(v & 0x33) unused -= 2; - if(v & 0x55) unused -= 1; - tmp->size = b-st->buf + 1; - tmp->bits_unused = unused; - } else { - tmp->size = b-st->buf; - tmp->bits_unused = 0; - } - - assert(b >= st->buf); - } - - unconst.c_buf = st->buf; - tmp->buf = unconst.nc_buf; - return tmp; -} - -/* - * Lexicographically compare the common prefix of both strings, - * and if it is the same return -1 for the smallest string. - */ -int -BIT_STRING_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - /* - * Remove information about trailing bits, since - * X.680 (08/2015) #22.7 "ensure that different semantics are not" - * "associated with [values that differ only in] the trailing 0 bits." - */ - BIT_STRING_t compact_a, compact_b; - const BIT_STRING_t *a = BIT_STRING__compactify(aptr, &compact_a); - const BIT_STRING_t *b = BIT_STRING__compactify(bptr, &compact_b); - const asn_OCTET_STRING_specifics_t *specs = td->specifics; - - assert(specs && specs->subvariant == ASN_OSUBV_BIT); - - if(a && b) { - size_t common_prefix_size = a->size <= b->size ? a->size : b->size; - int ret = memcmp(a->buf, b->buf, common_prefix_size); - if(ret == 0) { - /* Figure out which string with equal prefixes is longer. */ - if(a->size < b->size) { - return -1; - } else if(a->size > b->size) { - return 1; - } else { - /* Figure out how many unused bits */ - if(a->bits_unused > b->bits_unused) { - return -1; - } else if(a->bits_unused < b->bits_unused) { - return 1; - } else { - return 0; - } - } - } else { - return ret; - } - } else if(!a && !b) { - return 0; - } else if(!a) { - return -1; - } else { - return 1; - } -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -#undef RETURN -#define RETURN(_code) \ - do { \ - asn_dec_rval_t tmprval; \ - tmprval.code = _code; \ - tmprval.consumed = consumed_myself; \ - return tmprval; \ - } while(0) - -static asn_per_constraint_t asn_DEF_BIT_STRING_constraint_size = { - APC_SEMI_CONSTRAINED, -1, -1, 0, 0}; - -asn_dec_rval_t -BIT_STRING_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_BIT_STRING_specs; - const asn_per_constraints_t *pc = - constraints ? constraints : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *csiz; - asn_dec_rval_t rval = { RC_OK, 0 }; - BIT_STRING_t *st = (BIT_STRING_t *)*sptr; - ssize_t consumed_myself = 0; - int repeat; - - (void)opt_codec_ctx; - - if(pc) { - csiz = &pc->size; - } else { - csiz = &asn_DEF_BIT_STRING_constraint_size; - } - - if(specs->subvariant != ASN_OSUBV_BIT) { - ASN_DEBUG("Subvariant %d is not BIT OSUBV_BIT", specs->subvariant); - RETURN(RC_FAIL); - } - - /* - * Allocate the string. - */ - if(!st) { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d", - csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", - csiz->lower_bound, csiz->upper_bound, csiz->effective_bits); - - if(csiz->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) RETURN(RC_WMORE); - if(inext) { - csiz = &asn_DEF_BIT_STRING_constraint_size; - } - } - - if(csiz->effective_bits >= 0) { - FREEMEM(st->buf); - st->size = (csiz->upper_bound + 7) >> 3; - st->buf = (uint8_t *)MALLOC(st->size + 1); - if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } - } - - /* X.691, #16.5: zero-length encoding */ - /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ - /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ - if(csiz->effective_bits == 0) { - int ret; - ASN_DEBUG("Encoding BIT STRING size %ld", csiz->upper_bound); - ret = per_get_many_bits(pd, st->buf, 0, csiz->upper_bound); - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += csiz->upper_bound; - st->buf[st->size] = 0; - st->bits_unused = (8 - (csiz->upper_bound & 0x7)) & 0x7; - RETURN(RC_OK); - } - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - ssize_t len_bits; - void *p; - int ret; - - /* Get the PER length */ - raw_len = uper_get_length(pd, csiz->effective_bits, csiz->lower_bound, - &repeat); - if(raw_len < 0) RETURN(RC_WMORE); - if(raw_len == 0 && st->buf) break; - - ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", - (long)csiz->effective_bits, (long)raw_len, - repeat ? "repeat" : "once", td->name); - len_bits = raw_len; - len_bytes = (len_bits + 7) >> 3; - if(len_bits & 0x7) st->bits_unused = 8 - (len_bits & 0x7); - /* len_bits be multiple of 16K if repeat is set */ - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); - if(ret < 0) RETURN(RC_WMORE); - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - return rval; -} - -asn_enc_rval_t -BIT_STRING_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_BIT_STRING_specs; - const asn_per_constraints_t *pc = - constraints ? constraints : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *csiz; - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - BIT_STRING_t compact_bstr; /* Do not modify this directly! */ - asn_enc_rval_t er = { 0, 0, 0 }; - int inext = 0; /* Lies not within extension root */ - size_t size_in_bits; - const uint8_t *buf; - int ret; - int ct_extensible; - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - if(specs->subvariant == ASN_OSUBV_BIT) { - if((st->size == 0 && st->bits_unused) || (st->bits_unused & ~7)) - ASN__ENCODE_FAILED; - } else { - ASN__ENCODE_FAILED; - } - - if(pc) { - csiz = &pc->size; - } else { - csiz = &asn_DEF_BIT_STRING_constraint_size; - } - ct_extensible = csiz->flags & APC_EXTENSIBLE; - - /* Figure out the size without the trailing bits */ - st = BIT_STRING__compactify(st, &compact_bstr); - size_in_bits = 8 * st->size - st->bits_unused; - - ASN_DEBUG( - "Encoding %s into %" ASN_PRI_SIZE " bits" - " (%ld..%ld, effective %d)%s", - td->name, size_in_bits, csiz->lower_bound, csiz->upper_bound, - csiz->effective_bits, ct_extensible ? " EXT" : ""); - - /* Figure out whether size lies within PER visible constraint */ - - if(csiz->effective_bits >= 0) { - if((ssize_t)size_in_bits > csiz->upper_bound) { - if(ct_extensible) { - csiz = &asn_DEF_BIT_STRING_constraint_size; - inext = 1; - } else { - ASN__ENCODE_FAILED; - } - } - } else { - inext = 0; - } - - if(ct_extensible) { - /* Declare whether length is [not] within extension root */ - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - } - - if(csiz->effective_bits >= 0 && !inext) { - int add_trailer = (ssize_t)size_in_bits < csiz->lower_bound; - ASN_DEBUG( - "Encoding %" ASN_PRI_SIZE " bytes (%ld), length (in %d bits) trailer %d; actual " - "value %" ASN_PRI_SSIZE "", - st->size, size_in_bits - csiz->lower_bound, csiz->effective_bits, - add_trailer, - add_trailer ? 0 : (ssize_t)size_in_bits - csiz->lower_bound); - ret = per_put_few_bits( - po, add_trailer ? 0 : (ssize_t)size_in_bits - csiz->lower_bound, - csiz->effective_bits); - if(ret) ASN__ENCODE_FAILED; - ret = per_put_many_bits(po, st->buf, size_in_bits); - if(ret) ASN__ENCODE_FAILED; - if(add_trailer) { - static const uint8_t zeros[16]; - size_t trailing_zero_bits = csiz->lower_bound - size_in_bits; - while(trailing_zero_bits > 0) { - if(trailing_zero_bits > 8 * sizeof(zeros)) { - ret = per_put_many_bits(po, zeros, 8 * sizeof(zeros)); - trailing_zero_bits -= 8 * sizeof(zeros); - } else { - ret = per_put_many_bits(po, zeros, trailing_zero_bits); - trailing_zero_bits = 0; - } - if(ret) ASN__ENCODE_FAILED; - } - } - ASN__ENCODED_OK(er); - } - - ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes", st->size); - - buf = st->buf; - do { - int need_eom = 0; - ssize_t maySave = uper_put_length(po, size_in_bits, &need_eom); - if(maySave < 0) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %" ASN_PRI_SSIZE " of %" ASN_PRI_SIZE "", maySave, size_in_bits); - - ret = per_put_many_bits(po, buf, maySave); - if(ret) ASN__ENCODE_FAILED; - - buf += maySave >> 3; - size_in_bits -= maySave; - assert(!(maySave & 0x07) || !size_in_bits); - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - } while(size_in_bits); - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -asn_random_fill_result_t -BIT_STRING_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_BIT_STRING_specs; - asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - static unsigned lengths[] = {0, 1, 2, 3, 4, 8, - 126, 127, 128, 16383, 16384, 16385, - 65534, 65535, 65536, 65537}; - uint8_t *buf; - uint8_t *bend; - uint8_t *b; - size_t rnd_bits, rnd_len; - BIT_STRING_t *st; - - if(max_length == 0) return result_skipped; - - switch(specs->subvariant) { - case ASN_OSUBV_ANY: - return result_failed; - case ASN_OSUBV_BIT: - break; - default: - break; - } - - /* Figure out how far we should go */ - rnd_bits = lengths[asn_random_between( - 0, sizeof(lengths) / sizeof(lengths[0]) - 1)]; - if(!constraints || !constraints->per_constraints) - constraints = &td->encoding_constraints; - if(constraints->per_constraints) { - const asn_per_constraint_t *pc = &constraints->per_constraints->size; - if(pc->flags & APC_CONSTRAINED) { - long suggested_upper_bound = pc->upper_bound < (ssize_t)max_length - ? pc->upper_bound - : (ssize_t)max_length; - if(max_length < (size_t)pc->lower_bound) { - return result_skipped; - } - if(pc->flags & APC_EXTENSIBLE) { - switch(asn_random_between(0, 5)) { - case 0: - if(pc->lower_bound > 0) { - rnd_bits = pc->lower_bound - 1; - break; - } - /* Fall through */ - case 1: - rnd_bits = pc->upper_bound + 1; - break; - case 2: - /* Keep rnd_bits from the table */ - if(rnd_bits < max_length) { - break; - } - /* Fall through */ - default: - rnd_bits = asn_random_between(pc->lower_bound, - suggested_upper_bound); - } - } else { - rnd_bits = - asn_random_between(pc->lower_bound, suggested_upper_bound); - } - } else { - rnd_bits = asn_random_between(0, max_length - 1); - } - } else if(rnd_bits >= max_length) { - rnd_bits = asn_random_between(0, max_length - 1); - } - - rnd_len = (rnd_bits + 7) / 8; - buf = CALLOC(1, rnd_len + 1); - if(!buf) return result_failed; - - bend = &buf[rnd_len]; - - for(b = buf; b < bend; b++) { - *(uint8_t *)b = asn_random_between(0, 255); - } - *b = 0; /* Zero-terminate just in case. */ - - if(*sptr) { - st = *sptr; - FREEMEM(st->buf); - } else { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) { - FREEMEM(buf); - return result_failed; - } - } - - st->buf = buf; - st->size = rnd_len; - st->bits_unused = (8 - (rnd_bits & 0x7)) & 0x7; - if(st->bits_unused) { - assert(st->size > 0); - st->buf[st->size-1] &= 0xff << st->bits_unused; - } - - result_ok.length = st->size; - return result_ok; -} diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/BIT_STRING.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/BIT_STRING.h deleted file mode 100644 index c1bdbbc..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/BIT_STRING.h +++ /dev/null @@ -1,48 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _BIT_STRING_H_ -#define _BIT_STRING_H_ - -#include /* Some help from OCTET STRING */ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct BIT_STRING_s { - uint8_t *buf; /* BIT STRING body */ - size_t size; /* Size of the above buffer */ - - int bits_unused;/* Unused trailing bits in the last octet (0..7) */ - - asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ -} BIT_STRING_t; - -extern asn_TYPE_descriptor_t asn_DEF_BIT_STRING; -extern asn_TYPE_operation_t asn_OP_BIT_STRING; -extern asn_OCTET_STRING_specifics_t asn_SPC_BIT_STRING_specs; - -asn_struct_print_f BIT_STRING_print; /* Human-readable output */ -asn_struct_compare_f BIT_STRING_compare; -asn_constr_check_f BIT_STRING_constraint; -xer_type_encoder_f BIT_STRING_encode_xer; -oer_type_decoder_f BIT_STRING_decode_oer; -oer_type_encoder_f BIT_STRING_encode_oer; -per_type_decoder_f BIT_STRING_decode_uper; -per_type_encoder_f BIT_STRING_encode_uper; -asn_random_fill_f BIT_STRING_random_fill; - -#define BIT_STRING_free OCTET_STRING_free -#define BIT_STRING_decode_ber OCTET_STRING_decode_ber -#define BIT_STRING_encode_der OCTET_STRING_encode_der -#define BIT_STRING_decode_xer OCTET_STRING_decode_xer_binary -#define BIT_STRING_decode_aper OCTET_STRING_decode_aper -#define BIT_STRING_encode_aper OCTET_STRING_encode_aper - -#ifdef __cplusplus -} -#endif - -#endif /* _BIT_STRING_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/BIT_STRING_oer.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/BIT_STRING_oer.c deleted file mode 100644 index aff5075..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/BIT_STRING_oer.c +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -asn_dec_rval_t -BIT_STRING_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **sptr, - const void *ptr, size_t size) { - BIT_STRING_t *st = (BIT_STRING_t *)*sptr; - const asn_oer_constraints_t *cts = - constraints ? constraints : td->encoding_constraints.oer_constraints; - ssize_t ct_size = cts ? cts->size : -1; - asn_dec_rval_t rval = {RC_OK, 0}; - size_t expected_length = 0; - - (void)opt_codec_ctx; - - if(!st) { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, sizeof(*st))); - if(!st) ASN__DECODE_FAILED; - } - - if(ct_size >= 0) { - expected_length = (ct_size + 7) >> 3; - st->bits_unused = (8 - (ct_size & 7)) & 7; - } else { - /* - * X.696 (08/2015) #13.3.1 - * Encode length determinant as _number of octets_, but only - * if upper bound is not equal to lower bound. - */ - ssize_t len_len = oer_fetch_length(ptr, size, &expected_length); - if(len_len > 0) { - ptr = (const char *)ptr + len_len; - size -= len_len; - } else if(len_len == 0) { - ASN__DECODE_STARVED; - } else if(len_len < 0) { - ASN__DECODE_FAILED; - } - - if(expected_length < 1) { - ASN__DECODE_FAILED; - } else if(expected_length > size) { - ASN__DECODE_STARVED; - } - - st->bits_unused = ((const uint8_t *)ptr)[0]; - if(st->bits_unused & ~7) { - ASN_DEBUG("%s: unused bits outside of 0..7 range", td->name); - ASN__DECODE_FAILED; - } - ptr = (const char *)ptr + 1; - size--; - expected_length--; - rval.consumed = len_len + 1; - } - - if(size < expected_length) { - ASN__DECODE_STARVED; - } else { - uint8_t *buf = MALLOC(expected_length + 1); - if(buf == NULL) { - ASN__DECODE_FAILED; - } else { - memcpy(buf, ptr, expected_length); - buf[expected_length] = '\0'; - } - FREEMEM(st->buf); - st->buf = buf; - st->size = expected_length; - if(expected_length > 0) { - buf[expected_length - 1] &= (0xff << st->bits_unused); - } - - rval.consumed += expected_length; - return rval; - } -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -BIT_STRING_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - const void *sptr, asn_app_consume_bytes_f *cb, - void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - asn_enc_rval_t erval = {0, 0, 0}; - const asn_oer_constraints_t *cts = - constraints ? constraints : td->encoding_constraints.oer_constraints; - ssize_t ct_size = cts ? cts->size : -1; - size_t trailing_zeros = 0; - int fix_last_byte = 0; - - if(!st) ASN__ENCODE_FAILED; - - if(st->bits_unused & ~7) { - ASN_DEBUG("BIT STRING unused bits %d out of 0..7 range", - st->bits_unused); - ASN__ENCODE_FAILED; - } - if(st->bits_unused && !(st->size && st->buf)) { - ASN_DEBUG("BIT STRING %s size 0 can't support unused bits %d", td->name, - st->bits_unused); - ASN__ENCODE_FAILED; - } - - if(ct_size >= 0) { - size_t ct_bytes = (ct_size + 7) >> 3; - if(st->size > ct_bytes) { - ASN_DEBUG("More bits in BIT STRING %s (%" ASN_PRI_SSIZE ") than constrained %" ASN_PRI_SSIZE "", - td->name, 8 * st->size - st->bits_unused, ct_size); - ASN__ENCODE_FAILED; - } - trailing_zeros = ct_bytes - st->size; /* Allow larger constraint */ - } else { - uint8_t ub = st->bits_unused & 7; - ssize_t len_len = oer_serialize_length(1 + st->size, cb, app_key); - if(len_len < 0) ASN__ENCODE_FAILED; - if(cb(&ub, 1, app_key) < 0) { - ASN__ENCODE_FAILED; - } - erval.encoded += len_len + 1; - } - - if(st->bits_unused) { - if(st->buf[st->size - 1] & (0xff << st->bits_unused)) { - fix_last_byte = 1; - } - } - - if(cb(st->buf, st->size - fix_last_byte, app_key) < 0) { - ASN__ENCODE_FAILED; - } - - if(fix_last_byte) { - uint8_t b = st->buf[st->size - 1] & (0xff << st->bits_unused); - if(cb(&b, 1, app_key) < 0) { - ASN__ENCODE_FAILED; - } - } - - erval.encoded += st->size; - - if(trailing_zeros) { - static uint8_t zeros[16]; - while(trailing_zeros > 0) { - int ret; - if(trailing_zeros < sizeof(zeros)) { - ret = cb(zeros, trailing_zeros, app_key); - erval.encoded += trailing_zeros; - } else { - ret = cb(zeros, sizeof(zeros), app_key); - erval.encoded += sizeof(zeros); - } - if(ret < 0) ASN__ENCODE_FAILED; - } - } - - return erval; -} - - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/C-RNTI.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/C-RNTI.c deleted file mode 100644 index e626083..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/C-RNTI.c +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "C-RNTI.h" - -int -C_RNTI_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; - - 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 == 2)) { - /* 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 OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_C_RNTI_constr_1 CC_NOTUSED = { - { 0, 0 }, - 2 /* (SIZE(2..2)) */}; -asn_per_constraints_t asn_PER_type_C_RNTI_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_C_RNTI_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_C_RNTI = { - "C-RNTI", - "C-RNTI", - &asn_OP_OCTET_STRING, - asn_DEF_C_RNTI_tags_1, - sizeof(asn_DEF_C_RNTI_tags_1) - /sizeof(asn_DEF_C_RNTI_tags_1[0]), /* 1 */ - asn_DEF_C_RNTI_tags_1, /* Same as above */ - sizeof(asn_DEF_C_RNTI_tags_1) - /sizeof(asn_DEF_C_RNTI_tags_1[0]), /* 1 */ - { &asn_OER_type_C_RNTI_constr_1, &asn_PER_type_C_RNTI_constr_1, C_RNTI_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/C-RNTI.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/C-RNTI.h deleted file mode 100644 index 7366109..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/C-RNTI.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _C_RNTI_H_ -#define _C_RNTI_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* C-RNTI */ -typedef OCTET_STRING_t C_RNTI_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_C_RNTI_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_C_RNTI; -asn_struct_free_f C_RNTI_free; -asn_struct_print_f C_RNTI_print; -asn_constr_check_f C_RNTI_constraint; -ber_type_decoder_f C_RNTI_decode_ber; -der_type_encoder_f C_RNTI_encode_der; -xer_type_decoder_f C_RNTI_decode_xer; -xer_type_encoder_f C_RNTI_encode_xer; -oer_type_decoder_f C_RNTI_decode_oer; -oer_type_encoder_f C_RNTI_encode_oer; -per_type_decoder_f C_RNTI_decode_uper; -per_type_encoder_f C_RNTI_encode_uper; -per_type_decoder_f C_RNTI_decode_aper; -per_type_encoder_f C_RNTI_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _C_RNTI_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CMakeLists.txt b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CMakeLists.txt deleted file mode 100644 index 8ba7111..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ -#/***************************************************************************** -# * -# Copyright 2020 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -# For clarity: this generates object, not a lib as the CM command implies. -# -file(GLOB SOURCES "*.c") -file(GLOB HEADERS "*.h") - -include_directories(.) -add_library( asn1_objects STATIC ${SOURCES} ${HEADERS}) -target_include_directories (asn1_objects PUBLIC - $ - $ - PRIVATE src) - - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.c deleted file mode 100644 index c0b6775..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CU-CP-Usage-Report-CellResourceReportItem.h" - -static int -memb_ueResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 32)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_ueResourceReportList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_type_ueResourceReportList_constr_3 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_oer_constraints_t asn_OER_memb_ueResourceReportList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_memb_ueResourceReportList_constr_3 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_ueResourceReportList_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CU_CP_Usage_Report_UeResourceReportItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ueResourceReportList_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ueResourceReportList_specs_3 = { - sizeof(struct CU_CP_Usage_Report_CellResourceReportItem__ueResourceReportList), - offsetof(struct CU_CP_Usage_Report_CellResourceReportItem__ueResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_ueResourceReportList_3 = { - "ueResourceReportList", - "ueResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_ueResourceReportList_tags_3, - sizeof(asn_DEF_ueResourceReportList_tags_3) - /sizeof(asn_DEF_ueResourceReportList_tags_3[0]) - 1, /* 1 */ - asn_DEF_ueResourceReportList_tags_3, /* Same as above */ - sizeof(asn_DEF_ueResourceReportList_tags_3) - /sizeof(asn_DEF_ueResourceReportList_tags_3[0]), /* 2 */ - { &asn_OER_type_ueResourceReportList_constr_3, &asn_PER_type_ueResourceReportList_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_ueResourceReportList_3, - 1, /* Single element */ - &asn_SPC_ueResourceReportList_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CU_CP_Usage_Report_CellResourceReportItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CU_CP_Usage_Report_CellResourceReportItem, nRCGI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRCGI" - }, - { ATF_NOFLAGS, 0, offsetof(struct CU_CP_Usage_Report_CellResourceReportItem, ueResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_ueResourceReportList_3, - 0, - { &asn_OER_memb_ueResourceReportList_constr_3, &asn_PER_memb_ueResourceReportList_constr_3, memb_ueResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "ueResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CU_CP_Usage_Report_CellResourceReportItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ueResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CU_CP_Usage_Report_CellResourceReportItem_specs_1 = { - sizeof(struct CU_CP_Usage_Report_CellResourceReportItem), - offsetof(struct CU_CP_Usage_Report_CellResourceReportItem, _asn_ctx), - asn_MAP_CU_CP_Usage_Report_CellResourceReportItem_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_CU_CP_Usage_Report_CellResourceReportItem = { - "CU-CP-Usage-Report-CellResourceReportItem", - "CU-CP-Usage-Report-CellResourceReportItem", - &asn_OP_SEQUENCE, - asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1, - sizeof(asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1[0]), /* 1 */ - asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1, /* Same as above */ - sizeof(asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CU_CP_Usage_Report_CellResourceReportItem_1, - 2, /* Elements count */ - &asn_SPC_CU_CP_Usage_Report_CellResourceReportItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.h deleted file mode 100644 index 9fb9dd9..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CU_CP_Usage_Report_CellResourceReportItem_H_ -#define _CU_CP_Usage_Report_CellResourceReportItem_H_ - - -#include - -/* Including external dependencies */ -#include "NRCGI.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CU_CP_Usage_Report_UeResourceReportItem; - -/* CU-CP-Usage-Report-CellResourceReportItem */ -typedef struct CU_CP_Usage_Report_CellResourceReportItem { - NRCGI_t nRCGI; - struct CU_CP_Usage_Report_CellResourceReportItem__ueResourceReportList { - A_SEQUENCE_OF(struct CU_CP_Usage_Report_UeResourceReportItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } ueResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CU_CP_Usage_Report_CellResourceReportItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CU_CP_Usage_Report_CellResourceReportItem; -extern asn_SEQUENCE_specifics_t asn_SPC_CU_CP_Usage_Report_CellResourceReportItem_specs_1; -extern asn_TYPE_member_t asn_MBR_CU_CP_Usage_Report_CellResourceReportItem_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "CU-CP-Usage-Report-UeResourceReportItem.h" - -#endif /* _CU_CP_Usage_Report_CellResourceReportItem_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-CP-Usage-Report-Per-UE.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-CP-Usage-Report-Per-UE.c deleted file mode 100644 index 22055b3..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-CP-Usage-Report-Per-UE.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CU-CP-Usage-Report-Per-UE.h" - -static int -memb_cellResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 16384)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..16384)) */}; -static asn_per_constraints_t asn_PER_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 14, 14, 1, 16384 } /* (SIZE(1..16384)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..16384)) */}; -static asn_per_constraints_t asn_PER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 14, 14, 1, 16384 } /* (SIZE(1..16384)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_cellResourceReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CU_CP_Usage_Report_CellResourceReportItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_cellResourceReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_cellResourceReportList_specs_2 = { - sizeof(struct CU_CP_Usage_Report_Per_UE__cellResourceReportList), - offsetof(struct CU_CP_Usage_Report_Per_UE__cellResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_cellResourceReportList_2 = { - "cellResourceReportList", - "cellResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_cellResourceReportList_tags_2, - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_cellResourceReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_cellResourceReportList_constr_2, &asn_PER_type_cellResourceReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_cellResourceReportList_2, - 1, /* Single element */ - &asn_SPC_cellResourceReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CU_CP_Usage_Report_Per_UE_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CU_CP_Usage_Report_Per_UE, cellResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_cellResourceReportList_2, - 0, - { &asn_OER_memb_cellResourceReportList_constr_2, &asn_PER_memb_cellResourceReportList_constr_2, memb_cellResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "cellResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CU_CP_Usage_Report_Per_UE_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cellResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CU_CP_Usage_Report_Per_UE_specs_1 = { - sizeof(struct CU_CP_Usage_Report_Per_UE), - offsetof(struct CU_CP_Usage_Report_Per_UE, _asn_ctx), - asn_MAP_CU_CP_Usage_Report_Per_UE_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_CU_CP_Usage_Report_Per_UE = { - "CU-CP-Usage-Report-Per-UE", - "CU-CP-Usage-Report-Per-UE", - &asn_OP_SEQUENCE, - asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1, - sizeof(asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1) - /sizeof(asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1[0]), /* 1 */ - asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1, /* Same as above */ - sizeof(asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1) - /sizeof(asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CU_CP_Usage_Report_Per_UE_1, - 1, /* Elements count */ - &asn_SPC_CU_CP_Usage_Report_Per_UE_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-CP-Usage-Report-Per-UE.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-CP-Usage-Report-Per-UE.h deleted file mode 100644 index dad74ca..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-CP-Usage-Report-Per-UE.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CU_CP_Usage_Report_Per_UE_H_ -#define _CU_CP_Usage_Report_Per_UE_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CU_CP_Usage_Report_CellResourceReportItem; - -/* CU-CP-Usage-Report-Per-UE */ -typedef struct CU_CP_Usage_Report_Per_UE { - struct CU_CP_Usage_Report_Per_UE__cellResourceReportList { - A_SEQUENCE_OF(struct CU_CP_Usage_Report_CellResourceReportItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } cellResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CU_CP_Usage_Report_Per_UE_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CU_CP_Usage_Report_Per_UE; -extern asn_SEQUENCE_specifics_t asn_SPC_CU_CP_Usage_Report_Per_UE_specs_1; -extern asn_TYPE_member_t asn_MBR_CU_CP_Usage_Report_Per_UE_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "CU-CP-Usage-Report-CellResourceReportItem.h" - -#endif /* _CU_CP_Usage_Report_Per_UE_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.c deleted file mode 100644 index de4d8de..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CU-CP-Usage-Report-UeResourceReportItem.h" - -asn_TYPE_member_t asn_MBR_CU_CP_Usage_Report_UeResourceReportItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CU_CP_Usage_Report_UeResourceReportItem, c_RNTI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_C_RNTI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "c-RNTI" - }, - { ATF_POINTER, 2, offsetof(struct CU_CP_Usage_Report_UeResourceReportItem, serving_Cell_RF_Type), - (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 */ - "serving-Cell-RF-Type" - }, - { ATF_POINTER, 1, offsetof(struct CU_CP_Usage_Report_UeResourceReportItem, neighbor_Cell_RF), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "neighbor-Cell-RF" - }, -}; -static const int asn_MAP_CU_CP_Usage_Report_UeResourceReportItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CU_CP_Usage_Report_UeResourceReportItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* c-RNTI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* serving-Cell-RF-Type */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* neighbor-Cell-RF */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CU_CP_Usage_Report_UeResourceReportItem_specs_1 = { - sizeof(struct CU_CP_Usage_Report_UeResourceReportItem), - offsetof(struct CU_CP_Usage_Report_UeResourceReportItem, _asn_ctx), - asn_MAP_CU_CP_Usage_Report_UeResourceReportItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_CU_CP_Usage_Report_UeResourceReportItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CU_CP_Usage_Report_UeResourceReportItem = { - "CU-CP-Usage-Report-UeResourceReportItem", - "CU-CP-Usage-Report-UeResourceReportItem", - &asn_OP_SEQUENCE, - asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1, - sizeof(asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1[0]), /* 1 */ - asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1, /* Same as above */ - sizeof(asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CU_CP_Usage_Report_UeResourceReportItem_1, - 3, /* Elements count */ - &asn_SPC_CU_CP_Usage_Report_UeResourceReportItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.h deleted file mode 100644 index 11edd99..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CU_CP_Usage_Report_UeResourceReportItem_H_ -#define _CU_CP_Usage_Report_UeResourceReportItem_H_ - - -#include - -/* Including external dependencies */ -#include "C-RNTI.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* CU-CP-Usage-Report-UeResourceReportItem */ -typedef struct CU_CP_Usage_Report_UeResourceReportItem { - C_RNTI_t c_RNTI; - OCTET_STRING_t *serving_Cell_RF_Type; /* OPTIONAL */ - OCTET_STRING_t *neighbor_Cell_RF; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CU_CP_Usage_Report_UeResourceReportItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CU_CP_Usage_Report_UeResourceReportItem; -extern asn_SEQUENCE_specifics_t asn_SPC_CU_CP_Usage_Report_UeResourceReportItem_specs_1; -extern asn_TYPE_member_t asn_MBR_CU_CP_Usage_Report_UeResourceReportItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _CU_CP_Usage_Report_UeResourceReportItem_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.c deleted file mode 100644 index 4781c55..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CU-UP-Usage-Report-CellResourceReportItem.h" - -static int -memb_ueResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 32)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_ueResourceReportList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_type_ueResourceReportList_constr_3 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_oer_constraints_t asn_OER_memb_ueResourceReportList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_memb_ueResourceReportList_constr_3 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_ueResourceReportList_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CU_UP_Usage_Report_UeResourceReportItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ueResourceReportList_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ueResourceReportList_specs_3 = { - sizeof(struct CU_UP_Usage_Report_CellResourceReportItem__ueResourceReportList), - offsetof(struct CU_UP_Usage_Report_CellResourceReportItem__ueResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_ueResourceReportList_3 = { - "ueResourceReportList", - "ueResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_ueResourceReportList_tags_3, - sizeof(asn_DEF_ueResourceReportList_tags_3) - /sizeof(asn_DEF_ueResourceReportList_tags_3[0]) - 1, /* 1 */ - asn_DEF_ueResourceReportList_tags_3, /* Same as above */ - sizeof(asn_DEF_ueResourceReportList_tags_3) - /sizeof(asn_DEF_ueResourceReportList_tags_3[0]), /* 2 */ - { &asn_OER_type_ueResourceReportList_constr_3, &asn_PER_type_ueResourceReportList_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_ueResourceReportList_3, - 1, /* Single element */ - &asn_SPC_ueResourceReportList_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CU_UP_Usage_Report_CellResourceReportItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CU_UP_Usage_Report_CellResourceReportItem, nRCGI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRCGI" - }, - { ATF_NOFLAGS, 0, offsetof(struct CU_UP_Usage_Report_CellResourceReportItem, ueResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_ueResourceReportList_3, - 0, - { &asn_OER_memb_ueResourceReportList_constr_3, &asn_PER_memb_ueResourceReportList_constr_3, memb_ueResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "ueResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CU_UP_Usage_Report_CellResourceReportItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ueResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CU_UP_Usage_Report_CellResourceReportItem_specs_1 = { - sizeof(struct CU_UP_Usage_Report_CellResourceReportItem), - offsetof(struct CU_UP_Usage_Report_CellResourceReportItem, _asn_ctx), - asn_MAP_CU_UP_Usage_Report_CellResourceReportItem_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_CU_UP_Usage_Report_CellResourceReportItem = { - "CU-UP-Usage-Report-CellResourceReportItem", - "CU-UP-Usage-Report-CellResourceReportItem", - &asn_OP_SEQUENCE, - asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1, - sizeof(asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1[0]), /* 1 */ - asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1, /* Same as above */ - sizeof(asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CU_UP_Usage_Report_CellResourceReportItem_1, - 2, /* Elements count */ - &asn_SPC_CU_UP_Usage_Report_CellResourceReportItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.h deleted file mode 100644 index f313f40..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CU_UP_Usage_Report_CellResourceReportItem_H_ -#define _CU_UP_Usage_Report_CellResourceReportItem_H_ - - -#include - -/* Including external dependencies */ -#include "NRCGI.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CU_UP_Usage_Report_UeResourceReportItem; - -/* CU-UP-Usage-Report-CellResourceReportItem */ -typedef struct CU_UP_Usage_Report_CellResourceReportItem { - NRCGI_t nRCGI; - struct CU_UP_Usage_Report_CellResourceReportItem__ueResourceReportList { - A_SEQUENCE_OF(struct CU_UP_Usage_Report_UeResourceReportItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } ueResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CU_UP_Usage_Report_CellResourceReportItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CU_UP_Usage_Report_CellResourceReportItem; -extern asn_SEQUENCE_specifics_t asn_SPC_CU_UP_Usage_Report_CellResourceReportItem_specs_1; -extern asn_TYPE_member_t asn_MBR_CU_UP_Usage_Report_CellResourceReportItem_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "CU-UP-Usage-Report-UeResourceReportItem.h" - -#endif /* _CU_UP_Usage_Report_CellResourceReportItem_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-UP-Usage-Report-Per-UE.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-UP-Usage-Report-Per-UE.c deleted file mode 100644 index 5213281..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-UP-Usage-Report-Per-UE.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CU-UP-Usage-Report-Per-UE.h" - -static int -memb_cellResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 512)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..512)) */}; -static asn_per_constraints_t asn_PER_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 1, 512 } /* (SIZE(1..512)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..512)) */}; -static asn_per_constraints_t asn_PER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 1, 512 } /* (SIZE(1..512)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_cellResourceReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CU_UP_Usage_Report_CellResourceReportItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_cellResourceReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_cellResourceReportList_specs_2 = { - sizeof(struct CU_UP_Usage_Report_Per_UE__cellResourceReportList), - offsetof(struct CU_UP_Usage_Report_Per_UE__cellResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_cellResourceReportList_2 = { - "cellResourceReportList", - "cellResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_cellResourceReportList_tags_2, - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_cellResourceReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_cellResourceReportList_constr_2, &asn_PER_type_cellResourceReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_cellResourceReportList_2, - 1, /* Single element */ - &asn_SPC_cellResourceReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CU_UP_Usage_Report_Per_UE_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CU_UP_Usage_Report_Per_UE, cellResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_cellResourceReportList_2, - 0, - { &asn_OER_memb_cellResourceReportList_constr_2, &asn_PER_memb_cellResourceReportList_constr_2, memb_cellResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "cellResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CU_UP_Usage_Report_Per_UE_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cellResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CU_UP_Usage_Report_Per_UE_specs_1 = { - sizeof(struct CU_UP_Usage_Report_Per_UE), - offsetof(struct CU_UP_Usage_Report_Per_UE, _asn_ctx), - asn_MAP_CU_UP_Usage_Report_Per_UE_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_CU_UP_Usage_Report_Per_UE = { - "CU-UP-Usage-Report-Per-UE", - "CU-UP-Usage-Report-Per-UE", - &asn_OP_SEQUENCE, - asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1, - sizeof(asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1) - /sizeof(asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1[0]), /* 1 */ - asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1, /* Same as above */ - sizeof(asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1) - /sizeof(asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CU_UP_Usage_Report_Per_UE_1, - 1, /* Elements count */ - &asn_SPC_CU_UP_Usage_Report_Per_UE_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-UP-Usage-Report-Per-UE.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-UP-Usage-Report-Per-UE.h deleted file mode 100644 index 71e6ed9..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-UP-Usage-Report-Per-UE.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CU_UP_Usage_Report_Per_UE_H_ -#define _CU_UP_Usage_Report_Per_UE_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CU_UP_Usage_Report_CellResourceReportItem; - -/* CU-UP-Usage-Report-Per-UE */ -typedef struct CU_UP_Usage_Report_Per_UE { - struct CU_UP_Usage_Report_Per_UE__cellResourceReportList { - A_SEQUENCE_OF(struct CU_UP_Usage_Report_CellResourceReportItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } cellResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CU_UP_Usage_Report_Per_UE_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CU_UP_Usage_Report_Per_UE; -extern asn_SEQUENCE_specifics_t asn_SPC_CU_UP_Usage_Report_Per_UE_specs_1; -extern asn_TYPE_member_t asn_MBR_CU_UP_Usage_Report_Per_UE_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "CU-UP-Usage-Report-CellResourceReportItem.h" - -#endif /* _CU_UP_Usage_Report_Per_UE_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.c deleted file mode 100644 index 1867379..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.c +++ /dev/null @@ -1,150 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CU-UP-Usage-Report-UeResourceReportItem.h" - -static int -memb_pDCPBytesDL_constraint_1(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 <= 10000000000)) { - /* 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_pDCPBytesUL_constraint_1(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 <= 10000000000)) { - /* 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_pDCPBytesDL_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_pDCPBytesDL_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 34, -1, 0, 10000000000 } /* (0..10000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 34, -1, 0, 10000000000 } /* (0..10000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_CU_UP_Usage_Report_UeResourceReportItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CU_UP_Usage_Report_UeResourceReportItem, c_RNTI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_C_RNTI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "c-RNTI" - }, - { ATF_POINTER, 2, offsetof(struct CU_UP_Usage_Report_UeResourceReportItem, pDCPBytesDL), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_INTEGER, - 0, - { &asn_OER_memb_pDCPBytesDL_constr_3, &asn_PER_memb_pDCPBytesDL_constr_3, memb_pDCPBytesDL_constraint_1 }, - 0, 0, /* No default value */ - "pDCPBytesDL" - }, - { ATF_POINTER, 1, offsetof(struct CU_UP_Usage_Report_UeResourceReportItem, pDCPBytesUL), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_INTEGER, - 0, - { &asn_OER_memb_pDCPBytesUL_constr_4, &asn_PER_memb_pDCPBytesUL_constr_4, memb_pDCPBytesUL_constraint_1 }, - 0, 0, /* No default value */ - "pDCPBytesUL" - }, -}; -static const int asn_MAP_CU_UP_Usage_Report_UeResourceReportItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CU_UP_Usage_Report_UeResourceReportItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* c-RNTI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDCPBytesDL */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* pDCPBytesUL */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CU_UP_Usage_Report_UeResourceReportItem_specs_1 = { - sizeof(struct CU_UP_Usage_Report_UeResourceReportItem), - offsetof(struct CU_UP_Usage_Report_UeResourceReportItem, _asn_ctx), - asn_MAP_CU_UP_Usage_Report_UeResourceReportItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_CU_UP_Usage_Report_UeResourceReportItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CU_UP_Usage_Report_UeResourceReportItem = { - "CU-UP-Usage-Report-UeResourceReportItem", - "CU-UP-Usage-Report-UeResourceReportItem", - &asn_OP_SEQUENCE, - asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1, - sizeof(asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1[0]), /* 1 */ - asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1, /* Same as above */ - sizeof(asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CU_UP_Usage_Report_UeResourceReportItem_1, - 3, /* Elements count */ - &asn_SPC_CU_UP_Usage_Report_UeResourceReportItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.h deleted file mode 100644 index 3a3dec7..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CU_UP_Usage_Report_UeResourceReportItem_H_ -#define _CU_UP_Usage_Report_UeResourceReportItem_H_ - - -#include - -/* Including external dependencies */ -#include "C-RNTI.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* CU-UP-Usage-Report-UeResourceReportItem */ -typedef struct CU_UP_Usage_Report_UeResourceReportItem { - C_RNTI_t c_RNTI; - INTEGER_t *pDCPBytesDL; /* OPTIONAL */ - INTEGER_t *pDCPBytesUL; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CU_UP_Usage_Report_UeResourceReportItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CU_UP_Usage_Report_UeResourceReportItem; -extern asn_SEQUENCE_specifics_t asn_SPC_CU_UP_Usage_Report_UeResourceReportItem_specs_1; -extern asn_TYPE_member_t asn_MBR_CU_UP_Usage_Report_UeResourceReportItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _CU_UP_Usage_Report_UeResourceReportItem_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CUUPMeasurement-Container.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CUUPMeasurement-Container.c deleted file mode 100644 index bd27283..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CUUPMeasurement-Container.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CUUPMeasurement-Container.h" - -static int -memb_plmnList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 12)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_plmnList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..12)) */}; -static asn_per_constraints_t asn_PER_type_plmnList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 12 } /* (SIZE(1..12)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_plmnList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..12)) */}; -static asn_per_constraints_t asn_PER_memb_plmnList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 12 } /* (SIZE(1..12)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_plmnList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_PlmnID_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_plmnList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_plmnList_specs_2 = { - sizeof(struct CUUPMeasurement_Container__plmnList), - offsetof(struct CUUPMeasurement_Container__plmnList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_plmnList_2 = { - "plmnList", - "plmnList", - &asn_OP_SEQUENCE_OF, - asn_DEF_plmnList_tags_2, - sizeof(asn_DEF_plmnList_tags_2) - /sizeof(asn_DEF_plmnList_tags_2[0]) - 1, /* 1 */ - asn_DEF_plmnList_tags_2, /* Same as above */ - sizeof(asn_DEF_plmnList_tags_2) - /sizeof(asn_DEF_plmnList_tags_2[0]), /* 2 */ - { &asn_OER_type_plmnList_constr_2, &asn_PER_type_plmnList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_plmnList_2, - 1, /* Single element */ - &asn_SPC_plmnList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CUUPMeasurement_Container_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CUUPMeasurement_Container, plmnList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_plmnList_2, - 0, - { &asn_OER_memb_plmnList_constr_2, &asn_PER_memb_plmnList_constr_2, memb_plmnList_constraint_1 }, - 0, 0, /* No default value */ - "plmnList" - }, -}; -static const ber_tlv_tag_t asn_DEF_CUUPMeasurement_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CUUPMeasurement_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* plmnList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CUUPMeasurement_Container_specs_1 = { - sizeof(struct CUUPMeasurement_Container), - offsetof(struct CUUPMeasurement_Container, _asn_ctx), - asn_MAP_CUUPMeasurement_Container_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_CUUPMeasurement_Container = { - "CUUPMeasurement-Container", - "CUUPMeasurement-Container", - &asn_OP_SEQUENCE, - asn_DEF_CUUPMeasurement_Container_tags_1, - sizeof(asn_DEF_CUUPMeasurement_Container_tags_1) - /sizeof(asn_DEF_CUUPMeasurement_Container_tags_1[0]), /* 1 */ - asn_DEF_CUUPMeasurement_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_CUUPMeasurement_Container_tags_1) - /sizeof(asn_DEF_CUUPMeasurement_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CUUPMeasurement_Container_1, - 1, /* Elements count */ - &asn_SPC_CUUPMeasurement_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CUUPMeasurement-Container.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CUUPMeasurement-Container.h deleted file mode 100644 index 14aafc3..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CUUPMeasurement-Container.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CUUPMeasurement_Container_H_ -#define _CUUPMeasurement_Container_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PlmnID_List; - -/* CUUPMeasurement-Container */ -typedef struct CUUPMeasurement_Container { - struct CUUPMeasurement_Container__plmnList { - A_SEQUENCE_OF(struct PlmnID_List) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } plmnList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CUUPMeasurement_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CUUPMeasurement_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_CUUPMeasurement_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_CUUPMeasurement_Container_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "PlmnID-List.h" - -#endif /* _CUUPMeasurement_Container_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Cause.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Cause.c deleted file mode 100644 index 8f3f2e8..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Cause.c +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "Cause.h" - -static asn_oer_constraints_t asn_OER_type_Cause_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_Cause_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_Cause_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.ricRequest), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseRICrequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.ricService), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseRICservice, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricService" - }, - { ATF_NOFLAGS, 0, offsetof(struct Cause, 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 Cause, choice.transport), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseTransport, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "transport" - }, - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.protocol), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseProtocol, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocol" - }, - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.misc), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseMisc, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "misc" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_Cause_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 }, /* 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_Cause_specs_1 = { - sizeof(struct Cause), - offsetof(struct Cause, _asn_ctx), - offsetof(struct Cause, present), - sizeof(((struct Cause *)0)->present), - asn_MAP_Cause_tag2el_1, - 6, /* Count of tags in the map */ - 0, 0, - 6 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_Cause = { - "Cause", - "Cause", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_Cause_constr_1, &asn_PER_type_Cause_constr_1, CHOICE_constraint }, - asn_MBR_Cause_1, - 6, /* Elements count */ - &asn_SPC_Cause_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Cause.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Cause.h deleted file mode 100644 index 79f0aac..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Cause.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _Cause_H_ -#define _Cause_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "CauseRICrequest.h" -#include "CauseRICservice.h" -#include "CauseE2node.h" -#include "CauseTransport.h" -#include "CauseProtocol.h" -#include "CauseMisc.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum Cause_PR { - Cause_PR_NOTHING, /* No components present */ - Cause_PR_ricRequest, - Cause_PR_ricService, - Cause_PR_e2Node, - Cause_PR_transport, - Cause_PR_protocol, - Cause_PR_misc - /* Extensions may appear below */ - -} Cause_PR; - -/* Cause */ -typedef struct Cause { - Cause_PR present; - union Cause_u { - CauseRICrequest_t ricRequest; - CauseRICservice_t ricService; - CauseE2node_t e2Node; - CauseTransport_t transport; - CauseProtocol_t protocol; - CauseMisc_t misc; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} Cause_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_Cause; -extern asn_CHOICE_specifics_t asn_SPC_Cause_specs_1; -extern asn_TYPE_member_t asn_MBR_Cause_1[6]; -extern asn_per_constraints_t asn_PER_type_Cause_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _Cause_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseE2node.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseE2node.c deleted file mode 100644 index c52989a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseE2node.c +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseE2node.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseE2node.h deleted file mode 100644 index 483f655..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseE2node.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _CauseE2node_H_ -#define _CauseE2node_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseMisc.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseMisc.c deleted file mode 100644 index d7cb3a3..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseMisc.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "CauseMisc.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_CauseMisc_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_CauseMisc_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CauseMisc_value2enum_1[] = { - { 0, 27, "control-processing-overload" }, - { 1, 16, "hardware-failure" }, - { 2, 15, "om-intervention" }, - { 3, 11, "unspecified" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CauseMisc_enum2value_1[] = { - 0, /* control-processing-overload(0) */ - 1, /* hardware-failure(1) */ - 2, /* om-intervention(2) */ - 3 /* unspecified(3) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseMisc_specs_1 = { - asn_MAP_CauseMisc_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseMisc_enum2value_1, /* N => "tag"; sorted by N */ - 4, /* Number of elements in the maps */ - 5, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_CauseMisc_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseMisc = { - "CauseMisc", - "CauseMisc", - &asn_OP_NativeEnumerated, - asn_DEF_CauseMisc_tags_1, - sizeof(asn_DEF_CauseMisc_tags_1) - /sizeof(asn_DEF_CauseMisc_tags_1[0]), /* 1 */ - asn_DEF_CauseMisc_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseMisc_tags_1) - /sizeof(asn_DEF_CauseMisc_tags_1[0]), /* 1 */ - { &asn_OER_type_CauseMisc_constr_1, &asn_PER_type_CauseMisc_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseMisc_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseMisc.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseMisc.h deleted file mode 100644 index a8d2306..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseMisc.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _CauseMisc_H_ -#define _CauseMisc_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseMisc { - CauseMisc_control_processing_overload = 0, - CauseMisc_hardware_failure = 1, - CauseMisc_om_intervention = 2, - CauseMisc_unspecified = 3 - /* - * Enumeration is extensible - */ -} e_CauseMisc; - -/* CauseMisc */ -typedef long CauseMisc_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseMisc_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseMisc; -extern const asn_INTEGER_specifics_t asn_SPC_CauseMisc_specs_1; -asn_struct_free_f CauseMisc_free; -asn_struct_print_f CauseMisc_print; -asn_constr_check_f CauseMisc_constraint; -ber_type_decoder_f CauseMisc_decode_ber; -der_type_encoder_f CauseMisc_encode_der; -xer_type_decoder_f CauseMisc_decode_xer; -xer_type_encoder_f CauseMisc_encode_xer; -oer_type_decoder_f CauseMisc_decode_oer; -oer_type_encoder_f CauseMisc_encode_oer; -per_type_decoder_f CauseMisc_decode_uper; -per_type_encoder_f CauseMisc_encode_uper; -per_type_decoder_f CauseMisc_decode_aper; -per_type_encoder_f CauseMisc_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseMisc_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseProtocol.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseProtocol.c deleted file mode 100644 index 7fdc4c4..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseProtocol.c +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "CauseProtocol.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_CauseProtocol_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_CauseProtocol_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_CauseProtocol_value2enum_1[] = { - { 0, 21, "transfer-syntax-error" }, - { 1, 28, "abstract-syntax-error-reject" }, - { 2, 39, "abstract-syntax-error-ignore-and-notify" }, - { 3, 42, "message-not-compatible-with-receiver-state" }, - { 4, 14, "semantic-error" }, - { 5, 49, "abstract-syntax-error-falsely-constructed-message" }, - { 6, 11, "unspecified" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CauseProtocol_enum2value_1[] = { - 5, /* abstract-syntax-error-falsely-constructed-message(5) */ - 2, /* abstract-syntax-error-ignore-and-notify(2) */ - 1, /* abstract-syntax-error-reject(1) */ - 3, /* message-not-compatible-with-receiver-state(3) */ - 4, /* semantic-error(4) */ - 0, /* transfer-syntax-error(0) */ - 6 /* unspecified(6) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseProtocol_specs_1 = { - asn_MAP_CauseProtocol_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseProtocol_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_CauseProtocol_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseProtocol = { - "CauseProtocol", - "CauseProtocol", - &asn_OP_NativeEnumerated, - asn_DEF_CauseProtocol_tags_1, - sizeof(asn_DEF_CauseProtocol_tags_1) - /sizeof(asn_DEF_CauseProtocol_tags_1[0]), /* 1 */ - asn_DEF_CauseProtocol_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseProtocol_tags_1) - /sizeof(asn_DEF_CauseProtocol_tags_1[0]), /* 1 */ - { &asn_OER_type_CauseProtocol_constr_1, &asn_PER_type_CauseProtocol_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseProtocol_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseProtocol.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseProtocol.h deleted file mode 100644 index b6dbc0a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseProtocol.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _CauseProtocol_H_ -#define _CauseProtocol_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseProtocol { - CauseProtocol_transfer_syntax_error = 0, - CauseProtocol_abstract_syntax_error_reject = 1, - CauseProtocol_abstract_syntax_error_ignore_and_notify = 2, - CauseProtocol_message_not_compatible_with_receiver_state = 3, - CauseProtocol_semantic_error = 4, - CauseProtocol_abstract_syntax_error_falsely_constructed_message = 5, - CauseProtocol_unspecified = 6 - /* - * Enumeration is extensible - */ -} e_CauseProtocol; - -/* CauseProtocol */ -typedef long CauseProtocol_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseProtocol_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseProtocol; -extern const asn_INTEGER_specifics_t asn_SPC_CauseProtocol_specs_1; -asn_struct_free_f CauseProtocol_free; -asn_struct_print_f CauseProtocol_print; -asn_constr_check_f CauseProtocol_constraint; -ber_type_decoder_f CauseProtocol_decode_ber; -der_type_encoder_f CauseProtocol_encode_der; -xer_type_decoder_f CauseProtocol_decode_xer; -xer_type_encoder_f CauseProtocol_encode_xer; -oer_type_decoder_f CauseProtocol_decode_oer; -oer_type_encoder_f CauseProtocol_encode_oer; -per_type_decoder_f CauseProtocol_decode_uper; -per_type_encoder_f CauseProtocol_encode_uper; -per_type_decoder_f CauseProtocol_decode_aper; -per_type_encoder_f CauseProtocol_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseProtocol_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRICrequest.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRICrequest.c deleted file mode 100644 index 4ed2c85..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRICrequest.c +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRICrequest.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRICrequest.h deleted file mode 100644 index 26822c6..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRICrequest.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _CauseRICrequest_H_ -#define _CauseRICrequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRICservice.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRICservice.c deleted file mode 100644 index 094ad14..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRICservice.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "CauseRICservice.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_CauseRICservice_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_CauseRICservice_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_CauseRICservice_value2enum_1[] = { - { 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, /* ran-function-not-supported(0) */ - 2 /* ric-resource-limit(2) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseRICservice_specs_1 = { - asn_MAP_CauseRICservice_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseRICservice_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_CauseRICservice_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseRICservice = { - "CauseRICservice", - "CauseRICservice", - &asn_OP_NativeEnumerated, - asn_DEF_CauseRICservice_tags_1, - sizeof(asn_DEF_CauseRICservice_tags_1) - /sizeof(asn_DEF_CauseRICservice_tags_1[0]), /* 1 */ - asn_DEF_CauseRICservice_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseRICservice_tags_1) - /sizeof(asn_DEF_CauseRICservice_tags_1[0]), /* 1 */ - { &asn_OER_type_CauseRICservice_constr_1, &asn_PER_type_CauseRICservice_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseRICservice_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRICservice.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRICservice.h deleted file mode 100644 index 429dd9e..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRICservice.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _CauseRICservice_H_ -#define _CauseRICservice_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseRICservice { - CauseRICservice_ran_function_not_supported = 0, - CauseRICservice_excessive_functions = 1, - CauseRICservice_ric_resource_limit = 2 - /* - * Enumeration is extensible - */ -} e_CauseRICservice; - -/* CauseRICservice */ -typedef long CauseRICservice_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseRICservice_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseRICservice; -extern const asn_INTEGER_specifics_t asn_SPC_CauseRICservice_specs_1; -asn_struct_free_f CauseRICservice_free; -asn_struct_print_f CauseRICservice_print; -asn_constr_check_f CauseRICservice_constraint; -ber_type_decoder_f CauseRICservice_decode_ber; -der_type_encoder_f CauseRICservice_encode_der; -xer_type_decoder_f CauseRICservice_decode_xer; -xer_type_encoder_f CauseRICservice_encode_xer; -oer_type_decoder_f CauseRICservice_decode_oer; -oer_type_encoder_f CauseRICservice_encode_oer; -per_type_decoder_f CauseRICservice_decode_uper; -per_type_encoder_f CauseRICservice_encode_uper; -per_type_decoder_f CauseRICservice_decode_aper; -per_type_encoder_f CauseRICservice_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseRICservice_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseTransport.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseTransport.c deleted file mode 100644 index 58b3d14..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseTransport.c +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "CauseTransport.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_CauseTransport_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_CauseTransport_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 */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CauseTransport_value2enum_1[] = { - { 0, 11, "unspecified" }, - { 1, 30, "transport-resource-unavailable" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CauseTransport_enum2value_1[] = { - 1, /* transport-resource-unavailable(1) */ - 0 /* unspecified(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseTransport_specs_1 = { - asn_MAP_CauseTransport_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseTransport_enum2value_1, /* 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_CauseTransport_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseTransport = { - "CauseTransport", - "CauseTransport", - &asn_OP_NativeEnumerated, - asn_DEF_CauseTransport_tags_1, - sizeof(asn_DEF_CauseTransport_tags_1) - /sizeof(asn_DEF_CauseTransport_tags_1[0]), /* 1 */ - asn_DEF_CauseTransport_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseTransport_tags_1) - /sizeof(asn_DEF_CauseTransport_tags_1[0]), /* 1 */ - { &asn_OER_type_CauseTransport_constr_1, &asn_PER_type_CauseTransport_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseTransport_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseTransport.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseTransport.h deleted file mode 100644 index d4f5450..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseTransport.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _CauseTransport_H_ -#define _CauseTransport_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseTransport { - CauseTransport_unspecified = 0, - CauseTransport_transport_resource_unavailable = 1 - /* - * Enumeration is extensible - */ -} e_CauseTransport; - -/* CauseTransport */ -typedef long CauseTransport_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseTransport_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseTransport; -extern const asn_INTEGER_specifics_t asn_SPC_CauseTransport_specs_1; -asn_struct_free_f CauseTransport_free; -asn_struct_print_f CauseTransport_print; -asn_constr_check_f CauseTransport_constraint; -ber_type_decoder_f CauseTransport_decode_ber; -der_type_encoder_f CauseTransport_encode_der; -xer_type_decoder_f CauseTransport_decode_xer; -xer_type_encoder_f CauseTransport_encode_xer; -oer_type_decoder_f CauseTransport_decode_oer; -oer_type_encoder_f CauseTransport_encode_oer; -per_type_decoder_f CauseTransport_decode_uper; -per_type_encoder_f CauseTransport_encode_uper; -per_type_decoder_f CauseTransport_decode_aper; -per_type_encoder_f CauseTransport_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseTransport_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CellResourceReportListItem.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CellResourceReportListItem.c deleted file mode 100644 index 670d42a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CellResourceReportListItem.c +++ /dev/null @@ -1,227 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CellResourceReportListItem.h" - -static int -memb_dl_TotalofAvailablePRBs_constraint_1(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 <= 273)) { - /* 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_ul_TotalofAvailablePRBs_constraint_1(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 <= 273)) { - /* 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_servedPlmnPerCellList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 12)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_servedPlmnPerCellList_constr_5 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..12)) */}; -static asn_per_constraints_t asn_PER_type_servedPlmnPerCellList_constr_5 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 12 } /* (SIZE(1..12)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_dl_TotalofAvailablePRBs_constr_3 CC_NOTUSED = { - { 2, 1 } /* (0..273) */, - -1}; -static asn_per_constraints_t asn_PER_memb_dl_TotalofAvailablePRBs_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 9, 9, 0, 273 } /* (0..273) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ul_TotalofAvailablePRBs_constr_4 CC_NOTUSED = { - { 2, 1 } /* (0..273) */, - -1}; -static asn_per_constraints_t asn_PER_memb_ul_TotalofAvailablePRBs_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED, 9, 9, 0, 273 } /* (0..273) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_servedPlmnPerCellList_constr_5 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..12)) */}; -static asn_per_constraints_t asn_PER_memb_servedPlmnPerCellList_constr_5 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 12 } /* (SIZE(1..12)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_servedPlmnPerCellList_5[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedPlmnPerCellListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_servedPlmnPerCellList_tags_5[] = { - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_servedPlmnPerCellList_specs_5 = { - sizeof(struct CellResourceReportListItem__servedPlmnPerCellList), - offsetof(struct CellResourceReportListItem__servedPlmnPerCellList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_servedPlmnPerCellList_5 = { - "servedPlmnPerCellList", - "servedPlmnPerCellList", - &asn_OP_SEQUENCE_OF, - asn_DEF_servedPlmnPerCellList_tags_5, - sizeof(asn_DEF_servedPlmnPerCellList_tags_5) - /sizeof(asn_DEF_servedPlmnPerCellList_tags_5[0]) - 1, /* 1 */ - asn_DEF_servedPlmnPerCellList_tags_5, /* Same as above */ - sizeof(asn_DEF_servedPlmnPerCellList_tags_5) - /sizeof(asn_DEF_servedPlmnPerCellList_tags_5[0]), /* 2 */ - { &asn_OER_type_servedPlmnPerCellList_constr_5, &asn_PER_type_servedPlmnPerCellList_constr_5, SEQUENCE_OF_constraint }, - asn_MBR_servedPlmnPerCellList_5, - 1, /* Single element */ - &asn_SPC_servedPlmnPerCellList_specs_5 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CellResourceReportListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellResourceReportListItem, nRCGI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRCGI" - }, - { ATF_POINTER, 2, offsetof(struct CellResourceReportListItem, dl_TotalofAvailablePRBs), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_dl_TotalofAvailablePRBs_constr_3, &asn_PER_memb_dl_TotalofAvailablePRBs_constr_3, memb_dl_TotalofAvailablePRBs_constraint_1 }, - 0, 0, /* No default value */ - "dl-TotalofAvailablePRBs" - }, - { ATF_POINTER, 1, offsetof(struct CellResourceReportListItem, ul_TotalofAvailablePRBs), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_ul_TotalofAvailablePRBs_constr_4, &asn_PER_memb_ul_TotalofAvailablePRBs_constr_4, memb_ul_TotalofAvailablePRBs_constraint_1 }, - 0, 0, /* No default value */ - "ul-TotalofAvailablePRBs" - }, - { ATF_NOFLAGS, 0, offsetof(struct CellResourceReportListItem, servedPlmnPerCellList), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - 0, - &asn_DEF_servedPlmnPerCellList_5, - 0, - { &asn_OER_memb_servedPlmnPerCellList_constr_5, &asn_PER_memb_servedPlmnPerCellList_constr_5, memb_servedPlmnPerCellList_constraint_1 }, - 0, 0, /* No default value */ - "servedPlmnPerCellList" - }, -}; -static const int asn_MAP_CellResourceReportListItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_CellResourceReportListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CellResourceReportListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dl-TotalofAvailablePRBs */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ul-TotalofAvailablePRBs */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* servedPlmnPerCellList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CellResourceReportListItem_specs_1 = { - sizeof(struct CellResourceReportListItem), - offsetof(struct CellResourceReportListItem, _asn_ctx), - asn_MAP_CellResourceReportListItem_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_CellResourceReportListItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CellResourceReportListItem = { - "CellResourceReportListItem", - "CellResourceReportListItem", - &asn_OP_SEQUENCE, - asn_DEF_CellResourceReportListItem_tags_1, - sizeof(asn_DEF_CellResourceReportListItem_tags_1) - /sizeof(asn_DEF_CellResourceReportListItem_tags_1[0]), /* 1 */ - asn_DEF_CellResourceReportListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_CellResourceReportListItem_tags_1) - /sizeof(asn_DEF_CellResourceReportListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CellResourceReportListItem_1, - 4, /* Elements count */ - &asn_SPC_CellResourceReportListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CellResourceReportListItem.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CellResourceReportListItem.h deleted file mode 100644 index 91bbf71..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CellResourceReportListItem.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CellResourceReportListItem_H_ -#define _CellResourceReportListItem_H_ - - -#include - -/* Including external dependencies */ -#include "NRCGI.h" -#include -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ServedPlmnPerCellListItem; - -/* CellResourceReportListItem */ -typedef struct CellResourceReportListItem { - NRCGI_t nRCGI; - long *dl_TotalofAvailablePRBs; /* OPTIONAL */ - long *ul_TotalofAvailablePRBs; /* OPTIONAL */ - struct CellResourceReportListItem__servedPlmnPerCellList { - A_SEQUENCE_OF(struct ServedPlmnPerCellListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } servedPlmnPerCellList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellResourceReportListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CellResourceReportListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_CellResourceReportListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_CellResourceReportListItem_1[4]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "ServedPlmnPerCellListItem.h" - -#endif /* _CellResourceReportListItem_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Criticality.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Criticality.c deleted file mode 100644 index 645d8c0..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Criticality.c +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "Criticality.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_Criticality_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_Criticality_constr_1 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_INTEGER_enum_map_t asn_MAP_Criticality_value2enum_1[] = { - { 0, 6, "reject" }, - { 1, 6, "ignore" }, - { 2, 6, "notify" } -}; -static const unsigned int asn_MAP_Criticality_enum2value_1[] = { - 1, /* ignore(1) */ - 2, /* notify(2) */ - 0 /* reject(0) */ -}; -const asn_INTEGER_specifics_t asn_SPC_Criticality_specs_1 = { - asn_MAP_Criticality_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_Criticality_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 0, /* Enumeration is not extensible */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_Criticality_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Criticality = { - "Criticality", - "Criticality", - &asn_OP_NativeEnumerated, - asn_DEF_Criticality_tags_1, - sizeof(asn_DEF_Criticality_tags_1) - /sizeof(asn_DEF_Criticality_tags_1[0]), /* 1 */ - asn_DEF_Criticality_tags_1, /* Same as above */ - sizeof(asn_DEF_Criticality_tags_1) - /sizeof(asn_DEF_Criticality_tags_1[0]), /* 1 */ - { &asn_OER_type_Criticality_constr_1, &asn_PER_type_Criticality_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_Criticality_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Criticality.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Criticality.h deleted file mode 100644 index 8a0ab54..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Criticality.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _Criticality_H_ -#define _Criticality_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum Criticality { - Criticality_reject = 0, - Criticality_ignore = 1, - Criticality_notify = 2 -} e_Criticality; - -/* Criticality */ -typedef long Criticality_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Criticality_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Criticality; -extern const asn_INTEGER_specifics_t asn_SPC_Criticality_specs_1; -asn_struct_free_f Criticality_free; -asn_struct_print_f Criticality_print; -asn_constr_check_f Criticality_constraint; -ber_type_decoder_f Criticality_decode_ber; -der_type_encoder_f Criticality_encode_der; -xer_type_decoder_f Criticality_decode_xer; -xer_type_encoder_f Criticality_encode_xer; -oer_type_decoder_f Criticality_decode_oer; -oer_type_encoder_f Criticality_encode_oer; -per_type_decoder_f Criticality_decode_uper; -per_type_encoder_f Criticality_encode_uper; -per_type_decoder_f Criticality_decode_aper; -per_type_encoder_f Criticality_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Criticality_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics-IE-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics-IE-Item.c deleted file mode 100644 index bde7c2c..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics-IE-Item.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "CriticalityDiagnostics-IE-Item.h" - -asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_Item, iECriticality), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iECriticality" - }, - { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_Item, iE_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_Item, typeOfError), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TypeOfError, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "typeOfError" - }, -}; -static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_IE_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CriticalityDiagnostics_IE_Item_tag2el_1[] = { - { (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 */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_IE_Item_specs_1 = { - sizeof(struct CriticalityDiagnostics_IE_Item), - offsetof(struct CriticalityDiagnostics_IE_Item, _asn_ctx), - asn_MAP_CriticalityDiagnostics_IE_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_CriticalityDiagnostics_IE_Item = { - "CriticalityDiagnostics-IE-Item", - "CriticalityDiagnostics-IE-Item", - &asn_OP_SEQUENCE, - asn_DEF_CriticalityDiagnostics_IE_Item_tags_1, - sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_tags_1[0]), /* 1 */ - asn_DEF_CriticalityDiagnostics_IE_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CriticalityDiagnostics_IE_Item_1, - 3, /* Elements count */ - &asn_SPC_CriticalityDiagnostics_IE_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics-IE-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics-IE-Item.h deleted file mode 100644 index a8c0959..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics-IE-Item.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _CriticalityDiagnostics_IE_Item_H_ -#define _CriticalityDiagnostics_IE_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "Criticality.h" -#include "ProtocolIE-ID.h" -#include "TypeOfError.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* CriticalityDiagnostics-IE-Item */ -typedef struct CriticalityDiagnostics_IE_Item { - Criticality_t iECriticality; - ProtocolIE_ID_t iE_ID; - TypeOfError_t typeOfError; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CriticalityDiagnostics_IE_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_IE_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_Item_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _CriticalityDiagnostics_IE_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics-IE-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics-IE-List.c deleted file mode 100644 index 3b72770..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics-IE-List.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "CriticalityDiagnostics-IE-List.h" - -#include "CriticalityDiagnostics-IE-Item.h" -static asn_oer_constraints_t asn_OER_type_CriticalityDiagnostics_IE_List_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..256)) */}; -asn_per_constraints_t asn_PER_type_CriticalityDiagnostics_IE_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics_IE_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_IE_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_CriticalityDiagnostics_IE_List_specs_1 = { - sizeof(struct CriticalityDiagnostics_IE_List), - offsetof(struct CriticalityDiagnostics_IE_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_List = { - "CriticalityDiagnostics-IE-List", - "CriticalityDiagnostics-IE-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_CriticalityDiagnostics_IE_List_tags_1, - sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1[0]), /* 1 */ - asn_DEF_CriticalityDiagnostics_IE_List_tags_1, /* Same as above */ - sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1[0]), /* 1 */ - { &asn_OER_type_CriticalityDiagnostics_IE_List_constr_1, &asn_PER_type_CriticalityDiagnostics_IE_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_CriticalityDiagnostics_IE_List_1, - 1, /* Single element */ - &asn_SPC_CriticalityDiagnostics_IE_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics-IE-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics-IE-List.h deleted file mode 100644 index 79dc433..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics-IE-List.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _CriticalityDiagnostics_IE_List_H_ -#define _CriticalityDiagnostics_IE_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CriticalityDiagnostics_IE_Item; - -/* CriticalityDiagnostics-IE-List */ -typedef struct CriticalityDiagnostics_IE_List { - A_SEQUENCE_OF(struct CriticalityDiagnostics_IE_Item) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CriticalityDiagnostics_IE_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_List; -extern asn_SET_OF_specifics_t asn_SPC_CriticalityDiagnostics_IE_List_specs_1; -extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_List_1[1]; -extern asn_per_constraints_t asn_PER_type_CriticalityDiagnostics_IE_List_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _CriticalityDiagnostics_IE_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics.c deleted file mode 100644 index b6569e3..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "CriticalityDiagnostics.h" - -#include "RICrequestID.h" -#include "CriticalityDiagnostics-IE-List.h" -static asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_1[] = { - { ATF_POINTER, 5, offsetof(struct CriticalityDiagnostics, procedureCode), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProcedureCode, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "procedureCode" - }, - { ATF_POINTER, 4, offsetof(struct CriticalityDiagnostics, triggeringMessage), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TriggeringMessage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "triggeringMessage" - }, - { ATF_POINTER, 3, offsetof(struct CriticalityDiagnostics, procedureCriticality), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "procedureCriticality" - }, - { ATF_POINTER, 2, offsetof(struct CriticalityDiagnostics, ricRequestorID), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricRequestorID" - }, - { ATF_POINTER, 1, offsetof(struct CriticalityDiagnostics, iEsCriticalityDiagnostics), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CriticalityDiagnostics_IE_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iEsCriticalityDiagnostics" - }, -}; -static const int asn_MAP_CriticalityDiagnostics_oms_1[] = { 0, 1, 2, 3, 4 }; -static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CriticalityDiagnostics_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* triggeringMessage */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* procedureCriticality */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ricRequestorID */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iEsCriticalityDiagnostics */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_specs_1 = { - sizeof(struct CriticalityDiagnostics), - offsetof(struct CriticalityDiagnostics, _asn_ctx), - asn_MAP_CriticalityDiagnostics_tag2el_1, - 5, /* Count of tags in the map */ - asn_MAP_CriticalityDiagnostics_oms_1, /* Optional members */ - 5, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics = { - "CriticalityDiagnostics", - "CriticalityDiagnostics", - &asn_OP_SEQUENCE, - asn_DEF_CriticalityDiagnostics_tags_1, - sizeof(asn_DEF_CriticalityDiagnostics_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_tags_1[0]), /* 1 */ - asn_DEF_CriticalityDiagnostics_tags_1, /* Same as above */ - sizeof(asn_DEF_CriticalityDiagnostics_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CriticalityDiagnostics_1, - 5, /* Elements count */ - &asn_SPC_CriticalityDiagnostics_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics.h deleted file mode 100644 index 652c5c0..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _CriticalityDiagnostics_H_ -#define _CriticalityDiagnostics_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProcedureCode.h" -#include "TriggeringMessage.h" -#include "Criticality.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct RICrequestID; -struct CriticalityDiagnostics_IE_List; - -/* CriticalityDiagnostics */ -typedef struct CriticalityDiagnostics { - ProcedureCode_t *procedureCode; /* OPTIONAL */ - TriggeringMessage_t *triggeringMessage; /* OPTIONAL */ - Criticality_t *procedureCriticality; /* OPTIONAL */ - struct RICrequestID *ricRequestorID; /* OPTIONAL */ - struct CriticalityDiagnostics_IE_List *iEsCriticalityDiagnostics; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CriticalityDiagnostics_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics; - -#ifdef __cplusplus -} -#endif - -#endif /* _CriticalityDiagnostics_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/DU-Usage-Report-CellResourceReportItem.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/DU-Usage-Report-CellResourceReportItem.c deleted file mode 100644 index eee9621..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/DU-Usage-Report-CellResourceReportItem.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "DU-Usage-Report-CellResourceReportItem.h" - -static int -memb_ueResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 32)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_ueResourceReportList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_type_ueResourceReportList_constr_3 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_oer_constraints_t asn_OER_memb_ueResourceReportList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_memb_ueResourceReportList_constr_3 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_ueResourceReportList_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_DU_Usage_Report_UeResourceReportItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ueResourceReportList_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ueResourceReportList_specs_3 = { - sizeof(struct DU_Usage_Report_CellResourceReportItem__ueResourceReportList), - offsetof(struct DU_Usage_Report_CellResourceReportItem__ueResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_ueResourceReportList_3 = { - "ueResourceReportList", - "ueResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_ueResourceReportList_tags_3, - sizeof(asn_DEF_ueResourceReportList_tags_3) - /sizeof(asn_DEF_ueResourceReportList_tags_3[0]) - 1, /* 1 */ - asn_DEF_ueResourceReportList_tags_3, /* Same as above */ - sizeof(asn_DEF_ueResourceReportList_tags_3) - /sizeof(asn_DEF_ueResourceReportList_tags_3[0]), /* 2 */ - { &asn_OER_type_ueResourceReportList_constr_3, &asn_PER_type_ueResourceReportList_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_ueResourceReportList_3, - 1, /* Single element */ - &asn_SPC_ueResourceReportList_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_DU_Usage_Report_CellResourceReportItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct DU_Usage_Report_CellResourceReportItem, nRCGI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRCGI" - }, - { ATF_NOFLAGS, 0, offsetof(struct DU_Usage_Report_CellResourceReportItem, ueResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_ueResourceReportList_3, - 0, - { &asn_OER_memb_ueResourceReportList_constr_3, &asn_PER_memb_ueResourceReportList_constr_3, memb_ueResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "ueResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_DU_Usage_Report_CellResourceReportItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ueResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_DU_Usage_Report_CellResourceReportItem_specs_1 = { - sizeof(struct DU_Usage_Report_CellResourceReportItem), - offsetof(struct DU_Usage_Report_CellResourceReportItem, _asn_ctx), - asn_MAP_DU_Usage_Report_CellResourceReportItem_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_DU_Usage_Report_CellResourceReportItem = { - "DU-Usage-Report-CellResourceReportItem", - "DU-Usage-Report-CellResourceReportItem", - &asn_OP_SEQUENCE, - asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1, - sizeof(asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1) - /sizeof(asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1[0]), /* 1 */ - asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1, /* Same as above */ - sizeof(asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1) - /sizeof(asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_DU_Usage_Report_CellResourceReportItem_1, - 2, /* Elements count */ - &asn_SPC_DU_Usage_Report_CellResourceReportItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/DU-Usage-Report-CellResourceReportItem.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/DU-Usage-Report-CellResourceReportItem.h deleted file mode 100644 index 4a72572..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/DU-Usage-Report-CellResourceReportItem.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _DU_Usage_Report_CellResourceReportItem_H_ -#define _DU_Usage_Report_CellResourceReportItem_H_ - - -#include - -/* Including external dependencies */ -#include "NRCGI.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct DU_Usage_Report_UeResourceReportItem; - -/* DU-Usage-Report-CellResourceReportItem */ -typedef struct DU_Usage_Report_CellResourceReportItem { - NRCGI_t nRCGI; - struct DU_Usage_Report_CellResourceReportItem__ueResourceReportList { - A_SEQUENCE_OF(struct DU_Usage_Report_UeResourceReportItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } ueResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} DU_Usage_Report_CellResourceReportItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_DU_Usage_Report_CellResourceReportItem; -extern asn_SEQUENCE_specifics_t asn_SPC_DU_Usage_Report_CellResourceReportItem_specs_1; -extern asn_TYPE_member_t asn_MBR_DU_Usage_Report_CellResourceReportItem_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "DU-Usage-Report-UeResourceReportItem.h" - -#endif /* _DU_Usage_Report_CellResourceReportItem_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/DU-Usage-Report-Per-UE.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/DU-Usage-Report-Per-UE.c deleted file mode 100644 index 9ba13af..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/DU-Usage-Report-Per-UE.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "DU-Usage-Report-Per-UE.h" - -static int -memb_cellResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 512)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..512)) */}; -static asn_per_constraints_t asn_PER_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 1, 512 } /* (SIZE(1..512)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..512)) */}; -static asn_per_constraints_t asn_PER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 1, 512 } /* (SIZE(1..512)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_cellResourceReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_DU_Usage_Report_CellResourceReportItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_cellResourceReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_cellResourceReportList_specs_2 = { - sizeof(struct DU_Usage_Report_Per_UE__cellResourceReportList), - offsetof(struct DU_Usage_Report_Per_UE__cellResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_cellResourceReportList_2 = { - "cellResourceReportList", - "cellResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_cellResourceReportList_tags_2, - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_cellResourceReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_cellResourceReportList_constr_2, &asn_PER_type_cellResourceReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_cellResourceReportList_2, - 1, /* Single element */ - &asn_SPC_cellResourceReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_DU_Usage_Report_Per_UE_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct DU_Usage_Report_Per_UE, cellResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_cellResourceReportList_2, - 0, - { &asn_OER_memb_cellResourceReportList_constr_2, &asn_PER_memb_cellResourceReportList_constr_2, memb_cellResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "cellResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_DU_Usage_Report_Per_UE_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_DU_Usage_Report_Per_UE_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cellResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_DU_Usage_Report_Per_UE_specs_1 = { - sizeof(struct DU_Usage_Report_Per_UE), - offsetof(struct DU_Usage_Report_Per_UE, _asn_ctx), - asn_MAP_DU_Usage_Report_Per_UE_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_DU_Usage_Report_Per_UE = { - "DU-Usage-Report-Per-UE", - "DU-Usage-Report-Per-UE", - &asn_OP_SEQUENCE, - asn_DEF_DU_Usage_Report_Per_UE_tags_1, - sizeof(asn_DEF_DU_Usage_Report_Per_UE_tags_1) - /sizeof(asn_DEF_DU_Usage_Report_Per_UE_tags_1[0]), /* 1 */ - asn_DEF_DU_Usage_Report_Per_UE_tags_1, /* Same as above */ - sizeof(asn_DEF_DU_Usage_Report_Per_UE_tags_1) - /sizeof(asn_DEF_DU_Usage_Report_Per_UE_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_DU_Usage_Report_Per_UE_1, - 1, /* Elements count */ - &asn_SPC_DU_Usage_Report_Per_UE_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/DU-Usage-Report-Per-UE.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/DU-Usage-Report-Per-UE.h deleted file mode 100644 index 2fc44d1..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/DU-Usage-Report-Per-UE.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _DU_Usage_Report_Per_UE_H_ -#define _DU_Usage_Report_Per_UE_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct DU_Usage_Report_CellResourceReportItem; - -/* DU-Usage-Report-Per-UE */ -typedef struct DU_Usage_Report_Per_UE { - struct DU_Usage_Report_Per_UE__cellResourceReportList { - A_SEQUENCE_OF(struct DU_Usage_Report_CellResourceReportItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } cellResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} DU_Usage_Report_Per_UE_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_DU_Usage_Report_Per_UE; -extern asn_SEQUENCE_specifics_t asn_SPC_DU_Usage_Report_Per_UE_specs_1; -extern asn_TYPE_member_t asn_MBR_DU_Usage_Report_Per_UE_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "DU-Usage-Report-CellResourceReportItem.h" - -#endif /* _DU_Usage_Report_Per_UE_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/DU-Usage-Report-UeResourceReportItem.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/DU-Usage-Report-UeResourceReportItem.c deleted file mode 100644 index 0bcafbe..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/DU-Usage-Report-UeResourceReportItem.c +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "DU-Usage-Report-UeResourceReportItem.h" - -static int -memb_dl_PRBUsage_constraint_1(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 <= 1000000000)) { - /* 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_ul_PRBUsage_constraint_1(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 <= 1000000000)) { - /* 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_dl_PRBUsage_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_dl_PRBUsage_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 30, -1, 0, 1000000000 } /* (0..1000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 30, -1, 0, 1000000000 } /* (0..1000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_DU_Usage_Report_UeResourceReportItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct DU_Usage_Report_UeResourceReportItem, c_RNTI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_C_RNTI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "c-RNTI" - }, - { ATF_POINTER, 2, offsetof(struct DU_Usage_Report_UeResourceReportItem, dl_PRBUsage), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_dl_PRBUsage_constr_3, &asn_PER_memb_dl_PRBUsage_constr_3, memb_dl_PRBUsage_constraint_1 }, - 0, 0, /* No default value */ - "dl-PRBUsage" - }, - { ATF_POINTER, 1, offsetof(struct DU_Usage_Report_UeResourceReportItem, ul_PRBUsage), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_ul_PRBUsage_constr_4, &asn_PER_memb_ul_PRBUsage_constr_4, memb_ul_PRBUsage_constraint_1 }, - 0, 0, /* No default value */ - "ul-PRBUsage" - }, -}; -static const int asn_MAP_DU_Usage_Report_UeResourceReportItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_DU_Usage_Report_UeResourceReportItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* c-RNTI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dl-PRBUsage */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ul-PRBUsage */ -}; -asn_SEQUENCE_specifics_t asn_SPC_DU_Usage_Report_UeResourceReportItem_specs_1 = { - sizeof(struct DU_Usage_Report_UeResourceReportItem), - offsetof(struct DU_Usage_Report_UeResourceReportItem, _asn_ctx), - asn_MAP_DU_Usage_Report_UeResourceReportItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_DU_Usage_Report_UeResourceReportItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_DU_Usage_Report_UeResourceReportItem = { - "DU-Usage-Report-UeResourceReportItem", - "DU-Usage-Report-UeResourceReportItem", - &asn_OP_SEQUENCE, - asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1, - sizeof(asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1) - /sizeof(asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1[0]), /* 1 */ - asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1, /* Same as above */ - sizeof(asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1) - /sizeof(asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_DU_Usage_Report_UeResourceReportItem_1, - 3, /* Elements count */ - &asn_SPC_DU_Usage_Report_UeResourceReportItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/DU-Usage-Report-UeResourceReportItem.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/DU-Usage-Report-UeResourceReportItem.h deleted file mode 100644 index e860272..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/DU-Usage-Report-UeResourceReportItem.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _DU_Usage_Report_UeResourceReportItem_H_ -#define _DU_Usage_Report_UeResourceReportItem_H_ - - -#include - -/* Including external dependencies */ -#include "C-RNTI.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* DU-Usage-Report-UeResourceReportItem */ -typedef struct DU_Usage_Report_UeResourceReportItem { - C_RNTI_t c_RNTI; - long *dl_PRBUsage; /* OPTIONAL */ - long *ul_PRBUsage; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} DU_Usage_Report_UeResourceReportItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_DU_Usage_Report_UeResourceReportItem; -extern asn_SEQUENCE_specifics_t asn_SPC_DU_Usage_Report_UeResourceReportItem_specs_1; -extern asn_TYPE_member_t asn_MBR_DU_Usage_Report_UeResourceReportItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _DU_Usage_Report_UeResourceReportItem_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2AP-PDU.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2AP-PDU.c deleted file mode 100644 index 4e69825..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2AP-PDU.c +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "E2AP-PDU.h" - -#include "InitiatingMessage.h" -#include "SuccessfulOutcome.h" -#include "UnsuccessfulOutcome.h" -static asn_oer_constraints_t asn_OER_type_E2AP_PDU_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_E2AP_PDU_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 asn_TYPE_member_t asn_MBR_E2AP_PDU_1[] = { - { ATF_POINTER, 0, offsetof(struct E2AP_PDU, choice.initiatingMessage), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_InitiatingMessage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "initiatingMessage" - }, - { ATF_POINTER, 0, offsetof(struct E2AP_PDU, choice.successfulOutcome), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SuccessfulOutcome, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "successfulOutcome" - }, - { ATF_POINTER, 0, offsetof(struct E2AP_PDU, choice.unsuccessfulOutcome), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UnsuccessfulOutcome, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "unsuccessfulOutcome" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_E2AP_PDU_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* initiatingMessage */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* successfulOutcome */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* unsuccessfulOutcome */ -}; -static asn_CHOICE_specifics_t asn_SPC_E2AP_PDU_specs_1 = { - sizeof(struct E2AP_PDU), - offsetof(struct E2AP_PDU, _asn_ctx), - offsetof(struct E2AP_PDU, present), - sizeof(((struct E2AP_PDU *)0)->present), - asn_MAP_E2AP_PDU_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, - 3 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_E2AP_PDU = { - "E2AP-PDU", - "E2AP-PDU", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_E2AP_PDU_constr_1, &asn_PER_type_E2AP_PDU_constr_1, CHOICE_constraint }, - asn_MBR_E2AP_PDU_1, - 3, /* Elements count */ - &asn_SPC_E2AP_PDU_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2AP-PDU.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2AP-PDU.h deleted file mode 100644 index 3bf1764..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2AP-PDU.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2AP_PDU_H_ -#define _E2AP_PDU_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E2AP_PDU_PR { - E2AP_PDU_PR_NOTHING, /* No components present */ - E2AP_PDU_PR_initiatingMessage, - E2AP_PDU_PR_successfulOutcome, - E2AP_PDU_PR_unsuccessfulOutcome - /* Extensions may appear below */ - -} E2AP_PDU_PR; - -/* Forward declarations */ -struct InitiatingMessage; -struct SuccessfulOutcome; -struct UnsuccessfulOutcome; - -/* E2AP-PDU */ -typedef struct E2AP_PDU { - E2AP_PDU_PR present; - union E2AP_PDU_u { - struct InitiatingMessage *initiatingMessage; - struct SuccessfulOutcome *successfulOutcome; - struct UnsuccessfulOutcome *unsuccessfulOutcome; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2AP_PDU_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2AP_PDU; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2AP_PDU_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-ActionDefinition.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-ActionDefinition.c deleted file mode 100644 index abdf25d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-ActionDefinition.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-ActionDefinition.h" - -static asn_TYPE_member_t asn_MBR_E2SM_KPM_ActionDefinition_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_ActionDefinition, ric_Style_Type), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Style_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-Style-Type" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2SM_KPM_ActionDefinition_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_ActionDefinition_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ric-Style-Type */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_ActionDefinition_specs_1 = { - sizeof(struct E2SM_KPM_ActionDefinition), - offsetof(struct E2SM_KPM_ActionDefinition, _asn_ctx), - asn_MAP_E2SM_KPM_ActionDefinition_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_E2SM_KPM_ActionDefinition = { - "E2SM-KPM-ActionDefinition", - "E2SM-KPM-ActionDefinition", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_KPM_ActionDefinition_tags_1, - sizeof(asn_DEF_E2SM_KPM_ActionDefinition_tags_1) - /sizeof(asn_DEF_E2SM_KPM_ActionDefinition_tags_1[0]), /* 1 */ - asn_DEF_E2SM_KPM_ActionDefinition_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_KPM_ActionDefinition_tags_1) - /sizeof(asn_DEF_E2SM_KPM_ActionDefinition_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_KPM_ActionDefinition_1, - 1, /* Elements count */ - &asn_SPC_E2SM_KPM_ActionDefinition_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-ActionDefinition.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-ActionDefinition.h deleted file mode 100644 index 70b81dd..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-ActionDefinition.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_ActionDefinition_H_ -#define _E2SM_KPM_ActionDefinition_H_ - - -#include - -/* Including external dependencies */ -#include "RIC-Style-Type.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2SM-KPM-ActionDefinition */ -typedef struct E2SM_KPM_ActionDefinition { - RIC_Style_Type_t ric_Style_Type; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_ActionDefinition_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_ActionDefinition; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2SM_KPM_ActionDefinition_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.c deleted file mode 100644 index e0b48f2..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.c +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-EventTriggerDefinition-Format1.h" - -static int -memb_policyTest_List_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 15)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_policyTest_List_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..15)) */}; -static asn_per_constraints_t asn_PER_type_policyTest_List_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 15 } /* (SIZE(1..15)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_policyTest_List_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..15)) */}; -static asn_per_constraints_t asn_PER_memb_policyTest_List_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 15 } /* (SIZE(1..15)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_policyTest_List_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_Trigger_ConditionIE_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_policyTest_List_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_policyTest_List_specs_2 = { - sizeof(struct E2SM_KPM_EventTriggerDefinition_Format1__policyTest_List), - offsetof(struct E2SM_KPM_EventTriggerDefinition_Format1__policyTest_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_policyTest_List_2 = { - "policyTest-List", - "policyTest-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_policyTest_List_tags_2, - sizeof(asn_DEF_policyTest_List_tags_2) - /sizeof(asn_DEF_policyTest_List_tags_2[0]) - 1, /* 1 */ - asn_DEF_policyTest_List_tags_2, /* Same as above */ - sizeof(asn_DEF_policyTest_List_tags_2) - /sizeof(asn_DEF_policyTest_List_tags_2[0]), /* 2 */ - { &asn_OER_type_policyTest_List_constr_2, &asn_PER_type_policyTest_List_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_policyTest_List_2, - 1, /* Single element */ - &asn_SPC_policyTest_List_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E2SM_KPM_EventTriggerDefinition_Format1_1[] = { - { ATF_POINTER, 1, offsetof(struct E2SM_KPM_EventTriggerDefinition_Format1, policyTest_List), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_policyTest_List_2, - 0, - { &asn_OER_memb_policyTest_List_constr_2, &asn_PER_memb_policyTest_List_constr_2, memb_policyTest_List_constraint_1 }, - 0, 0, /* No default value */ - "policyTest-List" - }, -}; -static const int asn_MAP_E2SM_KPM_EventTriggerDefinition_Format1_oms_1[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_EventTriggerDefinition_Format1_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* policyTest-List */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_EventTriggerDefinition_Format1_specs_1 = { - sizeof(struct E2SM_KPM_EventTriggerDefinition_Format1), - offsetof(struct E2SM_KPM_EventTriggerDefinition_Format1, _asn_ctx), - asn_MAP_E2SM_KPM_EventTriggerDefinition_Format1_tag2el_1, - 1, /* Count of tags in the map */ - asn_MAP_E2SM_KPM_EventTriggerDefinition_Format1_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1 = { - "E2SM-KPM-EventTriggerDefinition-Format1", - "E2SM-KPM-EventTriggerDefinition-Format1", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1, - sizeof(asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1) - /sizeof(asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1[0]), /* 1 */ - asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1) - /sizeof(asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_KPM_EventTriggerDefinition_Format1_1, - 1, /* Elements count */ - &asn_SPC_E2SM_KPM_EventTriggerDefinition_Format1_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.h deleted file mode 100644 index 44cbd92..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_EventTriggerDefinition_Format1_H_ -#define _E2SM_KPM_EventTriggerDefinition_Format1_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct Trigger_ConditionIE_Item; - -/* E2SM-KPM-EventTriggerDefinition-Format1 */ -typedef struct E2SM_KPM_EventTriggerDefinition_Format1 { - struct E2SM_KPM_EventTriggerDefinition_Format1__policyTest_List { - A_SEQUENCE_OF(struct Trigger_ConditionIE_Item) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } *policyTest_List; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_EventTriggerDefinition_Format1_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1; -extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_EventTriggerDefinition_Format1_specs_1; -extern asn_TYPE_member_t asn_MBR_E2SM_KPM_EventTriggerDefinition_Format1_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "Trigger-ConditionIE-Item.h" - -#endif /* _E2SM_KPM_EventTriggerDefinition_Format1_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-EventTriggerDefinition.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-EventTriggerDefinition.c deleted file mode 100644 index 482e42c..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-EventTriggerDefinition.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-EventTriggerDefinition.h" - -static asn_oer_constraints_t asn_OER_type_E2SM_KPM_EventTriggerDefinition_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_E2SM_KPM_EventTriggerDefinition_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 asn_TYPE_member_t asn_MBR_E2SM_KPM_EventTriggerDefinition_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_EventTriggerDefinition, choice.eventDefinition_Format1), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eventDefinition-Format1" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_EventTriggerDefinition_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* eventDefinition-Format1 */ -}; -static asn_CHOICE_specifics_t asn_SPC_E2SM_KPM_EventTriggerDefinition_specs_1 = { - sizeof(struct E2SM_KPM_EventTriggerDefinition), - offsetof(struct E2SM_KPM_EventTriggerDefinition, _asn_ctx), - offsetof(struct E2SM_KPM_EventTriggerDefinition, present), - sizeof(((struct E2SM_KPM_EventTriggerDefinition *)0)->present), - asn_MAP_E2SM_KPM_EventTriggerDefinition_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, - 1 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_EventTriggerDefinition = { - "E2SM-KPM-EventTriggerDefinition", - "E2SM-KPM-EventTriggerDefinition", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_E2SM_KPM_EventTriggerDefinition_constr_1, &asn_PER_type_E2SM_KPM_EventTriggerDefinition_constr_1, CHOICE_constraint }, - asn_MBR_E2SM_KPM_EventTriggerDefinition_1, - 1, /* Elements count */ - &asn_SPC_E2SM_KPM_EventTriggerDefinition_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-EventTriggerDefinition.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-EventTriggerDefinition.h deleted file mode 100644 index e96e600..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-EventTriggerDefinition.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_EventTriggerDefinition_H_ -#define _E2SM_KPM_EventTriggerDefinition_H_ - - -#include - -/* Including external dependencies */ -#include "E2SM-KPM-EventTriggerDefinition-Format1.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E2SM_KPM_EventTriggerDefinition_PR { - E2SM_KPM_EventTriggerDefinition_PR_NOTHING, /* No components present */ - E2SM_KPM_EventTriggerDefinition_PR_eventDefinition_Format1 - /* Extensions may appear below */ - -} E2SM_KPM_EventTriggerDefinition_PR; - -/* E2SM-KPM-EventTriggerDefinition */ -typedef struct E2SM_KPM_EventTriggerDefinition { - E2SM_KPM_EventTriggerDefinition_PR present; - union E2SM_KPM_EventTriggerDefinition_u { - E2SM_KPM_EventTriggerDefinition_Format1_t eventDefinition_Format1; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_EventTriggerDefinition_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_EventTriggerDefinition; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2SM_KPM_EventTriggerDefinition_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-IndicationHeader-Format1.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-IndicationHeader-Format1.c deleted file mode 100644 index 2cccf8b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-IndicationHeader-Format1.c +++ /dev/null @@ -1,208 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-IndicationHeader-Format1.h" - -static int -memb_fiveQI_constraint_1(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; - } -} - -static int -memb_qci_constraint_1(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; - } -} - -static asn_oer_constraints_t asn_OER_memb_fiveQI_constr_6 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_fiveQI_constr_6 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_qci_constr_7 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_qci_constr_7 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationHeader_Format1_1[] = { - { ATF_POINTER, 10, offsetof(struct E2SM_KPM_IndicationHeader_Format1, id_GlobalKPMnode_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_GlobalKPMnode_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "id-GlobalKPMnode-ID" - }, - { ATF_POINTER, 9, offsetof(struct E2SM_KPM_IndicationHeader_Format1, nRCGI), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRCGI" - }, - { ATF_POINTER, 8, offsetof(struct E2SM_KPM_IndicationHeader_Format1, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_POINTER, 7, offsetof(struct E2SM_KPM_IndicationHeader_Format1, sliceID), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SNSSAI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sliceID" - }, - { ATF_POINTER, 6, offsetof(struct E2SM_KPM_IndicationHeader_Format1, fiveQI), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_fiveQI_constr_6, &asn_PER_memb_fiveQI_constr_6, memb_fiveQI_constraint_1 }, - 0, 0, /* No default value */ - "fiveQI" - }, - { ATF_POINTER, 5, offsetof(struct E2SM_KPM_IndicationHeader_Format1, qci), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_qci_constr_7, &asn_PER_memb_qci_constr_7, memb_qci_constraint_1 }, - 0, 0, /* No default value */ - "qci" - }, - { ATF_POINTER, 4, offsetof(struct E2SM_KPM_IndicationHeader_Format1, message_Type), - (ASN_TAG_CLASS_CONTEXT | (6 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UE_Report_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "message-Type" - }, - { ATF_POINTER, 3, offsetof(struct E2SM_KPM_IndicationHeader_Format1, gNB_DU_ID), - (ASN_TAG_CLASS_CONTEXT | (7 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_DU_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-DU-ID" - }, - { ATF_POINTER, 2, offsetof(struct E2SM_KPM_IndicationHeader_Format1, gNB_Name), - (ASN_TAG_CLASS_CONTEXT | (8 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_GNB_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-Name" - }, - { ATF_POINTER, 1, offsetof(struct E2SM_KPM_IndicationHeader_Format1, global_GNB_ID), - (ASN_TAG_CLASS_CONTEXT | (9 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalgNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-GNB-ID" - }, -}; -static const int asn_MAP_E2SM_KPM_IndicationHeader_Format1_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; -static const ber_tlv_tag_t asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_IndicationHeader_Format1_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id-GlobalKPMnode-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nRCGI */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* sliceID */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* fiveQI */ - { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* qci */ - { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* message-Type */ - { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* gNB-DU-ID */ - { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* gNB-Name */ - { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* global-GNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationHeader_Format1_specs_1 = { - sizeof(struct E2SM_KPM_IndicationHeader_Format1), - offsetof(struct E2SM_KPM_IndicationHeader_Format1, _asn_ctx), - asn_MAP_E2SM_KPM_IndicationHeader_Format1_tag2el_1, - 10, /* Count of tags in the map */ - asn_MAP_E2SM_KPM_IndicationHeader_Format1_oms_1, /* Optional members */ - 10, 0, /* Root/Additions */ - 10, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationHeader_Format1 = { - "E2SM-KPM-IndicationHeader-Format1", - "E2SM-KPM-IndicationHeader-Format1", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1, - sizeof(asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1) - /sizeof(asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1[0]), /* 1 */ - asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1) - /sizeof(asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_KPM_IndicationHeader_Format1_1, - 10, /* Elements count */ - &asn_SPC_E2SM_KPM_IndicationHeader_Format1_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-IndicationHeader-Format1.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-IndicationHeader-Format1.h deleted file mode 100644 index c46b715..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-IndicationHeader-Format1.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_IndicationHeader_Format1_H_ -#define _E2SM_KPM_IndicationHeader_Format1_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include -#include "UE-Report-Type.h" -#include "GNB-DU-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GlobalKPMnode_ID; -struct NRCGI; -struct SNSSAI; -struct GNB_Name; -struct GlobalgNB_ID; - -/* E2SM-KPM-IndicationHeader-Format1 */ -typedef struct E2SM_KPM_IndicationHeader_Format1 { - struct GlobalKPMnode_ID *id_GlobalKPMnode_ID; /* OPTIONAL */ - struct NRCGI *nRCGI; /* OPTIONAL */ - PLMN_Identity_t *pLMN_Identity; /* OPTIONAL */ - struct SNSSAI *sliceID; /* OPTIONAL */ - long *fiveQI; /* OPTIONAL */ - long *qci; /* OPTIONAL */ - UE_Report_Type_t *message_Type; /* OPTIONAL */ - GNB_DU_ID_t *gNB_DU_ID; /* OPTIONAL */ - struct GNB_Name *gNB_Name; /* OPTIONAL */ - struct GlobalgNB_ID *global_GNB_ID; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_IndicationHeader_Format1_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationHeader_Format1; -extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationHeader_Format1_specs_1; -extern asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationHeader_Format1_1[10]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "GlobalKPMnode-ID.h" -#include "NRCGI.h" -#include "SNSSAI.h" -#include "GNB-Name.h" -#include "GlobalgNB-ID.h" - -#endif /* _E2SM_KPM_IndicationHeader_Format1_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-IndicationHeader.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-IndicationHeader.c deleted file mode 100644 index c4fe730..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-IndicationHeader.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-IndicationHeader.h" - -static asn_oer_constraints_t asn_OER_type_E2SM_KPM_IndicationHeader_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_E2SM_KPM_IndicationHeader_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 asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationHeader_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationHeader, choice.indicationHeader_Format1), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E2SM_KPM_IndicationHeader_Format1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "indicationHeader-Format1" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_IndicationHeader_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* indicationHeader-Format1 */ -}; -static asn_CHOICE_specifics_t asn_SPC_E2SM_KPM_IndicationHeader_specs_1 = { - sizeof(struct E2SM_KPM_IndicationHeader), - offsetof(struct E2SM_KPM_IndicationHeader, _asn_ctx), - offsetof(struct E2SM_KPM_IndicationHeader, present), - sizeof(((struct E2SM_KPM_IndicationHeader *)0)->present), - asn_MAP_E2SM_KPM_IndicationHeader_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, - 1 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationHeader = { - "E2SM-KPM-IndicationHeader", - "E2SM-KPM-IndicationHeader", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_E2SM_KPM_IndicationHeader_constr_1, &asn_PER_type_E2SM_KPM_IndicationHeader_constr_1, CHOICE_constraint }, - asn_MBR_E2SM_KPM_IndicationHeader_1, - 1, /* Elements count */ - &asn_SPC_E2SM_KPM_IndicationHeader_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-IndicationHeader.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-IndicationHeader.h deleted file mode 100644 index 67dc86d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-IndicationHeader.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_IndicationHeader_H_ -#define _E2SM_KPM_IndicationHeader_H_ - - -#include - -/* Including external dependencies */ -#include "E2SM-KPM-IndicationHeader-Format1.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E2SM_KPM_IndicationHeader_PR { - E2SM_KPM_IndicationHeader_PR_NOTHING, /* No components present */ - E2SM_KPM_IndicationHeader_PR_indicationHeader_Format1 - /* Extensions may appear below */ - -} E2SM_KPM_IndicationHeader_PR; - -/* E2SM-KPM-IndicationHeader */ -typedef struct E2SM_KPM_IndicationHeader { - E2SM_KPM_IndicationHeader_PR present; - union E2SM_KPM_IndicationHeader_u { - E2SM_KPM_IndicationHeader_Format1_t indicationHeader_Format1; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_IndicationHeader_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationHeader; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2SM_KPM_IndicationHeader_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-IndicationMessage-Format1.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-IndicationMessage-Format1.c deleted file mode 100644 index 7bdebb0..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-IndicationMessage-Format1.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-IndicationMessage-Format1.h" - -static int -memb_pm_Containers_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 8)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_pm_Containers_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..8)) */}; -static asn_per_constraints_t asn_PER_type_pm_Containers_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pm_Containers_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..8)) */}; -static asn_per_constraints_t asn_PER_memb_pm_Containers_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_pm_Containers_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_PM_Containers_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_pm_Containers_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_pm_Containers_specs_2 = { - sizeof(struct E2SM_KPM_IndicationMessage_Format1__pm_Containers), - offsetof(struct E2SM_KPM_IndicationMessage_Format1__pm_Containers, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_pm_Containers_2 = { - "pm-Containers", - "pm-Containers", - &asn_OP_SEQUENCE_OF, - asn_DEF_pm_Containers_tags_2, - sizeof(asn_DEF_pm_Containers_tags_2) - /sizeof(asn_DEF_pm_Containers_tags_2[0]) - 1, /* 1 */ - asn_DEF_pm_Containers_tags_2, /* Same as above */ - sizeof(asn_DEF_pm_Containers_tags_2) - /sizeof(asn_DEF_pm_Containers_tags_2[0]), /* 2 */ - { &asn_OER_type_pm_Containers_constr_2, &asn_PER_type_pm_Containers_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_pm_Containers_2, - 1, /* Single element */ - &asn_SPC_pm_Containers_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationMessage_Format1_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationMessage_Format1, pm_Containers), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_pm_Containers_2, - 0, - { &asn_OER_memb_pm_Containers_constr_2, &asn_PER_memb_pm_Containers_constr_2, memb_pm_Containers_constraint_1 }, - 0, 0, /* No default value */ - "pm-Containers" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_IndicationMessage_Format1_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* pm-Containers */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationMessage_Format1_specs_1 = { - sizeof(struct E2SM_KPM_IndicationMessage_Format1), - offsetof(struct E2SM_KPM_IndicationMessage_Format1, _asn_ctx), - asn_MAP_E2SM_KPM_IndicationMessage_Format1_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_E2SM_KPM_IndicationMessage_Format1 = { - "E2SM-KPM-IndicationMessage-Format1", - "E2SM-KPM-IndicationMessage-Format1", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1, - sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1) - /sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1[0]), /* 1 */ - asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1) - /sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_KPM_IndicationMessage_Format1_1, - 1, /* Elements count */ - &asn_SPC_E2SM_KPM_IndicationMessage_Format1_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-IndicationMessage-Format1.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-IndicationMessage-Format1.h deleted file mode 100644 index a05b652..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-IndicationMessage-Format1.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_IndicationMessage_Format1_H_ -#define _E2SM_KPM_IndicationMessage_Format1_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PM_Containers_List; - -/* E2SM-KPM-IndicationMessage-Format1 */ -typedef struct E2SM_KPM_IndicationMessage_Format1 { - struct E2SM_KPM_IndicationMessage_Format1__pm_Containers { - A_SEQUENCE_OF(struct PM_Containers_List) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } pm_Containers; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_IndicationMessage_Format1_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationMessage_Format1; -extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationMessage_Format1_specs_1; -extern asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationMessage_Format1_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "PM-Containers-List.h" - -#endif /* _E2SM_KPM_IndicationMessage_Format1_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-IndicationMessage.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-IndicationMessage.c deleted file mode 100644 index 2eb4018..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-IndicationMessage.c +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-IndicationMessage.h" - -static asn_oer_constraints_t asn_OER_type_indicationMessage_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_indicationMessage_constr_3 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 asn_TYPE_member_t asn_MBR_indicationMessage_3[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationMessage__indicationMessage, choice.indicationMessage_Format1), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E2SM_KPM_IndicationMessage_Format1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "indicationMessage-Format1" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_indicationMessage_tag2el_3[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* indicationMessage-Format1 */ -}; -static asn_CHOICE_specifics_t asn_SPC_indicationMessage_specs_3 = { - sizeof(struct E2SM_KPM_IndicationMessage__indicationMessage), - offsetof(struct E2SM_KPM_IndicationMessage__indicationMessage, _asn_ctx), - offsetof(struct E2SM_KPM_IndicationMessage__indicationMessage, present), - sizeof(((struct E2SM_KPM_IndicationMessage__indicationMessage *)0)->present), - asn_MAP_indicationMessage_tag2el_3, - 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_indicationMessage_3 = { - "indicationMessage", - "indicationMessage", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_indicationMessage_constr_3, &asn_PER_type_indicationMessage_constr_3, CHOICE_constraint }, - asn_MBR_indicationMessage_3, - 1, /* Elements count */ - &asn_SPC_indicationMessage_specs_3 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationMessage_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationMessage, ric_Style_Type), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Style_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-Style-Type" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationMessage, indicationMessage), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_indicationMessage_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "indicationMessage" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2SM_KPM_IndicationMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_IndicationMessage_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-Style-Type */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* indicationMessage */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationMessage_specs_1 = { - sizeof(struct E2SM_KPM_IndicationMessage), - offsetof(struct E2SM_KPM_IndicationMessage, _asn_ctx), - asn_MAP_E2SM_KPM_IndicationMessage_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_E2SM_KPM_IndicationMessage = { - "E2SM-KPM-IndicationMessage", - "E2SM-KPM-IndicationMessage", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_KPM_IndicationMessage_tags_1, - sizeof(asn_DEF_E2SM_KPM_IndicationMessage_tags_1) - /sizeof(asn_DEF_E2SM_KPM_IndicationMessage_tags_1[0]), /* 1 */ - asn_DEF_E2SM_KPM_IndicationMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_KPM_IndicationMessage_tags_1) - /sizeof(asn_DEF_E2SM_KPM_IndicationMessage_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_KPM_IndicationMessage_1, - 2, /* Elements count */ - &asn_SPC_E2SM_KPM_IndicationMessage_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-IndicationMessage.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-IndicationMessage.h deleted file mode 100644 index 77d4e3b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-IndicationMessage.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_IndicationMessage_H_ -#define _E2SM_KPM_IndicationMessage_H_ - - -#include - -/* Including external dependencies */ -#include "RIC-Style-Type.h" -#include "E2SM-KPM-IndicationMessage-Format1.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E2SM_KPM_IndicationMessage__indicationMessage_PR { - E2SM_KPM_IndicationMessage__indicationMessage_PR_NOTHING, /* No components present */ - E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1 - /* Extensions may appear below */ - -} E2SM_KPM_IndicationMessage__indicationMessage_PR; - -/* E2SM-KPM-IndicationMessage */ -typedef struct E2SM_KPM_IndicationMessage { - RIC_Style_Type_t ric_Style_Type; - struct E2SM_KPM_IndicationMessage__indicationMessage { - E2SM_KPM_IndicationMessage__indicationMessage_PR present; - union E2SM_KPM_IndicationMessage__indicationMessage_u { - E2SM_KPM_IndicationMessage_Format1_t indicationMessage_Format1; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } indicationMessage; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_IndicationMessage_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationMessage; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2SM_KPM_IndicationMessage_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-RANfunction-Description.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-RANfunction-Description.c deleted file mode 100644 index 226d0fb..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-RANfunction-Description.c +++ /dev/null @@ -1,273 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-RANfunction-Description.h" - -static int -memb_ric_EventTriggerStyle_List_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 63)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_ric_ReportStyle_List_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 63)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_ric_EventTriggerStyle_List_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..63)) */}; -static asn_per_constraints_t asn_PER_type_ric_EventTriggerStyle_List_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_type_ric_ReportStyle_List_constr_6 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..63)) */}; -static asn_per_constraints_t asn_PER_type_ric_ReportStyle_List_constr_6 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ric_EventTriggerStyle_List_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..63)) */}; -static asn_per_constraints_t asn_PER_memb_ric_EventTriggerStyle_List_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ric_ReportStyle_List_constr_6 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..63)) */}; -static asn_per_constraints_t asn_PER_memb_ric_ReportStyle_List_constr_6 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_ric_EventTriggerStyle_List_4[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RIC_EventTriggerStyle_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ric_EventTriggerStyle_List_tags_4[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ric_EventTriggerStyle_List_specs_4 = { - sizeof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_EventTriggerStyle_List), - offsetof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_EventTriggerStyle_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_ric_EventTriggerStyle_List_4 = { - "ric-EventTriggerStyle-List", - "ric-EventTriggerStyle-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_ric_EventTriggerStyle_List_tags_4, - sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_4) - /sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_4[0]) - 1, /* 1 */ - asn_DEF_ric_EventTriggerStyle_List_tags_4, /* Same as above */ - sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_4) - /sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_4[0]), /* 2 */ - { &asn_OER_type_ric_EventTriggerStyle_List_constr_4, &asn_PER_type_ric_EventTriggerStyle_List_constr_4, SEQUENCE_OF_constraint }, - asn_MBR_ric_EventTriggerStyle_List_4, - 1, /* Single element */ - &asn_SPC_ric_EventTriggerStyle_List_specs_4 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_ric_ReportStyle_List_6[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RIC_ReportStyle_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ric_ReportStyle_List_tags_6[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ric_ReportStyle_List_specs_6 = { - sizeof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_ReportStyle_List), - offsetof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_ReportStyle_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_ric_ReportStyle_List_6 = { - "ric-ReportStyle-List", - "ric-ReportStyle-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_ric_ReportStyle_List_tags_6, - sizeof(asn_DEF_ric_ReportStyle_List_tags_6) - /sizeof(asn_DEF_ric_ReportStyle_List_tags_6[0]) - 1, /* 1 */ - asn_DEF_ric_ReportStyle_List_tags_6, /* Same as above */ - sizeof(asn_DEF_ric_ReportStyle_List_tags_6) - /sizeof(asn_DEF_ric_ReportStyle_List_tags_6[0]), /* 2 */ - { &asn_OER_type_ric_ReportStyle_List_constr_6, &asn_PER_type_ric_ReportStyle_List_constr_6, SEQUENCE_OF_constraint }, - asn_MBR_ric_ReportStyle_List_6, - 1, /* Single element */ - &asn_SPC_ric_ReportStyle_List_specs_6 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_e2SM_KPM_RANfunction_Item_3[] = { - { ATF_POINTER, 2, offsetof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item, ric_EventTriggerStyle_List), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_ric_EventTriggerStyle_List_4, - 0, - { &asn_OER_memb_ric_EventTriggerStyle_List_constr_4, &asn_PER_memb_ric_EventTriggerStyle_List_constr_4, memb_ric_EventTriggerStyle_List_constraint_3 }, - 0, 0, /* No default value */ - "ric-EventTriggerStyle-List" - }, - { ATF_POINTER, 1, offsetof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item, ric_ReportStyle_List), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_ric_ReportStyle_List_6, - 0, - { &asn_OER_memb_ric_ReportStyle_List_constr_6, &asn_PER_memb_ric_ReportStyle_List_constr_6, memb_ric_ReportStyle_List_constraint_3 }, - 0, 0, /* No default value */ - "ric-ReportStyle-List" - }, -}; -static const int asn_MAP_e2SM_KPM_RANfunction_Item_oms_3[] = { 0, 1 }; -static const ber_tlv_tag_t asn_DEF_e2SM_KPM_RANfunction_Item_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_e2SM_KPM_RANfunction_Item_tag2el_3[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-EventTriggerStyle-List */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ric-ReportStyle-List */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_e2SM_KPM_RANfunction_Item_specs_3 = { - sizeof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item), - offsetof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item, _asn_ctx), - asn_MAP_e2SM_KPM_RANfunction_Item_tag2el_3, - 2, /* Count of tags in the map */ - asn_MAP_e2SM_KPM_RANfunction_Item_oms_3, /* Optional members */ - 2, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_e2SM_KPM_RANfunction_Item_3 = { - "e2SM-KPM-RANfunction-Item", - "e2SM-KPM-RANfunction-Item", - &asn_OP_SEQUENCE, - asn_DEF_e2SM_KPM_RANfunction_Item_tags_3, - sizeof(asn_DEF_e2SM_KPM_RANfunction_Item_tags_3) - /sizeof(asn_DEF_e2SM_KPM_RANfunction_Item_tags_3[0]) - 1, /* 1 */ - asn_DEF_e2SM_KPM_RANfunction_Item_tags_3, /* Same as above */ - sizeof(asn_DEF_e2SM_KPM_RANfunction_Item_tags_3) - /sizeof(asn_DEF_e2SM_KPM_RANfunction_Item_tags_3[0]), /* 2 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_e2SM_KPM_RANfunction_Item_3, - 2, /* Elements count */ - &asn_SPC_e2SM_KPM_RANfunction_Item_specs_3 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_E2SM_KPM_RANfunction_Description_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_RANfunction_Description, ranFunction_Name), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunction_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunction-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_RANfunction_Description, e2SM_KPM_RANfunction_Item), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_e2SM_KPM_RANfunction_Item_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e2SM-KPM-RANfunction-Item" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2SM_KPM_RANfunction_Description_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_RANfunction_Description_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunction-Name */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* e2SM-KPM-RANfunction-Item */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_RANfunction_Description_specs_1 = { - sizeof(struct E2SM_KPM_RANfunction_Description), - offsetof(struct E2SM_KPM_RANfunction_Description, _asn_ctx), - asn_MAP_E2SM_KPM_RANfunction_Description_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_E2SM_KPM_RANfunction_Description = { - "E2SM-KPM-RANfunction-Description", - "E2SM-KPM-RANfunction-Description", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_KPM_RANfunction_Description_tags_1, - sizeof(asn_DEF_E2SM_KPM_RANfunction_Description_tags_1) - /sizeof(asn_DEF_E2SM_KPM_RANfunction_Description_tags_1[0]), /* 1 */ - asn_DEF_E2SM_KPM_RANfunction_Description_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_KPM_RANfunction_Description_tags_1) - /sizeof(asn_DEF_E2SM_KPM_RANfunction_Description_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_KPM_RANfunction_Description_1, - 2, /* Elements count */ - &asn_SPC_E2SM_KPM_RANfunction_Description_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-RANfunction-Description.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-RANfunction-Description.h deleted file mode 100644 index 79d2dcf..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2SM-KPM-RANfunction-Description.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_RANfunction_Description_H_ -#define _E2SM_KPM_RANfunction_Description_H_ - - -#include - -/* Including external dependencies */ -#include "RANfunction-Name.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct RIC_EventTriggerStyle_List; -struct RIC_ReportStyle_List; - -/* E2SM-KPM-RANfunction-Description */ -typedef struct E2SM_KPM_RANfunction_Description { - RANfunction_Name_t ranFunction_Name; - struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item { - struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_EventTriggerStyle_List { - A_SEQUENCE_OF(struct RIC_EventTriggerStyle_List) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } *ric_EventTriggerStyle_List; - struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_ReportStyle_List { - A_SEQUENCE_OF(struct RIC_ReportStyle_List) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } *ric_ReportStyle_List; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } e2SM_KPM_RANfunction_Item; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_RANfunction_Description_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_RANfunction_Description; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "RIC-EventTriggerStyle-List.h" -#include "RIC-ReportStyle-List.h" - -#endif /* _E2SM_KPM_RANfunction_Description_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionSetupFailed-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionSetupFailed-Item.c deleted file mode 100644 index f0f45f8..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionSetupFailed-Item.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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_Cause, - 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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionSetupFailed-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionSetupFailed-Item.h deleted file mode 100644 index a976438..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionSetupFailed-Item.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2connectionSetupFailed_Item_H_ -#define _E2connectionSetupFailed_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "TNLinformation.h" -#include "Cause.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2connectionSetupFailed-Item */ -typedef struct E2connectionSetupFailed_Item { - TNLinformation_t tnlInformation; - Cause_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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionSetupFailed-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionSetupFailed-List.c deleted file mode 100644 index cd30a64..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionSetupFailed-List.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "E2connectionSetupFailed-List.h" - -#include "ProtocolIE-SingleContainer.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_SingleContainer_1920P6, - 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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionSetupFailed-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionSetupFailed-List.h deleted file mode 100644 index 1d31824..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionSetupFailed-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2connectionSetupFailed_List_H_ -#define _E2connectionSetupFailed_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* E2connectionSetupFailed-List */ -typedef struct E2connectionSetupFailed_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) 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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate-Item.c deleted file mode 100644 index ca94fb5..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate-Item.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate-Item.h deleted file mode 100644 index 71a8b7a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate-Item.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2connectionUpdate_Item_H_ -#define _E2connectionUpdate_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "TNLinformation.h" -#include "TNLusage.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate-List.c deleted file mode 100644 index 018c9f8..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate-List.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "E2connectionUpdate-List.h" - -#include "ProtocolIE-SingleContainer.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_SingleContainer_1920P4, - 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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate-List.h deleted file mode 100644 index 734d770..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2connectionUpdate_List_H_ -#define _E2connectionUpdate_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* E2connectionUpdate-List */ -typedef struct E2connectionUpdate_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) 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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate.c deleted file mode 100644 index 1cee810..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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_Container_1917P15, - 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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate.h deleted file mode 100644 index 102f711..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2connectionUpdate_H_ -#define _E2connectionUpdate_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2connectionUpdate */ -typedef struct E2connectionUpdate { - ProtocolIE_Container_1917P15_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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateAcknowledge.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateAcknowledge.c deleted file mode 100644 index ad55786..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateAcknowledge.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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_Container_1917P16, - 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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateAcknowledge.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateAcknowledge.h deleted file mode 100644 index 668ae54..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateAcknowledge.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2connectionUpdateAcknowledge_H_ -#define _E2connectionUpdateAcknowledge_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2connectionUpdateAcknowledge */ -typedef struct E2connectionUpdateAcknowledge { - ProtocolIE_Container_1917P16_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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateFailure.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateFailure.c deleted file mode 100644 index 8c8daa4..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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_Container_1917P17, - 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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateFailure.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateFailure.h deleted file mode 100644 index c81d6c8..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2connectionUpdateFailure_H_ -#define _E2connectionUpdateFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2connectionUpdateFailure */ -typedef struct E2connectionUpdateFailure { - ProtocolIE_Container_1917P17_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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateRemove-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateRemove-Item.c deleted file mode 100644 index 6384820..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateRemove-Item.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateRemove-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateRemove-Item.h deleted file mode 100644 index d161623..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateRemove-Item.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2connectionUpdateRemove_Item_H_ -#define _E2connectionUpdateRemove_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "TNLinformation.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateRemove-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateRemove-List.c deleted file mode 100644 index e5f7f8b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateRemove-List.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "E2connectionUpdateRemove-List.h" - -#include "ProtocolIE-SingleContainer.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_SingleContainer_1920P5, - 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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateRemove-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateRemove-List.h deleted file mode 100644 index 135195d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateRemove-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2connectionUpdateRemove_List_H_ -#define _E2connectionUpdateRemove_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* E2connectionUpdateRemove-List */ -typedef struct E2connectionUpdateRemove_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) 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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAddition-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAddition-Item.c deleted file mode 100644 index 2ad05a1..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAddition-Item.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAddition-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAddition-Item.h deleted file mode 100644 index db691a1..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAddition-Item.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2nodeComponentConfigAddition_Item_H_ -#define _E2nodeComponentConfigAddition_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E2nodeComponentInterfaceType.h" -#include "E2nodeComponentID.h" -#include "E2nodeComponentConfiguration.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAddition-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAddition-List.c deleted file mode 100644 index 3e93cda..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAddition-List.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "E2nodeComponentConfigAddition-List.h" - -#include "ProtocolIE-SingleContainer.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_SingleContainer_1920P7, - 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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAddition-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAddition-List.h deleted file mode 100644 index 0bed3fd..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAddition-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2nodeComponentConfigAddition_List_H_ -#define _E2nodeComponentConfigAddition_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* E2nodeComponentConfigAddition-List */ -typedef struct E2nodeComponentConfigAddition_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) 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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAdditionAck-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAdditionAck-Item.c deleted file mode 100644 index e36ef6f..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAdditionAck-Item.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAdditionAck-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAdditionAck-Item.h deleted file mode 100644 index 1278256..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAdditionAck-Item.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2nodeComponentConfigAdditionAck_Item_H_ -#define _E2nodeComponentConfigAdditionAck_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E2nodeComponentInterfaceType.h" -#include "E2nodeComponentID.h" -#include "E2nodeComponentConfigurationAck.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAdditionAck-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAdditionAck-List.c deleted file mode 100644 index b1dcd18..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAdditionAck-List.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "E2nodeComponentConfigAdditionAck-List.h" - -#include "ProtocolIE-SingleContainer.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_SingleContainer_1920P11, - 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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAdditionAck-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAdditionAck-List.h deleted file mode 100644 index 07761c5..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAdditionAck-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2nodeComponentConfigAdditionAck_List_H_ -#define _E2nodeComponentConfigAdditionAck_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* E2nodeComponentConfigAdditionAck-List */ -typedef struct E2nodeComponentConfigAdditionAck_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) 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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemoval-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemoval-Item.c deleted file mode 100644 index eed716f..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemoval-Item.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemoval-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemoval-Item.h deleted file mode 100644 index 65f2788..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemoval-Item.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2nodeComponentConfigRemoval_Item_H_ -#define _E2nodeComponentConfigRemoval_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E2nodeComponentInterfaceType.h" -#include "E2nodeComponentID.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemoval-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemoval-List.c deleted file mode 100644 index 6e8c5a0..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemoval-List.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "E2nodeComponentConfigRemoval-List.h" - -#include "ProtocolIE-SingleContainer.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_SingleContainer_1920P9, - 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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemoval-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemoval-List.h deleted file mode 100644 index c562dfb..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemoval-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2nodeComponentConfigRemoval_List_H_ -#define _E2nodeComponentConfigRemoval_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* E2nodeComponentConfigRemoval-List */ -typedef struct E2nodeComponentConfigRemoval_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) 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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemovalAck-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemovalAck-Item.c deleted file mode 100644 index 1b064f4..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemovalAck-Item.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemovalAck-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemovalAck-Item.h deleted file mode 100644 index cfe64df..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemovalAck-Item.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2nodeComponentConfigRemovalAck_Item_H_ -#define _E2nodeComponentConfigRemovalAck_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E2nodeComponentInterfaceType.h" -#include "E2nodeComponentID.h" -#include "E2nodeComponentConfigurationAck.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemovalAck-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemovalAck-List.c deleted file mode 100644 index 31f4339..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemovalAck-List.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "E2nodeComponentConfigRemovalAck-List.h" - -#include "ProtocolIE-SingleContainer.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_SingleContainer_1920P13, - 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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemovalAck-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemovalAck-List.h deleted file mode 100644 index 632b764..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemovalAck-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2nodeComponentConfigRemovalAck_List_H_ -#define _E2nodeComponentConfigRemovalAck_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* E2nodeComponentConfigRemovalAck-List */ -typedef struct E2nodeComponentConfigRemovalAck_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) 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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate-Item.c deleted file mode 100644 index 98ab889..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate-Item.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate-Item.h deleted file mode 100644 index e1ae519..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate-Item.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2nodeComponentConfigUpdate_Item_H_ -#define _E2nodeComponentConfigUpdate_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E2nodeComponentInterfaceType.h" -#include "E2nodeComponentID.h" -#include "E2nodeComponentConfiguration.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate-List.c deleted file mode 100644 index 12d5f1e..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate-List.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "E2nodeComponentConfigUpdate-List.h" - -#include "ProtocolIE-SingleContainer.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_SingleContainer_1920P8, - 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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate-List.h deleted file mode 100644 index a11a1c8..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2nodeComponentConfigUpdate_List_H_ -#define _E2nodeComponentConfigUpdate_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* E2nodeComponentConfigUpdate-List */ -typedef struct E2nodeComponentConfigUpdate_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) 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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck-Item.c deleted file mode 100644 index 418210f..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck-Item.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck-Item.h deleted file mode 100644 index 9b7809e..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck-Item.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2nodeComponentConfigUpdateAck_Item_H_ -#define _E2nodeComponentConfigUpdateAck_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E2nodeComponentInterfaceType.h" -#include "E2nodeComponentID.h" -#include "E2nodeComponentConfigurationAck.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck-List.c deleted file mode 100644 index f08c742..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck-List.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "E2nodeComponentConfigUpdateAck-List.h" - -#include "ProtocolIE-SingleContainer.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_SingleContainer_1920P12, - 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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck-List.h deleted file mode 100644 index 58961ef..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2nodeComponentConfigUpdateAck_List_H_ -#define _E2nodeComponentConfigUpdateAck_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* E2nodeComponentConfigUpdateAck-List */ -typedef struct E2nodeComponentConfigUpdateAck_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) 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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfiguration.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfiguration.c deleted file mode 100644 index d29312a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfiguration.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfiguration.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfiguration.h deleted file mode 100644 index 315be3a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfiguration.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2nodeComponentConfiguration_H_ -#define _E2nodeComponentConfiguration_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigurationAck.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigurationAck.c deleted file mode 100644 index 4004d4a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigurationAck.c +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "E2nodeComponentConfigurationAck.h" - -#include "Cause.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_Cause, - 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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigurationAck.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigurationAck.h deleted file mode 100644 index bf93bfb..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigurationAck.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2nodeComponentConfigurationAck_H_ -#define _E2nodeComponentConfigurationAck_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" -#include "constr_SEQUENCE.h" - -#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 Cause; - -/* E2nodeComponentConfigurationAck */ -typedef struct E2nodeComponentConfigurationAck { - long updateOutcome; - struct Cause *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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentID.c deleted file mode 100644 index cea878d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentID.c +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentID.h deleted file mode 100644 index 2c4ac61..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentID.h +++ /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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2nodeComponentID_H_ -#define _E2nodeComponentID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceE1.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceE1.c deleted file mode 100644 index ddf06fa..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceE1.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceE1.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceE1.h deleted file mode 100644 index d563930..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceE1.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2nodeComponentInterfaceE1_H_ -#define _E2nodeComponentInterfaceE1_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GNB-CU-UP-ID.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceF1.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceF1.c deleted file mode 100644 index d93b874..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceF1.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceF1.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceF1.h deleted file mode 100644 index 3c8e082..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceF1.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2nodeComponentInterfaceF1_H_ -#define _E2nodeComponentInterfaceF1_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GNB-DU-ID.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceNG.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceNG.c deleted file mode 100644 index a8a16e3..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceNG.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceNG.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceNG.h deleted file mode 100644 index cd24525..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceNG.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2nodeComponentInterfaceNG_H_ -#define _E2nodeComponentInterfaceNG_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "AMFName.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceS1.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceS1.c deleted file mode 100644 index cc86742..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceS1.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceS1.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceS1.h deleted file mode 100644 index 97893d2..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceS1.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2nodeComponentInterfaceS1_H_ -#define _E2nodeComponentInterfaceS1_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "MMEname.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceType.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceType.c deleted file mode 100644 index 1db7956..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceType.c +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceType.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceType.h deleted file mode 100644 index 8830afb..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceType.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2nodeComponentInterfaceType_H_ -#define _E2nodeComponentInterfaceType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceW1.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceW1.c deleted file mode 100644 index b25f695..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceW1.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceW1.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceW1.h deleted file mode 100644 index 29ac2c0..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceW1.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2nodeComponentInterfaceW1_H_ -#define _E2nodeComponentInterfaceW1_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NGENB-DU-ID.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceX2.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceX2.c deleted file mode 100644 index f271361..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceX2.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceX2.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceX2.h deleted file mode 100644 index d226ea0..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceX2.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2nodeComponentInterfaceX2_H_ -#define _E2nodeComponentInterfaceX2_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceXn.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceXn.c deleted file mode 100644 index 0d5646b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceXn.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceXn.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceXn.h deleted file mode 100644 index 5a22510..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceXn.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2nodeComponentInterfaceXn_H_ -#define _E2nodeComponentInterfaceXn_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GlobalNG-RANNode-ID.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdate.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdate.c deleted file mode 100644 index 183a5e7..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdate.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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_Container_1917P18, - 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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdate.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdate.h deleted file mode 100644 index 23125a1..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdate.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2nodeConfigurationUpdate_H_ -#define _E2nodeConfigurationUpdate_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2nodeConfigurationUpdate */ -typedef struct E2nodeConfigurationUpdate { - ProtocolIE_Container_1917P18_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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdateAcknowledge.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdateAcknowledge.c deleted file mode 100644 index 9a35816..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdateAcknowledge.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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_Container_1917P19, - 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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdateAcknowledge.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdateAcknowledge.h deleted file mode 100644 index 6fdec97..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdateAcknowledge.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2nodeConfigurationUpdateAcknowledge_H_ -#define _E2nodeConfigurationUpdateAcknowledge_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2nodeConfigurationUpdateAcknowledge */ -typedef struct E2nodeConfigurationUpdateAcknowledge { - ProtocolIE_Container_1917P19_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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdateFailure.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdateFailure.c deleted file mode 100644 index 3933041..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdateFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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_Container_1917P20, - 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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdateFailure.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdateFailure.h deleted file mode 100644 index ddde6a1..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdateFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2nodeConfigurationUpdateFailure_H_ -#define _E2nodeConfigurationUpdateFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2nodeConfigurationUpdateFailure */ -typedef struct E2nodeConfigurationUpdateFailure { - ProtocolIE_Container_1917P20_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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeTNLassociationRemoval-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeTNLassociationRemoval-Item.c deleted file mode 100644 index c2ecd03..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeTNLassociationRemoval-Item.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeTNLassociationRemoval-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeTNLassociationRemoval-Item.h deleted file mode 100644 index d31e5b7..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeTNLassociationRemoval-Item.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2nodeTNLassociationRemoval_Item_H_ -#define _E2nodeTNLassociationRemoval_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "TNLinformation.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeTNLassociationRemoval-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeTNLassociationRemoval-List.c deleted file mode 100644 index 8993424..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeTNLassociationRemoval-List.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "E2nodeTNLassociationRemoval-List.h" - -#include "ProtocolIE-SingleContainer.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_SingleContainer_1920P10, - 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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeTNLassociationRemoval-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeTNLassociationRemoval-List.h deleted file mode 100644 index 193e626..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeTNLassociationRemoval-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2nodeTNLassociationRemoval_List_H_ -#define _E2nodeTNLassociationRemoval_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* E2nodeTNLassociationRemoval-List */ -typedef struct E2nodeTNLassociationRemoval_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) 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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupFailure.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupFailure.c deleted file mode 100644 index 0b7cab5..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "E2setupFailure.h" - -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_Container_1917P14, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2setupFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2setupFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2setupFailure_specs_1 = { - sizeof(struct E2setupFailure), - offsetof(struct E2setupFailure, _asn_ctx), - asn_MAP_E2setupFailure_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_E2setupFailure = { - "E2setupFailure", - "E2setupFailure", - &asn_OP_SEQUENCE, - asn_DEF_E2setupFailure_tags_1, - sizeof(asn_DEF_E2setupFailure_tags_1) - /sizeof(asn_DEF_E2setupFailure_tags_1[0]), /* 1 */ - asn_DEF_E2setupFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_E2setupFailure_tags_1) - /sizeof(asn_DEF_E2setupFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupFailure_1, - 1, /* Elements count */ - &asn_SPC_E2setupFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupFailure.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupFailure.h deleted file mode 100644 index 0d8c71e..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2setupFailure_H_ -#define _E2setupFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2setupFailure */ -typedef struct E2setupFailure { - ProtocolIE_Container_1917P14_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2setupFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2setupFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_E2setupFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2setupFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupRequest.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupRequest.c deleted file mode 100644 index 4b7af4f..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupRequest.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "E2setupRequest.h" - -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_Container_1917P12, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2setupRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2setupRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2setupRequest_specs_1 = { - sizeof(struct E2setupRequest), - offsetof(struct E2setupRequest, _asn_ctx), - asn_MAP_E2setupRequest_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_E2setupRequest = { - "E2setupRequest", - "E2setupRequest", - &asn_OP_SEQUENCE, - asn_DEF_E2setupRequest_tags_1, - sizeof(asn_DEF_E2setupRequest_tags_1) - /sizeof(asn_DEF_E2setupRequest_tags_1[0]), /* 1 */ - asn_DEF_E2setupRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_E2setupRequest_tags_1) - /sizeof(asn_DEF_E2setupRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupRequest_1, - 1, /* Elements count */ - &asn_SPC_E2setupRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupRequest.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupRequest.h deleted file mode 100644 index 89093d7..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupRequest.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2setupRequest_H_ -#define _E2setupRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2setupRequest */ -typedef struct E2setupRequest { - ProtocolIE_Container_1917P12_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2setupRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2setupRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_E2setupRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2setupRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupResponse.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupResponse.c deleted file mode 100644 index 8e82484..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupResponse.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "E2setupResponse.h" - -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_Container_1917P13, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2setupResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2setupResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2setupResponse_specs_1 = { - sizeof(struct E2setupResponse), - offsetof(struct E2setupResponse, _asn_ctx), - asn_MAP_E2setupResponse_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_E2setupResponse = { - "E2setupResponse", - "E2setupResponse", - &asn_OP_SEQUENCE, - asn_DEF_E2setupResponse_tags_1, - sizeof(asn_DEF_E2setupResponse_tags_1) - /sizeof(asn_DEF_E2setupResponse_tags_1[0]), /* 1 */ - asn_DEF_E2setupResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_E2setupResponse_tags_1) - /sizeof(asn_DEF_E2setupResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupResponse_1, - 1, /* Elements count */ - &asn_SPC_E2setupResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupResponse.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupResponse.h deleted file mode 100644 index d69675d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupResponse.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _E2setupResponse_H_ -#define _E2setupResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2setupResponse */ -typedef struct E2setupResponse { - ProtocolIE_Container_1917P13_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2setupResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2setupResponse; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupResponse_specs_1; -extern asn_TYPE_member_t asn_MBR_E2setupResponse_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2setupResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENB-ID-Choice.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENB-ID-Choice.c deleted file mode 100644 index e3e8c6e..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENB-ID-Choice.c +++ /dev/null @@ -1,192 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "ENB-ID-Choice.h" - -static int -memb_enb_ID_macro_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 == 20)) { - /* 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_enb_ID_shortmacro_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 == 18)) { - /* 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_enb_ID_longmacro_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 == 21)) { - /* 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_enb_ID_macro_constr_2 CC_NOTUSED = { - { 0, 0 }, - 20 /* (SIZE(20..20)) */}; -static asn_per_constraints_t asn_PER_memb_enb_ID_macro_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_enb_ID_shortmacro_constr_3 CC_NOTUSED = { - { 0, 0 }, - 18 /* (SIZE(18..18)) */}; -static asn_per_constraints_t asn_PER_memb_enb_ID_shortmacro_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 18, 18 } /* (SIZE(18..18)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_enb_ID_longmacro_constr_4 CC_NOTUSED = { - { 0, 0 }, - 21 /* (SIZE(21..21)) */}; -static asn_per_constraints_t asn_PER_memb_enb_ID_longmacro_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 21, 21 } /* (SIZE(21..21)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_type_ENB_ID_Choice_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_ENB_ID_Choice_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 */ -}; -asn_TYPE_member_t asn_MBR_ENB_ID_Choice_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID_Choice, choice.enb_ID_macro), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_enb_ID_macro_constr_2, &asn_PER_memb_enb_ID_macro_constr_2, memb_enb_ID_macro_constraint_1 }, - 0, 0, /* No default value */ - "enb-ID-macro" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID_Choice, choice.enb_ID_shortmacro), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_enb_ID_shortmacro_constr_3, &asn_PER_memb_enb_ID_shortmacro_constr_3, memb_enb_ID_shortmacro_constraint_1 }, - 0, 0, /* No default value */ - "enb-ID-shortmacro" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID_Choice, choice.enb_ID_longmacro), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_enb_ID_longmacro_constr_4, &asn_PER_memb_enb_ID_longmacro_constr_4, memb_enb_ID_longmacro_constraint_1 }, - 0, 0, /* No default value */ - "enb-ID-longmacro" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_ENB_ID_Choice_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* enb-ID-macro */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* enb-ID-shortmacro */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* enb-ID-longmacro */ -}; -asn_CHOICE_specifics_t asn_SPC_ENB_ID_Choice_specs_1 = { - sizeof(struct ENB_ID_Choice), - offsetof(struct ENB_ID_Choice, _asn_ctx), - offsetof(struct ENB_ID_Choice, present), - sizeof(((struct ENB_ID_Choice *)0)->present), - asn_MAP_ENB_ID_Choice_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, - 3 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_ENB_ID_Choice = { - "ENB-ID-Choice", - "ENB-ID-Choice", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_ENB_ID_Choice_constr_1, &asn_PER_type_ENB_ID_Choice_constr_1, CHOICE_constraint }, - asn_MBR_ENB_ID_Choice_1, - 3, /* Elements count */ - &asn_SPC_ENB_ID_Choice_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENB-ID-Choice.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENB-ID-Choice.h deleted file mode 100644 index ee499d8..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENB-ID-Choice.h +++ /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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _ENB_ID_Choice_H_ -#define _ENB_ID_Choice_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ENB_ID_Choice_PR { - ENB_ID_Choice_PR_NOTHING, /* No components present */ - ENB_ID_Choice_PR_enb_ID_macro, - ENB_ID_Choice_PR_enb_ID_shortmacro, - ENB_ID_Choice_PR_enb_ID_longmacro - /* Extensions may appear below */ - -} ENB_ID_Choice_PR; - -/* ENB-ID-Choice */ -typedef struct ENB_ID_Choice { - ENB_ID_Choice_PR present; - union ENB_ID_Choice_u { - BIT_STRING_t enb_ID_macro; - BIT_STRING_t enb_ID_shortmacro; - BIT_STRING_t enb_ID_longmacro; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENB_ID_Choice_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENB_ID_Choice; -extern asn_CHOICE_specifics_t asn_SPC_ENB_ID_Choice_specs_1; -extern asn_TYPE_member_t asn_MBR_ENB_ID_Choice_1[3]; -extern asn_per_constraints_t asn_PER_type_ENB_ID_Choice_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENB_ID_Choice_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENB-ID.c deleted file mode 100644 index 31c7893..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENB-ID.c +++ /dev/null @@ -1,241 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "ENB-ID.h" - -static int -memb_macro_eNB_ID_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 == 20)) { - /* 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_home_eNB_ID_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 == 28)) { - /* 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_short_Macro_eNB_ID_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 == 18)) { - /* 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_long_Macro_eNB_ID_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 == 21)) { - /* 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_macro_eNB_ID_constr_2 CC_NOTUSED = { - { 0, 0 }, - 20 /* (SIZE(20..20)) */}; -static asn_per_constraints_t asn_PER_memb_macro_eNB_ID_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_home_eNB_ID_constr_3 CC_NOTUSED = { - { 0, 0 }, - 28 /* (SIZE(28..28)) */}; -static asn_per_constraints_t asn_PER_memb_home_eNB_ID_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 28, 28 } /* (SIZE(28..28)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_short_Macro_eNB_ID_constr_5 CC_NOTUSED = { - { 0, 0 }, - 18 /* (SIZE(18..18)) */}; -static asn_per_constraints_t asn_PER_memb_short_Macro_eNB_ID_constr_5 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 18, 18 } /* (SIZE(18..18)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_long_Macro_eNB_ID_constr_6 CC_NOTUSED = { - { 0, 0 }, - 21 /* (SIZE(21..21)) */}; -static asn_per_constraints_t asn_PER_memb_long_Macro_eNB_ID_constr_6 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 21, 21 } /* (SIZE(21..21)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_type_ENB_ID_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_ENB_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_ENB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID, choice.macro_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_macro_eNB_ID_constr_2, &asn_PER_memb_macro_eNB_ID_constr_2, memb_macro_eNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "macro-eNB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID, choice.home_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_home_eNB_ID_constr_3, &asn_PER_memb_home_eNB_ID_constr_3, memb_home_eNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "home-eNB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID, choice.short_Macro_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_short_Macro_eNB_ID_constr_5, &asn_PER_memb_short_Macro_eNB_ID_constr_5, memb_short_Macro_eNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "short-Macro-eNB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID, choice.long_Macro_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_long_Macro_eNB_ID_constr_6, &asn_PER_memb_long_Macro_eNB_ID_constr_6, memb_long_Macro_eNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "long-Macro-eNB-ID" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_ENB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* macro-eNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* home-eNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* short-Macro-eNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* long-Macro-eNB-ID */ -}; -asn_CHOICE_specifics_t asn_SPC_ENB_ID_specs_1 = { - sizeof(struct ENB_ID), - offsetof(struct ENB_ID, _asn_ctx), - offsetof(struct ENB_ID, present), - sizeof(((struct ENB_ID *)0)->present), - asn_MAP_ENB_ID_tag2el_1, - 4, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_ENB_ID = { - "ENB-ID", - "ENB-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_ENB_ID_constr_1, &asn_PER_type_ENB_ID_constr_1, CHOICE_constraint }, - asn_MBR_ENB_ID_1, - 4, /* Elements count */ - &asn_SPC_ENB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENB-ID.h deleted file mode 100644 index 5af5286..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENB-ID.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _ENB_ID_H_ -#define _ENB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ENB_ID_PR { - ENB_ID_PR_NOTHING, /* No components present */ - ENB_ID_PR_macro_eNB_ID, - ENB_ID_PR_home_eNB_ID, - /* Extensions may appear below */ - ENB_ID_PR_short_Macro_eNB_ID, - ENB_ID_PR_long_Macro_eNB_ID -} ENB_ID_PR; - -/* ENB-ID */ -typedef struct ENB_ID { - ENB_ID_PR present; - union ENB_ID_u { - BIT_STRING_t macro_eNB_ID; - BIT_STRING_t home_eNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - BIT_STRING_t short_Macro_eNB_ID; - BIT_STRING_t long_Macro_eNB_ID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENB_ID; -extern asn_CHOICE_specifics_t asn_SPC_ENB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_ENB_ID_1[4]; -extern asn_per_constraints_t asn_PER_type_ENB_ID_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENGNB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENGNB-ID.c deleted file mode 100644 index 775d556..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENGNB-ID.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "ENGNB-ID.h" - -static int -memb_gNB_ID_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 >= 22 && size <= 32)) { - /* 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_gNB_ID_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(22..32)) */}; -static asn_per_constraints_t asn_PER_memb_gNB_ID_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 22, 32 } /* (SIZE(22..32)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_type_ENGNB_ID_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_ENGNB_ID_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 */ -}; -asn_TYPE_member_t asn_MBR_ENGNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENGNB_ID, choice.gNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_gNB_ID_constr_2, &asn_PER_memb_gNB_ID_constr_2, memb_gNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "gNB-ID" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_ENGNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gNB-ID */ -}; -asn_CHOICE_specifics_t asn_SPC_ENGNB_ID_specs_1 = { - sizeof(struct ENGNB_ID), - offsetof(struct ENGNB_ID, _asn_ctx), - offsetof(struct ENGNB_ID, present), - sizeof(((struct ENGNB_ID *)0)->present), - asn_MAP_ENGNB_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, - 1 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_ENGNB_ID = { - "ENGNB-ID", - "ENGNB-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_ENGNB_ID_constr_1, &asn_PER_type_ENGNB_ID_constr_1, CHOICE_constraint }, - asn_MBR_ENGNB_ID_1, - 1, /* Elements count */ - &asn_SPC_ENGNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENGNB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENGNB-ID.h deleted file mode 100644 index 2a7ce8b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENGNB-ID.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _ENGNB_ID_H_ -#define _ENGNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ENGNB_ID_PR { - ENGNB_ID_PR_NOTHING, /* No components present */ - ENGNB_ID_PR_gNB_ID - /* Extensions may appear below */ - -} ENGNB_ID_PR; - -/* ENGNB-ID */ -typedef struct ENGNB_ID { - ENGNB_ID_PR present; - union ENGNB_ID_u { - BIT_STRING_t gNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENGNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENGNB_ID; -extern asn_CHOICE_specifics_t asn_SPC_ENGNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_ENGNB_ID_1[1]; -extern asn_per_constraints_t asn_PER_type_ENGNB_ID_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENGNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/EPC-CUUP-PM-Format.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/EPC-CUUP-PM-Format.c deleted file mode 100644 index d8902f8..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/EPC-CUUP-PM-Format.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "EPC-CUUP-PM-Format.h" - -static int -memb_perQCIReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 256)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_perQCIReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..256)) */}; -static asn_per_constraints_t asn_PER_type_perQCIReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_perQCIReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..256)) */}; -static asn_per_constraints_t asn_PER_memb_perQCIReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_perQCIReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_PerQCIReportListItemFormat, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_perQCIReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_perQCIReportList_specs_2 = { - sizeof(struct EPC_CUUP_PM_Format__perQCIReportList), - offsetof(struct EPC_CUUP_PM_Format__perQCIReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_perQCIReportList_2 = { - "perQCIReportList", - "perQCIReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_perQCIReportList_tags_2, - sizeof(asn_DEF_perQCIReportList_tags_2) - /sizeof(asn_DEF_perQCIReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_perQCIReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_perQCIReportList_tags_2) - /sizeof(asn_DEF_perQCIReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_perQCIReportList_constr_2, &asn_PER_type_perQCIReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_perQCIReportList_2, - 1, /* Single element */ - &asn_SPC_perQCIReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_EPC_CUUP_PM_Format_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct EPC_CUUP_PM_Format, perQCIReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_perQCIReportList_2, - 0, - { &asn_OER_memb_perQCIReportList_constr_2, &asn_PER_memb_perQCIReportList_constr_2, memb_perQCIReportList_constraint_1 }, - 0, 0, /* No default value */ - "perQCIReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_EPC_CUUP_PM_Format_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_EPC_CUUP_PM_Format_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* perQCIReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_EPC_CUUP_PM_Format_specs_1 = { - sizeof(struct EPC_CUUP_PM_Format), - offsetof(struct EPC_CUUP_PM_Format, _asn_ctx), - asn_MAP_EPC_CUUP_PM_Format_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_EPC_CUUP_PM_Format = { - "EPC-CUUP-PM-Format", - "EPC-CUUP-PM-Format", - &asn_OP_SEQUENCE, - asn_DEF_EPC_CUUP_PM_Format_tags_1, - sizeof(asn_DEF_EPC_CUUP_PM_Format_tags_1) - /sizeof(asn_DEF_EPC_CUUP_PM_Format_tags_1[0]), /* 1 */ - asn_DEF_EPC_CUUP_PM_Format_tags_1, /* Same as above */ - sizeof(asn_DEF_EPC_CUUP_PM_Format_tags_1) - /sizeof(asn_DEF_EPC_CUUP_PM_Format_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_EPC_CUUP_PM_Format_1, - 1, /* Elements count */ - &asn_SPC_EPC_CUUP_PM_Format_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/EPC-CUUP-PM-Format.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/EPC-CUUP-PM-Format.h deleted file mode 100644 index b07125d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/EPC-CUUP-PM-Format.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _EPC_CUUP_PM_Format_H_ -#define _EPC_CUUP_PM_Format_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PerQCIReportListItemFormat; - -/* EPC-CUUP-PM-Format */ -typedef struct EPC_CUUP_PM_Format { - struct EPC_CUUP_PM_Format__perQCIReportList { - A_SEQUENCE_OF(struct PerQCIReportListItemFormat) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } perQCIReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} EPC_CUUP_PM_Format_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_EPC_CUUP_PM_Format; -extern asn_SEQUENCE_specifics_t asn_SPC_EPC_CUUP_PM_Format_specs_1; -extern asn_TYPE_member_t asn_MBR_EPC_CUUP_PM_Format_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "PerQCIReportListItemFormat.h" - -#endif /* _EPC_CUUP_PM_Format_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/EPC-DU-PM-Container.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/EPC-DU-PM-Container.c deleted file mode 100644 index 2ba5440..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/EPC-DU-PM-Container.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "EPC-DU-PM-Container.h" - -static int -memb_perQCIReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 256)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_perQCIReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..256)) */}; -static asn_per_constraints_t asn_PER_type_perQCIReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_perQCIReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..256)) */}; -static asn_per_constraints_t asn_PER_memb_perQCIReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_perQCIReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_PerQCIReportListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_perQCIReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_perQCIReportList_specs_2 = { - sizeof(struct EPC_DU_PM_Container__perQCIReportList), - offsetof(struct EPC_DU_PM_Container__perQCIReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_perQCIReportList_2 = { - "perQCIReportList", - "perQCIReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_perQCIReportList_tags_2, - sizeof(asn_DEF_perQCIReportList_tags_2) - /sizeof(asn_DEF_perQCIReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_perQCIReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_perQCIReportList_tags_2) - /sizeof(asn_DEF_perQCIReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_perQCIReportList_constr_2, &asn_PER_type_perQCIReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_perQCIReportList_2, - 1, /* Single element */ - &asn_SPC_perQCIReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_EPC_DU_PM_Container_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct EPC_DU_PM_Container, perQCIReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_perQCIReportList_2, - 0, - { &asn_OER_memb_perQCIReportList_constr_2, &asn_PER_memb_perQCIReportList_constr_2, memb_perQCIReportList_constraint_1 }, - 0, 0, /* No default value */ - "perQCIReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_EPC_DU_PM_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_EPC_DU_PM_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* perQCIReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_EPC_DU_PM_Container_specs_1 = { - sizeof(struct EPC_DU_PM_Container), - offsetof(struct EPC_DU_PM_Container, _asn_ctx), - asn_MAP_EPC_DU_PM_Container_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_EPC_DU_PM_Container = { - "EPC-DU-PM-Container", - "EPC-DU-PM-Container", - &asn_OP_SEQUENCE, - asn_DEF_EPC_DU_PM_Container_tags_1, - sizeof(asn_DEF_EPC_DU_PM_Container_tags_1) - /sizeof(asn_DEF_EPC_DU_PM_Container_tags_1[0]), /* 1 */ - asn_DEF_EPC_DU_PM_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_EPC_DU_PM_Container_tags_1) - /sizeof(asn_DEF_EPC_DU_PM_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_EPC_DU_PM_Container_1, - 1, /* Elements count */ - &asn_SPC_EPC_DU_PM_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/EPC-DU-PM-Container.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/EPC-DU-PM-Container.h deleted file mode 100644 index 198982e..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/EPC-DU-PM-Container.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _EPC_DU_PM_Container_H_ -#define _EPC_DU_PM_Container_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PerQCIReportListItem; - -/* EPC-DU-PM-Container */ -typedef struct EPC_DU_PM_Container { - struct EPC_DU_PM_Container__perQCIReportList { - A_SEQUENCE_OF(struct PerQCIReportListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } perQCIReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} EPC_DU_PM_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_EPC_DU_PM_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_EPC_DU_PM_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_EPC_DU_PM_Container_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "PerQCIReportListItem.h" - -#endif /* _EPC_DU_PM_Container_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ErrorIndication.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ErrorIndication.c deleted file mode 100644 index 209a036..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ErrorIndication.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "ErrorIndication.h" - -asn_TYPE_member_t asn_MBR_ErrorIndication_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1917P11, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ErrorIndication_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ErrorIndication_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_specs_1 = { - sizeof(struct ErrorIndication), - offsetof(struct ErrorIndication, _asn_ctx), - asn_MAP_ErrorIndication_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_ErrorIndication = { - "ErrorIndication", - "ErrorIndication", - &asn_OP_SEQUENCE, - asn_DEF_ErrorIndication_tags_1, - sizeof(asn_DEF_ErrorIndication_tags_1) - /sizeof(asn_DEF_ErrorIndication_tags_1[0]), /* 1 */ - asn_DEF_ErrorIndication_tags_1, /* Same as above */ - sizeof(asn_DEF_ErrorIndication_tags_1) - /sizeof(asn_DEF_ErrorIndication_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ErrorIndication_1, - 1, /* Elements count */ - &asn_SPC_ErrorIndication_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ErrorIndication.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ErrorIndication.h deleted file mode 100644 index ed0676e..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ErrorIndication.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _ErrorIndication_H_ -#define _ErrorIndication_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ErrorIndication */ -typedef struct ErrorIndication { - ProtocolIE_Container_1917P11_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ErrorIndication_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ErrorIndication; -extern asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_specs_1; -extern asn_TYPE_member_t asn_MBR_ErrorIndication_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ErrorIndication_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/FGC-CUUP-PM-Format.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/FGC-CUUP-PM-Format.c deleted file mode 100644 index d8f7e44..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/FGC-CUUP-PM-Format.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "FGC-CUUP-PM-Format.h" - -static int -memb_sliceToReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 1024)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_sliceToReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..1024)) */}; -static asn_per_constraints_t asn_PER_type_sliceToReportList_constr_2 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_oer_constraints_t asn_OER_memb_sliceToReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..1024)) */}; -static asn_per_constraints_t asn_PER_memb_sliceToReportList_constr_2 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_sliceToReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SliceToReportListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_sliceToReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_sliceToReportList_specs_2 = { - sizeof(struct FGC_CUUP_PM_Format__sliceToReportList), - offsetof(struct FGC_CUUP_PM_Format__sliceToReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_sliceToReportList_2 = { - "sliceToReportList", - "sliceToReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_sliceToReportList_tags_2, - sizeof(asn_DEF_sliceToReportList_tags_2) - /sizeof(asn_DEF_sliceToReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_sliceToReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_sliceToReportList_tags_2) - /sizeof(asn_DEF_sliceToReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_sliceToReportList_constr_2, &asn_PER_type_sliceToReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_sliceToReportList_2, - 1, /* Single element */ - &asn_SPC_sliceToReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_FGC_CUUP_PM_Format_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct FGC_CUUP_PM_Format, sliceToReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_sliceToReportList_2, - 0, - { &asn_OER_memb_sliceToReportList_constr_2, &asn_PER_memb_sliceToReportList_constr_2, memb_sliceToReportList_constraint_1 }, - 0, 0, /* No default value */ - "sliceToReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_FGC_CUUP_PM_Format_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_FGC_CUUP_PM_Format_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* sliceToReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_FGC_CUUP_PM_Format_specs_1 = { - sizeof(struct FGC_CUUP_PM_Format), - offsetof(struct FGC_CUUP_PM_Format, _asn_ctx), - asn_MAP_FGC_CUUP_PM_Format_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_FGC_CUUP_PM_Format = { - "FGC-CUUP-PM-Format", - "FGC-CUUP-PM-Format", - &asn_OP_SEQUENCE, - asn_DEF_FGC_CUUP_PM_Format_tags_1, - sizeof(asn_DEF_FGC_CUUP_PM_Format_tags_1) - /sizeof(asn_DEF_FGC_CUUP_PM_Format_tags_1[0]), /* 1 */ - asn_DEF_FGC_CUUP_PM_Format_tags_1, /* Same as above */ - sizeof(asn_DEF_FGC_CUUP_PM_Format_tags_1) - /sizeof(asn_DEF_FGC_CUUP_PM_Format_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_FGC_CUUP_PM_Format_1, - 1, /* Elements count */ - &asn_SPC_FGC_CUUP_PM_Format_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/FGC-CUUP-PM-Format.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/FGC-CUUP-PM-Format.h deleted file mode 100644 index a6e4aa8..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/FGC-CUUP-PM-Format.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _FGC_CUUP_PM_Format_H_ -#define _FGC_CUUP_PM_Format_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct SliceToReportListItem; - -/* FGC-CUUP-PM-Format */ -typedef struct FGC_CUUP_PM_Format { - struct FGC_CUUP_PM_Format__sliceToReportList { - A_SEQUENCE_OF(struct SliceToReportListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } sliceToReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} FGC_CUUP_PM_Format_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_FGC_CUUP_PM_Format; -extern asn_SEQUENCE_specifics_t asn_SPC_FGC_CUUP_PM_Format_specs_1; -extern asn_TYPE_member_t asn_MBR_FGC_CUUP_PM_Format_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "SliceToReportListItem.h" - -#endif /* _FGC_CUUP_PM_Format_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/FGC-DU-PM-Container.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/FGC-DU-PM-Container.c deleted file mode 100644 index c0429ab..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/FGC-DU-PM-Container.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "FGC-DU-PM-Container.h" - -static int -memb_slicePerPlmnPerCellList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 1024)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_slicePerPlmnPerCellList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..1024)) */}; -static asn_per_constraints_t asn_PER_type_slicePerPlmnPerCellList_constr_2 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_oer_constraints_t asn_OER_memb_slicePerPlmnPerCellList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..1024)) */}; -static asn_per_constraints_t asn_PER_memb_slicePerPlmnPerCellList_constr_2 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_slicePerPlmnPerCellList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SlicePerPlmnPerCellListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_slicePerPlmnPerCellList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_slicePerPlmnPerCellList_specs_2 = { - sizeof(struct FGC_DU_PM_Container__slicePerPlmnPerCellList), - offsetof(struct FGC_DU_PM_Container__slicePerPlmnPerCellList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_slicePerPlmnPerCellList_2 = { - "slicePerPlmnPerCellList", - "slicePerPlmnPerCellList", - &asn_OP_SEQUENCE_OF, - asn_DEF_slicePerPlmnPerCellList_tags_2, - sizeof(asn_DEF_slicePerPlmnPerCellList_tags_2) - /sizeof(asn_DEF_slicePerPlmnPerCellList_tags_2[0]) - 1, /* 1 */ - asn_DEF_slicePerPlmnPerCellList_tags_2, /* Same as above */ - sizeof(asn_DEF_slicePerPlmnPerCellList_tags_2) - /sizeof(asn_DEF_slicePerPlmnPerCellList_tags_2[0]), /* 2 */ - { &asn_OER_type_slicePerPlmnPerCellList_constr_2, &asn_PER_type_slicePerPlmnPerCellList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_slicePerPlmnPerCellList_2, - 1, /* Single element */ - &asn_SPC_slicePerPlmnPerCellList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_FGC_DU_PM_Container_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct FGC_DU_PM_Container, slicePerPlmnPerCellList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_slicePerPlmnPerCellList_2, - 0, - { &asn_OER_memb_slicePerPlmnPerCellList_constr_2, &asn_PER_memb_slicePerPlmnPerCellList_constr_2, memb_slicePerPlmnPerCellList_constraint_1 }, - 0, 0, /* No default value */ - "slicePerPlmnPerCellList" - }, -}; -static const ber_tlv_tag_t asn_DEF_FGC_DU_PM_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_FGC_DU_PM_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* slicePerPlmnPerCellList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_FGC_DU_PM_Container_specs_1 = { - sizeof(struct FGC_DU_PM_Container), - offsetof(struct FGC_DU_PM_Container, _asn_ctx), - asn_MAP_FGC_DU_PM_Container_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_FGC_DU_PM_Container = { - "FGC-DU-PM-Container", - "FGC-DU-PM-Container", - &asn_OP_SEQUENCE, - asn_DEF_FGC_DU_PM_Container_tags_1, - sizeof(asn_DEF_FGC_DU_PM_Container_tags_1) - /sizeof(asn_DEF_FGC_DU_PM_Container_tags_1[0]), /* 1 */ - asn_DEF_FGC_DU_PM_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_FGC_DU_PM_Container_tags_1) - /sizeof(asn_DEF_FGC_DU_PM_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_FGC_DU_PM_Container_1, - 1, /* Elements count */ - &asn_SPC_FGC_DU_PM_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/FGC-DU-PM-Container.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/FGC-DU-PM-Container.h deleted file mode 100644 index 96debbb..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/FGC-DU-PM-Container.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _FGC_DU_PM_Container_H_ -#define _FGC_DU_PM_Container_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct SlicePerPlmnPerCellListItem; - -/* FGC-DU-PM-Container */ -typedef struct FGC_DU_PM_Container { - struct FGC_DU_PM_Container__slicePerPlmnPerCellList { - A_SEQUENCE_OF(struct SlicePerPlmnPerCellListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } slicePerPlmnPerCellList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} FGC_DU_PM_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_FGC_DU_PM_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_FGC_DU_PM_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_FGC_DU_PM_Container_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "SlicePerPlmnPerCellListItem.h" - -#endif /* _FGC_DU_PM_Container_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/FQIPERSlicesPerPlmnListItem.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/FQIPERSlicesPerPlmnListItem.c deleted file mode 100644 index 84d1741..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/FQIPERSlicesPerPlmnListItem.c +++ /dev/null @@ -1,183 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "FQIPERSlicesPerPlmnListItem.h" - -static int -memb_fiveQI_constraint_1(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; - } -} - -static int -memb_pDCPBytesDL_constraint_1(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 <= 10000000000)) { - /* 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_pDCPBytesUL_constraint_1(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 <= 10000000000)) { - /* 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_fiveQI_constr_2 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_fiveQI_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pDCPBytesDL_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_pDCPBytesDL_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 34, -1, 0, 10000000000 } /* (0..10000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 34, -1, 0, 10000000000 } /* (0..10000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_FQIPERSlicesPerPlmnListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct FQIPERSlicesPerPlmnListItem, fiveQI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_fiveQI_constr_2, &asn_PER_memb_fiveQI_constr_2, memb_fiveQI_constraint_1 }, - 0, 0, /* No default value */ - "fiveQI" - }, - { ATF_POINTER, 2, offsetof(struct FQIPERSlicesPerPlmnListItem, pDCPBytesDL), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_INTEGER, - 0, - { &asn_OER_memb_pDCPBytesDL_constr_3, &asn_PER_memb_pDCPBytesDL_constr_3, memb_pDCPBytesDL_constraint_1 }, - 0, 0, /* No default value */ - "pDCPBytesDL" - }, - { ATF_POINTER, 1, offsetof(struct FQIPERSlicesPerPlmnListItem, pDCPBytesUL), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_INTEGER, - 0, - { &asn_OER_memb_pDCPBytesUL_constr_4, &asn_PER_memb_pDCPBytesUL_constr_4, memb_pDCPBytesUL_constraint_1 }, - 0, 0, /* No default value */ - "pDCPBytesUL" - }, -}; -static const int asn_MAP_FQIPERSlicesPerPlmnListItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_FQIPERSlicesPerPlmnListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fiveQI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDCPBytesDL */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* pDCPBytesUL */ -}; -asn_SEQUENCE_specifics_t asn_SPC_FQIPERSlicesPerPlmnListItem_specs_1 = { - sizeof(struct FQIPERSlicesPerPlmnListItem), - offsetof(struct FQIPERSlicesPerPlmnListItem, _asn_ctx), - asn_MAP_FQIPERSlicesPerPlmnListItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_FQIPERSlicesPerPlmnListItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_FQIPERSlicesPerPlmnListItem = { - "FQIPERSlicesPerPlmnListItem", - "FQIPERSlicesPerPlmnListItem", - &asn_OP_SEQUENCE, - asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1, - sizeof(asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1) - /sizeof(asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1[0]), /* 1 */ - asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1) - /sizeof(asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_FQIPERSlicesPerPlmnListItem_1, - 3, /* Elements count */ - &asn_SPC_FQIPERSlicesPerPlmnListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/FQIPERSlicesPerPlmnListItem.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/FQIPERSlicesPerPlmnListItem.h deleted file mode 100644 index a87a0d7..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/FQIPERSlicesPerPlmnListItem.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _FQIPERSlicesPerPlmnListItem_H_ -#define _FQIPERSlicesPerPlmnListItem_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* FQIPERSlicesPerPlmnListItem */ -typedef struct FQIPERSlicesPerPlmnListItem { - long fiveQI; - INTEGER_t *pDCPBytesDL; /* OPTIONAL */ - INTEGER_t *pDCPBytesUL; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} FQIPERSlicesPerPlmnListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_FQIPERSlicesPerPlmnListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_FQIPERSlicesPerPlmnListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_FQIPERSlicesPerPlmnListItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _FQIPERSlicesPerPlmnListItem_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.c deleted file mode 100644 index d73d0db..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.c +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "FQIPERSlicesPerPlmnPerCellListItem.h" - -static int -memb_fiveQI_constraint_1(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; - } -} - -static int -memb_dl_PRBUsage_constraint_1(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 <= 273)) { - /* 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_ul_PRBUsage_constraint_1(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 <= 273)) { - /* 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_fiveQI_constr_2 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_fiveQI_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_dl_PRBUsage_constr_3 CC_NOTUSED = { - { 2, 1 } /* (0..273) */, - -1}; -static asn_per_constraints_t asn_PER_memb_dl_PRBUsage_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 9, 9, 0, 273 } /* (0..273) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = { - { 2, 1 } /* (0..273) */, - -1}; -static asn_per_constraints_t asn_PER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED, 9, 9, 0, 273 } /* (0..273) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_FQIPERSlicesPerPlmnPerCellListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct FQIPERSlicesPerPlmnPerCellListItem, fiveQI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_fiveQI_constr_2, &asn_PER_memb_fiveQI_constr_2, memb_fiveQI_constraint_1 }, - 0, 0, /* No default value */ - "fiveQI" - }, - { ATF_POINTER, 2, offsetof(struct FQIPERSlicesPerPlmnPerCellListItem, dl_PRBUsage), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_dl_PRBUsage_constr_3, &asn_PER_memb_dl_PRBUsage_constr_3, memb_dl_PRBUsage_constraint_1 }, - 0, 0, /* No default value */ - "dl-PRBUsage" - }, - { ATF_POINTER, 1, offsetof(struct FQIPERSlicesPerPlmnPerCellListItem, ul_PRBUsage), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_ul_PRBUsage_constr_4, &asn_PER_memb_ul_PRBUsage_constr_4, memb_ul_PRBUsage_constraint_1 }, - 0, 0, /* No default value */ - "ul-PRBUsage" - }, -}; -static const int asn_MAP_FQIPERSlicesPerPlmnPerCellListItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_FQIPERSlicesPerPlmnPerCellListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fiveQI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dl-PRBUsage */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ul-PRBUsage */ -}; -asn_SEQUENCE_specifics_t asn_SPC_FQIPERSlicesPerPlmnPerCellListItem_specs_1 = { - sizeof(struct FQIPERSlicesPerPlmnPerCellListItem), - offsetof(struct FQIPERSlicesPerPlmnPerCellListItem, _asn_ctx), - asn_MAP_FQIPERSlicesPerPlmnPerCellListItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_FQIPERSlicesPerPlmnPerCellListItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_FQIPERSlicesPerPlmnPerCellListItem = { - "FQIPERSlicesPerPlmnPerCellListItem", - "FQIPERSlicesPerPlmnPerCellListItem", - &asn_OP_SEQUENCE, - asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1, - sizeof(asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1) - /sizeof(asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1[0]), /* 1 */ - asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1) - /sizeof(asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_FQIPERSlicesPerPlmnPerCellListItem_1, - 3, /* Elements count */ - &asn_SPC_FQIPERSlicesPerPlmnPerCellListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.h deleted file mode 100644 index 1b22e34..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _FQIPERSlicesPerPlmnPerCellListItem_H_ -#define _FQIPERSlicesPerPlmnPerCellListItem_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* FQIPERSlicesPerPlmnPerCellListItem */ -typedef struct FQIPERSlicesPerPlmnPerCellListItem { - long fiveQI; - long *dl_PRBUsage; /* OPTIONAL */ - long *ul_PRBUsage; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} FQIPERSlicesPerPlmnPerCellListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_FQIPERSlicesPerPlmnPerCellListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_FQIPERSlicesPerPlmnPerCellListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_FQIPERSlicesPerPlmnPerCellListItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _FQIPERSlicesPerPlmnPerCellListItem_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-CU-CP-Name.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-CU-CP-Name.c deleted file mode 100644 index 029ca92..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-CU-CP-Name.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GNB-CU-CP-Name.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 -GNB_CU_CP_Name_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_GNB_CU_CP_Name_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_GNB_CU_CP_Name_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_GNB_CU_CP_Name_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -asn_per_constraints_t asn_PER_type_GNB_CU_CP_Name_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_GNB_CU_CP_Name_1_v2c, /* Value to PER code map */ - asn_PER_MAP_GNB_CU_CP_Name_1_c2v /* PER code to value map */ -}; -static const ber_tlv_tag_t asn_DEF_GNB_CU_CP_Name_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_GNB_CU_CP_Name = { - "GNB-CU-CP-Name", - "GNB-CU-CP-Name", - &asn_OP_PrintableString, - asn_DEF_GNB_CU_CP_Name_tags_1, - sizeof(asn_DEF_GNB_CU_CP_Name_tags_1) - /sizeof(asn_DEF_GNB_CU_CP_Name_tags_1[0]), /* 1 */ - asn_DEF_GNB_CU_CP_Name_tags_1, /* Same as above */ - sizeof(asn_DEF_GNB_CU_CP_Name_tags_1) - /sizeof(asn_DEF_GNB_CU_CP_Name_tags_1[0]), /* 1 */ - { &asn_OER_type_GNB_CU_CP_Name_constr_1, &asn_PER_type_GNB_CU_CP_Name_constr_1, GNB_CU_CP_Name_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-CU-CP-Name.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-CU-CP-Name.h deleted file mode 100644 index 1eb3404..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-CU-CP-Name.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GNB_CU_CP_Name_H_ -#define _GNB_CU_CP_Name_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GNB-CU-CP-Name */ -typedef PrintableString_t GNB_CU_CP_Name_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_GNB_CU_CP_Name_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_CP_Name; -asn_struct_free_f GNB_CU_CP_Name_free; -asn_struct_print_f GNB_CU_CP_Name_print; -asn_constr_check_f GNB_CU_CP_Name_constraint; -ber_type_decoder_f GNB_CU_CP_Name_decode_ber; -der_type_encoder_f GNB_CU_CP_Name_encode_der; -xer_type_decoder_f GNB_CU_CP_Name_decode_xer; -xer_type_encoder_f GNB_CU_CP_Name_encode_xer; -oer_type_decoder_f GNB_CU_CP_Name_decode_oer; -oer_type_encoder_f GNB_CU_CP_Name_encode_oer; -per_type_decoder_f GNB_CU_CP_Name_decode_uper; -per_type_encoder_f GNB_CU_CP_Name_encode_uper; -per_type_decoder_f GNB_CU_CP_Name_decode_aper; -per_type_encoder_f GNB_CU_CP_Name_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_CU_CP_Name_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-CU-UP-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-CU-UP-ID.c deleted file mode 100644 index ce383bd..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-CU-UP-ID.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "GNB-CU-UP-ID.h" - -int -GNB_CU_UP_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_CU_UP_ID_constr_1 CC_NOTUSED = { - { 8, 1 } /* (0..68719476735) */, - -1}; -asn_per_constraints_t asn_PER_type_GNB_CU_UP_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_CU_UP_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_GNB_CU_UP_ID = { - "GNB-CU-UP-ID", - "GNB-CU-UP-ID", - &asn_OP_INTEGER, - asn_DEF_GNB_CU_UP_ID_tags_1, - sizeof(asn_DEF_GNB_CU_UP_ID_tags_1) - /sizeof(asn_DEF_GNB_CU_UP_ID_tags_1[0]), /* 1 */ - asn_DEF_GNB_CU_UP_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GNB_CU_UP_ID_tags_1) - /sizeof(asn_DEF_GNB_CU_UP_ID_tags_1[0]), /* 1 */ - { &asn_OER_type_GNB_CU_UP_ID_constr_1, &asn_PER_type_GNB_CU_UP_ID_constr_1, GNB_CU_UP_ID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-CU-UP-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-CU-UP-ID.h deleted file mode 100644 index 38093ef..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-CU-UP-ID.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _GNB_CU_UP_ID_H_ -#define _GNB_CU_UP_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "INTEGER.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GNB-CU-UP-ID */ -typedef INTEGER_t GNB_CU_UP_ID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_GNB_CU_UP_ID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_UP_ID; -asn_struct_free_f GNB_CU_UP_ID_free; -asn_struct_print_f GNB_CU_UP_ID_print; -asn_constr_check_f GNB_CU_UP_ID_constraint; -ber_type_decoder_f GNB_CU_UP_ID_decode_ber; -der_type_encoder_f GNB_CU_UP_ID_encode_der; -xer_type_decoder_f GNB_CU_UP_ID_decode_xer; -xer_type_encoder_f GNB_CU_UP_ID_encode_xer; -oer_type_decoder_f GNB_CU_UP_ID_decode_oer; -oer_type_encoder_f GNB_CU_UP_ID_encode_oer; -per_type_decoder_f GNB_CU_UP_ID_decode_uper; -per_type_encoder_f GNB_CU_UP_ID_encode_uper; -per_type_decoder_f GNB_CU_UP_ID_decode_aper; -per_type_encoder_f GNB_CU_UP_ID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_CU_UP_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-CU-UP-Name.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-CU-UP-Name.c deleted file mode 100644 index b64d5b1..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-CU-UP-Name.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GNB-CU-UP-Name.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 -GNB_CU_UP_Name_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_GNB_CU_UP_Name_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_GNB_CU_UP_Name_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_GNB_CU_UP_Name_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -asn_per_constraints_t asn_PER_type_GNB_CU_UP_Name_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_GNB_CU_UP_Name_1_v2c, /* Value to PER code map */ - asn_PER_MAP_GNB_CU_UP_Name_1_c2v /* PER code to value map */ -}; -static const ber_tlv_tag_t asn_DEF_GNB_CU_UP_Name_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_GNB_CU_UP_Name = { - "GNB-CU-UP-Name", - "GNB-CU-UP-Name", - &asn_OP_PrintableString, - asn_DEF_GNB_CU_UP_Name_tags_1, - sizeof(asn_DEF_GNB_CU_UP_Name_tags_1) - /sizeof(asn_DEF_GNB_CU_UP_Name_tags_1[0]), /* 1 */ - asn_DEF_GNB_CU_UP_Name_tags_1, /* Same as above */ - sizeof(asn_DEF_GNB_CU_UP_Name_tags_1) - /sizeof(asn_DEF_GNB_CU_UP_Name_tags_1[0]), /* 1 */ - { &asn_OER_type_GNB_CU_UP_Name_constr_1, &asn_PER_type_GNB_CU_UP_Name_constr_1, GNB_CU_UP_Name_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-CU-UP-Name.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-CU-UP-Name.h deleted file mode 100644 index c1b9d7e..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-CU-UP-Name.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GNB_CU_UP_Name_H_ -#define _GNB_CU_UP_Name_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GNB-CU-UP-Name */ -typedef PrintableString_t GNB_CU_UP_Name_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_GNB_CU_UP_Name_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_UP_Name; -asn_struct_free_f GNB_CU_UP_Name_free; -asn_struct_print_f GNB_CU_UP_Name_print; -asn_constr_check_f GNB_CU_UP_Name_constraint; -ber_type_decoder_f GNB_CU_UP_Name_decode_ber; -der_type_encoder_f GNB_CU_UP_Name_encode_der; -xer_type_decoder_f GNB_CU_UP_Name_decode_xer; -xer_type_encoder_f GNB_CU_UP_Name_encode_xer; -oer_type_decoder_f GNB_CU_UP_Name_decode_oer; -oer_type_encoder_f GNB_CU_UP_Name_encode_oer; -per_type_decoder_f GNB_CU_UP_Name_decode_uper; -per_type_encoder_f GNB_CU_UP_Name_encode_uper; -per_type_decoder_f GNB_CU_UP_Name_decode_aper; -per_type_encoder_f GNB_CU_UP_Name_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_CU_UP_Name_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-DU-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-DU-ID.c deleted file mode 100644 index 1296c02..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-DU-ID.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-DU-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-DU-ID.h deleted file mode 100644 index 0432111..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-DU-ID.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _GNB_DU_ID_H_ -#define _GNB_DU_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "INTEGER.h" - -#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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-DU-Name.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-DU-Name.c deleted file mode 100644 index 8ac789d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-DU-Name.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GNB-DU-Name.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 -GNB_DU_Name_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_GNB_DU_Name_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_GNB_DU_Name_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_GNB_DU_Name_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -asn_per_constraints_t asn_PER_type_GNB_DU_Name_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_GNB_DU_Name_1_v2c, /* Value to PER code map */ - asn_PER_MAP_GNB_DU_Name_1_c2v /* PER code to value map */ -}; -static const ber_tlv_tag_t asn_DEF_GNB_DU_Name_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_GNB_DU_Name = { - "GNB-DU-Name", - "GNB-DU-Name", - &asn_OP_PrintableString, - asn_DEF_GNB_DU_Name_tags_1, - sizeof(asn_DEF_GNB_DU_Name_tags_1) - /sizeof(asn_DEF_GNB_DU_Name_tags_1[0]), /* 1 */ - asn_DEF_GNB_DU_Name_tags_1, /* Same as above */ - sizeof(asn_DEF_GNB_DU_Name_tags_1) - /sizeof(asn_DEF_GNB_DU_Name_tags_1[0]), /* 1 */ - { &asn_OER_type_GNB_DU_Name_constr_1, &asn_PER_type_GNB_DU_Name_constr_1, GNB_DU_Name_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-DU-Name.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-DU-Name.h deleted file mode 100644 index e4994e6..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-DU-Name.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GNB_DU_Name_H_ -#define _GNB_DU_Name_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GNB-DU-Name */ -typedef PrintableString_t GNB_DU_Name_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_GNB_DU_Name_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_GNB_DU_Name; -asn_struct_free_f GNB_DU_Name_free; -asn_struct_print_f GNB_DU_Name_print; -asn_constr_check_f GNB_DU_Name_constraint; -ber_type_decoder_f GNB_DU_Name_decode_ber; -der_type_encoder_f GNB_DU_Name_encode_der; -xer_type_decoder_f GNB_DU_Name_decode_xer; -xer_type_encoder_f GNB_DU_Name_encode_xer; -oer_type_decoder_f GNB_DU_Name_decode_oer; -oer_type_encoder_f GNB_DU_Name_encode_oer; -per_type_decoder_f GNB_DU_Name_decode_uper; -per_type_encoder_f GNB_DU_Name_encode_uper; -per_type_decoder_f GNB_DU_Name_decode_aper; -per_type_encoder_f GNB_DU_Name_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_DU_Name_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-ID-Choice.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-ID-Choice.c deleted file mode 100644 index 274bcec..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-ID-Choice.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "GNB-ID-Choice.h" - -static int -memb_gnb_ID_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 >= 22 && size <= 32)) { - /* 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_gnb_ID_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(22..32)) */}; -static asn_per_constraints_t asn_PER_memb_gnb_ID_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 22, 32 } /* (SIZE(22..32)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_type_GNB_ID_Choice_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_GNB_ID_Choice_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 */ -}; -asn_TYPE_member_t asn_MBR_GNB_ID_Choice_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GNB_ID_Choice, choice.gnb_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_gnb_ID_constr_2, &asn_PER_memb_gnb_ID_constr_2, memb_gnb_ID_constraint_1 }, - 0, 0, /* No default value */ - "gnb-ID" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_GNB_ID_Choice_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gnb-ID */ -}; -asn_CHOICE_specifics_t asn_SPC_GNB_ID_Choice_specs_1 = { - sizeof(struct GNB_ID_Choice), - offsetof(struct GNB_ID_Choice, _asn_ctx), - offsetof(struct GNB_ID_Choice, present), - sizeof(((struct GNB_ID_Choice *)0)->present), - asn_MAP_GNB_ID_Choice_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, - 1 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_GNB_ID_Choice = { - "GNB-ID-Choice", - "GNB-ID-Choice", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_GNB_ID_Choice_constr_1, &asn_PER_type_GNB_ID_Choice_constr_1, CHOICE_constraint }, - asn_MBR_GNB_ID_Choice_1, - 1, /* Elements count */ - &asn_SPC_GNB_ID_Choice_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-ID-Choice.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-ID-Choice.h deleted file mode 100644 index 58bc4a5..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-ID-Choice.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _GNB_ID_Choice_H_ -#define _GNB_ID_Choice_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum GNB_ID_Choice_PR { - GNB_ID_Choice_PR_NOTHING, /* No components present */ - GNB_ID_Choice_PR_gnb_ID - /* Extensions may appear below */ - -} GNB_ID_Choice_PR; - -/* GNB-ID-Choice */ -typedef struct GNB_ID_Choice { - GNB_ID_Choice_PR present; - union GNB_ID_Choice_u { - BIT_STRING_t gnb_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GNB_ID_Choice_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GNB_ID_Choice; -extern asn_CHOICE_specifics_t asn_SPC_GNB_ID_Choice_specs_1; -extern asn_TYPE_member_t asn_MBR_GNB_ID_Choice_1[1]; -extern asn_per_constraints_t asn_PER_type_GNB_ID_Choice_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_ID_Choice_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-Name.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-Name.c deleted file mode 100644 index aeee9d8..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-Name.c +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GNB-Name.h" - -static asn_oer_constraints_t asn_OER_type_GNB_Name_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_GNB_Name_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 */ -}; -asn_TYPE_member_t asn_MBR_GNB_Name_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GNB_Name, choice.gNB_DU_Name), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_DU_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-DU-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct GNB_Name, choice.gNB_CU_CP_Name), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_CU_CP_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-CU-CP-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct GNB_Name, choice.gNB_CU_UP_Name), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_CU_UP_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-CU-UP-Name" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_GNB_Name_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB-DU-Name */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* gNB-CU-CP-Name */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* gNB-CU-UP-Name */ -}; -asn_CHOICE_specifics_t asn_SPC_GNB_Name_specs_1 = { - sizeof(struct GNB_Name), - offsetof(struct GNB_Name, _asn_ctx), - offsetof(struct GNB_Name, present), - sizeof(((struct GNB_Name *)0)->present), - asn_MAP_GNB_Name_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, - 3 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_GNB_Name = { - "GNB-Name", - "GNB-Name", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_GNB_Name_constr_1, &asn_PER_type_GNB_Name_constr_1, CHOICE_constraint }, - asn_MBR_GNB_Name_1, - 3, /* Elements count */ - &asn_SPC_GNB_Name_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-Name.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-Name.h deleted file mode 100644 index 3c69172..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-Name.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GNB_Name_H_ -#define _GNB_Name_H_ - - -#include - -/* Including external dependencies */ -#include "GNB-DU-Name.h" -#include "GNB-CU-CP-Name.h" -#include "GNB-CU-UP-Name.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum GNB_Name_PR { - GNB_Name_PR_NOTHING, /* No components present */ - GNB_Name_PR_gNB_DU_Name, - GNB_Name_PR_gNB_CU_CP_Name, - GNB_Name_PR_gNB_CU_UP_Name - /* Extensions may appear below */ - -} GNB_Name_PR; - -/* GNB-Name */ -typedef struct GNB_Name { - GNB_Name_PR present; - union GNB_Name_u { - GNB_DU_Name_t gNB_DU_Name; - GNB_CU_CP_Name_t gNB_CU_CP_Name; - GNB_CU_UP_Name_t gNB_CU_UP_Name; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GNB_Name_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GNB_Name; -extern asn_CHOICE_specifics_t asn_SPC_GNB_Name_specs_1; -extern asn_TYPE_member_t asn_MBR_GNB_Name_1[3]; -extern asn_per_constraints_t asn_PER_type_GNB_Name_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_Name_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-ID.c deleted file mode 100644 index 65bc445..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-ID.c +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "GlobalE2node-ID.h" - -#include "GlobalE2node-gNB-ID.h" -#include "GlobalE2node-en-gNB-ID.h" -#include "GlobalE2node-ng-eNB-ID.h" -#include "GlobalE2node-eNB-ID.h" -static asn_oer_constraints_t asn_OER_type_GlobalE2node_ID_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_GlobalE2node_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_GlobalE2node_ID_1[] = { - { ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.gNB), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalE2node_gNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB" - }, - { ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.en_gNB), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalE2node_en_gNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "en-gNB" - }, - { ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.ng_eNB), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalE2node_ng_eNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ng-eNB" - }, - { ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.eNB), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalE2node_eNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eNB" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-gNB */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ng-eNB */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* eNB */ -}; -static asn_CHOICE_specifics_t asn_SPC_GlobalE2node_ID_specs_1 = { - sizeof(struct GlobalE2node_ID), - offsetof(struct GlobalE2node_ID, _asn_ctx), - offsetof(struct GlobalE2node_ID, present), - sizeof(((struct GlobalE2node_ID *)0)->present), - asn_MAP_GlobalE2node_ID_tag2el_1, - 4, /* Count of tags in the map */ - 0, 0, - 4 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ID = { - "GlobalE2node-ID", - "GlobalE2node-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_GlobalE2node_ID_constr_1, &asn_PER_type_GlobalE2node_ID_constr_1, CHOICE_constraint }, - asn_MBR_GlobalE2node_ID_1, - 4, /* Elements count */ - &asn_SPC_GlobalE2node_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-ID.h deleted file mode 100644 index 9a2da69..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-ID.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _GlobalE2node_ID_H_ -#define _GlobalE2node_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum GlobalE2node_ID_PR { - GlobalE2node_ID_PR_NOTHING, /* No components present */ - GlobalE2node_ID_PR_gNB, - GlobalE2node_ID_PR_en_gNB, - GlobalE2node_ID_PR_ng_eNB, - GlobalE2node_ID_PR_eNB - /* Extensions may appear below */ - -} GlobalE2node_ID_PR; - -/* Forward declarations */ -struct GlobalE2node_gNB_ID; -struct GlobalE2node_en_gNB_ID; -struct GlobalE2node_ng_eNB_ID; -struct GlobalE2node_eNB_ID; - -/* GlobalE2node-ID */ -typedef struct GlobalE2node_ID { - GlobalE2node_ID_PR present; - union GlobalE2node_ID_u { - struct GlobalE2node_gNB_ID *gNB; - struct GlobalE2node_en_gNB_ID *en_gNB; - struct GlobalE2node_ng_eNB_ID *ng_eNB; - struct GlobalE2node_eNB_ID *eNB; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalE2node_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ID; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalE2node_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-eNB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-eNB-ID.c deleted file mode 100644 index e4833bc..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-eNB-ID.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "GlobalE2node-eNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalE2node_eNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_eNB_ID, 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" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalE2node_eNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_eNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-eNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_eNB_ID_specs_1 = { - sizeof(struct GlobalE2node_eNB_ID), - offsetof(struct GlobalE2node_eNB_ID, _asn_ctx), - asn_MAP_GlobalE2node_eNB_ID_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_GlobalE2node_eNB_ID = { - "GlobalE2node-eNB-ID", - "GlobalE2node-eNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalE2node_eNB_ID_tags_1, - sizeof(asn_DEF_GlobalE2node_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_eNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalE2node_eNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalE2node_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_eNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalE2node_eNB_ID_1, - 1, /* Elements count */ - &asn_SPC_GlobalE2node_eNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-eNB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-eNB-ID.h deleted file mode 100644 index 5f2afe6..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-eNB-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _GlobalE2node_eNB_ID_H_ -#define _GlobalE2node_eNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GlobalENB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalE2node-eNB-ID */ -typedef struct GlobalE2node_eNB_ID { - GlobalENB_ID_t global_eNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalE2node_eNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_eNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_eNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalE2node_eNB_ID_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalE2node_eNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-en-gNB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-en-gNB-ID.c deleted file mode 100644 index 43dc3b1..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-en-gNB-ID.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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_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-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-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, - 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", - "GlobalE2node-en-gNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalE2node_en_gNB_ID_tags_1, - sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalE2node_en_gNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalE2node_en_gNB_ID_1, - 3, /* Elements count */ - &asn_SPC_GlobalE2node_en_gNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-en-gNB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-en-gNB-ID.h deleted file mode 100644 index 33d626d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-en-gNB-ID.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _GlobalE2node_en_gNB_ID_H_ -#define _GlobalE2node_en_gNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GlobalenGNB-ID.h" -#include "GNB-CU-UP-ID.h" -#include "GNB-DU-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalE2node-en-gNB-ID */ -typedef struct GlobalE2node_en_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. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalE2node_en_gNB_ID_t; - -/* 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[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalE2node_en_gNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-gNB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-gNB-ID.c deleted file mode 100644 index b8a3de2..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-gNB-ID.c +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalgNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-gNB-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 }, - 0, 0, /* No default value */ - "gNB-CU-UP-ID" - }, - { ATF_POINTER, 1, offsetof(struct GlobalE2node_gNB_ID, gNB_DU_ID), - (ASN_TAG_CLASS_CONTEXT | (3 << 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 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 }, /* 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, - 4, /* Count of tags in the map */ - asn_MAP_GlobalE2node_gNB_ID_oms_1, /* Optional members */ - 3, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalE2node_gNB_ID = { - "GlobalE2node-gNB-ID", - "GlobalE2node-gNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalE2node_gNB_ID_tags_1, - sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalE2node_gNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalE2node_gNB_ID_1, - 4, /* Elements count */ - &asn_SPC_GlobalE2node_gNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-gNB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-gNB-ID.h deleted file mode 100644 index fc8c33b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-gNB-ID.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _GlobalE2node_gNB_ID_H_ -#define _GlobalE2node_gNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GlobalgNB-ID.h" -#include "GNB-CU-UP-ID.h" -#include "GNB-DU-ID.h" -#include "constr_SEQUENCE.h" - -#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_ID_t *gNB_DU_ID; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalE2node_gNB_ID_t; - -/* 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[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalE2node_gNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-ng-eNB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-ng-eNB-ID.c deleted file mode 100644 index 605fa18..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-ng-eNB-ID.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalngeNB_ID, - 0, - { 0, 0, 0 }, - 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 | (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, - 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", - "GlobalE2node-ng-eNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalE2node_ng_eNB_ID_tags_1, - sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalE2node_ng_eNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalE2node_ng_eNB_ID_1, - 3, /* Elements count */ - &asn_SPC_GlobalE2node_ng_eNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-ng-eNB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-ng-eNB-ID.h deleted file mode 100644 index a4475c5..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-ng-eNB-ID.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _GlobalE2node_ng_eNB_ID_H_ -#define _GlobalE2node_ng_eNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GlobalngeNB-ID.h" -#include "NGENB-DU-ID.h" -#include "constr_SEQUENCE.h" - -#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. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalE2node_ng_eNB_ID_t; - -/* 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[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalE2node_ng_eNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalENB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalENB-ID.c deleted file mode 100644 index 01f06cf..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalENB-ID.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "GlobalENB-ID.h" - -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_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalENB_ID, eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_ENB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eNB-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalENB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalENB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* eNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalENB_ID_specs_1 = { - sizeof(struct GlobalENB_ID), - offsetof(struct GlobalENB_ID, _asn_ctx), - asn_MAP_GlobalENB_ID_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_GlobalENB_ID = { - "GlobalENB-ID", - "GlobalENB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalENB_ID_tags_1, - sizeof(asn_DEF_GlobalENB_ID_tags_1) - /sizeof(asn_DEF_GlobalENB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalENB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalENB_ID_tags_1) - /sizeof(asn_DEF_GlobalENB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalENB_ID_1, - 2, /* Elements count */ - &asn_SPC_GlobalENB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalENB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalENB-ID.h deleted file mode 100644 index dae3d51..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalENB-ID.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _GlobalENB_ID_H_ -#define _GlobalENB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "ENB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalENB-ID */ -typedef struct GlobalENB_ID { - PLMN_Identity_t pLMN_Identity; - ENB_ID_t eNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalENB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalENB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalENB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalENB_ID_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalENB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalKPMnode-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalKPMnode-ID.c deleted file mode 100644 index 5202400..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalKPMnode-ID.c +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalKPMnode-ID.h" - -static asn_oer_constraints_t asn_OER_type_GlobalKPMnode_ID_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_GlobalKPMnode_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_GlobalKPMnode_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_ID, choice.gNB), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalKPMnode_gNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_ID, choice.en_gNB), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalKPMnode_en_gNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "en-gNB" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_ID, choice.ng_eNB), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalKPMnode_ng_eNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ng-eNB" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_ID, choice.eNB), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalKPMnode_eNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eNB" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalKPMnode_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-gNB */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ng-eNB */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* eNB */ -}; -asn_CHOICE_specifics_t asn_SPC_GlobalKPMnode_ID_specs_1 = { - sizeof(struct GlobalKPMnode_ID), - offsetof(struct GlobalKPMnode_ID, _asn_ctx), - offsetof(struct GlobalKPMnode_ID, present), - sizeof(((struct GlobalKPMnode_ID *)0)->present), - asn_MAP_GlobalKPMnode_ID_tag2el_1, - 4, /* Count of tags in the map */ - 0, 0, - 4 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_ID = { - "GlobalKPMnode-ID", - "GlobalKPMnode-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_GlobalKPMnode_ID_constr_1, &asn_PER_type_GlobalKPMnode_ID_constr_1, CHOICE_constraint }, - asn_MBR_GlobalKPMnode_ID_1, - 4, /* Elements count */ - &asn_SPC_GlobalKPMnode_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalKPMnode-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalKPMnode-ID.h deleted file mode 100644 index a93e881..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalKPMnode-ID.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalKPMnode_ID_H_ -#define _GlobalKPMnode_ID_H_ - - -#include - -/* Including external dependencies */ -#include "GlobalKPMnode-gNB-ID.h" -#include "GlobalKPMnode-en-gNB-ID.h" -#include "GlobalKPMnode-ng-eNB-ID.h" -#include "GlobalKPMnode-eNB-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum GlobalKPMnode_ID_PR { - GlobalKPMnode_ID_PR_NOTHING, /* No components present */ - GlobalKPMnode_ID_PR_gNB, - GlobalKPMnode_ID_PR_en_gNB, - GlobalKPMnode_ID_PR_ng_eNB, - GlobalKPMnode_ID_PR_eNB - /* Extensions may appear below */ - -} GlobalKPMnode_ID_PR; - -/* GlobalKPMnode-ID */ -typedef struct GlobalKPMnode_ID { - GlobalKPMnode_ID_PR present; - union GlobalKPMnode_ID_u { - GlobalKPMnode_gNB_ID_t gNB; - GlobalKPMnode_en_gNB_ID_t en_gNB; - GlobalKPMnode_ng_eNB_ID_t ng_eNB; - GlobalKPMnode_eNB_ID_t eNB; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalKPMnode_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_ID; -extern asn_CHOICE_specifics_t asn_SPC_GlobalKPMnode_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_ID_1[4]; -extern asn_per_constraints_t asn_PER_type_GlobalKPMnode_ID_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalKPMnode_ID_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalKPMnode-eNB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalKPMnode-eNB-ID.c deleted file mode 100644 index e4039b9..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalKPMnode-eNB-ID.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalKPMnode-eNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalKPMnode_eNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_eNB_ID, 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" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalKPMnode_eNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalKPMnode_eNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-eNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_eNB_ID_specs_1 = { - sizeof(struct GlobalKPMnode_eNB_ID), - offsetof(struct GlobalKPMnode_eNB_ID, _asn_ctx), - asn_MAP_GlobalKPMnode_eNB_ID_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_GlobalKPMnode_eNB_ID = { - "GlobalKPMnode-eNB-ID", - "GlobalKPMnode-eNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalKPMnode_eNB_ID_tags_1, - sizeof(asn_DEF_GlobalKPMnode_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_eNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalKPMnode_eNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalKPMnode_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_eNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalKPMnode_eNB_ID_1, - 1, /* Elements count */ - &asn_SPC_GlobalKPMnode_eNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalKPMnode-eNB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalKPMnode-eNB-ID.h deleted file mode 100644 index 9941095..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalKPMnode-eNB-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalKPMnode_eNB_ID_H_ -#define _GlobalKPMnode_eNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "GlobalENB-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalKPMnode-eNB-ID */ -typedef struct GlobalKPMnode_eNB_ID { - GlobalENB_ID_t global_eNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalKPMnode_eNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_eNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_eNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_eNB_ID_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalKPMnode_eNB_ID_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalKPMnode-en-gNB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalKPMnode-en-gNB-ID.c deleted file mode 100644 index 68e34d7..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalKPMnode-en-gNB-ID.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalKPMnode-en-gNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalKPMnode_en_gNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_en_gNB_ID, global_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" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalKPMnode_en_gNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-gNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_en_gNB_ID_specs_1 = { - sizeof(struct GlobalKPMnode_en_gNB_ID), - offsetof(struct GlobalKPMnode_en_gNB_ID, _asn_ctx), - asn_MAP_GlobalKPMnode_en_gNB_ID_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_GlobalKPMnode_en_gNB_ID = { - "GlobalKPMnode-en-gNB-ID", - "GlobalKPMnode-en-gNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1, - sizeof(asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalKPMnode_en_gNB_ID_1, - 1, /* Elements count */ - &asn_SPC_GlobalKPMnode_en_gNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalKPMnode-en-gNB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalKPMnode-en-gNB-ID.h deleted file mode 100644 index 7994b62..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalKPMnode-en-gNB-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalKPMnode_en_gNB_ID_H_ -#define _GlobalKPMnode_en_gNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "GlobalenGNB-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalKPMnode-en-gNB-ID */ -typedef struct GlobalKPMnode_en_gNB_ID { - GlobalenGNB_ID_t global_gNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalKPMnode_en_gNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_en_gNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_en_gNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_en_gNB_ID_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalKPMnode_en_gNB_ID_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalKPMnode-gNB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalKPMnode-gNB-ID.c deleted file mode 100644 index 49e21ba..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalKPMnode-gNB-ID.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalKPMnode-gNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalKPMnode_gNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_gNB_ID, global_gNB_ID), - (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 */ - "global-gNB-ID" - }, - { ATF_POINTER, 2, offsetof(struct GlobalKPMnode_gNB_ID, 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 */ - "gNB-CU-UP-ID" - }, - { ATF_POINTER, 1, offsetof(struct GlobalKPMnode_gNB_ID, 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 */ - "gNB-DU-ID" - }, -}; -static const int asn_MAP_GlobalKPMnode_gNB_ID_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_GlobalKPMnode_gNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalKPMnode_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_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_gNB_ID_specs_1 = { - sizeof(struct GlobalKPMnode_gNB_ID), - offsetof(struct GlobalKPMnode_gNB_ID, _asn_ctx), - asn_MAP_GlobalKPMnode_gNB_ID_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_GlobalKPMnode_gNB_ID_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_gNB_ID = { - "GlobalKPMnode-gNB-ID", - "GlobalKPMnode-gNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalKPMnode_gNB_ID_tags_1, - sizeof(asn_DEF_GlobalKPMnode_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_gNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalKPMnode_gNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalKPMnode_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_gNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalKPMnode_gNB_ID_1, - 3, /* Elements count */ - &asn_SPC_GlobalKPMnode_gNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalKPMnode-gNB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalKPMnode-gNB-ID.h deleted file mode 100644 index facef92..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalKPMnode-gNB-ID.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalKPMnode_gNB_ID_H_ -#define _GlobalKPMnode_gNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "GlobalgNB-ID.h" -#include "GNB-CU-UP-ID.h" -#include "GNB-DU-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalKPMnode-gNB-ID */ -typedef struct GlobalKPMnode_gNB_ID { - GlobalgNB_ID_t global_gNB_ID; - GNB_CU_UP_ID_t *gNB_CU_UP_ID; /* OPTIONAL */ - GNB_DU_ID_t *gNB_DU_ID; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalKPMnode_gNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_gNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_gNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_gNB_ID_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalKPMnode_gNB_ID_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalKPMnode-ng-eNB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalKPMnode-ng-eNB-ID.c deleted file mode 100644 index 299fb25..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalKPMnode-ng-eNB-ID.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalKPMnode-ng-eNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalKPMnode_ng_eNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_ng_eNB_ID, global_ng_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalngeNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-ng-eNB-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalKPMnode_ng_eNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-ng-eNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_ng_eNB_ID_specs_1 = { - sizeof(struct GlobalKPMnode_ng_eNB_ID), - offsetof(struct GlobalKPMnode_ng_eNB_ID, _asn_ctx), - asn_MAP_GlobalKPMnode_ng_eNB_ID_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_GlobalKPMnode_ng_eNB_ID = { - "GlobalKPMnode-ng-eNB-ID", - "GlobalKPMnode-ng-eNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1, - sizeof(asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalKPMnode_ng_eNB_ID_1, - 1, /* Elements count */ - &asn_SPC_GlobalKPMnode_ng_eNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalKPMnode-ng-eNB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalKPMnode-ng-eNB-ID.h deleted file mode 100644 index 9ad8057..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalKPMnode-ng-eNB-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalKPMnode_ng_eNB_ID_H_ -#define _GlobalKPMnode_ng_eNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "GlobalngeNB-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalKPMnode-ng-eNB-ID */ -typedef struct GlobalKPMnode_ng_eNB_ID { - GlobalngeNB_ID_t global_ng_eNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalKPMnode_ng_eNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_ng_eNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_ng_eNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_ng_eNB_ID_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalKPMnode_ng_eNB_ID_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalNG-RANNode-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalNG-RANNode-ID.c deleted file mode 100644 index 9e810a9..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalNG-RANNode-ID.c +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalNG-RANNode-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalNG-RANNode-ID.h deleted file mode 100644 index 9759e9f..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalNG-RANNode-ID.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _GlobalNG_RANNode_ID_H_ -#define _GlobalNG_RANNode_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalRIC-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalRIC-ID.c deleted file mode 100644 index b4c99cf..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalRIC-ID.c +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "GlobalRIC-ID.h" - -static int -memb_ric_ID_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 == 20)) { - /* 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_ric_ID_constr_3 CC_NOTUSED = { - { 0, 0 }, - 20 /* (SIZE(20..20)) */}; -static asn_per_constraints_t asn_PER_memb_ric_ID_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, - 0, 0 /* No PER value map */ -}; -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_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalRIC_ID, ric_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_ric_ID_constr_3, &asn_PER_memb_ric_ID_constr_3, memb_ric_ID_constraint_1 }, - 0, 0, /* No default value */ - "ric-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalRIC_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalRIC_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ric-ID */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_GlobalRIC_ID_specs_1 = { - sizeof(struct GlobalRIC_ID), - offsetof(struct GlobalRIC_ID, _asn_ctx), - asn_MAP_GlobalRIC_ID_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_GlobalRIC_ID = { - "GlobalRIC-ID", - "GlobalRIC-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalRIC_ID_tags_1, - sizeof(asn_DEF_GlobalRIC_ID_tags_1) - /sizeof(asn_DEF_GlobalRIC_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalRIC_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalRIC_ID_tags_1) - /sizeof(asn_DEF_GlobalRIC_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalRIC_ID_1, - 2, /* Elements count */ - &asn_SPC_GlobalRIC_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalRIC-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalRIC-ID.h deleted file mode 100644 index 435e9a1..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalRIC-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _GlobalRIC_ID_H_ -#define _GlobalRIC_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "BIT_STRING.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalRIC-ID */ -typedef struct GlobalRIC_ID { - PLMN_Identity_t pLMN_Identity; - BIT_STRING_t ric_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalRIC_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalRIC_ID; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalRIC_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalenGNB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalenGNB-ID.c deleted file mode 100644 index d86c807..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalenGNB-ID.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "GlobalenGNB-ID.h" - -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_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalenGNB_ID, gNB_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_ENGNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalenGNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalenGNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* gNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalenGNB_ID_specs_1 = { - sizeof(struct GlobalenGNB_ID), - offsetof(struct GlobalenGNB_ID, _asn_ctx), - asn_MAP_GlobalenGNB_ID_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_GlobalenGNB_ID = { - "GlobalenGNB-ID", - "GlobalenGNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalenGNB_ID_tags_1, - sizeof(asn_DEF_GlobalenGNB_ID_tags_1) - /sizeof(asn_DEF_GlobalenGNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalenGNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalenGNB_ID_tags_1) - /sizeof(asn_DEF_GlobalenGNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalenGNB_ID_1, - 2, /* Elements count */ - &asn_SPC_GlobalenGNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalenGNB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalenGNB-ID.h deleted file mode 100644 index 9ed6e07..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalenGNB-ID.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _GlobalenGNB_ID_H_ -#define _GlobalenGNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "ENGNB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalenGNB-ID */ -typedef struct GlobalenGNB_ID { - PLMN_Identity_t pLMN_Identity; - ENGNB_ID_t gNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalenGNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalenGNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalenGNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalenGNB_ID_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalenGNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalgNB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalgNB-ID.c deleted file mode 100644 index 1a31649..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalgNB-ID.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "GlobalgNB-ID.h" - -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_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "plmn-id" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalgNB_ID, gnb_id), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_GNB_ID_Choice, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gnb-id" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalgNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalgNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* plmn-id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* gnb-id */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalgNB_ID_specs_1 = { - sizeof(struct GlobalgNB_ID), - offsetof(struct GlobalgNB_ID, _asn_ctx), - asn_MAP_GlobalgNB_ID_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_GlobalgNB_ID = { - "GlobalgNB-ID", - "GlobalgNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalgNB_ID_tags_1, - sizeof(asn_DEF_GlobalgNB_ID_tags_1) - /sizeof(asn_DEF_GlobalgNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalgNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalgNB_ID_tags_1) - /sizeof(asn_DEF_GlobalgNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalgNB_ID_1, - 2, /* Elements count */ - &asn_SPC_GlobalgNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalgNB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalgNB-ID.h deleted file mode 100644 index 721f5a9..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalgNB-ID.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _GlobalgNB_ID_H_ -#define _GlobalgNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "GNB-ID-Choice.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalgNB-ID */ -typedef struct GlobalgNB_ID { - PLMN_Identity_t plmn_id; - GNB_ID_Choice_t gnb_id; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalgNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalgNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalgNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalgNB_ID_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalgNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalngeNB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalngeNB-ID.c deleted file mode 100644 index 5a4023a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalngeNB-ID.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "GlobalngeNB-ID.h" - -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_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "plmn-id" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalngeNB_ID, enb_id), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_ENB_ID_Choice, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "enb-id" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalngeNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalngeNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* plmn-id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* enb-id */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalngeNB_ID_specs_1 = { - sizeof(struct GlobalngeNB_ID), - offsetof(struct GlobalngeNB_ID, _asn_ctx), - asn_MAP_GlobalngeNB_ID_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_GlobalngeNB_ID = { - "GlobalngeNB-ID", - "GlobalngeNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalngeNB_ID_tags_1, - sizeof(asn_DEF_GlobalngeNB_ID_tags_1) - /sizeof(asn_DEF_GlobalngeNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalngeNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalngeNB_ID_tags_1) - /sizeof(asn_DEF_GlobalngeNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalngeNB_ID_1, - 2, /* Elements count */ - &asn_SPC_GlobalngeNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalngeNB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalngeNB-ID.h deleted file mode 100644 index 6858ec0..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalngeNB-ID.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _GlobalngeNB_ID_H_ -#define _GlobalngeNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "ENB-ID-Choice.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalngeNB-ID */ -typedef struct GlobalngeNB_ID { - PLMN_Identity_t plmn_id; - ENB_ID_Choice_t enb_id; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalngeNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalngeNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalngeNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalngeNB_ID_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalngeNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/INTEGER.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/INTEGER.c deleted file mode 100644 index 2a2f4d7..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/INTEGER.c +++ /dev/null @@ -1,1735 +0,0 @@ -/*- - * Copyright (c) 2003-2014 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include /* Encoder and decoder of a primitive type */ -#include - -/* - * INTEGER basic type description. - */ -static const ber_tlv_tag_t asn_DEF_INTEGER_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_operation_t asn_OP_INTEGER = { - INTEGER_free, - INTEGER_print, - INTEGER_compare, - ber_decode_primitive, - INTEGER_encode_der, - INTEGER_decode_xer, - INTEGER_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - INTEGER_decode_oer, /* OER decoder */ - INTEGER_encode_oer, /* Canonical OER encoder */ -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - INTEGER_decode_uper, /* Unaligned PER decoder */ - INTEGER_encode_uper, /* Unaligned PER encoder */ - INTEGER_decode_aper, /* Aligned PER decoder */ - INTEGER_encode_aper, /* Aligned PER encoder */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - INTEGER_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_INTEGER = { - "INTEGER", - "INTEGER", - &asn_OP_INTEGER, - asn_DEF_INTEGER_tags, - sizeof(asn_DEF_INTEGER_tags) / sizeof(asn_DEF_INTEGER_tags[0]), - asn_DEF_INTEGER_tags, /* Same as above */ - sizeof(asn_DEF_INTEGER_tags) / sizeof(asn_DEF_INTEGER_tags[0]), - { 0, 0, asn_generic_no_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - -/* - * Encode INTEGER type using DER. - */ -asn_enc_rval_t -INTEGER_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, - void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - asn_enc_rval_t rval; - INTEGER_t effective_integer; - - ASN_DEBUG("%s %s as INTEGER (tm=%d)", - cb?"Encoding":"Estimating", td->name, tag_mode); - - /* - * Canonicalize integer in the buffer. - * (Remove too long sign extension, remove some first 0x00 bytes) - */ - if(st->buf) { - uint8_t *buf = st->buf; - uint8_t *end1 = buf + st->size - 1; - int shift; - - /* Compute the number of superfluous leading bytes */ - for(; buf < end1; buf++) { - /* - * If the contents octets of an integer value encoding - * consist of more than one octet, then the bits of the - * first octet and bit 8 of the second octet: - * a) shall not all be ones; and - * b) shall not all be zero. - */ - switch(*buf) { - case 0x00: if((buf[1] & 0x80) == 0) - continue; - break; - case 0xff: if((buf[1] & 0x80)) - continue; - break; - } - break; - } - - /* Remove leading superfluous bytes from the integer */ - shift = buf - st->buf; - if(shift) { - union { - const uint8_t *c_buf; - uint8_t *nc_buf; - } unconst; - unconst.c_buf = st->buf; - effective_integer.buf = unconst.nc_buf + shift; - effective_integer.size = st->size - shift; - - st = &effective_integer; - } - } - - rval = der_encode_primitive(td, st, tag_mode, tag, cb, app_key); - if(rval.structure_ptr == &effective_integer) { - rval.structure_ptr = sptr; - } - return rval; -} - -static const asn_INTEGER_enum_map_t *INTEGER_map_enum2value( - const asn_INTEGER_specifics_t *specs, const char *lstart, - const char *lstop); - -/* - * INTEGER specific human-readable output. - */ -static ssize_t -INTEGER__dump(const asn_TYPE_descriptor_t *td, const INTEGER_t *st, asn_app_consume_bytes_f *cb, void *app_key, int plainOrXER) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - char scratch[32]; - uint8_t *buf = st->buf; - uint8_t *buf_end = st->buf + st->size; - intmax_t value; - ssize_t wrote = 0; - char *p; - int ret; - - if(specs && specs->field_unsigned) - ret = asn_INTEGER2umax(st, (uintmax_t *)&value); - else - ret = asn_INTEGER2imax(st, &value); - - /* Simple case: the integer size is small */ - if(ret == 0) { - const asn_INTEGER_enum_map_t *el; - el = (value >= 0 || !specs || !specs->field_unsigned) - ? INTEGER_map_value2enum(specs, value) : 0; - if(el) { - if(plainOrXER == 0) - return asn__format_to_callback(cb, app_key, - "%" ASN_PRIdMAX " (%s)", value, el->enum_name); - else - return asn__format_to_callback(cb, app_key, - "<%s/>", el->enum_name); - } else if(plainOrXER && specs && specs->strict_enumeration) { - ASN_DEBUG("ASN.1 forbids dealing with " - "unknown value of ENUMERATED type"); - errno = EPERM; - return -1; - } else { - return asn__format_to_callback(cb, app_key, - (specs && specs->field_unsigned) - ? "%" ASN_PRIuMAX - : "%" ASN_PRIdMAX, - value); - } - } else if(plainOrXER && specs && specs->strict_enumeration) { - /* - * Here and earlier, we cannot encode the ENUMERATED values - * if there is no corresponding identifier. - */ - ASN_DEBUG("ASN.1 forbids dealing with " - "unknown value of ENUMERATED type"); - errno = EPERM; - return -1; - } - - /* Output in the long xx:yy:zz... format */ - /* TODO: replace with generic algorithm (Knuth TAOCP Vol 2, 4.3.1) */ - for(p = scratch; buf < buf_end; buf++) { - const char * const h2c = "0123456789ABCDEF"; - if((p - scratch) >= (ssize_t)(sizeof(scratch) - 4)) { - /* Flush buffer */ - if(cb(scratch, p - scratch, app_key) < 0) - return -1; - wrote += p - scratch; - p = scratch; - } - *p++ = h2c[*buf >> 4]; - *p++ = h2c[*buf & 0x0F]; - *p++ = 0x3a; /* ":" */ - } - if(p != scratch) - p--; /* Remove the last ":" */ - - wrote += p - scratch; - return (cb(scratch, p - scratch, app_key) < 0) ? -1 : wrote; -} - -/* - * INTEGER specific human-readable output. - */ -int -INTEGER_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - ssize_t ret; - - (void)ilevel; - - if(!st || !st->buf) - ret = cb("", 8, app_key); - else - ret = INTEGER__dump(td, st, cb, app_key, 0); - - return (ret < 0) ? -1 : 0; -} - -struct e2v_key { - const char *start; - const char *stop; - const asn_INTEGER_enum_map_t *vemap; - const unsigned int *evmap; -}; -static int -INTEGER__compar_enum2value(const void *kp, const void *am) { - const struct e2v_key *key = (const struct e2v_key *)kp; - const asn_INTEGER_enum_map_t *el = (const asn_INTEGER_enum_map_t *)am; - const char *ptr, *end, *name; - - /* Remap the element (sort by different criterion) */ - el = key->vemap + key->evmap[el - key->vemap]; - - /* Compare strings */ - for(ptr = key->start, end = key->stop, name = el->enum_name; - ptr < end; ptr++, name++) { - if(*ptr != *name || !*name) - return *(const unsigned char *)ptr - - *(const unsigned char *)name; - } - return name[0] ? -1 : 0; -} - -static const asn_INTEGER_enum_map_t * -INTEGER_map_enum2value(const asn_INTEGER_specifics_t *specs, const char *lstart, - const char *lstop) { - const asn_INTEGER_enum_map_t *el_found; - int count = specs ? specs->map_count : 0; - struct e2v_key key; - const char *lp; - - if(!count) return NULL; - - /* Guaranteed: assert(lstart < lstop); */ - /* Figure out the tag name */ - for(lstart++, lp = lstart; lp < lstop; lp++) { - switch(*lp) { - case 9: case 10: case 11: case 12: case 13: case 32: /* WSP */ - case 0x2f: /* '/' */ case 0x3e: /* '>' */ - break; - default: - continue; - } - break; - } - if(lp == lstop) return NULL; /* No tag found */ - lstop = lp; - - key.start = lstart; - key.stop = lstop; - key.vemap = specs->value2enum; - key.evmap = specs->enum2value; - el_found = (asn_INTEGER_enum_map_t *)bsearch(&key, - specs->value2enum, count, sizeof(specs->value2enum[0]), - INTEGER__compar_enum2value); - if(el_found) { - /* Remap enum2value into value2enum */ - el_found = key.vemap + key.evmap[el_found - key.vemap]; - } - return el_found; -} - -static int -INTEGER__compar_value2enum(const void *kp, const void *am) { - long a = *(const long *)kp; - const asn_INTEGER_enum_map_t *el = (const asn_INTEGER_enum_map_t *)am; - long b = el->nat_value; - if(a < b) return -1; - else if(a == b) return 0; - else return 1; -} - -const asn_INTEGER_enum_map_t * -INTEGER_map_value2enum(const asn_INTEGER_specifics_t *specs, long value) { - int count = specs ? specs->map_count : 0; - if(!count) return 0; - return (asn_INTEGER_enum_map_t *)bsearch(&value, specs->value2enum, - count, sizeof(specs->value2enum[0]), - INTEGER__compar_value2enum); -} - -static int -INTEGER_st_prealloc(INTEGER_t *st, int min_size) { - void *p = MALLOC(min_size + 1); - if(p) { - void *b = st->buf; - st->size = 0; - st->buf = p; - FREEMEM(b); - return 0; - } else { - return -1; - } -} - -/* - * Decode the chunk of XML text encoding INTEGER. - */ -static enum xer_pbd_rval -INTEGER__xer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr, - const void *chunk_buf, size_t chunk_size) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - INTEGER_t *st = (INTEGER_t *)sptr; - intmax_t dec_value; - intmax_t hex_value = 0; - const char *lp; - const char *lstart = (const char *)chunk_buf; - const char *lstop = lstart + chunk_size; - enum { - ST_LEADSPACE, - ST_SKIPSPHEX, - ST_WAITDIGITS, - ST_DIGITS, - ST_DIGITS_TRAILSPACE, - ST_HEXDIGIT1, - ST_HEXDIGIT2, - ST_HEXDIGITS_TRAILSPACE, - ST_HEXCOLON, - ST_END_ENUM, - ST_UNEXPECTED - } state = ST_LEADSPACE; - const char *dec_value_start = 0; /* INVARIANT: always !0 in ST_DIGITS */ - const char *dec_value_end = 0; - - if(chunk_size) - ASN_DEBUG("INTEGER body %ld 0x%2x..0x%2x", - (long)chunk_size, *lstart, lstop[-1]); - - if(INTEGER_st_prealloc(st, (chunk_size/3) + 1)) - return XPBD_SYSTEM_FAILURE; - - /* - * We may have received a tag here. It will be processed inline. - * Use strtoul()-like code and serialize the result. - */ - for(lp = lstart; lp < lstop; lp++) { - int lv = *lp; - switch(lv) { - case 0x09: case 0x0a: case 0x0d: case 0x20: - switch(state) { - case ST_LEADSPACE: - case ST_DIGITS_TRAILSPACE: - case ST_HEXDIGITS_TRAILSPACE: - case ST_SKIPSPHEX: - continue; - case ST_DIGITS: - dec_value_end = lp; - state = ST_DIGITS_TRAILSPACE; - continue; - case ST_HEXCOLON: - state = ST_HEXDIGITS_TRAILSPACE; - continue; - default: - break; - } - break; - case 0x2d: /* '-' */ - if(state == ST_LEADSPACE) { - dec_value = 0; - dec_value_start = lp; - state = ST_WAITDIGITS; - continue; - } - break; - case 0x2b: /* '+' */ - if(state == ST_LEADSPACE) { - dec_value = 0; - dec_value_start = lp; - state = ST_WAITDIGITS; - continue; - } - break; - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: - switch(state) { - case ST_DIGITS: continue; - case ST_SKIPSPHEX: /* Fall through */ - case ST_HEXDIGIT1: - hex_value = (lv - 0x30) << 4; - state = ST_HEXDIGIT2; - continue; - case ST_HEXDIGIT2: - hex_value += (lv - 0x30); - state = ST_HEXCOLON; - st->buf[st->size++] = (uint8_t)hex_value; - continue; - case ST_HEXCOLON: - return XPBD_BROKEN_ENCODING; - case ST_LEADSPACE: - dec_value = 0; - dec_value_start = lp; - /* FALL THROUGH */ - case ST_WAITDIGITS: - state = ST_DIGITS; - continue; - default: - break; - } - break; - case 0x3c: /* '<', start of XML encoded enumeration */ - if(state == ST_LEADSPACE) { - const asn_INTEGER_enum_map_t *el; - el = INTEGER_map_enum2value( - (const asn_INTEGER_specifics_t *) - td->specifics, lstart, lstop); - if(el) { - ASN_DEBUG("Found \"%s\" => %ld", - el->enum_name, el->nat_value); - dec_value = el->nat_value; - state = ST_END_ENUM; - lp = lstop - 1; - continue; - } - ASN_DEBUG("Unknown identifier for INTEGER"); - } - return XPBD_BROKEN_ENCODING; - case 0x3a: /* ':' */ - if(state == ST_HEXCOLON) { - /* This colon is expected */ - state = ST_HEXDIGIT1; - continue; - } else if(state == ST_DIGITS) { - /* The colon here means that we have - * decoded the first two hexadecimal - * places as a decimal value. - * Switch decoding mode. */ - ASN_DEBUG("INTEGER re-evaluate as hex form"); - state = ST_SKIPSPHEX; - dec_value_start = 0; - lp = lstart - 1; - continue; - } else { - ASN_DEBUG("state %d at %ld", state, (long)(lp - lstart)); - break; - } - /* [A-Fa-f] */ - case 0x41:case 0x42:case 0x43:case 0x44:case 0x45:case 0x46: - case 0x61:case 0x62:case 0x63:case 0x64:case 0x65:case 0x66: - switch(state) { - case ST_SKIPSPHEX: - case ST_LEADSPACE: /* Fall through */ - case ST_HEXDIGIT1: - hex_value = lv - ((lv < 0x61) ? 0x41 : 0x61); - hex_value += 10; - hex_value <<= 4; - state = ST_HEXDIGIT2; - continue; - case ST_HEXDIGIT2: - hex_value += lv - ((lv < 0x61) ? 0x41 : 0x61); - hex_value += 10; - st->buf[st->size++] = (uint8_t)hex_value; - state = ST_HEXCOLON; - continue; - case ST_DIGITS: - ASN_DEBUG("INTEGER re-evaluate as hex form"); - state = ST_SKIPSPHEX; - dec_value_start = 0; - lp = lstart - 1; - continue; - default: - break; - } - break; - } - - /* Found extra non-numeric stuff */ - ASN_DEBUG("INTEGER :: Found non-numeric 0x%2x at %ld", - lv, (long)(lp - lstart)); - state = ST_UNEXPECTED; - break; - } - - switch(state) { - case ST_END_ENUM: - /* Got a complete and valid enumeration encoded as a tag. */ - break; - case ST_DIGITS: - dec_value_end = lstop; - /* FALL THROUGH */ - case ST_DIGITS_TRAILSPACE: - /* The last symbol encountered was a digit. */ - switch(asn_strtoimax_lim(dec_value_start, &dec_value_end, &dec_value)) { - case ASN_STRTOX_OK: - if(specs && specs->field_unsigned && (uintmax_t) dec_value <= ULONG_MAX) { - break; - } else if(dec_value >= LONG_MIN && dec_value <= LONG_MAX) { - break; - } else { - /* - * We model INTEGER on long for XER, - * to avoid rewriting all the tests at once. - */ - ASN_DEBUG("INTEGER exceeds long range"); - } - /* Fall through */ - case ASN_STRTOX_ERROR_RANGE: - ASN_DEBUG("INTEGER decode %s hit range limit", td->name); - return XPBD_DECODER_LIMIT; - case ASN_STRTOX_ERROR_INVAL: - case ASN_STRTOX_EXPECT_MORE: - case ASN_STRTOX_EXTRA_DATA: - return XPBD_BROKEN_ENCODING; - } - break; - case ST_HEXCOLON: - case ST_HEXDIGITS_TRAILSPACE: - st->buf[st->size] = 0; /* Just in case termination */ - return XPBD_BODY_CONSUMED; - case ST_HEXDIGIT1: - case ST_HEXDIGIT2: - case ST_SKIPSPHEX: - return XPBD_BROKEN_ENCODING; - case ST_LEADSPACE: - /* Content not found */ - return XPBD_NOT_BODY_IGNORE; - case ST_WAITDIGITS: - case ST_UNEXPECTED: - ASN_DEBUG("INTEGER: No useful digits (state %d)", state); - return XPBD_BROKEN_ENCODING; /* No digits */ - } - - /* - * Convert the result of parsing of enumeration or a straight - * decimal value into a BER representation. - */ - if(asn_imax2INTEGER(st, dec_value)) { - ASN_DEBUG("INTEGER decode %s conversion failed", td->name); - return XPBD_SYSTEM_FAILURE; - } - - return XPBD_BODY_CONSUMED; -} - -asn_dec_rval_t -INTEGER_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, size_t size) { - return xer_decode_primitive(opt_codec_ctx, td, - sptr, sizeof(INTEGER_t), opt_mname, - buf_ptr, size, INTEGER__xer_body_decode); -} - -asn_enc_rval_t -INTEGER_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - asn_enc_rval_t er = {0,0,0}; - - (void)ilevel; - (void)flags; - - if(!st || !st->buf) - ASN__ENCODE_FAILED; - - er.encoded = INTEGER__dump(td, st, cb, app_key, 1); - if(er.encoded < 0) ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -INTEGER_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval = { RC_OK, 0 }; - INTEGER_t *st = (INTEGER_t *)*sptr; - const asn_per_constraint_t *ct; - int repeat; - - (void)opt_codec_ctx; - - if(!st) { - st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st))); - if(!st) ASN__DECODE_FAILED; - } - - if(!constraints) constraints = td->encoding_constraints.per_constraints; - ct = constraints ? &constraints->value : 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) ASN__DECODE_STARVED; - if(inext) ct = 0; - } - - FREEMEM(st->buf); - st->buf = 0; - st->size = 0; - if(ct) { - if(ct->flags & APC_SEMI_CONSTRAINED) { - st->buf = (uint8_t *)CALLOC(1, 2); - if(!st->buf) ASN__DECODE_FAILED; - st->size = 1; - } else if(ct->flags & APC_CONSTRAINED && ct->range_bits >= 0) { - size_t size = (ct->range_bits + 7) >> 3; - st->buf = (uint8_t *)MALLOC(1 + size + 1); - if(!st->buf) ASN__DECODE_FAILED; - st->size = size; - } - } - - /* X.691-2008/11, #13.2.2, constrained whole number */ - if(ct && ct->flags != APC_UNCONSTRAINED) { - /* #11.5.6 */ - ASN_DEBUG("Integer with range %d bits", ct->range_bits); - if(ct->range_bits >= 0) { - if((size_t)ct->range_bits > 8 * sizeof(unsigned long)) - ASN__DECODE_FAILED; - - if(specs && specs->field_unsigned) { - unsigned long uvalue = 0; - if(uper_get_constrained_whole_number(pd, - &uvalue, ct->range_bits)) - ASN__DECODE_STARVED; - ASN_DEBUG("Got value %lu + low %ld", - uvalue, ct->lower_bound); - uvalue += ct->lower_bound; - if(asn_ulong2INTEGER(st, uvalue)) - ASN__DECODE_FAILED; - } else { - unsigned long uvalue = 0; - long svalue; - if(uper_get_constrained_whole_number(pd, - &uvalue, ct->range_bits)) - ASN__DECODE_STARVED; - ASN_DEBUG("Got value %lu + low %ld", - uvalue, ct->lower_bound); - if(per_long_range_unrebase(uvalue, ct->lower_bound, - ct->upper_bound, &svalue) - || asn_long2INTEGER(st, svalue)) { - ASN__DECODE_FAILED; - } - } - return rval; - } - } else { - ASN_DEBUG("Decoding unconstrained integer %s", td->name); - } - - /* X.691, #12.2.3, #12.2.4 */ - do { - ssize_t len = 0; - void *p = NULL; - int ret = 0; - - /* Get the PER length */ - len = uper_get_length(pd, -1, 0, &repeat); - if(len < 0) ASN__DECODE_STARVED; - - p = REALLOC(st->buf, st->size + len + 1); - if(!p) ASN__DECODE_FAILED; - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, 8 * len); - if(ret < 0) ASN__DECODE_STARVED; - st->size += len; - } while(repeat); - st->buf[st->size] = 0; /* JIC */ - - /* #12.2.3 */ - if(ct && ct->lower_bound) { - /* - * TODO: replace by in-place arithmetics. - */ - long value = 0; - if(asn_INTEGER2long(st, &value)) - ASN__DECODE_FAILED; - if(asn_imax2INTEGER(st, value + ct->lower_bound)) - ASN__DECODE_FAILED; - } - - return rval; -} - -asn_enc_rval_t -INTEGER_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - const INTEGER_t *st = (const INTEGER_t *)sptr; - const uint8_t *buf; - const uint8_t *end; - const asn_per_constraint_t *ct; - long value = 0; - - if(!st || st->size == 0) ASN__ENCODE_FAILED; - - if(!constraints) constraints = td->encoding_constraints.per_constraints; - ct = constraints ? &constraints->value : 0; - - er.encoded = 0; - - if(ct) { - int inext = 0; - if(specs && specs->field_unsigned) { - unsigned long uval; - if(asn_INTEGER2ulong(st, &uval)) - ASN__ENCODE_FAILED; - /* Check proper range */ - if(ct->flags & APC_SEMI_CONSTRAINED) { - if(uval < (unsigned long)ct->lower_bound) - inext = 1; - } else if(ct->range_bits >= 0) { - if(uval < (unsigned long)ct->lower_bound - || uval > (unsigned long)ct->upper_bound) - inext = 1; - } - ASN_DEBUG("Value %lu (%02x/%" ASN_PRI_SIZE ") lb %lu ub %lu %s", - uval, st->buf[0], st->size, - ct->lower_bound, ct->upper_bound, - inext ? "ext" : "fix"); - value = uval; - } else { - if(asn_INTEGER2long(st, &value)) - ASN__ENCODE_FAILED; - /* Check proper range */ - if(ct->flags & APC_SEMI_CONSTRAINED) { - if(value < ct->lower_bound) - inext = 1; - } else if(ct->range_bits >= 0) { - if(value < ct->lower_bound - || value > ct->upper_bound) - inext = 1; - } - ASN_DEBUG("Value %ld (%02x/%" ASN_PRI_SIZE ") lb %ld ub %ld %s", - value, st->buf[0], st->size, - ct->lower_bound, ct->upper_bound, - inext ? "ext" : "fix"); - } - if(ct->flags & APC_EXTENSIBLE) { - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - if(inext) ct = 0; - } else if(inext) { - ASN__ENCODE_FAILED; - } - } - - - /* X.691-11/2008, #13.2.2, test if constrained whole number */ - if(ct && ct->range_bits >= 0) { - unsigned long v; - /* #11.5.6 -> #11.3 */ - ASN_DEBUG("Encoding integer %ld (%lu) with range %d bits", - value, value - ct->lower_bound, ct->range_bits); - if(specs && specs->field_unsigned) { - if ( ((unsigned long)ct->lower_bound > (unsigned long)(ct->upper_bound) - || ((unsigned long)value < (unsigned long)ct->lower_bound)) - || ((unsigned long)value > (unsigned long)ct->upper_bound) - ) { - ASN_DEBUG("Value %lu to-be-encoded is outside the bounds [%lu, %lu]!", - value, ct->lower_bound, ct->upper_bound); - ASN__ENCODE_FAILED; - } - v = (unsigned long)value - (unsigned long)ct->lower_bound; - } else { - if(per_long_range_rebase(value, ct->lower_bound, ct->upper_bound, &v)) { - ASN__ENCODE_FAILED; - } - } - if(uper_put_constrained_whole_number_u(po, v, ct->range_bits)) - ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - if(ct && ct->lower_bound) { - ASN_DEBUG("Adjust lower bound to %ld", ct->lower_bound); - /* TODO: adjust lower bound */ - ASN__ENCODE_FAILED; - } - - for(buf = st->buf, end = st->buf + st->size; buf < end;) { - int need_eom = 0; - ssize_t mayEncode = uper_put_length(po, end - buf, &need_eom); - if(mayEncode < 0) - ASN__ENCODE_FAILED; - if(per_put_many_bits(po, buf, 8 * mayEncode)) - ASN__ENCODE_FAILED; - buf += mayEncode; - if(need_eom && uper_put_length(po, 0, 0)) ASN__ENCODE_FAILED; - } - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -INTEGER_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval = { RC_OK, 0 }; - INTEGER_t *st = (INTEGER_t *)*sptr; - const asn_per_constraint_t *ct; - int repeat; - - (void)opt_codec_ctx; - - if(!st) { - st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st))); - if(!st) ASN__DECODE_FAILED; - } - - if(!constraints) constraints = td->encoding_constraints.per_constraints; - ct = constraints ? &constraints->value : 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) ASN__DECODE_STARVED; - if(inext) ct = 0; - } - - FREEMEM(st->buf); - st->buf = 0; - st->size = 0; - if(ct) { - if(ct->flags & APC_SEMI_CONSTRAINED) { - st->buf = (uint8_t *)CALLOC(1, 2); - if(!st->buf) ASN__DECODE_FAILED; - st->size = 1; - } else if(ct->flags & APC_CONSTRAINED && ct->range_bits >= 0) { - size_t size = (ct->range_bits + 7) >> 3; - st->buf = (uint8_t *)MALLOC(1 + size + 1); - if(!st->buf) ASN__DECODE_FAILED; - st->size = size; - } - } - - /* X.691, #12.2.2 */ - if(ct && ct->flags != APC_UNCONSTRAINED) { - /* #10.5.6 */ - ASN_DEBUG("Integer with range %d bits", ct->range_bits); - if(ct->range_bits >= 0) { - if (ct->range_bits > 16) { - int max_range_bytes = (ct->range_bits >> 3) + - (((ct->range_bits % 8) > 0) ? 1 : 0); - int length = 0, i; - long value = 0; - - for (i = 1; ; i++) { - int upper = 1 << i; - if (upper >= max_range_bytes) - break; - } - ASN_DEBUG("Can encode %d (%d bytes) in %d bits", ct->range_bits, - max_range_bytes, i); - - if ((length = per_get_few_bits(pd, i)) < 0) - ASN__DECODE_FAILED; - - /* X.691 #12.2.6 length determinant + lb (1) */ - length += 1; - ASN_DEBUG("Got length %d", length); - if (aper_get_align(pd) != 0) - ASN__DECODE_FAILED; - while (length--) { - int buf = per_get_few_bits(pd, 8); - if (buf < 0) - ASN__DECODE_FAILED; - value += (((long)buf) << (8 * length)); - } - - value += ct->lower_bound; - if((specs && specs->field_unsigned) - ? asn_uint642INTEGER(st, (unsigned long)value) - : asn_int642INTEGER(st, value)) - ASN__DECODE_FAILED; - ASN_DEBUG("Got value %ld + low %ld", - value, ct->lower_bound); - } else { - long value = 0; - if (ct->range_bits < 8) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - } else if (ct->range_bits == 8) { - if (aper_get_align(pd) < 0) - ASN__DECODE_FAILED; - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - } else { - /* Align */ - if (aper_get_align(pd) < 0) - ASN__DECODE_FAILED; - value = per_get_few_bits(pd, 16); - if(value < 0) ASN__DECODE_STARVED; - } - value += ct->lower_bound; - if((specs && specs->field_unsigned) - ? asn_ulong2INTEGER(st, value) - : asn_long2INTEGER(st, value)) - ASN__DECODE_FAILED; - ASN_DEBUG("Got value %ld + low %ld", - value, ct->lower_bound); - } - return rval; - } else { - ASN__DECODE_FAILED; - } - } else { - ASN_DEBUG("Decoding unconstrained integer %s", td->name); - } - - /* X.691, #12.2.3, #12.2.4 */ - do { - ssize_t len; - void *p; - int ret; - - /* Get the PER length */ - len = aper_get_length(pd, -1, -1, &repeat); - if(len < 0) ASN__DECODE_STARVED; - - p = REALLOC(st->buf, st->size + len + 1); - if(!p) ASN__DECODE_FAILED; - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, 8 * len); - if(ret < 0) ASN__DECODE_STARVED; - st->size += len; - } while(repeat); - st->buf[st->size] = 0; /* JIC */ - - /* #12.2.3 */ - if(ct && ct->lower_bound) { - /* - * TODO: replace by in-place arithmetics. - */ - long value; - if(asn_INTEGER2long(st, &value)) - ASN__DECODE_FAILED; - if(asn_long2INTEGER(st, value + ct->lower_bound)) - ASN__DECODE_FAILED; - } - - return rval; -} - -asn_enc_rval_t -INTEGER_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - const INTEGER_t *st = (const INTEGER_t *)sptr; - const uint8_t *buf; - const uint8_t *end; - const asn_per_constraint_t *ct; - long value = 0; - - if(!st || st->size == 0) ASN__ENCODE_FAILED; - - if(!constraints) constraints = td->encoding_constraints.per_constraints; - ct = constraints ? &constraints->value : 0; - - er.encoded = 0; - - if(ct) { - int inext = 0; - if(specs && specs->field_unsigned) { - unsigned long uval; - if(asn_INTEGER2ulong(st, &uval)) - ASN__ENCODE_FAILED; - /* Check proper range */ - if(ct->flags & APC_SEMI_CONSTRAINED) { - if(uval < (unsigned long)ct->lower_bound) - inext = 1; - } else if(ct->range_bits >= 0) { - if(uval < (unsigned long)ct->lower_bound - || uval > (unsigned long)ct->upper_bound) - inext = 1; - } - ASN_DEBUG("Value %lu (%02x/%lu) lb %ld ub %ld %s", - uval, st->buf[0], st->size, - ct->lower_bound, ct->upper_bound, - inext ? "ext" : "fix"); - value = uval; - } else { - if(asn_INTEGER2long(st, &value)) ASN__ENCODE_FAILED; - /* Check proper range */ - if(ct->flags & APC_SEMI_CONSTRAINED) { - if(value < ct->lower_bound) - inext = 1; - } else if(ct->range_bits >= 0) { - if(value < ct->lower_bound - || value > ct->upper_bound) - inext = 1; - } - ASN_DEBUG("Value %lu (%02x/%lu) lb %ld ub %ld %s", - value, st->buf[0], st->size, - ct->lower_bound, ct->upper_bound, - inext ? "ext" : "fix"); - } - if(ct->flags & APC_EXTENSIBLE) { - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - if(inext) ct = 0; - } else if(inext) { - ASN__ENCODE_FAILED; - } - } - - /* X.691, #12.2.2 */ - if(ct && ct->range_bits >= 0) { - unsigned long v; - - /* #10.5.6 */ - ASN_DEBUG("Encoding integer %ld (%lu) with range %d bits", - value, value - ct->lower_bound, ct->range_bits); - - v = value - ct->lower_bound; - - /* #12 <= 8 -> alignment ? */ - if (ct->range_bits < 8) { - if(per_put_few_bits(po, 0x00 | v, ct->range_bits)) - ASN__ENCODE_FAILED; - } else if (ct->range_bits == 8) { - if(aper_put_align(po) < 0) - ASN__ENCODE_FAILED; - if(per_put_few_bits(po, 0x00 | v, ct->range_bits)) - ASN__ENCODE_FAILED; - } else if (ct->range_bits <= 16) { - /* Consume the bytes to align on octet */ - if(aper_put_align(po) < 0) - ASN__ENCODE_FAILED; - if(per_put_few_bits(po, 0x0000 | v, - 16)) - ASN__ENCODE_FAILED; - } else { - /* TODO: extend to >64 bits */ - int64_t v64 = v; - int i, j; - int max_range_bytes = (ct->range_bits >> 3) + - (((ct->range_bits % 8) > 0) ? 1 : 0); - - for (i = 1; ; i++) { - int upper = 1 << i; - if (upper >= max_range_bytes) - break; - } - - for (j = sizeof(int64_t) -1; j != 0; j--) { - int64_t val; - val = v64 >> (j * 8); - if (val != 0) - break; - } - - /* Putting length in the minimum number of bits ex: 5 = 3bits */ - if (per_put_few_bits(po, j, i)) - ASN__ENCODE_FAILED; - - /* Consume the bits to align on octet */ - if (aper_put_align(po) < 0) - ASN__ENCODE_FAILED; - /* Put the value */ - for (i = 0; i <= j; i++) { - if(per_put_few_bits(po, (v64 >> (8 * (j - i))) & 0xff, 8)) - ASN__ENCODE_FAILED; - } - } - ASN__ENCODED_OK(er); - } - - if(ct && ct->lower_bound) { - ASN_DEBUG("Adjust lower bound to %ld", ct->lower_bound); - /* TODO: adjust lower bound */ - ASN__ENCODE_FAILED; - } - - for(buf = st->buf, end = st->buf + st->size; buf < end;) { - ssize_t mayEncode = aper_put_length(po, -1, end - buf); - if(mayEncode < 0) - ASN__ENCODE_FAILED; - if(per_put_many_bits(po, buf, 8 * mayEncode)) - ASN__ENCODE_FAILED; - buf += mayEncode; - } - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -static intmax_t -asn__integer_convert(const uint8_t *b, const uint8_t *end) { - uintmax_t value; - - /* Perform the sign initialization */ - /* Actually value = -(*b >> 7); gains nothing, yet unreadable! */ - if((*b >> 7)) { - value = (uintmax_t)(-1); - } else { - value = 0; - } - - /* Conversion engine */ - for(; b < end; b++) { - value = (value << 8) | *b; - } - - return value; -} - -int -asn_INTEGER2imax(const INTEGER_t *iptr, intmax_t *lptr) { - uint8_t *b, *end; - size_t size; - - /* Sanity checking */ - if(!iptr || !iptr->buf || !lptr) { - errno = EINVAL; - return -1; - } - - /* Cache the begin/end of the buffer */ - b = iptr->buf; /* Start of the INTEGER buffer */ - size = iptr->size; - end = b + size; /* Where to stop */ - - if(size > sizeof(intmax_t)) { - uint8_t *end1 = end - 1; - /* - * Slightly more advanced processing, - * able to process INTEGERs with >sizeof(intmax_t) bytes - * when the actual value is small, e.g. for intmax_t == int32_t - * (0x0000000000abcdef INTEGER would yield a fine 0x00abcdef int32_t) - */ - /* Skip out the insignificant leading bytes */ - for(; b < end1; b++) { - switch(*b) { - case 0x00: if((b[1] & 0x80) == 0) continue; break; - case 0xff: if((b[1] & 0x80) != 0) continue; break; - } - break; - } - - size = end - b; - if(size > sizeof(intmax_t)) { - /* Still cannot fit the sizeof(intmax_t) */ - errno = ERANGE; - return -1; - } - } - - /* Shortcut processing of a corner case */ - if(end == b) { - *lptr = 0; - return 0; - } - - *lptr = asn__integer_convert(b, end); - return 0; -} - -/* FIXME: negative INTEGER values are silently interpreted as large unsigned ones. */ -int -asn_INTEGER2umax(const INTEGER_t *iptr, uintmax_t *lptr) { - uint8_t *b, *end; - uintmax_t value; - size_t size; - - if(!iptr || !iptr->buf || !lptr) { - errno = EINVAL; - return -1; - } - - b = iptr->buf; - size = iptr->size; - end = b + size; - - /* If all extra leading bytes are zeroes, ignore them */ - for(; size > sizeof(value); b++, size--) { - if(*b) { - /* Value won't fit into uintmax_t */ - errno = ERANGE; - return -1; - } - } - - /* Conversion engine */ - for(value = 0; b < end; b++) - value = (value << 8) | *b; - - *lptr = value; - return 0; -} - -int -asn_umax2INTEGER(INTEGER_t *st, uintmax_t value) { - uint8_t *buf; - uint8_t *end; - uint8_t *b; - int shr; - - if(value <= ((~(uintmax_t)0) >> 1)) { - return asn_imax2INTEGER(st, value); - } - - buf = (uint8_t *)MALLOC(1 + sizeof(value)); - if(!buf) return -1; - - end = buf + (sizeof(value) + 1); - buf[0] = 0; /* INTEGERs are signed. 0-byte indicates positive. */ - for(b = buf + 1, shr = (sizeof(value) - 1) * 8; b < end; shr -= 8, b++) - *b = (uint8_t)(value >> shr); - - if(st->buf) FREEMEM(st->buf); - st->buf = buf; - st->size = 1 + sizeof(value); - - return 0; -} - -int -asn_imax2INTEGER(INTEGER_t *st, intmax_t value) { - uint8_t *buf, *bp; - uint8_t *p; - uint8_t *pstart; - uint8_t *pend1; - int littleEndian = 1; /* Run-time detection */ - int add; - - if(!st) { - errno = EINVAL; - return -1; - } - - buf = (uint8_t *)(long *)MALLOC(sizeof(value)); - if(!buf) return -1; - - if(*(char *)&littleEndian) { - pstart = (uint8_t *)&value + sizeof(value) - 1; - pend1 = (uint8_t *)&value; - add = -1; - } else { - pstart = (uint8_t *)&value; - pend1 = pstart + sizeof(value) - 1; - add = 1; - } - - /* - * If the contents octet consists of more than one octet, - * then bits of the first octet and bit 8 of the second octet: - * a) shall not all be ones; and - * b) shall not all be zero. - */ - for(p = pstart; p != pend1; p += add) { - switch(*p) { - case 0x00: if((*(p+add) & 0x80) == 0) - continue; - break; - case 0xff: if((*(p+add) & 0x80)) - continue; - break; - } - break; - } - /* Copy the integer body */ - for(bp = buf, pend1 += add; p != pend1; p += add) - *bp++ = *p; - - if(st->buf) FREEMEM(st->buf); - st->buf = buf; - st->size = bp - buf; - - return 0; -} - -int -asn_INTEGER2long(const INTEGER_t *iptr, long *l) { - intmax_t v; - if(asn_INTEGER2imax(iptr, &v) == 0) { - if(v < LONG_MIN || v > LONG_MAX) { - errno = ERANGE; - return -1; - } - *l = v; - return 0; - } else { - return -1; - } -} - -int -asn_INTEGER2ulong(const INTEGER_t *iptr, unsigned long *l) { - uintmax_t v; - if(asn_INTEGER2umax(iptr, &v) == 0) { - if(v > ULONG_MAX) { - errno = ERANGE; - return -1; - } - *l = v; - return 0; - } else { - return -1; - } -} - -int -asn_long2INTEGER(INTEGER_t *st, long value) { - return asn_imax2INTEGER(st, value); -} - -int -asn_ulong2INTEGER(INTEGER_t *st, unsigned long value) { - return asn_imax2INTEGER(st, value); -} - - -int -asn_uint642INTEGER(INTEGER_t *st, uint64_t value) { - uint8_t *buf; - uint8_t *end; - uint8_t *b; - int shr; - - if(value <= INT64_MAX) - return asn_int642INTEGER(st, value); - - buf = (uint8_t *)MALLOC(1 + sizeof(value)); - if(!buf) return -1; - - end = buf + (sizeof(value) + 1); - buf[0] = 0; - for(b = buf + 1, shr = (sizeof(value)-1)*8; b < end; shr -= 8, b++) - *b = (uint8_t)(value >> shr); - - if(st->buf) FREEMEM(st->buf); - st->buf = buf; - st->size = 1 + sizeof(value); - - return 0; -} - -int -asn_int642INTEGER(INTEGER_t *st, int64_t value) { - uint8_t *buf, *bp; - uint8_t *p; - uint8_t *pstart; - uint8_t *pend1; - int littleEndian = 1; /* Run-time detection */ - int add; - - if(!st) { - errno = EINVAL; - return -1; - } - - buf = (uint8_t *)MALLOC(sizeof(value)); - if(!buf) return -1; - - if(*(char *)&littleEndian) { - pstart = (uint8_t *)&value + sizeof(value) - 1; - pend1 = (uint8_t *)&value; - add = -1; - } else { - pstart = (uint8_t *)&value; - pend1 = pstart + sizeof(value) - 1; - add = 1; - } - - /* - * If the contents octet consists of more than one octet, - * then bits of the first octet and bit 8 of the second octet: - * a) shall not all be ones; and - * b) shall not all be zero. - */ - for(p = pstart; p != pend1; p += add) { - switch(*p) { - case 0x00: if((*(p+add) & 0x80) == 0) - continue; - break; - case 0xff: if((*(p+add) & 0x80)) - continue; - break; - } - break; - } - /* Copy the integer body */ - for(pstart = p, bp = buf, pend1 += add; p != pend1; p += add) - *bp++ = *p; - - if(st->buf) FREEMEM(st->buf); - st->buf = buf; - st->size = bp - buf; - - return 0; -} - -/* - * Parse the number in the given string until the given *end position, - * returning the position after the last parsed character back using the - * same (*end) pointer. - * WARNING: This behavior is different from the standard strtol/strtoimax(3). - */ -enum asn_strtox_result_e -asn_strtoimax_lim(const char *str, const char **end, intmax_t *intp) { - int sign = 1; - intmax_t value; - -#define ASN1_INTMAX_MAX ((~(uintmax_t)0) >> 1) - const intmax_t upper_boundary = ASN1_INTMAX_MAX / 10; - intmax_t last_digit_max = ASN1_INTMAX_MAX % 10; -#undef ASN1_INTMAX_MAX - - if(str >= *end) return ASN_STRTOX_ERROR_INVAL; - - switch(*str) { - case '-': - last_digit_max++; - sign = -1; - /* FALL THROUGH */ - case '+': - str++; - if(str >= *end) { - *end = str; - return ASN_STRTOX_EXPECT_MORE; - } - } - - for(value = 0; str < (*end); str++) { - switch(*str) { - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: { - int d = *str - '0'; - if(value < upper_boundary) { - value = value * 10 + d; - } else if(value == upper_boundary) { - if(d <= last_digit_max) { - if(sign > 0) { - value = value * 10 + d; - } else { - sign = 1; - value = -value * 10 - d; - } - } else { - *end = str; - return ASN_STRTOX_ERROR_RANGE; - } - } else { - *end = str; - return ASN_STRTOX_ERROR_RANGE; - } - } - continue; - default: - *end = str; - *intp = sign * value; - return ASN_STRTOX_EXTRA_DATA; - } - } - - *end = str; - *intp = sign * value; - return ASN_STRTOX_OK; -} - -/* - * Parse the number in the given string until the given *end position, - * returning the position after the last parsed character back using the - * same (*end) pointer. - * WARNING: This behavior is different from the standard strtoul/strtoumax(3). - */ -enum asn_strtox_result_e -asn_strtoumax_lim(const char *str, const char **end, uintmax_t *uintp) { - uintmax_t value; - -#define ASN1_UINTMAX_MAX ((~(uintmax_t)0)) - const uintmax_t upper_boundary = ASN1_UINTMAX_MAX / 10; - uintmax_t last_digit_max = ASN1_UINTMAX_MAX % 10; -#undef ASN1_UINTMAX_MAX - - if(str >= *end) return ASN_STRTOX_ERROR_INVAL; - - switch(*str) { - case '-': - return ASN_STRTOX_ERROR_INVAL; - case '+': - str++; - if(str >= *end) { - *end = str; - return ASN_STRTOX_EXPECT_MORE; - } - } - - for(value = 0; str < (*end); str++) { - switch(*str) { - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: { - unsigned int d = *str - '0'; - if(value < upper_boundary) { - value = value * 10 + d; - } else if(value == upper_boundary) { - if(d <= last_digit_max) { - value = value * 10 + d; - } else { - *end = str; - return ASN_STRTOX_ERROR_RANGE; - } - } else { - *end = str; - return ASN_STRTOX_ERROR_RANGE; - } - } - continue; - default: - *end = str; - *uintp = value; - return ASN_STRTOX_EXTRA_DATA; - } - } - - *end = str; - *uintp = value; - return ASN_STRTOX_OK; -} - -enum asn_strtox_result_e -asn_strtol_lim(const char *str, const char **end, long *lp) { - intmax_t value; - switch(asn_strtoimax_lim(str, end, &value)) { - case ASN_STRTOX_ERROR_RANGE: - return ASN_STRTOX_ERROR_RANGE; - case ASN_STRTOX_ERROR_INVAL: - return ASN_STRTOX_ERROR_INVAL; - case ASN_STRTOX_EXPECT_MORE: - return ASN_STRTOX_EXPECT_MORE; - case ASN_STRTOX_OK: - if(value >= LONG_MIN && value <= LONG_MAX) { - *lp = value; - return ASN_STRTOX_OK; - } else { - return ASN_STRTOX_ERROR_RANGE; - } - case ASN_STRTOX_EXTRA_DATA: - if(value >= LONG_MIN && value <= LONG_MAX) { - *lp = value; - return ASN_STRTOX_EXTRA_DATA; - } else { - return ASN_STRTOX_ERROR_RANGE; - } - } - - assert(!"Unreachable"); - return ASN_STRTOX_ERROR_INVAL; -} - -enum asn_strtox_result_e -asn_strtoul_lim(const char *str, const char **end, unsigned long *ulp) { - uintmax_t value; - switch(asn_strtoumax_lim(str, end, &value)) { - case ASN_STRTOX_ERROR_RANGE: - return ASN_STRTOX_ERROR_RANGE; - case ASN_STRTOX_ERROR_INVAL: - return ASN_STRTOX_ERROR_INVAL; - case ASN_STRTOX_EXPECT_MORE: - return ASN_STRTOX_EXPECT_MORE; - case ASN_STRTOX_OK: - if(value <= ULONG_MAX) { - *ulp = value; - return ASN_STRTOX_OK; - } else { - return ASN_STRTOX_ERROR_RANGE; - } - case ASN_STRTOX_EXTRA_DATA: - if(value <= ULONG_MAX) { - *ulp = value; - return ASN_STRTOX_EXTRA_DATA; - } else { - return ASN_STRTOX_ERROR_RANGE; - } - } - - assert(!"Unreachable"); - return ASN_STRTOX_ERROR_INVAL; -} - -int -INTEGER_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - const INTEGER_t *a = aptr; - const INTEGER_t *b = bptr; - - (void)td; - - if(a && b) { - if(a->size && b->size) { - int sign_a = (a->buf[0] & 0x80) ? -1 : 1; - int sign_b = (b->buf[0] & 0x80) ? -1 : 1; - - if(sign_a < sign_b) return -1; - if(sign_a > sign_b) return 1; - - /* The shortest integer wins, unless comparing negatives */ - if(a->size < b->size) { - return -1 * sign_a; - } else if(a->size > b->size) { - return 1 * sign_b; - } - - return sign_a * memcmp(a->buf, b->buf, a->size); - } else if(a->size) { - int sign = (a->buf[0] & 0x80) ? -1 : 1; - return (1) * sign; - } else if(b->size) { - int sign = (a->buf[0] & 0x80) ? -1 : 1; - return (-1) * sign; - } else { - return 0; - } - } else if(!a && !b) { - return 0; - } else if(!a) { - return -1; - } else { - return 1; - } - -} - -asn_random_fill_result_t -INTEGER_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - INTEGER_t *st = *sptr; - const asn_INTEGER_enum_map_t *emap; - size_t emap_len; - intmax_t value; - int find_inside_map; - - if(max_length == 0) return result_skipped; - - if(st == NULL) { - st = (INTEGER_t *)CALLOC(1, sizeof(*st)); - if(st == NULL) { - return result_failed; - } - } - - if(specs) { - emap = specs->value2enum; - emap_len = specs->map_count; - if(specs->strict_enumeration) { - find_inside_map = emap_len > 0; - } else { - find_inside_map = emap_len ? asn_random_between(0, 1) : 0; - } - } else { - emap = 0; - emap_len = 0; - find_inside_map = 0; - } - - if(find_inside_map) { - assert(emap_len > 0); - value = emap[asn_random_between(0, emap_len - 1)].nat_value; - } else { - const asn_per_constraints_t *ct; - - static const long variants[] = { - -65536, -65535, -65534, -32769, -32768, -32767, -16385, -16384, - -16383, -257, -256, -255, -254, -129, -128, -127, - -126, -1, 0, 1, 126, 127, 128, 129, - 254, 255, 256, 257, 16383, 16384, 16385, 32767, - 32768, 32769, 65534, 65535, 65536, 65537}; - if(specs && specs->field_unsigned) { - assert(variants[18] == 0); - value = variants[asn_random_between( - 18, sizeof(variants) / sizeof(variants[0]) - 1)]; - } else { - value = variants[asn_random_between( - 0, sizeof(variants) / sizeof(variants[0]) - 1)]; - } - - if(!constraints) constraints = &td->encoding_constraints; - ct = constraints ? constraints->per_constraints : 0; - if(ct && (ct->value.flags & APC_CONSTRAINED)) { - if(value < ct->value.lower_bound || value > ct->value.upper_bound) { - value = asn_random_between(ct->value.lower_bound, - ct->value.upper_bound); - } - } - } - - if(asn_imax2INTEGER(st, value)) { - if(st == *sptr) { - ASN_STRUCT_RESET(*td, st); - } else { - ASN_STRUCT_FREE(*td, st); - } - return result_failed; - } else { - *sptr = st; - result_ok.length = st->size; - return result_ok; - } -} diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/INTEGER.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/INTEGER.h deleted file mode 100644 index f776c07..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/INTEGER.h +++ /dev/null @@ -1,108 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _INTEGER_H_ -#define _INTEGER_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef ASN__PRIMITIVE_TYPE_t INTEGER_t; - -extern asn_TYPE_descriptor_t asn_DEF_INTEGER; -extern asn_TYPE_operation_t asn_OP_INTEGER; - -/* Map with to integer value association */ -typedef struct asn_INTEGER_enum_map_s { - long nat_value; /* associated native integer value */ - size_t enum_len; /* strlen("tag") */ - const char *enum_name; /* "tag" */ -} asn_INTEGER_enum_map_t; - -/* This type describes an enumeration for INTEGER and ENUMERATED types */ -typedef struct asn_INTEGER_specifics_s { - const asn_INTEGER_enum_map_t *value2enum; /* N -> "tag"; sorted by N */ - const unsigned int *enum2value; /* "tag" => N; sorted by tag */ - int map_count; /* Elements in either map */ - int extension; /* This map is extensible */ - int strict_enumeration; /* Enumeration set is fixed */ - int field_width; /* Size of native integer */ - int field_unsigned; /* Signed=0, unsigned=1 */ -} asn_INTEGER_specifics_t; - -#define INTEGER_free ASN__PRIMITIVE_TYPE_free -#define INTEGER_decode_ber ber_decode_primitive -#define INTEGER_constraint asn_generic_no_constraint -asn_struct_print_f INTEGER_print; -asn_struct_compare_f INTEGER_compare; -der_type_encoder_f INTEGER_encode_der; -xer_type_decoder_f INTEGER_decode_xer; -xer_type_encoder_f INTEGER_encode_xer; -oer_type_decoder_f INTEGER_decode_oer; -oer_type_encoder_f INTEGER_encode_oer; -per_type_decoder_f INTEGER_decode_uper; -per_type_encoder_f INTEGER_encode_uper; -per_type_decoder_f INTEGER_decode_aper; -per_type_encoder_f INTEGER_encode_aper; -asn_random_fill_f INTEGER_random_fill; - -/*********************************** - * Some handy conversion routines. * - ***********************************/ - -/* - * Natiwe size-independent conversion of native integers to/from INTEGER. - * (l_size) is in bytes. - * Returns 0 if it was possible to convert, -1 otherwise. - * -1/EINVAL: Mandatory argument missing - * -1/ERANGE: Value encoded is out of range for long representation - * -1/ENOMEM: Memory allocation failed (in asn_*2INTEGER()). - */ -int asn_INTEGER2imax(const INTEGER_t *i, intmax_t *l); -int asn_INTEGER2umax(const INTEGER_t *i, uintmax_t *l); -int asn_imax2INTEGER(INTEGER_t *i, intmax_t l); -int asn_umax2INTEGER(INTEGER_t *i, uintmax_t l); - -/* - * Size-specific conversion helpers. - */ -int asn_INTEGER2long(const INTEGER_t *i, long *l); -int asn_INTEGER2ulong(const INTEGER_t *i, unsigned long *l); -int asn_long2INTEGER(INTEGER_t *i, long l); -int asn_ulong2INTEGER(INTEGER_t *i, unsigned long l); -int asn_int642INTEGER(INTEGER_t *i, int64_t l); -int asn_uint642INTEGER(INTEGER_t *i, uint64_t l); - -/* A version of strtol/strtoimax(3) with nicer error reporting. */ -enum asn_strtox_result_e { - ASN_STRTOX_ERROR_RANGE = -3, /* Input outside of supported numeric range */ - ASN_STRTOX_ERROR_INVAL = -2, /* Invalid data encountered (e.g., "+-") */ - ASN_STRTOX_EXPECT_MORE = -1, /* More data expected (e.g. "+") */ - ASN_STRTOX_OK = 0, /* Conversion succeded, number ends at (*end) */ - ASN_STRTOX_EXTRA_DATA = 1 /* Conversion succeded, but the string has extra stuff */ -}; -enum asn_strtox_result_e asn_strtol_lim(const char *str, const char **end, - long *l); -enum asn_strtox_result_e asn_strtoul_lim(const char *str, const char **end, - unsigned long *l); -enum asn_strtox_result_e asn_strtoimax_lim(const char *str, const char **end, - intmax_t *l); -enum asn_strtox_result_e asn_strtoumax_lim(const char *str, const char **end, - uintmax_t *l); - -/* - * Convert the integer value into the corresponding enumeration map entry. - */ -const asn_INTEGER_enum_map_t *INTEGER_map_value2enum( - const asn_INTEGER_specifics_t *specs, long value); - -#ifdef __cplusplus -} -#endif - -#endif /* _INTEGER_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/INTEGER_oer.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/INTEGER_oer.c deleted file mode 100644 index 110689b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/INTEGER_oer.c +++ /dev/null @@ -1,179 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -asn_dec_rval_t -INTEGER_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **sptr, - const void *ptr, size_t size) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval = {RC_OK, 0}; - INTEGER_t *st = (INTEGER_t *)*sptr; - struct asn_oer_constraint_number_s ct = {0, 0}; - size_t req_bytes; - - (void)opt_codec_ctx; - (void)specs; - - if(!st) { - st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st))); - if(!st) ASN__DECODE_FAILED; - } - - FREEMEM(st->buf); - st->buf = 0; - st->size = 0; - - if(!constraints) constraints = td->encoding_constraints.oer_constraints; - if(constraints) ct = constraints->value; - - if(ct.width) { - req_bytes = ct.width; - } else { - /* No lower bound and no upper bound, effectively */ - - ssize_t consumed = oer_fetch_length(ptr, size, &req_bytes); - if(consumed == 0) { - ASN__DECODE_STARVED; - } else if(consumed == -1) { - ASN__DECODE_FAILED; - } - rval.consumed += consumed; - ptr = (const char *)ptr + consumed; - size -= consumed; - } - - if(req_bytes > size) { - ASN__DECODE_STARVED; - } - - if(ct.positive) { - /* X.969 08/2015 10.2(a) */ - unsigned msb; /* Most significant bit */ - size_t useful_size; - - /* Check most significant bit */ - msb = *(const uint8_t *)ptr >> 7; /* yields 0 or 1 */ - useful_size = msb + req_bytes; - st->buf = (uint8_t *)MALLOC(useful_size + 1); - if(!st->buf) { - ASN__DECODE_FAILED; - } - - /* - * Record a large unsigned in a way not to confuse it - * with signed value. - */ - st->buf[0] = '\0'; - memcpy(st->buf + msb, ptr, req_bytes); - st->buf[useful_size] = '\0'; /* Just in case, 0-terminate */ - st->size = useful_size; - - rval.consumed += req_bytes; - return rval; - } else { - /* X.969 08/2015 10.2(b) */ - st->buf = (uint8_t *)MALLOC(req_bytes + 1); - if(!st->buf) { - ASN__DECODE_FAILED; - } - - memcpy(st->buf, ptr, req_bytes); - st->buf[req_bytes] = '\0'; /* Just in case, 0-terminate */ - st->size = req_bytes; - - rval.consumed += req_bytes; - return rval; - } -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -INTEGER_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - const INTEGER_t *st = sptr; - asn_enc_rval_t er = {0,0,0}; - struct asn_oer_constraint_number_s ct = {0, 0}; - const uint8_t *buf; - const uint8_t *end; - size_t useful_bytes; - size_t req_bytes = 0; - int sign = 0; - - if(!st || st->size == 0) ASN__ENCODE_FAILED; - - if(!constraints) constraints = td->encoding_constraints.oer_constraints; - if(constraints) ct = constraints->value; - - er.encoded = 0; - - buf = st->buf; - end = buf + st->size; - - sign = (buf && buf < end) ? buf[0] & 0x80 : 0; - - /* Ignore 9 leading zeroes or ones */ - if(ct.positive) { - if(sign) { - /* The value given is a signed value. Can't proceed. */ - ASN__ENCODE_FAILED; - } - /* Remove leading zeros. */ - for(; buf + 1 < end; buf++) { - if(buf[0] != 0x0) break; - } - } else { - for(; buf + 1 < end; buf++) { - if(buf[0] == 0x0 && (buf[1] & 0x80) == 0) { - continue; - } else if(buf[0] == 0xff && (buf[1] & 0x80) != 0) { - continue; - } - break; - } - } - - useful_bytes = end - buf; - if(ct.width) { - req_bytes = ct.width; - } else { - ssize_t r = oer_serialize_length(useful_bytes, cb, app_key); - if(r < 0) { - ASN__ENCODE_FAILED; - } - er.encoded += r; - req_bytes = useful_bytes; - } - - if(req_bytes < useful_bytes) { - ASN__ENCODE_FAILED; - } - - er.encoded += req_bytes; - - for(; req_bytes > useful_bytes; req_bytes--) { - if(cb(sign?"\xff":"\0", 1, app_key) < 0) { - ASN__ENCODE_FAILED; - } - } - - if(cb(buf, useful_bytes, app_key) < 0) { - ASN__ENCODE_FAILED; - } - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/InitiatingMessage.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/InitiatingMessage.c deleted file mode 100644 index d29e2a2..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/InitiatingMessage.c +++ /dev/null @@ -1,449 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "InitiatingMessage.h" - -static const long asn_VAL_1_id_RICsubscription = 8; -static const long asn_VAL_1_reject = 0; -static const long asn_VAL_2_id_RICsubscriptionDelete = 9; -static const long asn_VAL_2_reject = 0; -static const long asn_VAL_3_id_RICserviceUpdate = 7; -static const long asn_VAL_3_reject = 0; -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_E2nodeConfigurationUpdate = 10; -static const long asn_VAL_6_reject = 0; -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_ErrorIndication = 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[] = { - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_RICsubscription }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_RICsubscriptionDelete }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_RICserviceUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICcontrolRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_RICcontrol }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_E2setupRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2setupResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2setupFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_E2setup }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_E2nodeConfigurationUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2nodeConfigurationUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2nodeConfigurationUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_E2nodeConfigurationUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_E2connectionUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2connectionUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2connectionUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_E2connectionUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ResetRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_Reset }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICindication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_RICindication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceQuery }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_10_id_RICserviceQuery }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_11_id_ErrorIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequired }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_12_id_RICsubscriptionDeleteRequired }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_ignore } -}; -static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { - { 12, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } -}; -static int -memb_procedureCode_constraint_1(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; - } -} - -static asn_type_selector_result_t -select_InitiatingMessage_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_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 4; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct InitiatingMessage, procedureCode)); - - 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_1(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_InitiatingMessage_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_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 0; /* &InitiatingMessage */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct InitiatingMessage, procedureCode)); - - 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_1(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_procedureCode_constr_2 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { 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_TYPE_member_t asn_MBR_value_4[] = { - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICsubscriptionRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICsubscriptionDeleteRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionDeleteRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICserviceUpdate), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdate, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICserviceUpdate" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICcontrolRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.E2setupRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2setupRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__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 InitiatingMessage__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 InitiatingMessage__value, choice.ResetRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResetRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ResetRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICindication), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICindication, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICindication" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICserviceQuery), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceQuery, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICserviceQuery" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.ErrorIndication), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ErrorIndication, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ErrorIndication" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__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, 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 }, /* ErrorIndication */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 11, -11, 0 } /* RICsubscriptionDeleteRequired */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { - sizeof(struct InitiatingMessage__value), - offsetof(struct InitiatingMessage__value, _asn_ctx), - offsetof(struct InitiatingMessage__value, present), - sizeof(((struct InitiatingMessage__value *)0)->present), - asn_MAP_value_tag2el_4, - 12, /* 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, - 12, /* Elements count */ - &asn_SPC_value_specs_4 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_InitiatingMessage_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage, procedureCode), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProcedureCode, - 0, - { &asn_OER_memb_procedureCode_constr_2, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, - 0, 0, /* No default value */ - "procedureCode" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_InitiatingMessage_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 InitiatingMessage, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_4, - select_InitiatingMessage_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_InitiatingMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_InitiatingMessage_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ - { (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_InitiatingMessage_specs_1 = { - sizeof(struct InitiatingMessage), - offsetof(struct InitiatingMessage, _asn_ctx), - asn_MAP_InitiatingMessage_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_InitiatingMessage = { - "InitiatingMessage", - "InitiatingMessage", - &asn_OP_SEQUENCE, - asn_DEF_InitiatingMessage_tags_1, - sizeof(asn_DEF_InitiatingMessage_tags_1) - /sizeof(asn_DEF_InitiatingMessage_tags_1[0]), /* 1 */ - asn_DEF_InitiatingMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_InitiatingMessage_tags_1) - /sizeof(asn_DEF_InitiatingMessage_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_InitiatingMessage_1, - 3, /* Elements count */ - &asn_SPC_InitiatingMessage_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/InitiatingMessage.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/InitiatingMessage.h deleted file mode 100644 index d474edc..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/InitiatingMessage.h +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _InitiatingMessage_H_ -#define _InitiatingMessage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProcedureCode.h" -#include "Criticality.h" -#include "ANY.h" -#include "asn_ioc.h" -#include "RICsubscriptionRequest.h" -#include "RICsubscriptionResponse.h" -#include "RICsubscriptionFailure.h" -#include "RICsubscriptionDeleteRequest.h" -#include "RICsubscriptionDeleteResponse.h" -#include "RICsubscriptionDeleteFailure.h" -#include "RICserviceUpdate.h" -#include "RICserviceUpdateAcknowledge.h" -#include "RICserviceUpdateFailure.h" -#include "RICcontrolRequest.h" -#include "RICcontrolAcknowledge.h" -#include "RICcontrolFailure.h" -#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 "ErrorIndication.h" -#include "RICsubscriptionDeleteRequired.h" -#include "OPEN_TYPE.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum InitiatingMessage__value_PR { - InitiatingMessage__value_PR_NOTHING, /* No components present */ - InitiatingMessage__value_PR_RICsubscriptionRequest, - InitiatingMessage__value_PR_RICsubscriptionDeleteRequest, - InitiatingMessage__value_PR_RICserviceUpdate, - InitiatingMessage__value_PR_RICcontrolRequest, - InitiatingMessage__value_PR_E2setupRequest, - InitiatingMessage__value_PR_E2nodeConfigurationUpdate, - InitiatingMessage__value_PR_E2connectionUpdate, - InitiatingMessage__value_PR_ResetRequest, - InitiatingMessage__value_PR_RICindication, - InitiatingMessage__value_PR_RICserviceQuery, - InitiatingMessage__value_PR_ErrorIndication, - InitiatingMessage__value_PR_RICsubscriptionDeleteRequired -} InitiatingMessage__value_PR; - -/* InitiatingMessage */ -typedef struct InitiatingMessage { - ProcedureCode_t procedureCode; - Criticality_t criticality; - struct InitiatingMessage__value { - InitiatingMessage__value_PR present; - union InitiatingMessage__value_u { - RICsubscriptionRequest_t RICsubscriptionRequest; - RICsubscriptionDeleteRequest_t RICsubscriptionDeleteRequest; - RICserviceUpdate_t RICserviceUpdate; - RICcontrolRequest_t RICcontrolRequest; - E2setupRequest_t E2setupRequest; - E2nodeConfigurationUpdate_t E2nodeConfigurationUpdate; - E2connectionUpdate_t E2connectionUpdate; - ResetRequest_t ResetRequest; - RICindication_t RICindication; - RICserviceQuery_t RICserviceQuery; - ErrorIndication_t ErrorIndication; - RICsubscriptionDeleteRequired_t RICsubscriptionDeleteRequired; - } 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; -} InitiatingMessage_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_InitiatingMessage; -extern asn_SEQUENCE_specifics_t asn_SPC_InitiatingMessage_specs_1; -extern asn_TYPE_member_t asn_MBR_InitiatingMessage_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _InitiatingMessage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/MMEname.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/MMEname.c deleted file mode 100644 index 76890a7..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/MMEname.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/MMEname.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/MMEname.h deleted file mode 100644 index 82b1fdc..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/MMEname.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _MMEname_H_ -#define _MMEname_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PrintableString.h" - -#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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Makefile.am.asn1convert b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Makefile.am.asn1convert deleted file mode 100644 index 62c2707..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Makefile.am.asn1convert +++ /dev/null @@ -1,14 +0,0 @@ -include ./Makefile.am.libasncodec - -bin_PROGRAMS += asn1convert -asn1convert_CFLAGS = $(ASN_MODULE_CFLAGS) -DASN_PDU_COLLECTION -asn1convert_CPPFLAGS = -I$(top_srcdir)/./ -asn1convert_LDADD = libasncodec.la -asn1convert_SOURCES = \ - ./converter-example.c\ - ./pdu_collection.c -regen: regenerate-from-asn1-source - -regenerate-from-asn1-source: - asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -D . /root/e2ap-v01.00.00.asn - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NGENB-DU-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NGENB-DU-ID.c deleted file mode 100644 index f82c8b0..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NGENB-DU-ID.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "NGENB-DU-ID.h" - -int -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; - - 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_NGENB_DU_ID_constr_1 CC_NOTUSED = { - { 8, 1 } /* (0..68719476735) */, - -1}; -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_NGENB_DU_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_NGENB_DU_ID = { - "NGENB-DU-ID", - "NGENB-DU-ID", - &asn_OP_INTEGER, - 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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NGENB-DU-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NGENB-DU-ID.h deleted file mode 100644 index 9a491db..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NGENB-DU-ID.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _NGENB_DU_ID_H_ -#define _NGENB_DU_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "INTEGER.h" - -#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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NI-Type.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NI-Type.c deleted file mode 100644 index 1162fd8..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NI-Type.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "NI-Type.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_NI_Type_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_NI_Type_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_NI_Type_value2enum_1[] = { - { 0, 4, "x2-u" }, - { 1, 4, "xn-u" }, - { 2, 4, "f1-u" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_NI_Type_enum2value_1[] = { - 2, /* f1-u(2) */ - 0, /* x2-u(0) */ - 1 /* xn-u(1) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_NI_Type_specs_1 = { - asn_MAP_NI_Type_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_NI_Type_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_NI_Type_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_NI_Type = { - "NI-Type", - "NI-Type", - &asn_OP_NativeEnumerated, - asn_DEF_NI_Type_tags_1, - sizeof(asn_DEF_NI_Type_tags_1) - /sizeof(asn_DEF_NI_Type_tags_1[0]), /* 1 */ - asn_DEF_NI_Type_tags_1, /* Same as above */ - sizeof(asn_DEF_NI_Type_tags_1) - /sizeof(asn_DEF_NI_Type_tags_1[0]), /* 1 */ - { &asn_OER_type_NI_Type_constr_1, &asn_PER_type_NI_Type_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_NI_Type_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NI-Type.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NI-Type.h deleted file mode 100644 index c696a44..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NI-Type.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _NI_Type_H_ -#define _NI_Type_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum NI_Type { - NI_Type_x2_u = 0, - NI_Type_xn_u = 1, - NI_Type_f1_u = 2 - /* - * Enumeration is extensible - */ -} e_NI_Type; - -/* NI-Type */ -typedef long NI_Type_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_NI_Type_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_NI_Type; -extern const asn_INTEGER_specifics_t asn_SPC_NI_Type_specs_1; -asn_struct_free_f NI_Type_free; -asn_struct_print_f NI_Type_print; -asn_constr_check_f NI_Type_constraint; -ber_type_decoder_f NI_Type_decode_ber; -der_type_encoder_f NI_Type_encode_der; -xer_type_decoder_f NI_Type_decode_xer; -xer_type_encoder_f NI_Type_encode_xer; -oer_type_decoder_f NI_Type_decode_oer; -oer_type_encoder_f NI_Type_encode_oer; -per_type_decoder_f NI_Type_decode_uper; -per_type_encoder_f NI_Type_encode_uper; -per_type_decoder_f NI_Type_decode_aper; -per_type_encoder_f NI_Type_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _NI_Type_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NRCGI.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NRCGI.c deleted file mode 100644 index 94d8d4b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NRCGI.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "NRCGI.h" - -asn_TYPE_member_t asn_MBR_NRCGI_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct NRCGI, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct NRCGI, nRCellIdentity), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCellIdentity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRCellIdentity" - }, -}; -static const ber_tlv_tag_t asn_DEF_NRCGI_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_NRCGI_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nRCellIdentity */ -}; -asn_SEQUENCE_specifics_t asn_SPC_NRCGI_specs_1 = { - sizeof(struct NRCGI), - offsetof(struct NRCGI, _asn_ctx), - asn_MAP_NRCGI_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_NRCGI = { - "NRCGI", - "NRCGI", - &asn_OP_SEQUENCE, - asn_DEF_NRCGI_tags_1, - sizeof(asn_DEF_NRCGI_tags_1) - /sizeof(asn_DEF_NRCGI_tags_1[0]), /* 1 */ - asn_DEF_NRCGI_tags_1, /* Same as above */ - sizeof(asn_DEF_NRCGI_tags_1) - /sizeof(asn_DEF_NRCGI_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_NRCGI_1, - 2, /* Elements count */ - &asn_SPC_NRCGI_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NRCGI.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NRCGI.h deleted file mode 100644 index b4938d0..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NRCGI.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _NRCGI_H_ -#define _NRCGI_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "NRCellIdentity.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* NRCGI */ -typedef struct NRCGI { - PLMN_Identity_t pLMN_Identity; - NRCellIdentity_t nRCellIdentity; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} NRCGI_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_NRCGI; -extern asn_SEQUENCE_specifics_t asn_SPC_NRCGI_specs_1; -extern asn_TYPE_member_t asn_MBR_NRCGI_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _NRCGI_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NRCellIdentity.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NRCellIdentity.c deleted file mode 100644 index 8e0310e..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NRCellIdentity.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "NRCellIdentity.h" - -int -NRCellIdentity_constraint(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 == 36)) { - /* 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 BIT_STRING, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_NRCellIdentity_constr_1 CC_NOTUSED = { - { 0, 0 }, - 36 /* (SIZE(36..36)) */}; -asn_per_constraints_t asn_PER_type_NRCellIdentity_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 36, 36 } /* (SIZE(36..36)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_NRCellIdentity_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_NRCellIdentity = { - "NRCellIdentity", - "NRCellIdentity", - &asn_OP_BIT_STRING, - asn_DEF_NRCellIdentity_tags_1, - sizeof(asn_DEF_NRCellIdentity_tags_1) - /sizeof(asn_DEF_NRCellIdentity_tags_1[0]), /* 1 */ - asn_DEF_NRCellIdentity_tags_1, /* Same as above */ - sizeof(asn_DEF_NRCellIdentity_tags_1) - /sizeof(asn_DEF_NRCellIdentity_tags_1[0]), /* 1 */ - { &asn_OER_type_NRCellIdentity_constr_1, &asn_PER_type_NRCellIdentity_constr_1, NRCellIdentity_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NRCellIdentity.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NRCellIdentity.h deleted file mode 100644 index 701f381..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NRCellIdentity.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _NRCellIdentity_H_ -#define _NRCellIdentity_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* NRCellIdentity */ -typedef BIT_STRING_t NRCellIdentity_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_NRCellIdentity_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_NRCellIdentity; -asn_struct_free_f NRCellIdentity_free; -asn_struct_print_f NRCellIdentity_print; -asn_constr_check_f NRCellIdentity_constraint; -ber_type_decoder_f NRCellIdentity_decode_ber; -der_type_encoder_f NRCellIdentity_encode_der; -xer_type_decoder_f NRCellIdentity_decode_xer; -xer_type_encoder_f NRCellIdentity_encode_xer; -oer_type_decoder_f NRCellIdentity_decode_oer; -oer_type_encoder_f NRCellIdentity_encode_oer; -per_type_decoder_f NRCellIdentity_decode_uper; -per_type_encoder_f NRCellIdentity_encode_uper; -per_type_decoder_f NRCellIdentity_decode_aper; -per_type_encoder_f NRCellIdentity_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _NRCellIdentity_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NativeEnumerated.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NativeEnumerated.c deleted file mode 100644 index 50ffb1d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NativeEnumerated.c +++ /dev/null @@ -1,367 +0,0 @@ -/*- - * Copyright (c) 2004, 2007 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Read the NativeInteger.h for the explanation wrt. differences between - * INTEGER and NativeInteger. - * Basically, both are decoders and encoders of ASN.1 INTEGER type, but this - * implementation deals with the standard (machine-specific) representation - * of them instead of using the platform-independent buffer. - */ -#include -#include - -/* - * NativeEnumerated basic type description. - */ -static const ber_tlv_tag_t asn_DEF_NativeEnumerated_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_operation_t asn_OP_NativeEnumerated = { - NativeInteger_free, - NativeInteger_print, - NativeInteger_compare, - NativeInteger_decode_ber, - NativeInteger_encode_der, - NativeInteger_decode_xer, - NativeEnumerated_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - NativeEnumerated_decode_oer, - NativeEnumerated_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - NativeEnumerated_decode_uper, - NativeEnumerated_encode_uper, - NativeEnumerated_decode_aper, - NativeEnumerated_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - NativeEnumerated_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_NativeEnumerated = { - "ENUMERATED", /* The ASN.1 type is still ENUMERATED */ - "ENUMERATED", - &asn_OP_NativeEnumerated, - asn_DEF_NativeEnumerated_tags, - sizeof(asn_DEF_NativeEnumerated_tags) / sizeof(asn_DEF_NativeEnumerated_tags[0]), - asn_DEF_NativeEnumerated_tags, /* Same as above */ - sizeof(asn_DEF_NativeEnumerated_tags) / sizeof(asn_DEF_NativeEnumerated_tags[0]), - { 0, 0, asn_generic_no_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - -asn_enc_rval_t -NativeEnumerated_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - const long *native = (const long *)sptr; - const asn_INTEGER_enum_map_t *el; - - (void)ilevel; - (void)flags; - - if(!native) ASN__ENCODE_FAILED; - - el = INTEGER_map_value2enum(specs, *native); - if(el) { - er.encoded = - asn__format_to_callback(cb, app_key, "<%s/>", el->enum_name); - if(er.encoded < 0) ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } else { - ASN_DEBUG( - "ASN.1 forbids dealing with " - "unknown value of ENUMERATED type"); - ASN__ENCODE_FAILED; - } -} - -asn_dec_rval_t -NativeEnumerated_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = td->specifics; - asn_dec_rval_t rval = { RC_OK, 0 }; - long *native = (long *)*sptr; - const asn_per_constraint_t *ct = NULL; - long value; - - (void)opt_codec_ctx; - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ASN__DECODE_FAILED; /* Mandatory! */ - if(!specs) ASN__DECODE_FAILED; - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - ASN_DEBUG("Decoding %s as NativeEnumerated", td->name); - - if(ct && ct->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) ASN__DECODE_STARVED; - if(inext) ct = 0; - } - - if(ct && ct->range_bits >= 0) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - if(value >= (specs->extension - ? specs->extension - 1 : specs->map_count)) - ASN__DECODE_FAILED; - } else { - if(!specs->extension) - ASN__DECODE_FAILED; - /* - * X.691, #10.6: normally small non-negative whole number; - */ - value = uper_get_nsnnwn(pd); - if(value < 0) ASN__DECODE_STARVED; - value += specs->extension - 1; - if(value >= specs->map_count) - ASN__DECODE_FAILED; - } - - *native = specs->value2enum[value].nat_value; - ASN_DEBUG("Decoded %s = %ld", td->name, *native); - - return rval; -} - -static int -NativeEnumerated__compar_value2enum(const void *ap, const void *bp) { - const asn_INTEGER_enum_map_t *a = ap; - const asn_INTEGER_enum_map_t *b = bp; - if(a->nat_value == b->nat_value) - return 0; - if(a->nat_value < b->nat_value) - return -1; - return 1; -} - -asn_enc_rval_t -NativeEnumerated_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - long native, value; - const asn_per_constraint_t *ct = NULL; - int inext = 0; - asn_INTEGER_enum_map_t key; - const asn_INTEGER_enum_map_t *kf; - - if(!sptr) ASN__ENCODE_FAILED; - if(!specs) ASN__ENCODE_FAILED; - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ASN__ENCODE_FAILED; /* Mandatory! */ - - ASN_DEBUG("Encoding %s as NativeEnumerated", td->name); - - er.encoded = 0; - - native = *(const long *)sptr; - - key.nat_value = native; - kf = bsearch(&key, specs->value2enum, specs->map_count, - sizeof(key), NativeEnumerated__compar_value2enum); - if(!kf) { - ASN_DEBUG("No element corresponds to %ld", native); - ASN__ENCODE_FAILED; - } - value = kf - specs->value2enum; - - if(ct && ct->range_bits >= 0) { - int cmpWith = specs->extension - ? specs->extension - 1 : specs->map_count; - if(value >= cmpWith) - inext = 1; - } - if(ct && ct->flags & APC_EXTENSIBLE) { - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - if(inext) ct = 0; - } else if(inext) { - ASN__ENCODE_FAILED; - } - - if(ct && ct->range_bits >= 0) { - if(per_put_few_bits(po, value, ct->range_bits)) - ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - if(!specs->extension) - ASN__ENCODE_FAILED; - - /* - * X.691, #10.6: normally small non-negative whole number; - */ - ASN_DEBUG("value = %ld, ext = %d, inext = %d, res = %ld", - value, specs->extension, inext, - value - (inext ? (specs->extension - 1) : 0)); - if(uper_put_nsnnwn(po, value - (inext ? (specs->extension - 1) : 0))) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -NativeEnumerated_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval = { RC_OK, 0 }; - long *native = (long *)*sptr; - const asn_per_constraint_t *ct = NULL; - long value; - - (void)opt_codec_ctx; - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ASN__DECODE_FAILED; /* Mandatory! */ - if(!specs) ASN__DECODE_FAILED; - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - ASN_DEBUG("Decoding %s as NativeEnumerated", td->name); - - if(ct && ct->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) ASN__DECODE_STARVED; - if(inext) ct = 0; - } - - /* Deal with APER padding */ - if(ct && ct->upper_bound >= 255) { - int padding = 0; - padding = (8 - (pd->moved % 8)) % 8; - ASN_DEBUG("For NativeEnumerated %s,offset= %lu Padding bits = %d", td->name, pd->moved, padding); - ASN_DEBUG("For NativeEnumerated %s, upper bound = %lu", td->name, ct->upper_bound); - if(padding > 0) - per_get_few_bits(pd, padding); - } - - if(ct && ct->range_bits >= 0) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - if(value >= (specs->extension - ? specs->extension - 1 : specs->map_count)) - ASN__DECODE_FAILED; - } else { - if(!specs->extension) - ASN__DECODE_FAILED; - /* - * X.691, #10.6: normally small non-negative whole number; - */ - value = uper_get_nsnnwn(pd); - if(value < 0) ASN__DECODE_STARVED; - value += specs->extension - 1; - if(value >= specs->map_count) - ASN__DECODE_FAILED; - } - - *native = specs->value2enum[value].nat_value; - ASN_DEBUG("Decoded %s = %ld", td->name, *native); - - return rval; -} - -asn_enc_rval_t -NativeEnumerated_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - long native, value; - const asn_per_constraint_t *ct = NULL; - int inext = 0; - asn_INTEGER_enum_map_t key; - asn_INTEGER_enum_map_t *kf; - - if(!sptr) ASN__ENCODE_FAILED; - if(!specs) ASN__ENCODE_FAILED; - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ASN__ENCODE_FAILED; /* Mandatory! */ - - ASN_DEBUG("Encoding %s as NativeEnumerated", td->name); - - er.encoded = 0; - - native = *(const long *)sptr; - if(native < 0) ASN__ENCODE_FAILED; - - key.nat_value = native; - kf = bsearch(&key, specs->value2enum, specs->map_count, - sizeof(key), NativeEnumerated__compar_value2enum); - if(!kf) { - ASN_DEBUG("No element corresponds to %ld", native); - ASN__ENCODE_FAILED; - } - value = kf - specs->value2enum; - - if(ct && ct->range_bits >= 0) { - int cmpWith = specs->extension - ? specs->extension - 1 : specs->map_count; - if(value >= cmpWith) - inext = 1; - } - if(ct && ct->flags & APC_EXTENSIBLE) { - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - if(inext) ct = 0; - } else if(inext) { - ASN__ENCODE_FAILED; - } - - if(ct && ct->range_bits >= 0) { - if(per_put_few_bits(po, value, ct->range_bits)) - ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - if(!specs->extension) - ASN__ENCODE_FAILED; - - /* - * X.691, #10.6: normally small non-negative whole number; - */ - ASN_DEBUG("value = %ld, ext = %d, inext = %d, res = %ld", - value, specs->extension, inext, - value - (inext ? (specs->extension - 1) : 0)); - if(uper_put_nsnnwn(po, value - (inext ? (specs->extension - 1) : 0))) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NativeEnumerated.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NativeEnumerated.h deleted file mode 100644 index 459f0e6..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NativeEnumerated.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * This type differs from the standard ENUMERATED in that it is modelled using - * the fixed machine type (long, int, short), so it can hold only values of - * limited length. There is no type (i.e., NativeEnumerated_t, any integer type - * will do). - * This type may be used when integer range is limited by subtype constraints. - */ -#ifndef _NativeEnumerated_H_ -#define _NativeEnumerated_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern asn_TYPE_descriptor_t asn_DEF_NativeEnumerated; -extern asn_TYPE_operation_t asn_OP_NativeEnumerated; - -xer_type_encoder_f NativeEnumerated_encode_xer; -oer_type_decoder_f NativeEnumerated_decode_oer; -oer_type_encoder_f NativeEnumerated_encode_oer; -per_type_decoder_f NativeEnumerated_decode_uper; -per_type_encoder_f NativeEnumerated_encode_uper; -per_type_decoder_f NativeEnumerated_decode_aper; -per_type_encoder_f NativeEnumerated_encode_aper; - -#define NativeEnumerated_free NativeInteger_free -#define NativeEnumerated_print NativeInteger_print -#define NativeEnumerated_compare NativeInteger_compare -#define NativeEnumerated_random_fill NativeInteger_random_fill -#define NativeEnumerated_constraint asn_generic_no_constraint -#define NativeEnumerated_decode_ber NativeInteger_decode_ber -#define NativeEnumerated_encode_der NativeInteger_encode_der -#define NativeEnumerated_decode_xer NativeInteger_decode_xer - -#ifdef __cplusplus -} -#endif - -#endif /* _NativeEnumerated_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NativeEnumerated_oer.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NativeEnumerated_oer.c deleted file mode 100644 index ee3c189..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NativeEnumerated_oer.c +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -static long -asn__nativeenumerated_convert(const uint8_t *b, const uint8_t *end) { - unsigned long value; - - /* Perform the sign initialization */ - /* Actually value = -(*b >> 7); gains nothing, yet unreadable! */ - if((*b >> 7)) { - value = (unsigned long)(-1); - } else { - value = 0; - } - - /* Conversion engine */ - for(; b < end; b++) { - value = (value << 8) | *b; - } - - return value; -} - -asn_dec_rval_t -NativeEnumerated_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - void **nint_ptr, const void *ptr, size_t size) { - asn_dec_rval_t rval = {RC_OK, 0}; - long *native = (long *)*nint_ptr; - const uint8_t *b = ptr; - - (void)opt_codec_ctx; - (void)constraints; - - if(size < 1) { - ASN__DECODE_STARVED; - } - - if((*b & 0x80) == 0) { - /* - * X.696 (08/2015) #11.2 Short form for Enumerated. - */ - if(!native) { - native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - *native = *b; - rval.consumed = 1; - } else { - /* - * X.696 (08/2015) #11.4 Long form for Enumerated. - */ - size_t length = *b & 0x7f; - const uint8_t *bend; - long value; - - if(length < 1 || length > sizeof(*native)) { - ASN__DECODE_FAILED; - } - if((1 + length) > size) { - ASN__DECODE_STARVED; - } - b++; - bend = b + length; - - value = asn__nativeenumerated_convert(b, bend); - if(value < 0) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - if(specs && specs->field_unsigned) { - ASN__DECODE_FAILED; - } - } - - if(!native) { - native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - *native = value; - - rval.consumed = (1 + length); - } - - return rval; -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -NativeEnumerated_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - const void *sptr, asn_app_consume_bytes_f *cb, - void *app_key) { - asn_enc_rval_t er = {0,0,0}; - long native; - - (void)constraints; - - if(!sptr) ASN__ENCODE_FAILED; - - native = *(const long *)sptr; - - if(native >= 0 && native <= 127) { - /* #11.2 Short form */ - uint8_t b = native; - er.encoded = 1; - if(cb(&b, er.encoded, app_key) < 0) { - ASN__ENCODE_FAILED; - } - ASN__ENCODED_OK(er); - } else { - /* #11.2 Long form */ - uint8_t buf[1 + sizeof(native)]; - uint8_t *b = &buf[sizeof(native)]; /* Last addressable */ - long final_pattern = -1 * (native < 0); - - for(;;) { - *b-- = native; - native >>= 8; - if(native == final_pattern) { - if(final_pattern) { - if((b[1] & 0x80)) break; - } else { - if(!(b[1] & 0x80)) break; - } - } - } - *b = 0x80 | (&buf[sizeof(native)] - b); - er.encoded = 1 + (&buf[sizeof(native)] - b); - if(cb(b, er.encoded, app_key) < 0) { - ASN__ENCODE_FAILED; - } - ASN__ENCODED_OK(er); - } -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NativeInteger.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NativeInteger.c deleted file mode 100644 index 316e872..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NativeInteger.c +++ /dev/null @@ -1,550 +0,0 @@ -/*- - * Copyright (c) 2004, 2005, 2006 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Read the NativeInteger.h for the explanation wrt. differences between - * INTEGER and NativeInteger. - * Basically, both are decoders and encoders of ASN.1 INTEGER type, but this - * implementation deals with the standard (machine-specific) representation - * of them instead of using the platform-independent buffer. - */ -#include -#include - -/* - * NativeInteger basic type description. - */ -static const ber_tlv_tag_t asn_DEF_NativeInteger_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_operation_t asn_OP_NativeInteger = { - NativeInteger_free, - NativeInteger_print, - NativeInteger_compare, - NativeInteger_decode_ber, - NativeInteger_encode_der, - NativeInteger_decode_xer, - NativeInteger_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - NativeInteger_decode_oer, /* OER decoder */ - NativeInteger_encode_oer, /* Canonical OER encoder */ -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - NativeInteger_decode_uper, /* Unaligned PER decoder */ - NativeInteger_encode_uper, /* Unaligned PER encoder */ - NativeInteger_decode_aper, /* Aligned PER decoder */ - NativeInteger_encode_aper, /* Aligned PER encoder */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - NativeInteger_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_NativeInteger = { - "INTEGER", /* The ASN.1 type is still INTEGER */ - "INTEGER", - &asn_OP_NativeInteger, - asn_DEF_NativeInteger_tags, - sizeof(asn_DEF_NativeInteger_tags) / sizeof(asn_DEF_NativeInteger_tags[0]), - asn_DEF_NativeInteger_tags, /* Same as above */ - sizeof(asn_DEF_NativeInteger_tags) / sizeof(asn_DEF_NativeInteger_tags[0]), - { 0, 0, asn_generic_no_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - -/* - * Decode INTEGER type. - */ -asn_dec_rval_t -NativeInteger_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **nint_ptr, - const void *buf_ptr, size_t size, int tag_mode) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - long *native = (long *)*nint_ptr; - asn_dec_rval_t rval; - ber_tlv_len_t length; - - /* - * If the structure is not there, allocate it. - */ - if(native == NULL) { - native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); - if(native == NULL) { - rval.code = RC_FAIL; - rval.consumed = 0; - return rval; - } - } - - ASN_DEBUG("Decoding %s as INTEGER (tm=%d)", - td->name, tag_mode); - - /* - * Check tags. - */ - rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size, - tag_mode, 0, &length, 0); - if(rval.code != RC_OK) - return rval; - - ASN_DEBUG("%s length is %d bytes", td->name, (int)length); - - /* - * Make sure we have this length. - */ - buf_ptr = ((const char *)buf_ptr) + rval.consumed; - size -= rval.consumed; - if(length > (ber_tlv_len_t)size) { - rval.code = RC_WMORE; - rval.consumed = 0; - return rval; - } - - /* - * ASN.1 encoded INTEGER: buf_ptr, length - * Fill the native, at the same time checking for overflow. - * If overflow occured, return with RC_FAIL. - */ - { - INTEGER_t tmp; - union { - const void *constbuf; - void *nonconstbuf; - } unconst_buf; - long l; - - unconst_buf.constbuf = buf_ptr; - tmp.buf = (uint8_t *)unconst_buf.nonconstbuf; - tmp.size = length; - - if((specs&&specs->field_unsigned) - ? asn_INTEGER2ulong(&tmp, (unsigned long *)&l) /* sic */ - : asn_INTEGER2long(&tmp, &l)) { - rval.code = RC_FAIL; - rval.consumed = 0; - return rval; - } - - *native = l; - } - - rval.code = RC_OK; - rval.consumed += length; - - ASN_DEBUG("Took %ld/%ld bytes to encode %s (%ld)", - (long)rval.consumed, (long)length, td->name, (long)*native); - - return rval; -} - -/* - * Encode the NativeInteger using the standard INTEGER type DER encoder. - */ -asn_enc_rval_t -NativeInteger_encode_der(const asn_TYPE_descriptor_t *sd, const void *ptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - unsigned long native = *(const unsigned long *)ptr; /* Disable sign ext. */ - asn_enc_rval_t erval = {0,0,0}; - INTEGER_t tmp; - -#ifdef WORDS_BIGENDIAN /* Opportunistic optimization */ - - tmp.buf = (uint8_t *)&native; - tmp.size = sizeof(native); - -#else /* Works even if WORDS_BIGENDIAN is not set where should've been */ - uint8_t buf[sizeof(native)]; - uint8_t *p; - - /* Prepare a fake INTEGER */ - for(p = buf + sizeof(buf) - 1; p >= buf; p--, native >>= 8) - *p = (uint8_t)native; - - tmp.buf = buf; - tmp.size = sizeof(buf); -#endif /* WORDS_BIGENDIAN */ - - /* Encode fake INTEGER */ - erval = INTEGER_encode_der(sd, &tmp, tag_mode, tag, cb, app_key); - if(erval.structure_ptr == &tmp) { - erval.structure_ptr = ptr; - } - return erval; -} - -/* - * Decode the chunk of XML text encoding INTEGER. - */ -asn_dec_rval_t -NativeInteger_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, - size_t size) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval; - INTEGER_t st; - void *st_ptr = (void *)&st; - long *native = (long *)*sptr; - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - memset(&st, 0, sizeof(st)); - rval = INTEGER_decode_xer(opt_codec_ctx, td, &st_ptr, - opt_mname, buf_ptr, size); - if(rval.code == RC_OK) { - long l; - if((specs&&specs->field_unsigned) - ? asn_INTEGER2ulong(&st, (unsigned long *)&l) /* sic */ - : asn_INTEGER2long(&st, &l)) { - rval.code = RC_FAIL; - rval.consumed = 0; - } else { - *native = l; - } - } else { - /* - * Cannot restart from the middle; - * there is no place to save state in the native type. - * Request a continuation from the very beginning. - */ - rval.consumed = 0; - } - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &st); - return rval; -} - - -asn_enc_rval_t -NativeInteger_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - char scratch[32]; /* Enough for 64-bit int */ - asn_enc_rval_t er = {0,0,0}; - const long *native = (const long *)sptr; - - (void)ilevel; - (void)flags; - - if(!native) ASN__ENCODE_FAILED; - - er.encoded = snprintf(scratch, sizeof(scratch), - (specs && specs->field_unsigned) - ? "%lu" : "%ld", *native); - if(er.encoded <= 0 || (size_t)er.encoded >= sizeof(scratch) - || cb(scratch, er.encoded, app_key) < 0) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -NativeInteger_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval; - long *native = (long *)*sptr; - INTEGER_t tmpint; - void *tmpintptr = &tmpint; - - (void)opt_codec_ctx; - ASN_DEBUG("Decoding NativeInteger %s (UPER)", td->name); - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - memset(&tmpint, 0, sizeof tmpint); - rval = INTEGER_decode_uper(opt_codec_ctx, td, constraints, - &tmpintptr, pd); - if(rval.code == RC_OK) { - if((specs&&specs->field_unsigned) - ? asn_INTEGER2ulong(&tmpint, (unsigned long *)native) - : asn_INTEGER2long(&tmpint, native)) - rval.code = RC_FAIL; - else - ASN_DEBUG("NativeInteger %s got value %ld", - td->name, *native); - } - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - - return rval; -} - -asn_enc_rval_t -NativeInteger_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - long native; - INTEGER_t tmpint; - - if(!sptr) ASN__ENCODE_FAILED; - - native = *(const long *)sptr; - - ASN_DEBUG("Encoding NativeInteger %s %ld (UPER)", td->name, native); - - memset(&tmpint, 0, sizeof(tmpint)); - if((specs&&specs->field_unsigned) - ? asn_ulong2INTEGER(&tmpint, native) - : asn_long2INTEGER(&tmpint, native)) - ASN__ENCODE_FAILED; - er = INTEGER_encode_uper(td, constraints, &tmpint, po); - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - return er; -} - -asn_dec_rval_t -NativeInteger_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval; - long *native = (long *)*sptr; - INTEGER_t tmpint; - void *tmpintptr = &tmpint; - - (void)opt_codec_ctx; - ASN_DEBUG("Decoding NativeInteger %s (APER)", td->name); - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - memset(&tmpint, 0, sizeof tmpint); - rval = INTEGER_decode_aper(opt_codec_ctx, td, constraints, - &tmpintptr, pd); - if(rval.code == RC_OK) { - if((specs&&specs->field_unsigned) - ? asn_INTEGER2ulong(&tmpint, (unsigned long *)native) - : asn_INTEGER2long(&tmpint, native)) - rval.code = RC_FAIL; - else - ASN_DEBUG("NativeInteger %s got value %ld", - td->name, *native); - } - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - - return rval; -} - -asn_enc_rval_t -NativeInteger_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - long native; - INTEGER_t tmpint; - - if(!sptr) ASN__ENCODE_FAILED; - - native = *(const long *)sptr; - - ASN_DEBUG("Encoding NativeInteger %s %ld (APER)", td->name, native); - - memset(&tmpint, 0, sizeof(tmpint)); - if((specs&&specs->field_unsigned) - ? asn_ulong2INTEGER(&tmpint, (unsigned long)native) - : asn_long2INTEGER(&tmpint, native)) - ASN__ENCODE_FAILED; - er = INTEGER_encode_aper(td, constraints, &tmpint, po); - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - return er; -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -/* - * INTEGER specific human-readable output. - */ -int -NativeInteger_print(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - const long *native = (const long *)sptr; - char scratch[32]; /* Enough for 64-bit int */ - int ret; - - (void)td; /* Unused argument */ - (void)ilevel; /* Unused argument */ - - if(native) { - long value = *native; - ret = snprintf(scratch, sizeof(scratch), - (specs && specs->field_unsigned) ? "%lu" : "%ld", value); - assert(ret > 0 && (size_t)ret < sizeof(scratch)); - if(cb(scratch, ret, app_key) < 0) return -1; - if(specs && (value >= 0 || !specs->field_unsigned)) { - const asn_INTEGER_enum_map_t *el = - INTEGER_map_value2enum(specs, value); - if(el) { - if(cb(" (", 2, app_key) < 0) return -1; - if(cb(el->enum_name, el->enum_len, app_key) < 0) return -1; - if(cb(")", 1, app_key) < 0) return -1; - } - } - return 0; - } else { - return (cb("", 8, app_key) < 0) ? -1 : 0; - } -} - -void -NativeInteger_free(const asn_TYPE_descriptor_t *td, void *ptr, - enum asn_struct_free_method method) { - if(!td || !ptr) - return; - - ASN_DEBUG("Freeing %s as INTEGER (%d, %p, Native)", - td->name, method, ptr); - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(ptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(ptr, 0, sizeof(long)); - break; - } -} - -int -NativeInteger_compare(const asn_TYPE_descriptor_t *td, const void *aptr, const void *bptr) { - (void)td; - - if(aptr && bptr) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - if(specs && specs->field_unsigned) { - const unsigned long *a = aptr; - const unsigned long *b = bptr; - if(*a < *b) { - return -1; - } else if(*a > *b) { - return 1; - } else { - return 0; - } - } else { - const long *a = aptr; - const long *b = bptr; - if(*a < *b) { - return -1; - } else if(*a > *b) { - return 1; - } else { - return 0; - } - } - } else if(!aptr) { - return -1; - } else { - return 1; - } -} - -asn_random_fill_result_t -NativeInteger_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - long *st = *sptr; - const asn_INTEGER_enum_map_t *emap; - size_t emap_len; - intmax_t value; - int find_inside_map; - - if(max_length == 0) return result_skipped; - - if(st == NULL) { - st = (long *)CALLOC(1, sizeof(*st)); - if(st == NULL) { - return result_failed; - } - } - - if(specs) { - emap = specs->value2enum; - emap_len = specs->map_count; - if(specs->strict_enumeration) { - find_inside_map = emap_len > 0; - } else { - find_inside_map = emap_len ? asn_random_between(0, 1) : 0; - } - } else { - emap = 0; - emap_len = 0; - find_inside_map = 0; - } - - if(find_inside_map) { - assert(emap_len > 0); - value = emap[asn_random_between(0, emap_len - 1)].nat_value; - } else { - const asn_per_constraints_t *ct; - - static const long variants[] = { - -65536, -65535, -65534, -32769, -32768, -32767, -16385, -16384, - -16383, -257, -256, -255, -254, -129, -128, -127, - -126, -1, 0, 1, 126, 127, 128, 129, - 254, 255, 256, 257, 16383, 16384, 16385, 32767, - 32768, 32769, 65534, 65535, 65536, 65537}; - if(specs && specs->field_unsigned) { - assert(variants[18] == 0); - value = variants[asn_random_between( - 18, sizeof(variants) / sizeof(variants[0]) - 1)]; - } else { - value = variants[asn_random_between( - 0, sizeof(variants) / sizeof(variants[0]) - 1)]; - } - - if(!constraints) constraints = &td->encoding_constraints; - ct = constraints ? constraints->per_constraints : 0; - if(ct && (ct->value.flags & APC_CONSTRAINED)) { - if(value < ct->value.lower_bound || value > ct->value.upper_bound) { - value = asn_random_between(ct->value.lower_bound, - ct->value.upper_bound); - } - } - } - - *sptr = st; - *st = value; - return result_ok; -} diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NativeInteger.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NativeInteger.h deleted file mode 100644 index c74406a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NativeInteger.h +++ /dev/null @@ -1,46 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * This type differs from the standard INTEGER in that it is modelled using - * the fixed machine type (long, int, short), so it can hold only values of - * limited length. There is no type (i.e., NativeInteger_t, any integer type - * will do). - * This type may be used when integer range is limited by subtype constraints. - */ -#ifndef _NativeInteger_H_ -#define _NativeInteger_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern asn_TYPE_descriptor_t asn_DEF_NativeInteger; -extern asn_TYPE_operation_t asn_OP_NativeInteger; - -asn_struct_free_f NativeInteger_free; -asn_struct_print_f NativeInteger_print; -asn_struct_compare_f NativeInteger_compare; -ber_type_decoder_f NativeInteger_decode_ber; -der_type_encoder_f NativeInteger_encode_der; -xer_type_decoder_f NativeInteger_decode_xer; -xer_type_encoder_f NativeInteger_encode_xer; -oer_type_decoder_f NativeInteger_decode_oer; -oer_type_encoder_f NativeInteger_encode_oer; -per_type_decoder_f NativeInteger_decode_uper; -per_type_encoder_f NativeInteger_encode_uper; -per_type_decoder_f NativeInteger_decode_aper; -per_type_encoder_f NativeInteger_encode_aper; -asn_random_fill_f NativeInteger_random_fill; - -#define NativeInteger_constraint asn_generic_no_constraint - -#ifdef __cplusplus -} -#endif - -#endif /* _NativeInteger_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NativeInteger_oer.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NativeInteger_oer.c deleted file mode 100644 index 411413a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NativeInteger_oer.c +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -asn_dec_rval_t -NativeInteger_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - void **nint_ptr, const void *ptr, size_t size) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval = {RC_OK, 0}; - long *native = (long *)*nint_ptr; - INTEGER_t tmpint; - INTEGER_t *tmpintptr = &tmpint; - - memset(&tmpint, 0, sizeof(tmpint)); - - if(!native) { - native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - /* - * OPTIMIZATION: Encode directly rather than passing through INTEGER. - * Saves a memory allocation. - */ - rval = INTEGER_decode_oer(opt_codec_ctx, td, constraints, - (void **)&tmpintptr, ptr, size); - if(rval.code != RC_OK) { - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - return rval; - } - - if(specs && specs->field_unsigned) { - unsigned long ul; - int ok = asn_INTEGER2ulong(&tmpint, &ul) == 0; - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - if(ok) { - *native = ul; - } else { - rval.code = RC_FAIL; - return rval; - } - } else { - long l; - int ok = asn_INTEGER2long(&tmpint, &l) == 0; - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - if(ok) { - *native = l; - } else { - rval.code = RC_FAIL; - return rval; - } - } - - return rval; -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -NativeInteger_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - const void *sptr, asn_app_consume_bytes_f *cb, - void *app_key) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - INTEGER_t tmpint; - long native; - - if(!sptr) ASN__ENCODE_FAILED; - - native = *(const long *)sptr; - memset(&tmpint, 0, sizeof(tmpint)); - - ASN_DEBUG("Encoding %s %ld as NativeInteger", td ? td->name : "", native); - - if((specs && specs->field_unsigned) ? asn_ulong2INTEGER(&tmpint, native) - : asn_long2INTEGER(&tmpint, native)) { - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - ASN__ENCODE_FAILED; - } else { - asn_enc_rval_t er = - INTEGER_encode_oer(td, constraints, &tmpint, cb, app_key); - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - return er; - } -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/OCTET_STRING.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/OCTET_STRING.c deleted file mode 100644 index ae34c96..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/OCTET_STRING.c +++ /dev/null @@ -1,2411 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include /* for .bits_unused member */ -#include - -/* - * OCTET STRING basic type description. - */ -static const ber_tlv_tag_t asn_DEF_OCTET_STRING_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_OCTET_STRING_specifics_t asn_SPC_OCTET_STRING_specs = { - sizeof(OCTET_STRING_t), - offsetof(OCTET_STRING_t, _asn_ctx), - ASN_OSUBV_STR -}; - -asn_TYPE_operation_t asn_OP_OCTET_STRING = { - OCTET_STRING_free, - OCTET_STRING_print, /* OCTET STRING generally means a non-ascii sequence */ - OCTET_STRING_compare, - OCTET_STRING_decode_ber, - OCTET_STRING_encode_der, - OCTET_STRING_decode_xer_hex, - OCTET_STRING_encode_xer, -#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, /* Unaligned PER decoder */ - OCTET_STRING_encode_uper, /* Unaligned PER encoder */ - OCTET_STRING_decode_aper, /* Aligned PER decoder */ - OCTET_STRING_encode_aper, /* Aligned PER encoder */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - OCTET_STRING_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_OCTET_STRING = { - "OCTET STRING", /* Canonical name */ - "OCTET_STRING", /* XML tag name */ - &asn_OP_OCTET_STRING, - asn_DEF_OCTET_STRING_tags, - sizeof(asn_DEF_OCTET_STRING_tags) - / sizeof(asn_DEF_OCTET_STRING_tags[0]), - asn_DEF_OCTET_STRING_tags, /* Same as above */ - sizeof(asn_DEF_OCTET_STRING_tags) - / sizeof(asn_DEF_OCTET_STRING_tags[0]), - { 0, 0, asn_generic_no_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs -}; - -#undef _CH_PHASE -#undef NEXT_PHASE -#undef PREV_PHASE -#define _CH_PHASE(ctx, inc) do { \ - if(ctx->phase == 0) \ - ctx->context = 0; \ - ctx->phase += inc; \ - } while(0) -#define NEXT_PHASE(ctx) _CH_PHASE(ctx, +1) -#define PREV_PHASE(ctx) _CH_PHASE(ctx, -1) - -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = (num_bytes); \ - buf_ptr = ((const char *)buf_ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -#undef RETURN -#define RETURN(_code) do { \ - asn_dec_rval_t tmprval; \ - tmprval.code = _code; \ - tmprval.consumed = consumed_myself; \ - return tmprval; \ - } while(0) - -#undef APPEND -#define APPEND(bufptr, bufsize) do { \ - size_t _bs = (bufsize); /* Append size */ \ - size_t _ns = ctx->context; /* Allocated now */ \ - size_t _es = st->size + _bs; /* Expected size */ \ - /* int is really a typeof(st->size): */ \ - if((int)_es < 0) RETURN(RC_FAIL); \ - if(_ns <= _es) { \ - void *ptr; \ - /* Be nice and round to the memory allocator */ \ - do { _ns = _ns ? _ns << 1 : 16; } \ - while(_ns <= _es); \ - /* int is really a typeof(st->size): */ \ - if((int)_ns < 0) RETURN(RC_FAIL); \ - ptr = REALLOC(st->buf, _ns); \ - if(ptr) { \ - st->buf = (uint8_t *)ptr; \ - ctx->context = _ns; \ - } else { \ - RETURN(RC_FAIL); \ - } \ - ASN_DEBUG("Reallocating into %ld", (long)_ns); \ - } \ - memcpy(st->buf + st->size, bufptr, _bs); \ - /* Convenient nul-termination */ \ - st->buf[_es] = '\0'; \ - st->size = _es; \ - } while(0) - -/* - * The main reason why ASN.1 is still alive is that too much time and effort - * is necessary for learning it more or less adequately, thus creating a gut - * necessity to demonstrate that aquired skill everywhere afterwards. - * No, I am not going to explain what the following stuff is. - */ -struct _stack_el { - ber_tlv_len_t left; /* What's left to read (or -1) */ - ber_tlv_len_t got; /* What was actually processed */ - unsigned cont_level; /* Depth of subcontainment */ - int want_nulls; /* Want null "end of content" octets? */ - int bits_chopped; /* Flag in BIT STRING mode */ - ber_tlv_tag_t tag; /* For debugging purposes */ - struct _stack_el *prev; - struct _stack_el *next; -}; -struct _stack { - struct _stack_el *tail; - struct _stack_el *cur_ptr; -}; - -static struct _stack_el * -OS__add_stack_el(struct _stack *st) { - struct _stack_el *nel; - - /* - * Reuse the old stack frame or allocate a new one. - */ - if(st->cur_ptr && st->cur_ptr->next) { - nel = st->cur_ptr->next; - nel->bits_chopped = 0; - nel->got = 0; - /* Retain the nel->cont_level, it's correct. */ - } else { - nel = (struct _stack_el *)CALLOC(1, sizeof(struct _stack_el)); - if(nel == NULL) - return NULL; - - if(st->tail) { - /* Increase a subcontainment depth */ - nel->cont_level = st->tail->cont_level + 1; - st->tail->next = nel; - } - nel->prev = st->tail; - st->tail = nel; - } - - st->cur_ptr = nel; - - return nel; -} - -static struct _stack * -_new_stack(void) { - return (struct _stack *)CALLOC(1, sizeof(struct _stack)); -} - -/* - * Decode OCTET STRING type. - */ -asn_dec_rval_t -OCTET_STRING_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const void *buf_ptr, size_t size, int tag_mode) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - BIT_STRING_t *st = (BIT_STRING_t *)*sptr; - asn_dec_rval_t rval; - asn_struct_ctx_t *ctx; - ssize_t consumed_myself = 0; - struct _stack *stck; /* Expectations stack structure */ - struct _stack_el *sel = 0; /* Stack element */ - int tlv_constr; - enum asn_OS_Subvariant type_variant = specs->subvariant; - - ASN_DEBUG("Decoding %s as %s (frame %ld)", - td->name, - (type_variant == ASN_OSUBV_STR) ? - "OCTET STRING" : "OS-SpecialCase", - (long)size); - - /* - * Create the string if does not exist. - */ - if(st == NULL) { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(st == NULL) RETURN(RC_FAIL); - } - - /* Restore parsing context */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - switch(ctx->phase) { - case 0: - /* - * Check tags. - */ - rval = ber_check_tags(opt_codec_ctx, td, ctx, - buf_ptr, size, tag_mode, -1, - &ctx->left, &tlv_constr); - if(rval.code != RC_OK) - return rval; - - if(tlv_constr) { - /* - * Complex operation, requires stack of expectations. - */ - ctx->ptr = _new_stack(); - if(!ctx->ptr) { - RETURN(RC_FAIL); - } - } else { - /* - * Jump into stackless primitive decoding. - */ - _CH_PHASE(ctx, 3); - if(type_variant == ASN_OSUBV_ANY && tag_mode != 1) - APPEND(buf_ptr, rval.consumed); - ADVANCE(rval.consumed); - goto phase3; - } - - NEXT_PHASE(ctx); - /* Fall through */ - case 1: - phase1: - /* - * Fill the stack with expectations. - */ - stck = (struct _stack *)ctx->ptr; - sel = stck->cur_ptr; - do { - ber_tlv_tag_t tlv_tag; - ber_tlv_len_t tlv_len; - ber_tlv_tag_t expected_tag; - ssize_t tl, ll, tlvl; - /* This one works even if (sel->left == -1) */ - size_t Left = ((!sel||(size_t)sel->left >= size) - ?size:(size_t)sel->left); - - - ASN_DEBUG("%p, s->l=%ld, s->wn=%ld, s->g=%ld\n", (void *)sel, - (long)(sel?sel->left:0), - (long)(sel?sel->want_nulls:0), - (long)(sel?sel->got:0) - ); - if(sel && sel->left <= 0 && sel->want_nulls == 0) { - if(sel->prev) { - struct _stack_el *prev = sel->prev; - if(prev->left != -1) { - if(prev->left < sel->got) - RETURN(RC_FAIL); - prev->left -= sel->got; - } - prev->got += sel->got; - sel = stck->cur_ptr = prev; - if(!sel) break; - tlv_constr = 1; - continue; - } else { - sel = stck->cur_ptr = 0; - break; /* Nothing to wait */ - } - } - - tl = ber_fetch_tag(buf_ptr, Left, &tlv_tag); - ASN_DEBUG("fetch tag(size=%ld,L=%ld), %sstack, left=%ld, wn=%ld, tl=%ld", - (long)size, (long)Left, sel?"":"!", - (long)(sel?sel->left:0), - (long)(sel?sel->want_nulls:0), - (long)tl); - switch(tl) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - - tlv_constr = BER_TLV_CONSTRUCTED(buf_ptr); - - ll = ber_fetch_length(tlv_constr, - (const char *)buf_ptr + tl,Left - tl,&tlv_len); - ASN_DEBUG("Got tag=%s, tc=%d, left=%ld, tl=%ld, len=%ld, ll=%ld", - ber_tlv_tag_string(tlv_tag), tlv_constr, - (long)Left, (long)tl, (long)tlv_len, (long)ll); - switch(ll) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - - if(sel && sel->want_nulls - && ((const uint8_t *)buf_ptr)[0] == 0 - && ((const uint8_t *)buf_ptr)[1] == 0) - { - - ASN_DEBUG("Eat EOC; wn=%d--", sel->want_nulls); - - if(type_variant == ASN_OSUBV_ANY - && (tag_mode != 1 || sel->cont_level)) - APPEND("\0\0", 2); - - ADVANCE(2); - sel->got += 2; - if(sel->left != -1) { - sel->left -= 2; /* assert(sel->left >= 2) */ - } - - sel->want_nulls--; - if(sel->want_nulls == 0) { - /* Move to the next expectation */ - sel->left = 0; - tlv_constr = 1; - } - - continue; - } - - /* - * Set up expected tags, - * depending on ASN.1 type being decoded. - */ - switch(type_variant) { - case ASN_OSUBV_BIT: - /* X.690: 8.6.4.1, NOTE 2 */ - /* Fall through */ - case ASN_OSUBV_STR: - default: - if(sel) { - unsigned level = sel->cont_level; - if(level < td->all_tags_count) { - expected_tag = td->all_tags[level]; - break; - } else if(td->all_tags_count) { - expected_tag = td->all_tags - [td->all_tags_count - 1]; - break; - } - /* else, Fall through */ - } - /* Fall through */ - case ASN_OSUBV_ANY: - expected_tag = tlv_tag; - break; - } - - - if(tlv_tag != expected_tag) { - char buf[2][32]; - ber_tlv_tag_snprint(tlv_tag, - buf[0], sizeof(buf[0])); - ber_tlv_tag_snprint(td->tags[td->tags_count-1], - buf[1], sizeof(buf[1])); - ASN_DEBUG("Tag does not match expectation: %s != %s", - buf[0], buf[1]); - RETURN(RC_FAIL); - } - - tlvl = tl + ll; /* Combined length of T and L encoding */ - if((tlv_len + tlvl) < 0) { - /* tlv_len value is too big */ - ASN_DEBUG("TLV encoding + length (%ld) is too big", - (long)tlv_len); - RETURN(RC_FAIL); - } - - /* - * Append a new expectation. - */ - sel = OS__add_stack_el(stck); - if(!sel) RETURN(RC_FAIL); - - sel->tag = tlv_tag; - - sel->want_nulls = (tlv_len==-1); - if(sel->prev && sel->prev->left != -1) { - /* Check that the parent frame is big enough */ - if(sel->prev->left < tlvl + (tlv_len==-1?0:tlv_len)) - RETURN(RC_FAIL); - if(tlv_len == -1) - sel->left = sel->prev->left - tlvl; - else - sel->left = tlv_len; - } else { - sel->left = tlv_len; - } - if(type_variant == ASN_OSUBV_ANY - && (tag_mode != 1 || sel->cont_level)) - APPEND(buf_ptr, tlvl); - sel->got += tlvl; - ADVANCE(tlvl); - - ASN_DEBUG("+EXPECT2 got=%ld left=%ld, wn=%d, clvl=%u", - (long)sel->got, (long)sel->left, - sel->want_nulls, sel->cont_level); - - } while(tlv_constr); - if(sel == NULL) { - /* Finished operation, "phase out" */ - ASN_DEBUG("Phase out"); - _CH_PHASE(ctx, +3); - break; - } - - NEXT_PHASE(ctx); - /* Fall through */ - case 2: - stck = (struct _stack *)ctx->ptr; - sel = stck->cur_ptr; - ASN_DEBUG("Phase 2: Need %ld bytes, size=%ld, alrg=%ld, wn=%d", - (long)sel->left, (long)size, (long)sel->got, - sel->want_nulls); - { - ber_tlv_len_t len; - - assert(sel->left >= 0); - - len = ((ber_tlv_len_t)size < sel->left) - ? (ber_tlv_len_t)size : sel->left; - if(len > 0) { - if(type_variant == ASN_OSUBV_BIT - && sel->bits_chopped == 0) { - /* Put the unused-bits-octet away */ - st->bits_unused = *(const uint8_t *)buf_ptr; - APPEND(((const char *)buf_ptr+1), (len - 1)); - sel->bits_chopped = 1; - } else { - APPEND(buf_ptr, len); - } - ADVANCE(len); - sel->left -= len; - sel->got += len; - } - - if(sel->left) { - ASN_DEBUG("OS left %ld, size = %ld, wn=%d\n", - (long)sel->left, (long)size, sel->want_nulls); - RETURN(RC_WMORE); - } - - PREV_PHASE(ctx); - goto phase1; - } - break; - case 3: - phase3: - /* - * Primitive form, no stack required. - */ - assert(ctx->left >= 0); - - if(size < (size_t)ctx->left) { - if(!size) RETURN(RC_WMORE); - if(type_variant == ASN_OSUBV_BIT && !ctx->context) { - st->bits_unused = *(const uint8_t *)buf_ptr; - ctx->left--; - ADVANCE(1); - } - APPEND(buf_ptr, size); - assert(ctx->context > 0); - ctx->left -= size; - ADVANCE(size); - RETURN(RC_WMORE); - } else { - if(type_variant == ASN_OSUBV_BIT - && !ctx->context && ctx->left) { - st->bits_unused = *(const uint8_t *)buf_ptr; - ctx->left--; - ADVANCE(1); - } - APPEND(buf_ptr, ctx->left); - ADVANCE(ctx->left); - ctx->left = 0; - - NEXT_PHASE(ctx); - } - break; - } - - if(sel) { - ASN_DEBUG("3sel p=%p, wn=%d, l=%ld, g=%ld, size=%ld", - (void *)sel->prev, sel->want_nulls, - (long)sel->left, (long)sel->got, (long)size); - if(sel->prev || sel->want_nulls > 1 || sel->left > 0) { - RETURN(RC_WMORE); - } - } - - /* - * BIT STRING-specific processing. - */ - if(type_variant == ASN_OSUBV_BIT) { - if(st->size) { - if(st->bits_unused < 0 || st->bits_unused > 7) { - RETURN(RC_FAIL); - } - /* Finalize BIT STRING: zero out unused bits. */ - st->buf[st->size-1] &= 0xff << st->bits_unused; - } else { - if(st->bits_unused) { - RETURN(RC_FAIL); - } - } - } - - ASN_DEBUG("Took %ld bytes to encode %s: [%s]:%ld", - (long)consumed_myself, td->name, - (type_variant == ASN_OSUBV_STR) ? (char *)st->buf : "", - (long)st->size); - - - RETURN(RC_OK); -} - -/* - * Encode OCTET STRING type using DER. - */ -asn_enc_rval_t -OCTET_STRING_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t er = { 0, 0, 0 }; - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - enum asn_OS_Subvariant type_variant = specs->subvariant; - int fix_last_byte = 0; - - ASN_DEBUG("%s %s as OCTET STRING", - cb?"Estimating":"Encoding", td->name); - - /* - * Write tags. - */ - if(type_variant != ASN_OSUBV_ANY || tag_mode == 1) { - er.encoded = der_write_tags(td, - (type_variant == ASN_OSUBV_BIT) + st->size, - tag_mode, type_variant == ASN_OSUBV_ANY, tag, - cb, app_key); - if(er.encoded == -1) { - er.failed_type = td; - er.structure_ptr = sptr; - return er; - } - } else { - /* Disallow: [] IMPLICIT ANY */ - assert(type_variant != ASN_OSUBV_ANY || tag_mode != -1); - er.encoded = 0; - } - - if(!cb) { - er.encoded += (type_variant == ASN_OSUBV_BIT) + st->size; - ASN__ENCODED_OK(er); - } - - /* - * Prepare to deal with the last octet of BIT STRING. - */ - if(type_variant == ASN_OSUBV_BIT) { - uint8_t b = st->bits_unused & 0x07; - if(b && st->size) fix_last_byte = 1; - ASN__CALLBACK(&b, 1); - } - - /* Invoke callback for the main part of the buffer */ - ASN__CALLBACK(st->buf, st->size - fix_last_byte); - - /* The last octet should be stripped off the unused bits */ - if(fix_last_byte) { - uint8_t b = st->buf[st->size-1] & (0xff << st->bits_unused); - ASN__CALLBACK(&b, 1); - } - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -asn_enc_rval_t -OCTET_STRING_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const char * const h2c = "0123456789ABCDEF"; - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - asn_enc_rval_t er = { 0, 0, 0 }; - char scratch[16 * 3 + 4]; - char *p = scratch; - uint8_t *buf; - uint8_t *end; - size_t i; - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - er.encoded = 0; - - /* - * Dump the contents of the buffer in hexadecimal. - */ - buf = st->buf; - end = buf + st->size; - if(flags & XER_F_CANONICAL) { - char *scend = scratch + (sizeof(scratch) - 2); - for(; buf < end; buf++) { - if(p >= scend) { - ASN__CALLBACK(scratch, p - scratch); - p = scratch; - } - *p++ = h2c[(*buf >> 4) & 0x0F]; - *p++ = h2c[*buf & 0x0F]; - } - - ASN__CALLBACK(scratch, p-scratch); /* Dump the rest */ - } else { - for(i = 0; buf < end; buf++, i++) { - if(!(i % 16) && (i || st->size > 16)) { - ASN__CALLBACK(scratch, p-scratch); - p = scratch; - ASN__TEXT_INDENT(1, ilevel); - } - *p++ = h2c[(*buf >> 4) & 0x0F]; - *p++ = h2c[*buf & 0x0F]; - *p++ = 0x20; - } - if(p - scratch) { - p--; /* Remove the tail space */ - ASN__CALLBACK(scratch, p-scratch); /* Dump the rest */ - if(st->size > 16) - ASN__TEXT_INDENT(1, ilevel-1); - } - } - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -static const struct OCTET_STRING__xer_escape_table_s { - const char *string; - int size; -} OCTET_STRING__xer_escape_table[] = { -#define OSXET(s) { s, sizeof(s) - 1 } - OSXET("\074\156\165\154\057\076"), /* */ - OSXET("\074\163\157\150\057\076"), /* */ - OSXET("\074\163\164\170\057\076"), /* */ - OSXET("\074\145\164\170\057\076"), /* */ - OSXET("\074\145\157\164\057\076"), /* */ - OSXET("\074\145\156\161\057\076"), /* */ - OSXET("\074\141\143\153\057\076"), /* */ - OSXET("\074\142\145\154\057\076"), /* */ - OSXET("\074\142\163\057\076"), /* */ - OSXET("\011"), /* \t */ - OSXET("\012"), /* \n */ - OSXET("\074\166\164\057\076"), /* */ - OSXET("\074\146\146\057\076"), /* */ - OSXET("\015"), /* \r */ - OSXET("\074\163\157\057\076"), /* */ - OSXET("\074\163\151\057\076"), /* */ - OSXET("\074\144\154\145\057\076"), /* */ - OSXET("\074\144\143\061\057\076"), /* */ - OSXET("\074\144\143\062\057\076"), /* */ - OSXET("\074\144\143\063\057\076"), /* */ - OSXET("\074\144\143\064\057\076"), /* */ - OSXET("\074\156\141\153\057\076"), /* */ - OSXET("\074\163\171\156\057\076"), /* */ - OSXET("\074\145\164\142\057\076"), /* */ - OSXET("\074\143\141\156\057\076"), /* */ - OSXET("\074\145\155\057\076"), /* */ - OSXET("\074\163\165\142\057\076"), /* */ - OSXET("\074\145\163\143\057\076"), /* */ - OSXET("\074\151\163\064\057\076"), /* */ - OSXET("\074\151\163\063\057\076"), /* */ - OSXET("\074\151\163\062\057\076"), /* */ - OSXET("\074\151\163\061\057\076"), /* */ - { 0, 0 }, /* " " */ - { 0, 0 }, /* ! */ - { 0, 0 }, /* \" */ - { 0, 0 }, /* # */ - { 0, 0 }, /* $ */ - { 0, 0 }, /* % */ - OSXET("\046\141\155\160\073"), /* & */ - { 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},{0,0}, /* 01234567 */ - {0,0},{0,0},{0,0},{0,0}, /* 89:; */ - OSXET("\046\154\164\073"), /* < */ - { 0, 0 }, /* = */ - OSXET("\046\147\164\073"), /* > */ -}; - -static int -OS__check_escaped_control_char(const void *buf, int size) { - size_t i; - /* - * Inefficient algorithm which translates the escape sequences - * defined above into characters. Returns -1 if not found. - * TODO: replace by a faster algorithm (bsearch(), hash or - * nested table lookups). - */ - for(i = 0; i < 32 /* Don't spend time on the bottom half */; i++) { - const struct OCTET_STRING__xer_escape_table_s *el; - el = &OCTET_STRING__xer_escape_table[i]; - if(el->size == size && memcmp(buf, el->string, size) == 0) - return i; - } - return -1; -} - -static int -OCTET_STRING__handle_control_chars(void *struct_ptr, const void *chunk_buf, size_t chunk_size) { - /* - * This might be one of the escape sequences - * for control characters. Check it out. - * #11.15.5 - */ - int control_char = OS__check_escaped_control_char(chunk_buf,chunk_size); - if(control_char >= 0) { - OCTET_STRING_t *st = (OCTET_STRING_t *)struct_ptr; - void *p = REALLOC(st->buf, st->size + 2); - if(p) { - st->buf = (uint8_t *)p; - st->buf[st->size++] = control_char; - st->buf[st->size] = '\0'; /* nul-termination */ - return 0; - } - } - - return -1; /* No, it's not */ -} - -asn_enc_rval_t -OCTET_STRING_encode_xer_utf8(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - asn_enc_rval_t er = { 0, 0, 0 }; - uint8_t *buf, *end; - uint8_t *ss; /* Sequence start */ - ssize_t encoded_len = 0; - - (void)ilevel; /* Unused argument */ - (void)flags; /* Unused argument */ - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - buf = st->buf; - end = buf + st->size; - for(ss = buf; buf < end; buf++) { - unsigned int ch = *buf; - int s_len; /* Special encoding sequence length */ - - /* - * Escape certain characters: X.680/11.15 - */ - if(ch < sizeof(OCTET_STRING__xer_escape_table) - /sizeof(OCTET_STRING__xer_escape_table[0]) - && (s_len = OCTET_STRING__xer_escape_table[ch].size)) { - if(((buf - ss) && cb(ss, buf - ss, app_key) < 0) - || cb(OCTET_STRING__xer_escape_table[ch].string, s_len, - app_key) < 0) - ASN__ENCODE_FAILED; - encoded_len += (buf - ss) + s_len; - ss = buf + 1; - } - } - - encoded_len += (buf - ss); - if((buf - ss) && cb(ss, buf - ss, app_key) < 0) - ASN__ENCODE_FAILED; - - er.encoded = encoded_len; - ASN__ENCODED_OK(er); -} - -/* - * Convert from hexadecimal format (cstring): "AB CD EF" - */ -static ssize_t OCTET_STRING__convert_hexadecimal(void *sptr, const void *chunk_buf, size_t chunk_size, int have_more) { - OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; - const char *chunk_stop = (const char *)chunk_buf; - const char *p = chunk_stop; - const char *pend = p + chunk_size; - unsigned int clv = 0; - int half = 0; /* Half bit */ - uint8_t *buf; - - /* Reallocate buffer according to high cap estimation */ - size_t new_size = st->size + (chunk_size + 1) / 2; - void *nptr = REALLOC(st->buf, new_size + 1); - if(!nptr) return -1; - st->buf = (uint8_t *)nptr; - buf = st->buf + st->size; - - /* - * If something like " a b c " appears here, the " a b":3 will be - * converted, and the rest skipped. That is, unless buf_size is greater - * than chunk_size, then it'll be equivalent to "ABC0". - */ - for(; p < pend; p++) { - int ch = *(const unsigned char *)p; - switch(ch) { - case 0x09: case 0x0a: case 0x0c: case 0x0d: - case 0x20: - /* Ignore whitespace */ - continue; - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: /*01234*/ - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: /*56789*/ - clv = (clv << 4) + (ch - 0x30); - break; - case 0x41: case 0x42: case 0x43: /* ABC */ - case 0x44: case 0x45: case 0x46: /* DEF */ - clv = (clv << 4) + (ch - 0x41 + 10); - break; - case 0x61: case 0x62: case 0x63: /* abc */ - case 0x64: case 0x65: case 0x66: /* def */ - clv = (clv << 4) + (ch - 0x61 + 10); - break; - default: - *buf = 0; /* JIC */ - return -1; - } - if(half++) { - half = 0; - *buf++ = clv; - chunk_stop = p + 1; - } - } - - /* - * Check partial decoding. - */ - if(half) { - if(have_more) { - /* - * Partial specification is fine, - * because no more more PXER_TEXT data is available. - */ - *buf++ = clv << 4; - chunk_stop = p; - } - } else { - chunk_stop = p; - } - - st->size = buf - st->buf; /* Adjust the buffer size */ - assert(st->size <= new_size); - st->buf[st->size] = 0; /* Courtesy termination */ - - return (chunk_stop - (const char *)chunk_buf); /* Converted size */ -} - -/* - * Convert from binary format: "00101011101" - */ -static ssize_t OCTET_STRING__convert_binary(void *sptr, const void *chunk_buf, size_t chunk_size, int have_more) { - BIT_STRING_t *st = (BIT_STRING_t *)sptr; - const char *p = (const char *)chunk_buf; - const char *pend = p + chunk_size; - int bits_unused = st->bits_unused & 0x7; - uint8_t *buf; - - /* Reallocate buffer according to high cap estimation */ - size_t new_size = st->size + (chunk_size + 7) / 8; - void *nptr = REALLOC(st->buf, new_size + 1); - if(!nptr) return -1; - st->buf = (uint8_t *)nptr; - buf = st->buf + st->size; - - (void)have_more; - - if(bits_unused == 0) - bits_unused = 8; - else if(st->size) - buf--; - - /* - * Convert series of 0 and 1 into the octet string. - */ - for(; p < pend; p++) { - int ch = *(const unsigned char *)p; - switch(ch) { - case 0x09: case 0x0a: case 0x0c: case 0x0d: - case 0x20: - /* Ignore whitespace */ - break; - case 0x30: - case 0x31: - if(bits_unused-- <= 0) { - *++buf = 0; /* Clean the cell */ - bits_unused = 7; - } - *buf |= (ch&1) << bits_unused; - break; - default: - st->bits_unused = bits_unused; - return -1; - } - } - - if(bits_unused == 8) { - st->size = buf - st->buf; - st->bits_unused = 0; - } else { - st->size = buf - st->buf + 1; - st->bits_unused = bits_unused; - } - - assert(st->size <= new_size); - st->buf[st->size] = 0; /* Courtesy termination */ - - return chunk_size; /* Converted in full */ -} - -/* - * Something like strtod(), but with stricter rules. - */ -static int -OS__strtoent(int base, const char *buf, const char *end, int32_t *ret_value) { - const int32_t last_unicode_codepoint = 0x10ffff; - int32_t val = 0; - const char *p; - - for(p = buf; p < end; p++) { - int ch = *p; - - switch(ch) { - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: /*01234*/ - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: /*56789*/ - val = val * base + (ch - 0x30); - break; - case 0x41: case 0x42: case 0x43: /* ABC */ - case 0x44: case 0x45: case 0x46: /* DEF */ - val = val * base + (ch - 0x41 + 10); - break; - case 0x61: case 0x62: case 0x63: /* abc */ - case 0x64: case 0x65: case 0x66: /* def */ - val = val * base + (ch - 0x61 + 10); - break; - case 0x3b: /* ';' */ - *ret_value = val; - return (p - buf) + 1; - default: - return -1; /* Character set error */ - } - - /* Value exceeds the Unicode range. */ - if(val > last_unicode_codepoint) { - return -1; - } - } - - *ret_value = -1; - return (p - buf); -} - -/* - * Convert from the plain UTF-8 format, expanding entity references: "2 < 3" - */ -static ssize_t -OCTET_STRING__convert_entrefs(void *sptr, const void *chunk_buf, - size_t chunk_size, int have_more) { - OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; - const char *p = (const char *)chunk_buf; - const char *pend = p + chunk_size; - uint8_t *buf; - - /* Reallocate buffer */ - size_t new_size = st->size + chunk_size; - void *nptr = REALLOC(st->buf, new_size + 1); - if(!nptr) return -1; - st->buf = (uint8_t *)nptr; - buf = st->buf + st->size; - - /* - * Convert series of 0 and 1 into the octet string. - */ - for(; p < pend; p++) { - int ch = *(const unsigned char *)p; - int len; /* Length of the rest of the chunk */ - - if(ch != 0x26 /* '&' */) { - *buf++ = ch; - continue; /* That was easy... */ - } - - /* - * Process entity reference. - */ - len = chunk_size - (p - (const char *)chunk_buf); - if(len == 1 /* "&" */) goto want_more; - if(p[1] == 0x23 /* '#' */) { - const char *pval; /* Pointer to start of digits */ - int32_t val = 0; /* Entity reference value */ - int base; - - if(len == 2 /* "&#" */) goto want_more; - if(p[2] == 0x78 /* 'x' */) - pval = p + 3, base = 16; - else - pval = p + 2, base = 10; - len = OS__strtoent(base, pval, p + len, &val); - if(len == -1) { - /* Invalid charset. Just copy verbatim. */ - *buf++ = ch; - continue; - } - if(!len || pval[len-1] != 0x3b) goto want_more; - assert(val > 0); - p += (pval - p) + len - 1; /* Advance past entref */ - - if(val < 0x80) { - *buf++ = (char)val; - } else if(val < 0x800) { - *buf++ = 0xc0 | ((val >> 6)); - *buf++ = 0x80 | ((val & 0x3f)); - } else if(val < 0x10000) { - *buf++ = 0xe0 | ((val >> 12)); - *buf++ = 0x80 | ((val >> 6) & 0x3f); - *buf++ = 0x80 | ((val & 0x3f)); - } else if(val < 0x200000) { - *buf++ = 0xf0 | ((val >> 18)); - *buf++ = 0x80 | ((val >> 12) & 0x3f); - *buf++ = 0x80 | ((val >> 6) & 0x3f); - *buf++ = 0x80 | ((val & 0x3f)); - } else if(val < 0x4000000) { - *buf++ = 0xf8 | ((val >> 24)); - *buf++ = 0x80 | ((val >> 18) & 0x3f); - *buf++ = 0x80 | ((val >> 12) & 0x3f); - *buf++ = 0x80 | ((val >> 6) & 0x3f); - *buf++ = 0x80 | ((val & 0x3f)); - } else { - *buf++ = 0xfc | ((val >> 30) & 0x1); - *buf++ = 0x80 | ((val >> 24) & 0x3f); - *buf++ = 0x80 | ((val >> 18) & 0x3f); - *buf++ = 0x80 | ((val >> 12) & 0x3f); - *buf++ = 0x80 | ((val >> 6) & 0x3f); - *buf++ = 0x80 | ((val & 0x3f)); - } - } else { - /* - * Ugly, limited parsing of & > < - */ - char *sc = (char *)memchr(p, 0x3b, len > 5 ? 5 : len); - if(!sc) goto want_more; - if((sc - p) == 4 - && p[1] == 0x61 /* 'a' */ - && p[2] == 0x6d /* 'm' */ - && p[3] == 0x70 /* 'p' */) { - *buf++ = 0x26; - p = sc; - continue; - } - if((sc - p) == 3) { - if(p[1] == 0x6c) { - *buf = 0x3c; /* '<' */ - } else if(p[1] == 0x67) { - *buf = 0x3e; /* '>' */ - } else { - /* Unsupported entity reference */ - *buf++ = ch; - continue; - } - if(p[2] != 0x74) { - /* Unsupported entity reference */ - *buf++ = ch; - continue; - } - buf++; - p = sc; - continue; - } - /* Unsupported entity reference */ - *buf++ = ch; - } - - continue; - want_more: - if(have_more) { - /* - * We know that no more data (of the same type) - * is coming. Copy the rest verbatim. - */ - *buf++ = ch; - continue; - } - chunk_size = (p - (const char *)chunk_buf); - /* Processing stalled: need more data */ - break; - } - - st->size = buf - st->buf; - assert(st->size <= new_size); - st->buf[st->size] = 0; /* Courtesy termination */ - - return chunk_size; /* Converted in full */ -} - -/* - * Decode OCTET STRING from the XML element's body. - */ -static asn_dec_rval_t -OCTET_STRING__decode_xer( - const asn_codec_ctx_t *opt_codec_ctx, const asn_TYPE_descriptor_t *td, - void **sptr, const char *opt_mname, const void *buf_ptr, size_t size, - int (*opt_unexpected_tag_decoder)(void *struct_ptr, const void *chunk_buf, - size_t chunk_size), - ssize_t (*body_receiver)(void *struct_ptr, const void *chunk_buf, - size_t chunk_size, int have_more)) { - OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr; - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - asn_struct_ctx_t *ctx; /* Per-structure parser context */ - asn_dec_rval_t rval; /* Return value from the decoder */ - int st_allocated; - - /* - * Create the string if does not exist. - */ - if(!st) { - st = (OCTET_STRING_t *)CALLOC(1, specs->struct_size); - *sptr = (void *)st; - if(!st) goto sta_failed; - st_allocated = 1; - } else { - st_allocated = 0; - } - if(!st->buf) { - /* This is separate from above section */ - st->buf = (uint8_t *)CALLOC(1, 1); - if(!st->buf) { - if(st_allocated) { - *sptr = 0; - goto stb_failed; - } else { - goto sta_failed; - } - } - } - - /* Restore parsing context */ - ctx = (asn_struct_ctx_t *)(((char *)*sptr) + specs->ctx_offset); - - return xer_decode_general(opt_codec_ctx, ctx, *sptr, xml_tag, - buf_ptr, size, opt_unexpected_tag_decoder, body_receiver); - -stb_failed: - FREEMEM(st); -sta_failed: - rval.code = RC_FAIL; - rval.consumed = 0; - return rval; -} - -/* - * Decode OCTET STRING from the hexadecimal data. - */ -asn_dec_rval_t -OCTET_STRING_decode_xer_hex(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, - size_t size) { - return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname, - buf_ptr, size, 0, OCTET_STRING__convert_hexadecimal); -} - -/* - * Decode OCTET STRING from the binary (0/1) data. - */ -asn_dec_rval_t -OCTET_STRING_decode_xer_binary(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, - size_t size) { - return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname, - buf_ptr, size, 0, OCTET_STRING__convert_binary); -} - -/* - * Decode OCTET STRING from the string (ASCII/UTF-8) data. - */ -asn_dec_rval_t -OCTET_STRING_decode_xer_utf8(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, - size_t size) { - return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname, - buf_ptr, size, - OCTET_STRING__handle_control_chars, - OCTET_STRING__convert_entrefs); -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -static int -OCTET_STRING_per_get_characters(asn_per_data_t *po, uint8_t *buf, - size_t units, unsigned int bpc, unsigned int unit_bits, - long lb, long ub, const asn_per_constraints_t *pc) { - uint8_t *end = buf + units * bpc; - - ASN_DEBUG("Expanding %d characters into (%ld..%ld):%d", - (int)units, lb, ub, unit_bits); - - /* X.691: 27.5.4 */ - if((unsigned long)ub <= ((unsigned long)2 << (unit_bits - 1))) { - /* Decode without translation */ - lb = 0; - } else if(pc && pc->code2value) { - if(unit_bits > 16) - return 1; /* FATAL: can't have constrained - * UniversalString with more than - * 16 million code points */ - for(; buf < end; buf += bpc) { - int value; - int code = per_get_few_bits(po, unit_bits); - if(code < 0) return -1; /* WMORE */ - value = pc->code2value(code); - if(value < 0) { - ASN_DEBUG("Code %d (0x%02x) is" - " not in map (%ld..%ld)", - code, code, lb, ub); - return 1; /* FATAL */ - } - switch(bpc) { - case 1: *buf = value; break; - case 2: buf[0] = value >> 8; buf[1] = value; break; - case 4: buf[0] = value >> 24; buf[1] = value >> 16; - buf[2] = value >> 8; buf[3] = value; break; - } - } - return 0; - } - - /* Shortcut the no-op copying to the aligned structure */ - if(lb == 0 && (unit_bits == 8 * bpc)) { - return per_get_many_bits(po, buf, 0, unit_bits * units); - } - - for(; buf < end; buf += bpc) { - int32_t code = per_get_few_bits(po, unit_bits); - int32_t ch = code + lb; - if(code < 0) return -1; /* WMORE */ - if(ch > ub) { - ASN_DEBUG("Code %d is out of range (%ld..%ld)", - ch, lb, ub); - return 1; /* FATAL */ - } - switch(bpc) { - case 1: *buf = ch; break; - case 2: buf[0] = ch >> 8; buf[1] = ch; break; - case 4: buf[0] = ch >> 24; buf[1] = ch >> 16; - buf[2] = ch >> 8; buf[3] = ch; break; - } - } - - return 0; -} - -static int -OCTET_STRING_per_put_characters(asn_per_outp_t *po, const uint8_t *buf, - size_t units, unsigned int bpc, unsigned int unit_bits, - long lb, long ub, const asn_per_constraints_t *pc) { - const uint8_t *end = buf + units * bpc; - - ASN_DEBUG("Squeezing %d characters into (%ld..%ld):%d (%d bpc)", - (int)units, lb, ub, unit_bits, bpc); - - /* X.691: 27.5.4 */ - if((unsigned long)ub <= ((unsigned long)2 << (unit_bits - 1))) { - /* Encode as is */ - lb = 0; - } else if(pc && pc->value2code) { - for(; buf < end; buf += bpc) { - int code; - uint32_t value; - switch(bpc) { - case 1: value = *(const uint8_t *)buf; break; - case 2: value = (buf[0] << 8) | buf[1]; break; - case 4: value = (buf[0] << 24) | (buf[1] << 16) - | (buf[2] << 8) | buf[3]; break; - default: return -1; - } - code = pc->value2code(value); - if(code < 0) { - ASN_DEBUG("Character %d (0x%02x) is" - " not in map (%ld..%ld)", - *buf, *buf, lb, ub); - return -1; - } - if(per_put_few_bits(po, code, unit_bits)) - return -1; - } - } - - /* Shortcut the no-op copying to the aligned structure */ - if(lb == 0 && (unit_bits == 8 * bpc)) { - return per_put_many_bits(po, buf, unit_bits * units); - } - - for(ub -= lb; buf < end; buf += bpc) { - int ch; - uint32_t value; - switch(bpc) { - case 1: - value = *(const uint8_t *)buf; - break; - case 2: - value = (buf[0] << 8) | buf[1]; - break; - case 4: - value = (buf[0] << 24) | (buf[1] << 16) | (buf[2] << 8) | buf[3]; - break; - default: - return -1; - } - ch = value - lb; - if(ch < 0 || ch > ub) { - ASN_DEBUG("Character %d (0x%02x) is out of range (%ld..%ld)", *buf, - value, lb, ub + lb); - return -1; - } - if(per_put_few_bits(po, ch, unit_bits)) return -1; - } - - return 0; -} - -static asn_per_constraints_t asn_DEF_OCTET_STRING_constraints = { - { APC_CONSTRAINED, 8, 8, 0, 255 }, - { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, - 0, 0 -}; - -asn_dec_rval_t -OCTET_STRING_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const asn_per_constraints_t *pc = - constraints ? constraints : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *cval; - const asn_per_constraint_t *csiz; - asn_dec_rval_t rval = { RC_OK, 0 }; - OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr; - ssize_t consumed_myself = 0; - int repeat; - enum { - OS__BPC_CHAR = 1, - OS__BPC_U16 = 2, - OS__BPC_U32 = 4 - } bpc; /* Bytes per character */ - unsigned int unit_bits; - unsigned int canonical_unit_bits; - - (void)opt_codec_ctx; - - if(pc) { - cval = &pc->value; - csiz = &pc->size; - } else { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - } - - switch(specs->subvariant) { - default: - case ASN_OSUBV_ANY: - case ASN_OSUBV_BIT: - ASN_DEBUG("Unrecognized subvariant %d", specs->subvariant); - RETURN(RC_FAIL); - break; - case ASN_OSUBV_STR: - canonical_unit_bits = unit_bits = 8; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_CHAR; - break; - case ASN_OSUBV_U16: - canonical_unit_bits = unit_bits = 16; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U16; - break; - case ASN_OSUBV_U32: - canonical_unit_bits = unit_bits = 32; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U32; - break; - } - - /* - * Allocate the string. - */ - if(!st) { - st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d", - csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", - csiz->lower_bound, csiz->upper_bound, csiz->effective_bits); - - if(csiz->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) RETURN(RC_WMORE); - if(inext) { - csiz = &asn_DEF_OCTET_STRING_constraints.size; - unit_bits = canonical_unit_bits; - } - } - - if(csiz->effective_bits >= 0) { - FREEMEM(st->buf); - if(bpc) { - st->size = csiz->upper_bound * bpc; - } else { - st->size = (csiz->upper_bound + 7) >> 3; - } - st->buf = (uint8_t *)MALLOC(st->size + 1); - if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } - } - - /* X.691, #16.5: zero-length encoding */ - /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ - /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ - if(csiz->effective_bits == 0) { - int ret; - if(bpc) { - ASN_DEBUG("Encoding OCTET STRING size %ld", - csiz->upper_bound); - ret = OCTET_STRING_per_get_characters(pd, st->buf, - csiz->upper_bound, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - if(ret > 0) RETURN(RC_FAIL); - } else { - ASN_DEBUG("Encoding BIT STRING size %ld", - csiz->upper_bound); - ret = per_get_many_bits(pd, st->buf, 0, - unit_bits * csiz->upper_bound); - } - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += unit_bits * csiz->upper_bound; - st->buf[st->size] = 0; - RETURN(RC_OK); - } - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - void *p; - int ret; - - /* Get the PER length */ - raw_len = uper_get_length(pd, csiz->effective_bits, csiz->lower_bound, - &repeat); - if(raw_len < 0) RETURN(RC_WMORE); - if(raw_len == 0 && st->buf) break; - - ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", - (long)csiz->effective_bits, (long)raw_len, - repeat ? "repeat" : "once", td->name); - len_bytes = raw_len * bpc; - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - ret = OCTET_STRING_per_get_characters(pd, &st->buf[st->size], raw_len, - bpc, unit_bits, cval->lower_bound, - cval->upper_bound, pc); - if(ret > 0) RETURN(RC_FAIL); - if(ret < 0) RETURN(RC_WMORE); - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - return rval; -} - -asn_enc_rval_t -OCTET_STRING_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const asn_per_constraints_t *pc = constraints ? constraints - : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *cval; - const asn_per_constraint_t *csiz; - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - asn_enc_rval_t er = { 0, 0, 0 }; - int inext = 0; /* Lies not within extension root */ - unsigned int unit_bits; - unsigned int canonical_unit_bits; - size_t size_in_units; - const uint8_t *buf; - int ret; - enum { - OS__BPC_CHAR = 1, - OS__BPC_U16 = 2, - OS__BPC_U32 = 4 - } bpc; /* Bytes per character */ - int ct_extensible; - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - if(pc) { - cval = &pc->value; - csiz = &pc->size; - } else { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - } - ct_extensible = csiz->flags & APC_EXTENSIBLE; - - switch(specs->subvariant) { - default: - case ASN_OSUBV_ANY: - case ASN_OSUBV_BIT: - ASN__ENCODE_FAILED; - case ASN_OSUBV_STR: - canonical_unit_bits = unit_bits = 8; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_CHAR; - size_in_units = st->size; - break; - case ASN_OSUBV_U16: - canonical_unit_bits = unit_bits = 16; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U16; - size_in_units = st->size >> 1; - if(st->size & 1) { - ASN_DEBUG("%s string size is not modulo 2", td->name); - ASN__ENCODE_FAILED; - } - break; - case ASN_OSUBV_U32: - canonical_unit_bits = unit_bits = 32; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U32; - size_in_units = st->size >> 2; - if(st->size & 3) { - ASN_DEBUG("%s string size is not modulo 4", td->name); - ASN__ENCODE_FAILED; - } - break; - } - - ASN_DEBUG("Encoding %s into %" ASN_PRI_SIZE " units of %d bits" - " (%ld..%ld, effective %d)%s", - td->name, size_in_units, unit_bits, - csiz->lower_bound, csiz->upper_bound, - csiz->effective_bits, ct_extensible ? " EXT" : ""); - - /* Figure out whether size lies within PER visible constraint */ - - if(csiz->effective_bits >= 0) { - if((ssize_t)size_in_units < csiz->lower_bound - || (ssize_t)size_in_units > csiz->upper_bound) { - if(ct_extensible) { - csiz = &asn_DEF_OCTET_STRING_constraints.size; - unit_bits = canonical_unit_bits; - inext = 1; - } else { - ASN__ENCODE_FAILED; - } - } - } else { - inext = 0; - } - - if(ct_extensible) { - /* Declare whether length is [not] within extension root */ - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - } - - if(csiz->effective_bits >= 0 && !inext) { - ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes (%ld), length in %d bits", st->size, - size_in_units - csiz->lower_bound, csiz->effective_bits); - ret = per_put_few_bits(po, size_in_units - csiz->lower_bound, - csiz->effective_bits); - if(ret) ASN__ENCODE_FAILED; - ret = OCTET_STRING_per_put_characters(po, st->buf, size_in_units, bpc, - unit_bits, cval->lower_bound, - cval->upper_bound, pc); - if(ret) ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes", st->size); - - buf = st->buf; - ASN_DEBUG("Encoding %" ASN_PRI_SIZE " in units", size_in_units); - do { - int need_eom = 0; - ssize_t may_save = uper_put_length(po, size_in_units, &need_eom); - if(may_save < 0) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %" ASN_PRI_SSIZE " of %" ASN_PRI_SIZE "%s", may_save, size_in_units, - need_eom ? ",+EOM" : ""); - - ret = OCTET_STRING_per_put_characters(po, buf, may_save, bpc, unit_bits, - cval->lower_bound, - cval->upper_bound, pc); - if(ret) ASN__ENCODE_FAILED; - - buf += may_save * bpc; - size_in_units -= may_save; - assert(!(may_save & 0x07) || !size_in_units); - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - } while(size_in_units); - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -OCTET_STRING_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd) { - - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const asn_per_constraints_t *pc = constraints ? constraints - : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *cval; - const asn_per_constraint_t *csiz; - asn_dec_rval_t rval = { RC_OK, 0 }; - BIT_STRING_t *st = (BIT_STRING_t *)*sptr; - ssize_t consumed_myself = 0; - int repeat; - enum { - OS__BPC_BIT = 0, - OS__BPC_CHAR = 1, - OS__BPC_U16 = 2, - OS__BPC_U32 = 4 - } bpc; /* Bytes per character */ - unsigned int unit_bits; - unsigned int canonical_unit_bits; - - (void)opt_codec_ctx; - - if(pc) { - cval = &pc->value; - csiz = &pc->size; - } else { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - } - - switch(specs->subvariant) { - default: -/* case ASN_OSUBV_ANY: - ASN_DEBUG("Unrecognized subvariant %d", specs->subvariant); - RETURN(RC_FAIL); -*/ - case ASN_OSUBV_BIT: - canonical_unit_bits = unit_bits = 1; - bpc = OS__BPC_BIT; - break; - case ASN_OSUBV_ANY: - case ASN_OSUBV_STR: - canonical_unit_bits = unit_bits = 8; -/* if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; -*/ - bpc = OS__BPC_CHAR; - break; - case ASN_OSUBV_U16: - canonical_unit_bits = unit_bits = 16; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U16; - break; - case ASN_OSUBV_U32: - canonical_unit_bits = unit_bits = 32; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U32; - break; - } - - /* - * Allocate the string. - */ - if(!st) { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d", - csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", - csiz->lower_bound, csiz->upper_bound, csiz->effective_bits); - - if(csiz->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) RETURN(RC_WMORE); - if(inext) { - csiz = &asn_DEF_OCTET_STRING_constraints.size; - cval = &asn_DEF_OCTET_STRING_constraints.value; - unit_bits = canonical_unit_bits; - } - } - - if(csiz->effective_bits >= 0) { - FREEMEM(st->buf); - if(bpc) { - st->size = csiz->upper_bound * bpc; - } else { - st->size = (csiz->upper_bound + 7) >> 3; - } - st->buf = (uint8_t *)MALLOC(st->size + 1); - if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } - } - - /* X.691, #16.5: zero-length encoding */ - /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ - /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ - if(csiz->effective_bits == 0) { - int ret; - if (st->size > 2) { /* X.691 #16 NOTE 1 */ - if (aper_get_align(pd) < 0) - RETURN(RC_FAIL); - } - if(bpc) { - ASN_DEBUG("Decoding OCTET STRING size %ld", - csiz->upper_bound); - ret = OCTET_STRING_per_get_characters(pd, st->buf, - csiz->upper_bound, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - if(ret > 0) RETURN(RC_FAIL); - } else { - ASN_DEBUG("Decoding BIT STRING size %ld", - csiz->upper_bound); - ret = per_get_many_bits(pd, st->buf, 0, - unit_bits * csiz->upper_bound); - } - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += unit_bits * csiz->upper_bound; - st->buf[st->size] = 0; - if(bpc == 0) { - int ubs = (csiz->upper_bound & 0x7); - st->bits_unused = ubs ? 8 - ubs : 0; - } - RETURN(RC_OK); - } - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - ssize_t len_bits; - void *p; - int ret; - - /* Get the PER length */ - if (csiz->upper_bound - csiz->lower_bound == 0) - /* Indefinite length case */ - raw_len = aper_get_length(pd, -1, csiz->effective_bits, &repeat); - else - raw_len = aper_get_length(pd, csiz->upper_bound - csiz->lower_bound + 1, csiz->effective_bits, &repeat); - repeat = 0; - if(raw_len < 0) RETURN(RC_WMORE); - raw_len += csiz->lower_bound; - - ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", - (long)csiz->effective_bits, (long)raw_len, - repeat ? "repeat" : "once", td->name); - - if (raw_len > 2) { /* X.691 #16 NOTE 1 */ - if (aper_get_align(pd) < 0) - RETURN(RC_FAIL); - } - - if(bpc) { - len_bytes = raw_len * bpc; - len_bits = len_bytes * unit_bits; - } else { - len_bits = raw_len; - len_bytes = (len_bits + 7) >> 3; - if(len_bits & 0x7) - st->bits_unused = 8 - (len_bits & 0x7); - /* len_bits be multiple of 16K if repeat is set */ - } - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - if(bpc) { - ret = OCTET_STRING_per_get_characters(pd, - &st->buf[st->size], raw_len, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - if(ret > 0) RETURN(RC_FAIL); - } else { - ret = per_get_many_bits(pd, &st->buf[st->size], - 0, len_bits); - } - if(ret < 0) RETURN(RC_WMORE); - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - return rval; -} - -asn_enc_rval_t -OCTET_STRING_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const asn_per_constraints_t *pc = constraints ? constraints - : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *cval; - const asn_per_constraint_t *csiz; - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - asn_enc_rval_t er = { 0, 0, 0 }; - int inext = 0; /* Lies not within extension root */ - unsigned int unit_bits; - unsigned int canonical_unit_bits; - unsigned int sizeinunits; - const uint8_t *buf; - int ret; - enum { - OS__BPC_BIT = 0, - OS__BPC_CHAR = 1, - OS__BPC_U16 = 2, - OS__BPC_U32 = 4 - } bpc; /* Bytes per character */ - int ct_extensible; - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - if(pc) { - cval = &pc->value; - csiz = &pc->size; - } else { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - } - ct_extensible = csiz->flags & APC_EXTENSIBLE; - - switch(specs->subvariant) { - default: - /* case ASN_OSUBV_ANY: - ASN__ENCODE_FAILED; - */ - case ASN_OSUBV_BIT: - canonical_unit_bits = unit_bits = 1; - bpc = OS__BPC_BIT; - sizeinunits = st->size * 8 - (st->bits_unused & 0x07); - ASN_DEBUG("BIT STRING of %d bytes", - sizeinunits); - break; - case ASN_OSUBV_ANY: - case ASN_OSUBV_STR: - canonical_unit_bits = unit_bits = 8; -/* if(cval->flags & APC_CONSTRAINED) - unit_bits = 8; -*/ - bpc = OS__BPC_CHAR; - sizeinunits = st->size; - break; - case ASN_OSUBV_U16: - canonical_unit_bits = unit_bits = 16; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U16; - sizeinunits = st->size / 2; - break; - case ASN_OSUBV_U32: - canonical_unit_bits = unit_bits = 32; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U32; - sizeinunits = st->size / 4; - break; - } - - ASN_DEBUG("Encoding %s into %d units of %d bits" - " (%ld..%ld, effective %d)%s", - td->name, sizeinunits, unit_bits, - csiz->lower_bound, csiz->upper_bound, - csiz->effective_bits, ct_extensible ? " EXT" : ""); - - /* Figure out wheter size lies within PER visible constraint */ - - if(csiz->effective_bits >= 0) { - if((int)sizeinunits < csiz->lower_bound - || (int)sizeinunits > csiz->upper_bound) { - if(ct_extensible) { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - unit_bits = canonical_unit_bits; - inext = 1; - } else - ASN__ENCODE_FAILED; - } - } else { - inext = 0; - } - - - if(ct_extensible) { - /* Declare whether length is [not] within extension root */ - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - } - - /* X.691, #16.5: zero-length encoding */ - /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ - /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ - if(csiz->effective_bits >= 0) { - ASN_DEBUG("Encoding %lu bytes (%ld), length in %d bits", - st->size, sizeinunits - csiz->lower_bound, - csiz->effective_bits); - if (csiz->effective_bits > 0) { - ret = aper_put_length(po, csiz->upper_bound - csiz->lower_bound + 1, sizeinunits - csiz->lower_bound); - if(ret) ASN__ENCODE_FAILED; - } - /* EB MOD - AFAIU if lb != ub it is aligned whatever the number of bits */ - if ((st->size > 2) || (csiz->lower_bound != csiz->upper_bound)) { /* X.691 #16.11 */ - if (aper_put_align(po) < 0) - ASN__ENCODE_FAILED; - } - if(bpc) { - ret = OCTET_STRING_per_put_characters(po, st->buf, - sizeinunits, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - } else { - ret = per_put_many_bits(po, st->buf, - sizeinunits * unit_bits); - } - if(ret) ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - ASN_DEBUG("Encoding %lu bytes", st->size); - - if(sizeinunits == 0) { - if(aper_put_length(po, -1, 0)) - ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - buf = st->buf; - while(sizeinunits) { - ssize_t maySave = aper_put_length(po, -1, sizeinunits); - - if(maySave < 0) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %ld of %ld", - (long)maySave, (long)sizeinunits); - - if(bpc) { - ret = OCTET_STRING_per_put_characters(po, buf, - maySave, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - } else { - ret = per_put_many_bits(po, buf, maySave * unit_bits); - } - if(ret) ASN__ENCODE_FAILED; - - if(bpc) - buf += maySave * bpc; - else - buf += maySave >> 3; - sizeinunits -= maySave; - assert(!(maySave & 0x07) || !sizeinunits); - } - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -int -OCTET_STRING_print(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { - const char * const h2c = "0123456789ABCDEF"; - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - char scratch[16 * 3 + 4]; - char *p = scratch; - uint8_t *buf; - uint8_t *end; - size_t i; - - (void)td; /* Unused argument */ - - if(!st || (!st->buf && st->size)) - return (cb("", 8, app_key) < 0) ? -1 : 0; - - /* - * Dump the contents of the buffer in hexadecimal. - */ - buf = st->buf; - end = buf + st->size; - for(i = 0; buf < end; buf++, i++) { - if(!(i % 16) && (i || st->size > 16)) { - if(cb(scratch, p - scratch, app_key) < 0) - return -1; - _i_INDENT(1); - p = scratch; - } - *p++ = h2c[(*buf >> 4) & 0x0F]; - *p++ = h2c[*buf & 0x0F]; - *p++ = 0x20; - } - - if(p > scratch) { - p--; /* Remove the tail space */ - if(cb(scratch, p - scratch, app_key) < 0) - return -1; - } - - return 0; -} - -int -OCTET_STRING_print_utf8(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, asn_app_consume_bytes_f *cb, - void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - - (void)td; /* Unused argument */ - (void)ilevel; /* Unused argument */ - - if(st && (st->buf || !st->size)) { - return (cb(st->buf, st->size, app_key) < 0) ? -1 : 0; - } else { - return (cb("", 8, app_key) < 0) ? -1 : 0; - } -} - -void -OCTET_STRING_free(const asn_TYPE_descriptor_t *td, void *sptr, - enum asn_struct_free_method method) { - OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; - const asn_OCTET_STRING_specifics_t *specs; - asn_struct_ctx_t *ctx; - struct _stack *stck; - - if(!td || !st) - return; - - specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - ASN_DEBUG("Freeing %s as OCTET STRING", td->name); - - if(st->buf) { - FREEMEM(st->buf); - st->buf = 0; - } - - /* - * Remove decode-time stack. - */ - stck = (struct _stack *)ctx->ptr; - if(stck) { - while(stck->tail) { - struct _stack_el *sel = stck->tail; - stck->tail = sel->prev; - FREEMEM(sel); - } - FREEMEM(stck); - } - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(sptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(sptr, 0, - td->specifics - ? ((const asn_OCTET_STRING_specifics_t *)(td->specifics)) - ->struct_size - : sizeof(OCTET_STRING_t)); - break; - } -} - -/* - * Conversion routines. - */ -int -OCTET_STRING_fromBuf(OCTET_STRING_t *st, const char *str, int len) { - void *buf; - - if(st == 0 || (str == 0 && len)) { - errno = EINVAL; - return -1; - } - - /* - * Clear the OCTET STRING. - */ - if(str == NULL) { - FREEMEM(st->buf); - st->buf = 0; - st->size = 0; - return 0; - } - - /* Determine the original string size, if not explicitly given */ - if(len < 0) - len = strlen(str); - - /* Allocate and fill the memory */ - buf = MALLOC(len + 1); - if(buf == NULL) - return -1; - - memcpy(buf, str, len); - ((uint8_t *)buf)[len] = '\0'; /* Couldn't use memcpy(len+1)! */ - FREEMEM(st->buf); - st->buf = (uint8_t *)buf; - st->size = len; - - return 0; -} - -OCTET_STRING_t * -OCTET_STRING_new_fromBuf(const asn_TYPE_descriptor_t *td, const char *str, - int len) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - OCTET_STRING_t *st; - - st = (OCTET_STRING_t *)CALLOC(1, specs->struct_size); - if(st && str && OCTET_STRING_fromBuf(st, str, len)) { - FREEMEM(st); - st = NULL; - } - - return st; -} - -/* - * Lexicographically compare the common prefix of both strings, - * and if it is the same return -1 for the smallest string. - */ -int -OCTET_STRING_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics; - const OCTET_STRING_t *a = aptr; - const OCTET_STRING_t *b = bptr; - - assert(!specs || specs->subvariant != ASN_OSUBV_BIT); - - if(a && b) { - size_t common_prefix_size = a->size <= b->size ? a->size : b->size; - int ret = memcmp(a->buf, b->buf, common_prefix_size); - if(ret == 0) { - /* Figure out which string with equal prefixes is longer. */ - if(a->size < b->size) { - return -1; - } else if(a->size > b->size) { - return 1; - } else { - return 0; - } - } else { - return ret < 0 ? -1 : 1; - } - } else if(!a && !b) { - return 0; - } else if(!a) { - return -1; - } else { - return 1; - } - -} - -/* - * Biased function for randomizing character values around their limits. - */ -static uint32_t -OCTET_STRING__random_char(unsigned long lb, unsigned long ub) { - assert(lb <= ub); - switch(asn_random_between(0, 16)) { - case 0: - if(lb < ub) return lb + 1; - /* Fall through */ - case 1: - return lb; - case 2: - if(lb < ub) return ub - 1; - /* Fall through */ - case 3: - return ub; - default: - return asn_random_between(lb, ub); - } -} - - -size_t -OCTET_STRING_random_length_constrained( - const asn_TYPE_descriptor_t *td, - const asn_encoding_constraints_t *constraints, size_t max_length) { - const unsigned lengths[] = {0, 1, 2, 3, 4, 8, - 126, 127, 128, 16383, 16384, 16385, - 65534, 65535, 65536, 65537}; - size_t rnd_len; - - /* Figure out how far we should go */ - rnd_len = lengths[asn_random_between( - 0, sizeof(lengths) / sizeof(lengths[0]) - 1)]; - - if(!constraints || !constraints->per_constraints) - constraints = &td->encoding_constraints; - if(constraints->per_constraints) { - const asn_per_constraint_t *pc = &constraints->per_constraints->size; - if(pc->flags & APC_CONSTRAINED) { - long suggested_upper_bound = pc->upper_bound < (ssize_t)max_length - ? pc->upper_bound - : (ssize_t)max_length; - if(max_length <= (size_t)pc->lower_bound) { - return pc->lower_bound; - } - if(pc->flags & APC_EXTENSIBLE) { - switch(asn_random_between(0, 5)) { - case 0: - if(pc->lower_bound > 0) { - rnd_len = pc->lower_bound - 1; - break; - } - /* Fall through */ - case 1: - rnd_len = pc->upper_bound + 1; - break; - case 2: - /* Keep rnd_len from the table */ - if(rnd_len <= max_length) { - break; - } - /* Fall through */ - default: - rnd_len = asn_random_between(pc->lower_bound, - suggested_upper_bound); - } - } else { - rnd_len = - asn_random_between(pc->lower_bound, suggested_upper_bound); - } - } else { - rnd_len = asn_random_between(0, max_length); - } - } else if(rnd_len > max_length) { - rnd_len = asn_random_between(0, max_length); - } - - return rnd_len; -} - -asn_random_fill_result_t -OCTET_STRING_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - unsigned int unit_bytes = 1; - unsigned long clb = 0; /* Lower bound on char */ - unsigned long cub = 255; /* Higher bound on char value */ - uint8_t *buf; - uint8_t *bend; - uint8_t *b; - size_t rnd_len; - OCTET_STRING_t *st; - - if(max_length == 0 && !*sptr) return result_skipped; - - switch(specs->subvariant) { - default: - case ASN_OSUBV_ANY: - return result_failed; - case ASN_OSUBV_BIT: - /* Handled by BIT_STRING itself. */ - return result_failed; - case ASN_OSUBV_STR: - unit_bytes = 1; - clb = 0; - cub = 255; - break; - case ASN_OSUBV_U16: - unit_bytes = 2; - clb = 0; - cub = 65535; - break; - case ASN_OSUBV_U32: - unit_bytes = 4; - clb = 0; - cub = 0x10FFFF; - break; - } - - if(!constraints || !constraints->per_constraints) - constraints = &td->encoding_constraints; - if(constraints->per_constraints) { - const asn_per_constraint_t *pc = &constraints->per_constraints->value; - if(pc->flags & APC_SEMI_CONSTRAINED) { - clb = pc->lower_bound; - } else if(pc->flags & APC_CONSTRAINED) { - clb = pc->lower_bound; - cub = pc->upper_bound; - } - } - - rnd_len = - OCTET_STRING_random_length_constrained(td, constraints, max_length); - - buf = CALLOC(unit_bytes, rnd_len + 1); - if(!buf) return result_failed; - - bend = &buf[unit_bytes * rnd_len]; - - switch(unit_bytes) { - case 1: - for(b = buf; b < bend; b += unit_bytes) { - *(uint8_t *)b = OCTET_STRING__random_char(clb, cub); - } - *(uint8_t *)b = 0; - break; - case 2: - for(b = buf; b < bend; b += unit_bytes) { - uint32_t code = OCTET_STRING__random_char(clb, cub); - b[0] = code >> 8; - b[1] = code; - } - *(uint16_t *)b = 0; - break; - case 4: - for(b = buf; b < bend; b += unit_bytes) { - uint32_t code = OCTET_STRING__random_char(clb, cub); - b[0] = code >> 24; - b[1] = code >> 16; - b[2] = code >> 8; - b[3] = code; - } - *(uint32_t *)b = 0; - break; - } - - if(*sptr) { - st = *sptr; - FREEMEM(st->buf); - } else { - st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) { - FREEMEM(buf); - return result_failed; - } - } - - st->buf = buf; - st->size = unit_bytes * rnd_len; - - result_ok.length = st->size; - return result_ok; -} diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/OCTET_STRING.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/OCTET_STRING.h deleted file mode 100644 index c2f8bae..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/OCTET_STRING.h +++ /dev/null @@ -1,102 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _OCTET_STRING_H_ -#define _OCTET_STRING_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct OCTET_STRING { - uint8_t *buf; /* Buffer with consecutive OCTET_STRING bits */ - size_t size; /* Size of the buffer */ - - asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ -} OCTET_STRING_t; - -extern asn_TYPE_descriptor_t asn_DEF_OCTET_STRING; -extern asn_TYPE_operation_t asn_OP_OCTET_STRING; - -asn_struct_free_f OCTET_STRING_free; -asn_struct_print_f OCTET_STRING_print; -asn_struct_print_f OCTET_STRING_print_utf8; -asn_struct_compare_f OCTET_STRING_compare; -ber_type_decoder_f OCTET_STRING_decode_ber; -der_type_encoder_f OCTET_STRING_encode_der; -xer_type_decoder_f OCTET_STRING_decode_xer_hex; /* Hexadecimal */ -xer_type_decoder_f OCTET_STRING_decode_xer_binary; /* 01010111010 */ -xer_type_decoder_f OCTET_STRING_decode_xer_utf8; /* ASCII/UTF-8 */ -xer_type_encoder_f OCTET_STRING_encode_xer; -xer_type_encoder_f OCTET_STRING_encode_xer_utf8; -oer_type_decoder_f OCTET_STRING_decode_oer; -oer_type_encoder_f OCTET_STRING_encode_oer; -per_type_decoder_f OCTET_STRING_decode_uper; -per_type_encoder_f OCTET_STRING_encode_uper; -per_type_decoder_f OCTET_STRING_decode_aper; -per_type_encoder_f OCTET_STRING_encode_aper; -asn_random_fill_f OCTET_STRING_random_fill; - -#define OCTET_STRING_constraint asn_generic_no_constraint -#define OCTET_STRING_decode_xer OCTET_STRING_decode_xer_hex - -/****************************** - * Handy conversion routines. * - ******************************/ - -/* - * This function clears the previous value of the OCTET STRING (if any) - * and then allocates a new memory with the specified content (str/size). - * If size = -1, the size of the original string will be determined - * using strlen(str). - * If str equals to NULL, the function will silently clear the - * current contents of the OCTET STRING. - * Returns 0 if it was possible to perform operation, -1 otherwise. - */ -int OCTET_STRING_fromBuf(OCTET_STRING_t *s, const char *str, int size); - -/* Handy conversion from the C string into the OCTET STRING. */ -#define OCTET_STRING_fromString(s, str) OCTET_STRING_fromBuf(s, str, -1) - -/* - * Allocate and fill the new OCTET STRING and return a pointer to the newly - * allocated object. NULL is permitted in str: the function will just allocate - * empty OCTET STRING. - */ -OCTET_STRING_t *OCTET_STRING_new_fromBuf(const asn_TYPE_descriptor_t *td, - const char *str, int size); - -/**************************** - * Internally useful stuff. * - ****************************/ - -typedef struct asn_OCTET_STRING_specifics_s { - /* - * Target structure description. - */ - unsigned struct_size; /* Size of the structure */ - unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ - - enum asn_OS_Subvariant { - ASN_OSUBV_ANY, /* The open type (ANY) */ - ASN_OSUBV_BIT, /* BIT STRING */ - ASN_OSUBV_STR, /* String types, not {BMP,Universal}String */ - ASN_OSUBV_U16, /* 16-bit character (BMPString) */ - ASN_OSUBV_U32 /* 32-bit character (UniversalString) */ - } subvariant; -} asn_OCTET_STRING_specifics_t; - -extern asn_OCTET_STRING_specifics_t asn_SPC_OCTET_STRING_specs; - -size_t OCTET_STRING_random_length_constrained( - const asn_TYPE_descriptor_t *, const asn_encoding_constraints_t *, - size_t max_length); - -#ifdef __cplusplus -} -#endif - -#endif /* _OCTET_STRING_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/OCTET_STRING_oer.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/OCTET_STRING_oer.c deleted file mode 100644 index c16faea..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/OCTET_STRING_oer.c +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -asn_dec_rval_t -OCTET_STRING_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **sptr, - const void *ptr, size_t size) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr; - const asn_oer_constraints_t *cts = - constraints ? constraints : td->encoding_constraints.oer_constraints; - ssize_t ct_size = cts ? cts->size : -1; - asn_dec_rval_t rval = {RC_OK, 0}; - size_t expected_length = 0; - - size_t unit_bytes; - switch(specs->subvariant) { - default: - case ASN_OSUBV_BIT: - ASN_DEBUG("Invalid use of OCTET STRING to decode BIT STRING"); - ASN__DECODE_FAILED; - case ASN_OSUBV_ANY: - /* Fall through */ - case ASN_OSUBV_STR: - unit_bytes = 1; - break; - case ASN_OSUBV_U16: - unit_bytes = 2; - break; - case ASN_OSUBV_U32: - unit_bytes = 4; - break; - } - - (void)opt_codec_ctx; - - if(!st) { - st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) ASN__DECODE_FAILED; - } - - if(ct_size >= 0) { - expected_length = unit_bytes * ct_size; - } else { - /* - * X.696 (08/2015) #27.2 - * Encode length determinant as _number of octets_, but only - * if upper bound is not equal to lower bound. - */ - ssize_t len_len = oer_fetch_length(ptr, size, &expected_length); - if(len_len > 0) { - rval.consumed = len_len; - ptr = (const char *)ptr + len_len; - size -= len_len; - } else if(len_len == 0) { - ASN__DECODE_STARVED; - } else if(len_len < 0) { - ASN__DECODE_FAILED; - } - - if(expected_length % unit_bytes != 0) { - ASN_DEBUG( - "Data size %" ASN_PRI_SIZE " bytes is not consistent with multiplier %" ASN_PRI_SIZE "", - expected_length, unit_bytes); - ASN__DECODE_FAILED; - } - } - - if(size < expected_length) { - ASN__DECODE_STARVED; - } else { - uint8_t *buf = MALLOC(expected_length + 1); - if(buf == NULL) { - ASN__DECODE_FAILED; - } else { - memcpy(buf, ptr, expected_length); - buf[expected_length] = '\0'; - } - FREEMEM(st->buf); - st->buf = buf; - st->size = expected_length; - - rval.consumed += expected_length; - return rval; - } -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -OCTET_STRING_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - const void *sptr, asn_app_consume_bytes_f *cb, - void *app_key) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - const asn_oer_constraints_t *cts = - constraints ? constraints : td->encoding_constraints.oer_constraints; - ssize_t ct_size = cts ? cts->size : -1; - asn_enc_rval_t er = {0, 0, 0}; - - if(!st) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %s %" ASN_PRI_SIZE " as OCTET STRING", td ? td->name : "", st->size); - - if(ct_size >= 0) { - /* - * Check that available data matches the constraint - */ - size_t unit_bytes; - switch(specs->subvariant) { - default: - case ASN_OSUBV_BIT: - ASN_DEBUG("Invalid use of OCTET STRING to encode BIT STRING"); - ASN__ENCODE_FAILED; - case ASN_OSUBV_ANY: - /* Fall through */ - case ASN_OSUBV_STR: - unit_bytes = 1; - break; - case ASN_OSUBV_U16: - unit_bytes = 2; - break; - case ASN_OSUBV_U32: - unit_bytes = 4; - break; - } - - if(st->size != unit_bytes * (size_t)ct_size) { - ASN_DEBUG( - "Trying to encode %s (%" ASN_PRI_SIZE " bytes) which doesn't fit SIZE " - "constraint (%" ASN_PRI_SIZE ")", - td->name, st->size, ct_size); - ASN__ENCODE_FAILED; - } - } else { - /* - * X.696 (08/2015) #27.2 - * Encode length determinant as _number of octets_, but only - * if upper bound is not equal to lower bound. - */ - ssize_t ret = oer_serialize_length(st->size, cb, app_key); - if(ret < 0) { - ASN__ENCODE_FAILED; - } - er.encoded += ret; - } - - er.encoded += st->size; - if(cb(st->buf, st->size, app_key) < 0) { - ASN__ENCODE_FAILED; - } else { - ASN__ENCODED_OK(er); - } -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/OCUCP-PF-Container.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/OCUCP-PF-Container.c deleted file mode 100644 index 121932b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/OCUCP-PF-Container.c +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "OCUCP-PF-Container.h" - -static int -memb_numberOfActive_UEs_constraint_3(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 >= 1 && value <= 65536)) { - /* 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_numberOfActive_UEs_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_numberOfActive_UEs_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 16, -1, 1, 65536 } /* (1..65536,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_cu_CP_Resource_Status_3[] = { - { ATF_POINTER, 1, offsetof(struct OCUCP_PF_Container__cu_CP_Resource_Status, numberOfActive_UEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_numberOfActive_UEs_constr_4, &asn_PER_memb_numberOfActive_UEs_constr_4, memb_numberOfActive_UEs_constraint_3 }, - 0, 0, /* No default value */ - "numberOfActive-UEs" - }, -}; -static const int asn_MAP_cu_CP_Resource_Status_oms_3[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_cu_CP_Resource_Status_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_cu_CP_Resource_Status_tag2el_3[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* numberOfActive-UEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_cu_CP_Resource_Status_specs_3 = { - sizeof(struct OCUCP_PF_Container__cu_CP_Resource_Status), - offsetof(struct OCUCP_PF_Container__cu_CP_Resource_Status, _asn_ctx), - asn_MAP_cu_CP_Resource_Status_tag2el_3, - 1, /* Count of tags in the map */ - asn_MAP_cu_CP_Resource_Status_oms_3, /* Optional members */ - 1, 0, /* Root/Additions */ - -1, /* First extension addition */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_cu_CP_Resource_Status_3 = { - "cu-CP-Resource-Status", - "cu-CP-Resource-Status", - &asn_OP_SEQUENCE, - asn_DEF_cu_CP_Resource_Status_tags_3, - sizeof(asn_DEF_cu_CP_Resource_Status_tags_3) - /sizeof(asn_DEF_cu_CP_Resource_Status_tags_3[0]) - 1, /* 1 */ - asn_DEF_cu_CP_Resource_Status_tags_3, /* Same as above */ - sizeof(asn_DEF_cu_CP_Resource_Status_tags_3) - /sizeof(asn_DEF_cu_CP_Resource_Status_tags_3[0]), /* 2 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_cu_CP_Resource_Status_3, - 1, /* Elements count */ - &asn_SPC_cu_CP_Resource_Status_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_OCUCP_PF_Container_1[] = { - { ATF_POINTER, 1, offsetof(struct OCUCP_PF_Container, gNB_CU_CP_Name), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_CU_CP_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-CU-CP-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct OCUCP_PF_Container, cu_CP_Resource_Status), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_cu_CP_Resource_Status_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cu-CP-Resource-Status" - }, -}; -static const int asn_MAP_OCUCP_PF_Container_oms_1[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_OCUCP_PF_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_OCUCP_PF_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB-CU-CP-Name */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cu-CP-Resource-Status */ -}; -asn_SEQUENCE_specifics_t asn_SPC_OCUCP_PF_Container_specs_1 = { - sizeof(struct OCUCP_PF_Container), - offsetof(struct OCUCP_PF_Container, _asn_ctx), - asn_MAP_OCUCP_PF_Container_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_OCUCP_PF_Container_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_OCUCP_PF_Container = { - "OCUCP-PF-Container", - "OCUCP-PF-Container", - &asn_OP_SEQUENCE, - asn_DEF_OCUCP_PF_Container_tags_1, - sizeof(asn_DEF_OCUCP_PF_Container_tags_1) - /sizeof(asn_DEF_OCUCP_PF_Container_tags_1[0]), /* 1 */ - asn_DEF_OCUCP_PF_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_OCUCP_PF_Container_tags_1) - /sizeof(asn_DEF_OCUCP_PF_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_OCUCP_PF_Container_1, - 2, /* Elements count */ - &asn_SPC_OCUCP_PF_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/OCUCP-PF-Container.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/OCUCP-PF-Container.h deleted file mode 100644 index aee0f21..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/OCUCP-PF-Container.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _OCUCP_PF_Container_H_ -#define _OCUCP_PF_Container_H_ - - -#include - -/* Including external dependencies */ -#include "GNB-CU-CP-Name.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* OCUCP-PF-Container */ -typedef struct OCUCP_PF_Container { - GNB_CU_CP_Name_t *gNB_CU_CP_Name; /* OPTIONAL */ - struct OCUCP_PF_Container__cu_CP_Resource_Status { - long *numberOfActive_UEs; /* OPTIONAL */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } cu_CP_Resource_Status; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} OCUCP_PF_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_OCUCP_PF_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_OCUCP_PF_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_OCUCP_PF_Container_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _OCUCP_PF_Container_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/OCUUP-PF-Container.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/OCUUP-PF-Container.c deleted file mode 100644 index e1f754e..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/OCUUP-PF-Container.c +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "OCUUP-PF-Container.h" - -static int -memb_pf_ContainerList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 3)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_pf_ContainerList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..3)) */}; -static asn_per_constraints_t asn_PER_type_pf_ContainerList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pf_ContainerList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..3)) */}; -static asn_per_constraints_t asn_PER_memb_pf_ContainerList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_pf_ContainerList_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_PF_ContainerListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_pf_ContainerList_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_pf_ContainerList_specs_3 = { - sizeof(struct OCUUP_PF_Container__pf_ContainerList), - offsetof(struct OCUUP_PF_Container__pf_ContainerList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_pf_ContainerList_3 = { - "pf-ContainerList", - "pf-ContainerList", - &asn_OP_SEQUENCE_OF, - asn_DEF_pf_ContainerList_tags_3, - sizeof(asn_DEF_pf_ContainerList_tags_3) - /sizeof(asn_DEF_pf_ContainerList_tags_3[0]) - 1, /* 1 */ - asn_DEF_pf_ContainerList_tags_3, /* Same as above */ - sizeof(asn_DEF_pf_ContainerList_tags_3) - /sizeof(asn_DEF_pf_ContainerList_tags_3[0]), /* 2 */ - { &asn_OER_type_pf_ContainerList_constr_3, &asn_PER_type_pf_ContainerList_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_pf_ContainerList_3, - 1, /* Single element */ - &asn_SPC_pf_ContainerList_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_OCUUP_PF_Container_1[] = { - { ATF_POINTER, 1, offsetof(struct OCUUP_PF_Container, gNB_CU_UP_Name), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_CU_UP_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-CU-UP-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct OCUUP_PF_Container, pf_ContainerList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_pf_ContainerList_3, - 0, - { &asn_OER_memb_pf_ContainerList_constr_3, &asn_PER_memb_pf_ContainerList_constr_3, memb_pf_ContainerList_constraint_1 }, - 0, 0, /* No default value */ - "pf-ContainerList" - }, -}; -static const int asn_MAP_OCUUP_PF_Container_oms_1[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_OCUUP_PF_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_OCUUP_PF_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB-CU-UP-Name */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* pf-ContainerList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_OCUUP_PF_Container_specs_1 = { - sizeof(struct OCUUP_PF_Container), - offsetof(struct OCUUP_PF_Container, _asn_ctx), - asn_MAP_OCUUP_PF_Container_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_OCUUP_PF_Container_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_OCUUP_PF_Container = { - "OCUUP-PF-Container", - "OCUUP-PF-Container", - &asn_OP_SEQUENCE, - asn_DEF_OCUUP_PF_Container_tags_1, - sizeof(asn_DEF_OCUUP_PF_Container_tags_1) - /sizeof(asn_DEF_OCUUP_PF_Container_tags_1[0]), /* 1 */ - asn_DEF_OCUUP_PF_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_OCUUP_PF_Container_tags_1) - /sizeof(asn_DEF_OCUUP_PF_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_OCUUP_PF_Container_1, - 2, /* Elements count */ - &asn_SPC_OCUUP_PF_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/OCUUP-PF-Container.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/OCUUP-PF-Container.h deleted file mode 100644 index 9f19985..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/OCUUP-PF-Container.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _OCUUP_PF_Container_H_ -#define _OCUUP_PF_Container_H_ - - -#include - -/* Including external dependencies */ -#include "GNB-CU-UP-Name.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PF_ContainerListItem; - -/* OCUUP-PF-Container */ -typedef struct OCUUP_PF_Container { - GNB_CU_UP_Name_t *gNB_CU_UP_Name; /* OPTIONAL */ - struct OCUUP_PF_Container__pf_ContainerList { - A_SEQUENCE_OF(struct PF_ContainerListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } pf_ContainerList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} OCUUP_PF_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_OCUUP_PF_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_OCUUP_PF_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_OCUUP_PF_Container_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "PF-ContainerListItem.h" - -#endif /* _OCUUP_PF_Container_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ODU-PF-Container.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ODU-PF-Container.c deleted file mode 100644 index a28d59a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ODU-PF-Container.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "ODU-PF-Container.h" - -static int -memb_cellResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 512)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..512)) */}; -static asn_per_constraints_t asn_PER_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 1, 512 } /* (SIZE(1..512)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..512)) */}; -static asn_per_constraints_t asn_PER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 1, 512 } /* (SIZE(1..512)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_cellResourceReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CellResourceReportListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_cellResourceReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_cellResourceReportList_specs_2 = { - sizeof(struct ODU_PF_Container__cellResourceReportList), - offsetof(struct ODU_PF_Container__cellResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_cellResourceReportList_2 = { - "cellResourceReportList", - "cellResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_cellResourceReportList_tags_2, - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_cellResourceReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_cellResourceReportList_constr_2, &asn_PER_type_cellResourceReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_cellResourceReportList_2, - 1, /* Single element */ - &asn_SPC_cellResourceReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ODU_PF_Container_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ODU_PF_Container, cellResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_cellResourceReportList_2, - 0, - { &asn_OER_memb_cellResourceReportList_constr_2, &asn_PER_memb_cellResourceReportList_constr_2, memb_cellResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "cellResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_ODU_PF_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ODU_PF_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cellResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ODU_PF_Container_specs_1 = { - sizeof(struct ODU_PF_Container), - offsetof(struct ODU_PF_Container, _asn_ctx), - asn_MAP_ODU_PF_Container_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_ODU_PF_Container = { - "ODU-PF-Container", - "ODU-PF-Container", - &asn_OP_SEQUENCE, - asn_DEF_ODU_PF_Container_tags_1, - sizeof(asn_DEF_ODU_PF_Container_tags_1) - /sizeof(asn_DEF_ODU_PF_Container_tags_1[0]), /* 1 */ - asn_DEF_ODU_PF_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_ODU_PF_Container_tags_1) - /sizeof(asn_DEF_ODU_PF_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ODU_PF_Container_1, - 1, /* Elements count */ - &asn_SPC_ODU_PF_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ODU-PF-Container.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ODU-PF-Container.h deleted file mode 100644 index 4da50a3..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ODU-PF-Container.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _ODU_PF_Container_H_ -#define _ODU_PF_Container_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CellResourceReportListItem; - -/* ODU-PF-Container */ -typedef struct ODU_PF_Container { - struct ODU_PF_Container__cellResourceReportList { - A_SEQUENCE_OF(struct CellResourceReportListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } cellResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ODU_PF_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ODU_PF_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_ODU_PF_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_ODU_PF_Container_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "CellResourceReportListItem.h" - -#endif /* _ODU_PF_Container_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/OPEN_TYPE.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/OPEN_TYPE.c deleted file mode 100644 index a54e99c..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/OPEN_TYPE.c +++ /dev/null @@ -1,509 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include -#include -#include - -asn_TYPE_operation_t asn_OP_OPEN_TYPE = { - OPEN_TYPE_free, - OPEN_TYPE_print, - OPEN_TYPE_compare, - OPEN_TYPE_decode_ber, - OPEN_TYPE_encode_der, - OPEN_TYPE_decode_xer, - OPEN_TYPE_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, 0, /* No OER support, use "-gen-OER" to enable */ -#else - OPEN_TYPE_decode_oer, - OPEN_TYPE_encode_oer, -#endif -#ifdef ASN_DISABLE_PER_SUPPORT - 0, 0, 0, 0, -#else - OPEN_TYPE_decode_uper, - OPEN_TYPE_encode_uper, - OPEN_TYPE_decode_aper, - OPEN_TYPE_encode_aper, -#endif - 0, /* Random fill is not supported for open type */ - 0 /* Use generic outmost tag fetcher */ -}; - -#undef ADVANCE -#define ADVANCE(num_bytes) \ - do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -asn_dec_rval_t -OPEN_TYPE_ber_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - const asn_TYPE_member_t *elm, const void *ptr, size_t size) { - size_t consumed_myself = 0; - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) != 0) { - ASN__DECODE_FAILED; - } - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - ASN_DEBUG("presence %d\n", selected.presence_index); - - rv = selected.type_descriptor->op->ber_decoder( - opt_codec_ctx, selected.type_descriptor, &inner_value, ptr, size, - elm->tag_mode); - ADVANCE(rv.consumed); - rv.consumed = 0; - switch(rv.code) { - case RC_OK: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - rv.code = RC_OK; - rv.consumed = consumed_myself; - return rv; - } else { - /* Oh, now a full-blown failure failure */ - } - /* Fall through */ - case RC_FAIL: - rv.consumed = consumed_myself; - /* Fall through */ - case RC_WMORE: - break; - } - - if(*memb_ptr2) { - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_RESET(*selected.type_descriptor, - inner_value); - } - } - return rv; -} - -asn_dec_rval_t -OPEN_TYPE_xer_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - const asn_TYPE_member_t *elm, const void *ptr, size_t size) { - size_t consumed_myself = 0; - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - - int xer_context = 0; - ssize_t ch_size; - pxer_chunk_type_e ch_type; - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - assert(elm->flags == ATF_OPEN_TYPE); - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) - != 0) { - ASN__DECODE_FAILED; - } - } - - /* - * Confirm wrapper. - */ - for(;;) { - ch_size = xer_next_token(&xer_context, ptr, size, &ch_type); - if(ch_size < 0) { - ASN__DECODE_FAILED; - } else { - switch(ch_type) { - case PXER_WMORE: - ASN__DECODE_STARVED; - case PXER_COMMENT: - case PXER_TEXT: - ADVANCE(ch_size); - continue; - case PXER_TAG: - break; - } - break; - } - } - - /* - * Wrapper value confirmed. - */ - switch(xer_check_tag(ptr, ch_size, elm->name)) { - case XCT_OPENING: - ADVANCE(ch_size); - break; - case XCT_BROKEN: - default: - ASN__DECODE_FAILED; - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - rv = selected.type_descriptor->op->xer_decoder( - opt_codec_ctx, selected.type_descriptor, &inner_value, NULL, ptr, size); - ADVANCE(rv.consumed); - rv.consumed = 0; - switch(rv.code) { - case RC_OK: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - break; - } else { - rv.code = RC_FAIL; - } - /* Fall through */ - case RC_FAIL: - /* Point to a best position where failure occurred */ - rv.consumed = consumed_myself; - /* Fall through */ - case RC_WMORE: - /* Wrt. rv.consumed==0: - * In case a genuine RC_WMORE, the whole Open Type decoding - * will have to be restarted. - */ - if(*memb_ptr2) { - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_RESET(*selected.type_descriptor, - inner_value); - } - } - return rv; - } - - /* - * Finalize wrapper. - */ - for(;;) { - ch_size = xer_next_token(&xer_context, ptr, size, &ch_type); - if(ch_size < 0) { - ASN__DECODE_FAILED; - } else { - switch(ch_type) { - case PXER_WMORE: - ASN__DECODE_STARVED; - case PXER_COMMENT: - case PXER_TEXT: - ADVANCE(ch_size); - continue; - case PXER_TAG: - break; - } - break; - } - } - - /* - * Wrapper value confirmed. - */ - switch(xer_check_tag(ptr, ch_size, elm->name)) { - case XCT_CLOSING: - ADVANCE(ch_size); - break; - case XCT_BROKEN: - default: - ASN__DECODE_FAILED; - } - - rv.consumed += consumed_myself; - - return rv; -} - - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -OPEN_TYPE_uper_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - const asn_TYPE_member_t *elm, asn_per_data_t *pd) { - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - assert(elm->flags == ATF_OPEN_TYPE); - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) - != 0) { - ASN__DECODE_FAILED; - } - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - rv = uper_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL, - &inner_value, pd); - switch(rv.code) { - case RC_OK: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - break; - } else { - rv.code = RC_FAIL; - } - /* Fall through */ - case RC_WMORE: - case RC_FAIL: - if(*memb_ptr2) { - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_RESET(*selected.type_descriptor, - inner_value); - } - } - } - return rv; -} - -asn_enc_rval_t -OPEN_TYPE_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const void *memb_ptr; /* Pointer to the member */ - asn_TYPE_member_t *elm; /* CHOICE's element */ - asn_enc_rval_t er = {0,0,0}; - unsigned present; - - (void)constraints; - - present = CHOICE_variant_get_presence(td, sptr); - if(present == 0 || present > td->elements_count) { - ASN__ENCODE_FAILED; - } else { - present--; - } - - ASN_DEBUG("Encoding %s OPEN TYPE element %d", td->name, present); - - elm = &td->elements[present]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const char *)sptr + elm->memb_offset; - } - - if(uper_open_type_put(elm->type, NULL, memb_ptr, po) < 0) { - ASN__ENCODE_FAILED; - } - - er.encoded = 0; - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -OPEN_TYPE_aper_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - const asn_TYPE_member_t *elm, asn_per_data_t *pd) { - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - assert(elm->flags == ATF_OPEN_TYPE); - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) - != 0) { - ASN__DECODE_FAILED; - } - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - rv = aper_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL, - &inner_value, pd); - switch(rv.code) { - case RC_OK: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - break; - } else { - rv.code = RC_FAIL; - } - /* Fall through */ - case RC_WMORE: - case RC_FAIL: - if(*memb_ptr2) { - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_RESET(*selected.type_descriptor, - inner_value); - } - } - } - return rv; -} - -asn_enc_rval_t -OPEN_TYPE_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const void *memb_ptr; /* Pointer to the member */ - asn_TYPE_member_t *elm; /* CHOICE's element */ - asn_enc_rval_t er = {0,0,0}; - unsigned present; - - (void)constraints; - - present = CHOICE_variant_get_presence(td, sptr); - if(present == 0 || present > td->elements_count) { - ASN__ENCODE_FAILED; - } else { - present--; - } - - ASN_DEBUG("Encoding %s OPEN TYPE element %d", td->name, present); - - elm = &td->elements[present]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const char *)sptr + elm->memb_offset; - } - - if(aper_open_type_put(elm->type, NULL, memb_ptr, po) < 0) { - ASN__ENCODE_FAILED; - } - - er.encoded = 0; - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/OPEN_TYPE.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/OPEN_TYPE.h deleted file mode 100644 index b0d023c..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/OPEN_TYPE.h +++ /dev/null @@ -1,77 +0,0 @@ -/*- - * Copyright (c) 2017-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_OPEN_TYPE_H -#define ASN_OPEN_TYPE_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#define OPEN_TYPE_free CHOICE_free -#define OPEN_TYPE_print CHOICE_print -#define OPEN_TYPE_compare CHOICE_compare -#define OPEN_TYPE_constraint CHOICE_constraint -#define OPEN_TYPE_decode_ber NULL -#define OPEN_TYPE_encode_der CHOICE_encode_der -#define OPEN_TYPE_decode_xer NULL -#define OPEN_TYPE_encode_xer CHOICE_encode_xer -#define OPEN_TYPE_decode_oer NULL -#define OPEN_TYPE_encode_oer CHOICE_encode_oer -#define OPEN_TYPE_decode_uper NULL -#define OPEN_TYPE_decode_aper NULL - -extern asn_TYPE_operation_t asn_OP_OPEN_TYPE; - -/* - * Decode an Open Type which is potentially constraiend - * by the other members of the parent structure. - */ -asn_dec_rval_t OPEN_TYPE_ber_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - const asn_TYPE_member_t *element, - const void *ptr, size_t size); - -asn_dec_rval_t OPEN_TYPE_xer_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - const asn_TYPE_member_t *element, - const void *ptr, size_t size); - -asn_dec_rval_t OPEN_TYPE_oer_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - asn_TYPE_member_t *element, const void *ptr, - size_t size); - -asn_dec_rval_t OPEN_TYPE_uper_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - const asn_TYPE_member_t *element, - asn_per_data_t *pd); - -asn_dec_rval_t OPEN_TYPE_aper_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - const asn_TYPE_member_t *element, - asn_per_data_t *pd); - -asn_enc_rval_t OPEN_TYPE_encode_uper( - const asn_TYPE_descriptor_t *type_descriptor, - const asn_per_constraints_t *constraints, const void *struct_ptr, - asn_per_outp_t *per_output); - -asn_enc_rval_t OPEN_TYPE_encode_aper( - const asn_TYPE_descriptor_t *type_descriptor, - const asn_per_constraints_t *constraints, const void *struct_ptr, - asn_per_outp_t *per_output); - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_OPEN_TYPE_H */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/OPEN_TYPE_oer.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/OPEN_TYPE_oer.c deleted file mode 100644 index dd2f5c6..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/OPEN_TYPE_oer.c +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include -#include - -asn_dec_rval_t -OPEN_TYPE_oer_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - asn_TYPE_member_t *elm, const void *ptr, size_t size) { - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - size_t ot_ret; - - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) != 0) { - ASN__DECODE_FAILED; - } - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - ot_ret = oer_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL, - &inner_value, ptr, size); - switch(ot_ret) { - default: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - rv.code = RC_OK; - rv.consumed = ot_ret; - return rv; - } else { - /* Oh, now a full-blown failure failure */ - } - /* Fall through */ - case -1: - rv.code = RC_FAIL; - rv.consumed = ot_ret; - break; - case 0: - rv.code = RC_WMORE; - rv.consumed = 0; - break; - } - - if(*memb_ptr2) { - const asn_CHOICE_specifics_t *specs = - selected.type_descriptor->specifics; - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_FREE_CONTENTS_ONLY(*selected.type_descriptor, - inner_value); - memset(*memb_ptr2, 0, specs->struct_size); - } - } - return rv; -} diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PF-Container.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PF-Container.c deleted file mode 100644 index ce46255..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PF-Container.c +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PF-Container.h" - -static asn_oer_constraints_t asn_OER_type_PF_Container_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_PF_Container_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 */ -}; -asn_TYPE_member_t asn_MBR_PF_Container_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct PF_Container, choice.oDU), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ODU_PF_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oDU" - }, - { ATF_NOFLAGS, 0, offsetof(struct PF_Container, choice.oCU_CP), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCUCP_PF_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oCU-CP" - }, - { ATF_NOFLAGS, 0, offsetof(struct PF_Container, choice.oCU_UP), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCUUP_PF_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oCU-UP" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_PF_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* oDU */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* oCU-CP */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* oCU-UP */ -}; -asn_CHOICE_specifics_t asn_SPC_PF_Container_specs_1 = { - sizeof(struct PF_Container), - offsetof(struct PF_Container, _asn_ctx), - offsetof(struct PF_Container, present), - sizeof(((struct PF_Container *)0)->present), - asn_MAP_PF_Container_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, - 3 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_PF_Container = { - "PF-Container", - "PF-Container", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_PF_Container_constr_1, &asn_PER_type_PF_Container_constr_1, CHOICE_constraint }, - asn_MBR_PF_Container_1, - 3, /* Elements count */ - &asn_SPC_PF_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PF-Container.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PF-Container.h deleted file mode 100644 index 853642a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PF-Container.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _PF_Container_H_ -#define _PF_Container_H_ - - -#include - -/* Including external dependencies */ -#include "ODU-PF-Container.h" -#include "OCUCP-PF-Container.h" -#include "OCUUP-PF-Container.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum PF_Container_PR { - PF_Container_PR_NOTHING, /* No components present */ - PF_Container_PR_oDU, - PF_Container_PR_oCU_CP, - PF_Container_PR_oCU_UP - /* Extensions may appear below */ - -} PF_Container_PR; - -/* PF-Container */ -typedef struct PF_Container { - PF_Container_PR present; - union PF_Container_u { - ODU_PF_Container_t oDU; - OCUCP_PF_Container_t oCU_CP; - OCUUP_PF_Container_t oCU_UP; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PF_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PF_Container; -extern asn_CHOICE_specifics_t asn_SPC_PF_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_PF_Container_1[3]; -extern asn_per_constraints_t asn_PER_type_PF_Container_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _PF_Container_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PF-ContainerListItem.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PF-ContainerListItem.c deleted file mode 100644 index e3aad2c..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PF-ContainerListItem.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PF-ContainerListItem.h" - -asn_TYPE_member_t asn_MBR_PF_ContainerListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct PF_ContainerListItem, interface_type), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NI_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "interface-type" - }, - { ATF_NOFLAGS, 0, offsetof(struct PF_ContainerListItem, o_CU_UP_PM_Container), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CUUPMeasurement_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "o-CU-UP-PM-Container" - }, -}; -static const ber_tlv_tag_t asn_DEF_PF_ContainerListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_PF_ContainerListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* interface-type */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* o-CU-UP-PM-Container */ -}; -asn_SEQUENCE_specifics_t asn_SPC_PF_ContainerListItem_specs_1 = { - sizeof(struct PF_ContainerListItem), - offsetof(struct PF_ContainerListItem, _asn_ctx), - asn_MAP_PF_ContainerListItem_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_PF_ContainerListItem = { - "PF-ContainerListItem", - "PF-ContainerListItem", - &asn_OP_SEQUENCE, - asn_DEF_PF_ContainerListItem_tags_1, - sizeof(asn_DEF_PF_ContainerListItem_tags_1) - /sizeof(asn_DEF_PF_ContainerListItem_tags_1[0]), /* 1 */ - asn_DEF_PF_ContainerListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_PF_ContainerListItem_tags_1) - /sizeof(asn_DEF_PF_ContainerListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PF_ContainerListItem_1, - 2, /* Elements count */ - &asn_SPC_PF_ContainerListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PF-ContainerListItem.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PF-ContainerListItem.h deleted file mode 100644 index bc4495e..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PF-ContainerListItem.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _PF_ContainerListItem_H_ -#define _PF_ContainerListItem_H_ - - -#include - -/* Including external dependencies */ -#include "NI-Type.h" -#include "CUUPMeasurement-Container.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* PF-ContainerListItem */ -typedef struct PF_ContainerListItem { - NI_Type_t interface_type; - CUUPMeasurement_Container_t o_CU_UP_PM_Container; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PF_ContainerListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PF_ContainerListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_PF_ContainerListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_PF_ContainerListItem_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _PF_ContainerListItem_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PLMN-Identity.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PLMN-Identity.c deleted file mode 100644 index ede48d2..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PLMN-Identity.c +++ /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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "PLMN-Identity.h" - -int -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; - - 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 == 3)) { - /* 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 OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -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_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_Identity_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_PLMN_Identity = { - "PLMN-Identity", - "PLMN-Identity", - &asn_OP_OCTET_STRING, - 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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PLMN-Identity.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PLMN-Identity.h deleted file mode 100644 index 111ce90..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PLMN-Identity.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _PLMN_Identity_H_ -#define _PLMN_Identity_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PM-Containers-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PM-Containers-List.c deleted file mode 100644 index 326ec75..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PM-Containers-List.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PM-Containers-List.h" - -asn_TYPE_member_t asn_MBR_PM_Containers_List_1[] = { - { ATF_POINTER, 2, offsetof(struct PM_Containers_List, performanceContainer), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_PF_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "performanceContainer" - }, - { ATF_POINTER, 1, offsetof(struct PM_Containers_List, theRANContainer), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RAN_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "theRANContainer" - }, -}; -static const int asn_MAP_PM_Containers_List_oms_1[] = { 0, 1 }; -static const ber_tlv_tag_t asn_DEF_PM_Containers_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_PM_Containers_List_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* performanceContainer */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* theRANContainer */ -}; -asn_SEQUENCE_specifics_t asn_SPC_PM_Containers_List_specs_1 = { - sizeof(struct PM_Containers_List), - offsetof(struct PM_Containers_List, _asn_ctx), - asn_MAP_PM_Containers_List_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_PM_Containers_List_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PM_Containers_List = { - "PM-Containers-List", - "PM-Containers-List", - &asn_OP_SEQUENCE, - asn_DEF_PM_Containers_List_tags_1, - sizeof(asn_DEF_PM_Containers_List_tags_1) - /sizeof(asn_DEF_PM_Containers_List_tags_1[0]), /* 1 */ - asn_DEF_PM_Containers_List_tags_1, /* Same as above */ - sizeof(asn_DEF_PM_Containers_List_tags_1) - /sizeof(asn_DEF_PM_Containers_List_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PM_Containers_List_1, - 2, /* Elements count */ - &asn_SPC_PM_Containers_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PM-Containers-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PM-Containers-List.h deleted file mode 100644 index 0a99c3b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PM-Containers-List.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _PM_Containers_List_H_ -#define _PM_Containers_List_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PF_Container; -struct RAN_Container; - -/* PM-Containers-List */ -typedef struct PM_Containers_List { - struct PF_Container *performanceContainer; /* OPTIONAL */ - struct RAN_Container *theRANContainer; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PM_Containers_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PM_Containers_List; -extern asn_SEQUENCE_specifics_t asn_SPC_PM_Containers_List_specs_1; -extern asn_TYPE_member_t asn_MBR_PM_Containers_List_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "PF-Container.h" -#include "RAN-Container.h" - -#endif /* _PM_Containers_List_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PerQCIReportListItem.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PerQCIReportListItem.c deleted file mode 100644 index 1c57dfd..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PerQCIReportListItem.c +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PerQCIReportListItem.h" - -static int -memb_qci_constraint_1(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; - } -} - -static int -memb_dl_PRBUsage_constraint_1(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 <= 100)) { - /* 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_ul_PRBUsage_constraint_1(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 <= 100)) { - /* 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_qci_constr_2 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_qci_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_dl_PRBUsage_constr_3 CC_NOTUSED = { - { 1, 1 } /* (0..100) */, - -1}; -static asn_per_constraints_t asn_PER_memb_dl_PRBUsage_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = { - { 1, 1 } /* (0..100) */, - -1}; -static asn_per_constraints_t asn_PER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_PerQCIReportListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct PerQCIReportListItem, qci), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_qci_constr_2, &asn_PER_memb_qci_constr_2, memb_qci_constraint_1 }, - 0, 0, /* No default value */ - "qci" - }, - { ATF_POINTER, 2, offsetof(struct PerQCIReportListItem, dl_PRBUsage), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_dl_PRBUsage_constr_3, &asn_PER_memb_dl_PRBUsage_constr_3, memb_dl_PRBUsage_constraint_1 }, - 0, 0, /* No default value */ - "dl-PRBUsage" - }, - { ATF_POINTER, 1, offsetof(struct PerQCIReportListItem, ul_PRBUsage), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_ul_PRBUsage_constr_4, &asn_PER_memb_ul_PRBUsage_constr_4, memb_ul_PRBUsage_constraint_1 }, - 0, 0, /* No default value */ - "ul-PRBUsage" - }, -}; -static const int asn_MAP_PerQCIReportListItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_PerQCIReportListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_PerQCIReportListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qci */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dl-PRBUsage */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ul-PRBUsage */ -}; -asn_SEQUENCE_specifics_t asn_SPC_PerQCIReportListItem_specs_1 = { - sizeof(struct PerQCIReportListItem), - offsetof(struct PerQCIReportListItem, _asn_ctx), - asn_MAP_PerQCIReportListItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_PerQCIReportListItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PerQCIReportListItem = { - "PerQCIReportListItem", - "PerQCIReportListItem", - &asn_OP_SEQUENCE, - asn_DEF_PerQCIReportListItem_tags_1, - sizeof(asn_DEF_PerQCIReportListItem_tags_1) - /sizeof(asn_DEF_PerQCIReportListItem_tags_1[0]), /* 1 */ - asn_DEF_PerQCIReportListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_PerQCIReportListItem_tags_1) - /sizeof(asn_DEF_PerQCIReportListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PerQCIReportListItem_1, - 3, /* Elements count */ - &asn_SPC_PerQCIReportListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PerQCIReportListItem.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PerQCIReportListItem.h deleted file mode 100644 index 32508ea..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PerQCIReportListItem.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _PerQCIReportListItem_H_ -#define _PerQCIReportListItem_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* PerQCIReportListItem */ -typedef struct PerQCIReportListItem { - long qci; - long *dl_PRBUsage; /* OPTIONAL */ - long *ul_PRBUsage; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PerQCIReportListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PerQCIReportListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_PerQCIReportListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_PerQCIReportListItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _PerQCIReportListItem_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PerQCIReportListItemFormat.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PerQCIReportListItemFormat.c deleted file mode 100644 index 239cbd8..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PerQCIReportListItemFormat.c +++ /dev/null @@ -1,183 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PerQCIReportListItemFormat.h" - -static int -memb_qci_constraint_1(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; - } -} - -static int -memb_pDCPBytesDL_constraint_1(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 <= 10000000000)) { - /* 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_pDCPBytesUL_constraint_1(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 <= 10000000000)) { - /* 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_qci_constr_2 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_qci_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pDCPBytesDL_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_pDCPBytesDL_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 34, -1, 0, 10000000000 } /* (0..10000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 34, -1, 0, 10000000000 } /* (0..10000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_PerQCIReportListItemFormat_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct PerQCIReportListItemFormat, qci), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_qci_constr_2, &asn_PER_memb_qci_constr_2, memb_qci_constraint_1 }, - 0, 0, /* No default value */ - "qci" - }, - { ATF_POINTER, 2, offsetof(struct PerQCIReportListItemFormat, pDCPBytesDL), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_INTEGER, - 0, - { &asn_OER_memb_pDCPBytesDL_constr_3, &asn_PER_memb_pDCPBytesDL_constr_3, memb_pDCPBytesDL_constraint_1 }, - 0, 0, /* No default value */ - "pDCPBytesDL" - }, - { ATF_POINTER, 1, offsetof(struct PerQCIReportListItemFormat, pDCPBytesUL), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_INTEGER, - 0, - { &asn_OER_memb_pDCPBytesUL_constr_4, &asn_PER_memb_pDCPBytesUL_constr_4, memb_pDCPBytesUL_constraint_1 }, - 0, 0, /* No default value */ - "pDCPBytesUL" - }, -}; -static const int asn_MAP_PerQCIReportListItemFormat_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_PerQCIReportListItemFormat_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_PerQCIReportListItemFormat_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qci */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDCPBytesDL */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* pDCPBytesUL */ -}; -asn_SEQUENCE_specifics_t asn_SPC_PerQCIReportListItemFormat_specs_1 = { - sizeof(struct PerQCIReportListItemFormat), - offsetof(struct PerQCIReportListItemFormat, _asn_ctx), - asn_MAP_PerQCIReportListItemFormat_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_PerQCIReportListItemFormat_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PerQCIReportListItemFormat = { - "PerQCIReportListItemFormat", - "PerQCIReportListItemFormat", - &asn_OP_SEQUENCE, - asn_DEF_PerQCIReportListItemFormat_tags_1, - sizeof(asn_DEF_PerQCIReportListItemFormat_tags_1) - /sizeof(asn_DEF_PerQCIReportListItemFormat_tags_1[0]), /* 1 */ - asn_DEF_PerQCIReportListItemFormat_tags_1, /* Same as above */ - sizeof(asn_DEF_PerQCIReportListItemFormat_tags_1) - /sizeof(asn_DEF_PerQCIReportListItemFormat_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PerQCIReportListItemFormat_1, - 3, /* Elements count */ - &asn_SPC_PerQCIReportListItemFormat_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PerQCIReportListItemFormat.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PerQCIReportListItemFormat.h deleted file mode 100644 index 7fb1ecf..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PerQCIReportListItemFormat.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _PerQCIReportListItemFormat_H_ -#define _PerQCIReportListItemFormat_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* PerQCIReportListItemFormat */ -typedef struct PerQCIReportListItemFormat { - long qci; - INTEGER_t *pDCPBytesDL; /* OPTIONAL */ - INTEGER_t *pDCPBytesUL; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PerQCIReportListItemFormat_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PerQCIReportListItemFormat; -extern asn_SEQUENCE_specifics_t asn_SPC_PerQCIReportListItemFormat_specs_1; -extern asn_TYPE_member_t asn_MBR_PerQCIReportListItemFormat_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _PerQCIReportListItemFormat_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PlmnID-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PlmnID-List.c deleted file mode 100644 index 2126cf5..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PlmnID-List.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PlmnID-List.h" - -asn_TYPE_member_t asn_MBR_PlmnID_List_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct PlmnID_List, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_POINTER, 2, offsetof(struct PlmnID_List, cu_UP_PM_5GC), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_FGC_CUUP_PM_Format, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cu-UP-PM-5GC" - }, - { ATF_POINTER, 1, offsetof(struct PlmnID_List, cu_UP_PM_EPC), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_EPC_CUUP_PM_Format, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cu-UP-PM-EPC" - }, -}; -static const int asn_MAP_PlmnID_List_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_PlmnID_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_PlmnID_List_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cu-UP-PM-5GC */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* cu-UP-PM-EPC */ -}; -asn_SEQUENCE_specifics_t asn_SPC_PlmnID_List_specs_1 = { - sizeof(struct PlmnID_List), - offsetof(struct PlmnID_List, _asn_ctx), - asn_MAP_PlmnID_List_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_PlmnID_List_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PlmnID_List = { - "PlmnID-List", - "PlmnID-List", - &asn_OP_SEQUENCE, - asn_DEF_PlmnID_List_tags_1, - sizeof(asn_DEF_PlmnID_List_tags_1) - /sizeof(asn_DEF_PlmnID_List_tags_1[0]), /* 1 */ - asn_DEF_PlmnID_List_tags_1, /* Same as above */ - sizeof(asn_DEF_PlmnID_List_tags_1) - /sizeof(asn_DEF_PlmnID_List_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PlmnID_List_1, - 3, /* Elements count */ - &asn_SPC_PlmnID_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PlmnID-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PlmnID-List.h deleted file mode 100644 index 79d1dd5..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PlmnID-List.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _PlmnID_List_H_ -#define _PlmnID_List_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct FGC_CUUP_PM_Format; -struct EPC_CUUP_PM_Format; - -/* PlmnID-List */ -typedef struct PlmnID_List { - PLMN_Identity_t pLMN_Identity; - struct FGC_CUUP_PM_Format *cu_UP_PM_5GC; /* OPTIONAL */ - struct EPC_CUUP_PM_Format *cu_UP_PM_EPC; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PlmnID_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PlmnID_List; -extern asn_SEQUENCE_specifics_t asn_SPC_PlmnID_List_specs_1; -extern asn_TYPE_member_t asn_MBR_PlmnID_List_1[3]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "FGC-CUUP-PM-Format.h" -#include "EPC-CUUP-PM-Format.h" - -#endif /* _PlmnID_List_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Presence.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Presence.c deleted file mode 100644 index b9ee204..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Presence.c +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "Presence.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_Presence_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_Presence_constr_1 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_INTEGER_enum_map_t asn_MAP_Presence_value2enum_1[] = { - { 0, 8, "optional" }, - { 1, 11, "conditional" }, - { 2, 9, "mandatory" } -}; -static const unsigned int asn_MAP_Presence_enum2value_1[] = { - 1, /* conditional(1) */ - 2, /* mandatory(2) */ - 0 /* optional(0) */ -}; -const asn_INTEGER_specifics_t asn_SPC_Presence_specs_1 = { - asn_MAP_Presence_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_Presence_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 0, /* Enumeration is not extensible */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_Presence_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Presence = { - "Presence", - "Presence", - &asn_OP_NativeEnumerated, - asn_DEF_Presence_tags_1, - sizeof(asn_DEF_Presence_tags_1) - /sizeof(asn_DEF_Presence_tags_1[0]), /* 1 */ - asn_DEF_Presence_tags_1, /* Same as above */ - sizeof(asn_DEF_Presence_tags_1) - /sizeof(asn_DEF_Presence_tags_1[0]), /* 1 */ - { &asn_OER_type_Presence_constr_1, &asn_PER_type_Presence_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_Presence_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Presence.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Presence.h deleted file mode 100644 index baf9353..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Presence.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _Presence_H_ -#define _Presence_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum Presence { - Presence_optional = 0, - Presence_conditional = 1, - Presence_mandatory = 2 -} e_Presence; - -/* Presence */ -typedef long Presence_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Presence_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Presence; -extern const asn_INTEGER_specifics_t asn_SPC_Presence_specs_1; -asn_struct_free_f Presence_free; -asn_struct_print_f Presence_print; -asn_constr_check_f Presence_constraint; -ber_type_decoder_f Presence_decode_ber; -der_type_encoder_f Presence_encode_der; -xer_type_decoder_f Presence_decode_xer; -xer_type_encoder_f Presence_encode_xer; -oer_type_decoder_f Presence_decode_oer; -oer_type_encoder_f Presence_encode_oer; -per_type_decoder_f Presence_decode_uper; -per_type_encoder_f Presence_encode_uper; -per_type_decoder_f Presence_decode_aper; -per_type_encoder_f Presence_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Presence_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PrintableString.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PrintableString.c deleted file mode 100644 index 8fc3939..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PrintableString.c +++ /dev/null @@ -1,130 +0,0 @@ -/*- - * 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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PrintableString.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PrintableString.h deleted file mode 100644 index 8c2b61a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PrintableString.h +++ /dev/null @@ -1,37 +0,0 @@ -/*- - * 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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProcedureCode.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProcedureCode.c deleted file mode 100644 index 3fa11b8..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProcedureCode.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "ProcedureCode.h" - -int -ProcedureCode_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_ProcedureCode_constr_1 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -asn_per_constraints_t asn_PER_type_ProcedureCode_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 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_ProcedureCode_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProcedureCode = { - "ProcedureCode", - "ProcedureCode", - &asn_OP_NativeInteger, - asn_DEF_ProcedureCode_tags_1, - sizeof(asn_DEF_ProcedureCode_tags_1) - /sizeof(asn_DEF_ProcedureCode_tags_1[0]), /* 1 */ - asn_DEF_ProcedureCode_tags_1, /* Same as above */ - sizeof(asn_DEF_ProcedureCode_tags_1) - /sizeof(asn_DEF_ProcedureCode_tags_1[0]), /* 1 */ - { &asn_OER_type_ProcedureCode_constr_1, &asn_PER_type_ProcedureCode_constr_1, ProcedureCode_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProcedureCode.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProcedureCode.h deleted file mode 100644 index 857d458..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProcedureCode.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _ProcedureCode_H_ -#define _ProcedureCode_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ProcedureCode */ -typedef long ProcedureCode_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ProcedureCode_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ProcedureCode; -asn_struct_free_f ProcedureCode_free; -asn_struct_print_f ProcedureCode_print; -asn_constr_check_f ProcedureCode_constraint; -ber_type_decoder_f ProcedureCode_decode_ber; -der_type_encoder_f ProcedureCode_encode_der; -xer_type_decoder_f ProcedureCode_decode_xer; -xer_type_encoder_f ProcedureCode_encode_xer; -oer_type_decoder_f ProcedureCode_decode_oer; -oer_type_encoder_f ProcedureCode_encode_oer; -per_type_decoder_f ProcedureCode_decode_uper; -per_type_encoder_f ProcedureCode_encode_uper; -per_type_decoder_f ProcedureCode_decode_aper; -per_type_encoder_f ProcedureCode_encode_aper; -#define ProcedureCode_id_E2setup ((ProcedureCode_t)1) -#define ProcedureCode_id_ErrorIndication ((ProcedureCode_t)2) -#define ProcedureCode_id_Reset ((ProcedureCode_t)3) -#define ProcedureCode_id_RICcontrol ((ProcedureCode_t)4) -#define ProcedureCode_id_RICindication ((ProcedureCode_t)5) -#define ProcedureCode_id_RICserviceQuery ((ProcedureCode_t)6) -#define ProcedureCode_id_RICserviceUpdate ((ProcedureCode_t)7) -#define ProcedureCode_id_RICsubscription ((ProcedureCode_t)8) -#define ProcedureCode_id_RICsubscriptionDelete ((ProcedureCode_t)9) -#define ProcedureCode_id_E2nodeConfigurationUpdate ((ProcedureCode_t)10) -#define ProcedureCode_id_E2connectionUpdate ((ProcedureCode_t)11) -#define ProcedureCode_id_RICsubscriptionDeleteRequired ((ProcedureCode_t)12) - -#ifdef __cplusplus -} -#endif - -#endif /* _ProcedureCode_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-Container.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-Container.c deleted file mode 100644 index f8c9a79..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-Container.c +++ /dev/null @@ -1,1171 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "ProtocolIE-Container.h" - -#include "ProtocolIE-Field.h" -static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_1917P0_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P0_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_Container_1917P1_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P1_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_Container_1917P2_constr_5 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P2_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_Container_1917P3_constr_7 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P3_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_Container_1917P4_constr_9 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P4_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_Container_1917P5_constr_11 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P5_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_Container_1917P6_constr_13 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P6_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_Container_1917P7_constr_15 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P7_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_Container_1917P8_constr_17 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P8_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_Container_1917P9_constr_19 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P9_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_Container_1917P10_constr_21 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P10_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_Container_1917P11_constr_23 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P11_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_Container_1917P12_constr_25 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P12_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_Container_1917P13_constr_27 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P13_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_Container_1917P14_constr_29 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P14_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_Container_1917P15_constr_31 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P15_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_Container_1917P16_constr_33 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P16_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_Container_1917P17_constr_35 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P17_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_Container_1917P18_constr_37 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P18_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_Container_1917P19_constr_39 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P19_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 */ -}; -static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_1917P20_constr_41 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P20_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_Container_1917P21_constr_43 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P21_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_Container_1917P22_constr_45 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P22_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_Container_1917P23_constr_47 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P23_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_Container_1917P24_constr_49 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P24_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_Container_1917P25_constr_51 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P25_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_Container_1917P26_constr_53 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P26_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_Container_1917P0_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P0_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P0_specs_1 = { - sizeof(struct ProtocolIE_Container_1917P0), - offsetof(struct ProtocolIE_Container_1917P0, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P0 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P0_tags_1, - sizeof(asn_DEF_ProtocolIE_Container_1917P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_Container_1917P0_tags_1[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P0_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_Container_1917P0_tags_1[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_Container_1917P0_constr_1, &asn_PER_type_ProtocolIE_Container_1917P0_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P0_1, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P0_specs_1 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P1_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionResponse_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P1_tags_3[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P1_specs_3 = { - sizeof(struct ProtocolIE_Container_1917P1), - offsetof(struct ProtocolIE_Container_1917P1, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P1 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P1_tags_3, - sizeof(asn_DEF_ProtocolIE_Container_1917P1_tags_3) - /sizeof(asn_DEF_ProtocolIE_Container_1917P1_tags_3[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P1_tags_3, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P1_tags_3) - /sizeof(asn_DEF_ProtocolIE_Container_1917P1_tags_3[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_Container_1917P1_constr_3, &asn_PER_type_ProtocolIE_Container_1917P1_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P1_3, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P1_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P2_5[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P2_tags_5[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P2_specs_5 = { - sizeof(struct ProtocolIE_Container_1917P2), - offsetof(struct ProtocolIE_Container_1917P2, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P2 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P2_tags_5, - sizeof(asn_DEF_ProtocolIE_Container_1917P2_tags_5) - /sizeof(asn_DEF_ProtocolIE_Container_1917P2_tags_5[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P2_tags_5, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P2_tags_5) - /sizeof(asn_DEF_ProtocolIE_Container_1917P2_tags_5[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_Container_1917P2_constr_5, &asn_PER_type_ProtocolIE_Container_1917P2_constr_5, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P2_5, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P2_specs_5 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P3_7[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P3_tags_7[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P3_specs_7 = { - sizeof(struct ProtocolIE_Container_1917P3), - offsetof(struct ProtocolIE_Container_1917P3, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P3 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P3_tags_7, - sizeof(asn_DEF_ProtocolIE_Container_1917P3_tags_7) - /sizeof(asn_DEF_ProtocolIE_Container_1917P3_tags_7[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P3_tags_7, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P3_tags_7) - /sizeof(asn_DEF_ProtocolIE_Container_1917P3_tags_7[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_Container_1917P3_constr_7, &asn_PER_type_ProtocolIE_Container_1917P3_constr_7, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P3_7, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P3_specs_7 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P4_9[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteResponse_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P4_tags_9[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P4_specs_9 = { - sizeof(struct ProtocolIE_Container_1917P4), - offsetof(struct ProtocolIE_Container_1917P4, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P4 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P4_tags_9, - sizeof(asn_DEF_ProtocolIE_Container_1917P4_tags_9) - /sizeof(asn_DEF_ProtocolIE_Container_1917P4_tags_9[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P4_tags_9, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P4_tags_9) - /sizeof(asn_DEF_ProtocolIE_Container_1917P4_tags_9[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_Container_1917P4_constr_9, &asn_PER_type_ProtocolIE_Container_1917P4_constr_9, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P4_9, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P4_specs_9 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P5_11[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P5_tags_11[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P5_specs_11 = { - sizeof(struct ProtocolIE_Container_1917P5), - offsetof(struct ProtocolIE_Container_1917P5, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P5 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P5_tags_11, - sizeof(asn_DEF_ProtocolIE_Container_1917P5_tags_11) - /sizeof(asn_DEF_ProtocolIE_Container_1917P5_tags_11[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P5_tags_11, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P5_tags_11) - /sizeof(asn_DEF_ProtocolIE_Container_1917P5_tags_11[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_Container_1917P5_constr_11, &asn_PER_type_ProtocolIE_Container_1917P5_constr_11, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P5_11, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P5_specs_11 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P6_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_Container_1917P6_tags_13[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P6_specs_13 = { - sizeof(struct ProtocolIE_Container_1917P6), - offsetof(struct ProtocolIE_Container_1917P6, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P6 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P6_tags_13, - sizeof(asn_DEF_ProtocolIE_Container_1917P6_tags_13) - /sizeof(asn_DEF_ProtocolIE_Container_1917P6_tags_13[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P6_tags_13, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P6_tags_13) - /sizeof(asn_DEF_ProtocolIE_Container_1917P6_tags_13[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_Container_1917P6_constr_13, &asn_PER_type_ProtocolIE_Container_1917P6_constr_13, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P6_13, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P6_specs_13 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P7_15[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICindication_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P7_tags_15[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P7_specs_15 = { - sizeof(struct ProtocolIE_Container_1917P7), - offsetof(struct ProtocolIE_Container_1917P7, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P7 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P7_tags_15, - sizeof(asn_DEF_ProtocolIE_Container_1917P7_tags_15) - /sizeof(asn_DEF_ProtocolIE_Container_1917P7_tags_15[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P7_tags_15, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P7_tags_15) - /sizeof(asn_DEF_ProtocolIE_Container_1917P7_tags_15[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_Container_1917P7_constr_15, &asn_PER_type_ProtocolIE_Container_1917P7_constr_15, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P7_15, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P7_specs_15 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P8_17[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P8_tags_17[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P8_specs_17 = { - sizeof(struct ProtocolIE_Container_1917P8), - offsetof(struct ProtocolIE_Container_1917P8, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P8 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P8_tags_17, - sizeof(asn_DEF_ProtocolIE_Container_1917P8_tags_17) - /sizeof(asn_DEF_ProtocolIE_Container_1917P8_tags_17[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P8_tags_17, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P8_tags_17) - /sizeof(asn_DEF_ProtocolIE_Container_1917P8_tags_17[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_Container_1917P8_constr_17, &asn_PER_type_ProtocolIE_Container_1917P8_constr_17, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P8_17, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P8_specs_17 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P9_19[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolAcknowledge_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P9_tags_19[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P9_specs_19 = { - sizeof(struct ProtocolIE_Container_1917P9), - offsetof(struct ProtocolIE_Container_1917P9, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P9 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P9_tags_19, - sizeof(asn_DEF_ProtocolIE_Container_1917P9_tags_19) - /sizeof(asn_DEF_ProtocolIE_Container_1917P9_tags_19[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P9_tags_19, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P9_tags_19) - /sizeof(asn_DEF_ProtocolIE_Container_1917P9_tags_19[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_Container_1917P9_constr_19, &asn_PER_type_ProtocolIE_Container_1917P9_constr_19, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P9_19, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P9_specs_19 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P10_21[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P10_tags_21[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P10_specs_21 = { - sizeof(struct ProtocolIE_Container_1917P10), - offsetof(struct ProtocolIE_Container_1917P10, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P10 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P10_tags_21, - sizeof(asn_DEF_ProtocolIE_Container_1917P10_tags_21) - /sizeof(asn_DEF_ProtocolIE_Container_1917P10_tags_21[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P10_tags_21, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P10_tags_21) - /sizeof(asn_DEF_ProtocolIE_Container_1917P10_tags_21[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_Container_1917P10_constr_21, &asn_PER_type_ProtocolIE_Container_1917P10_constr_21, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P10_21, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P10_specs_21 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P11_23[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ErrorIndication_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P11_tags_23[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P11_specs_23 = { - sizeof(struct ProtocolIE_Container_1917P11), - offsetof(struct ProtocolIE_Container_1917P11, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P11 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P11_tags_23, - sizeof(asn_DEF_ProtocolIE_Container_1917P11_tags_23) - /sizeof(asn_DEF_ProtocolIE_Container_1917P11_tags_23[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P11_tags_23, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P11_tags_23) - /sizeof(asn_DEF_ProtocolIE_Container_1917P11_tags_23[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_Container_1917P11_constr_23, &asn_PER_type_ProtocolIE_Container_1917P11_constr_23, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P11_23, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P11_specs_23 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P12_25[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupRequestIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P12_tags_25[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P12_specs_25 = { - sizeof(struct ProtocolIE_Container_1917P12), - offsetof(struct ProtocolIE_Container_1917P12, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P12 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P12_tags_25, - sizeof(asn_DEF_ProtocolIE_Container_1917P12_tags_25) - /sizeof(asn_DEF_ProtocolIE_Container_1917P12_tags_25[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P12_tags_25, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P12_tags_25) - /sizeof(asn_DEF_ProtocolIE_Container_1917P12_tags_25[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_Container_1917P12_constr_25, &asn_PER_type_ProtocolIE_Container_1917P12_constr_25, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P12_25, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P12_specs_25 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P13_27[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupResponseIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P13_tags_27[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P13_specs_27 = { - sizeof(struct ProtocolIE_Container_1917P13), - offsetof(struct ProtocolIE_Container_1917P13, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P13 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P13_tags_27, - sizeof(asn_DEF_ProtocolIE_Container_1917P13_tags_27) - /sizeof(asn_DEF_ProtocolIE_Container_1917P13_tags_27[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P13_tags_27, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P13_tags_27) - /sizeof(asn_DEF_ProtocolIE_Container_1917P13_tags_27[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_Container_1917P13_constr_27, &asn_PER_type_ProtocolIE_Container_1917P13_constr_27, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P13_27, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P13_specs_27 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P14_29[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupFailureIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P14_tags_29[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P14_specs_29 = { - sizeof(struct ProtocolIE_Container_1917P14), - offsetof(struct ProtocolIE_Container_1917P14, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P14 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P14_tags_29, - sizeof(asn_DEF_ProtocolIE_Container_1917P14_tags_29) - /sizeof(asn_DEF_ProtocolIE_Container_1917P14_tags_29[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P14_tags_29, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P14_tags_29) - /sizeof(asn_DEF_ProtocolIE_Container_1917P14_tags_29[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_Container_1917P14_constr_29, &asn_PER_type_ProtocolIE_Container_1917P14_constr_29, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P14_29, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P14_specs_29 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P15_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_Container_1917P15_tags_31[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P15_specs_31 = { - sizeof(struct ProtocolIE_Container_1917P15), - offsetof(struct ProtocolIE_Container_1917P15, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P15 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P15_tags_31, - sizeof(asn_DEF_ProtocolIE_Container_1917P15_tags_31) - /sizeof(asn_DEF_ProtocolIE_Container_1917P15_tags_31[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P15_tags_31, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P15_tags_31) - /sizeof(asn_DEF_ProtocolIE_Container_1917P15_tags_31[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_Container_1917P15_constr_31, &asn_PER_type_ProtocolIE_Container_1917P15_constr_31, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P15_31, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P15_specs_31 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P16_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_Container_1917P16_tags_33[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P16_specs_33 = { - sizeof(struct ProtocolIE_Container_1917P16), - offsetof(struct ProtocolIE_Container_1917P16, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P16 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P16_tags_33, - sizeof(asn_DEF_ProtocolIE_Container_1917P16_tags_33) - /sizeof(asn_DEF_ProtocolIE_Container_1917P16_tags_33[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P16_tags_33, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P16_tags_33) - /sizeof(asn_DEF_ProtocolIE_Container_1917P16_tags_33[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_Container_1917P16_constr_33, &asn_PER_type_ProtocolIE_Container_1917P16_constr_33, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P16_33, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P16_specs_33 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P17_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_Container_1917P17_tags_35[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P17_specs_35 = { - sizeof(struct ProtocolIE_Container_1917P17), - offsetof(struct ProtocolIE_Container_1917P17, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P17 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P17_tags_35, - sizeof(asn_DEF_ProtocolIE_Container_1917P17_tags_35) - /sizeof(asn_DEF_ProtocolIE_Container_1917P17_tags_35[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P17_tags_35, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P17_tags_35) - /sizeof(asn_DEF_ProtocolIE_Container_1917P17_tags_35[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_Container_1917P17_constr_35, &asn_PER_type_ProtocolIE_Container_1917P17_constr_35, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P17_35, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P17_specs_35 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P18_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_Container_1917P18_tags_37[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P18_specs_37 = { - sizeof(struct ProtocolIE_Container_1917P18), - offsetof(struct ProtocolIE_Container_1917P18, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P18 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P18_tags_37, - sizeof(asn_DEF_ProtocolIE_Container_1917P18_tags_37) - /sizeof(asn_DEF_ProtocolIE_Container_1917P18_tags_37[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P18_tags_37, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P18_tags_37) - /sizeof(asn_DEF_ProtocolIE_Container_1917P18_tags_37[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_Container_1917P18_constr_37, &asn_PER_type_ProtocolIE_Container_1917P18_constr_37, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P18_37, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P18_specs_37 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P19_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_Container_1917P19_tags_39[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P19_specs_39 = { - sizeof(struct ProtocolIE_Container_1917P19), - offsetof(struct ProtocolIE_Container_1917P19, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P19 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P19_tags_39, - sizeof(asn_DEF_ProtocolIE_Container_1917P19_tags_39) - /sizeof(asn_DEF_ProtocolIE_Container_1917P19_tags_39[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P19_tags_39, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P19_tags_39) - /sizeof(asn_DEF_ProtocolIE_Container_1917P19_tags_39[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_Container_1917P19_constr_39, &asn_PER_type_ProtocolIE_Container_1917P19_constr_39, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P19_39, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P19_specs_39 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P20_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_Container_1917P20_tags_41[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P20_specs_41 = { - sizeof(struct ProtocolIE_Container_1917P20), - offsetof(struct ProtocolIE_Container_1917P20, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P20 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P20_tags_41, - sizeof(asn_DEF_ProtocolIE_Container_1917P20_tags_41) - /sizeof(asn_DEF_ProtocolIE_Container_1917P20_tags_41[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P20_tags_41, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P20_tags_41) - /sizeof(asn_DEF_ProtocolIE_Container_1917P20_tags_41[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_Container_1917P20_constr_41, &asn_PER_type_ProtocolIE_Container_1917P20_constr_41, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P20_41, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P20_specs_41 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P21_43[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResetRequestIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P21_tags_43[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P21_specs_43 = { - sizeof(struct ProtocolIE_Container_1917P21), - offsetof(struct ProtocolIE_Container_1917P21, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P21 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P21_tags_43, - sizeof(asn_DEF_ProtocolIE_Container_1917P21_tags_43) - /sizeof(asn_DEF_ProtocolIE_Container_1917P21_tags_43[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P21_tags_43, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P21_tags_43) - /sizeof(asn_DEF_ProtocolIE_Container_1917P21_tags_43[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_Container_1917P21_constr_43, &asn_PER_type_ProtocolIE_Container_1917P21_constr_43, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P21_43, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P21_specs_43 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P22_45[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResetResponseIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P22_tags_45[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P22_specs_45 = { - sizeof(struct ProtocolIE_Container_1917P22), - offsetof(struct ProtocolIE_Container_1917P22, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P22 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P22_tags_45, - sizeof(asn_DEF_ProtocolIE_Container_1917P22_tags_45) - /sizeof(asn_DEF_ProtocolIE_Container_1917P22_tags_45[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P22_tags_45, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P22_tags_45) - /sizeof(asn_DEF_ProtocolIE_Container_1917P22_tags_45[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_Container_1917P22_constr_45, &asn_PER_type_ProtocolIE_Container_1917P22_constr_45, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P22_45, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P22_specs_45 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P23_47[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdate_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P23_tags_47[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P23_specs_47 = { - sizeof(struct ProtocolIE_Container_1917P23), - offsetof(struct ProtocolIE_Container_1917P23, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P23 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P23_tags_47, - sizeof(asn_DEF_ProtocolIE_Container_1917P23_tags_47) - /sizeof(asn_DEF_ProtocolIE_Container_1917P23_tags_47[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P23_tags_47, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P23_tags_47) - /sizeof(asn_DEF_ProtocolIE_Container_1917P23_tags_47[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_Container_1917P23_constr_47, &asn_PER_type_ProtocolIE_Container_1917P23_constr_47, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P23_47, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P23_specs_47 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P24_49[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdateAcknowledge_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P24_tags_49[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P24_specs_49 = { - sizeof(struct ProtocolIE_Container_1917P24), - offsetof(struct ProtocolIE_Container_1917P24, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P24 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P24_tags_49, - sizeof(asn_DEF_ProtocolIE_Container_1917P24_tags_49) - /sizeof(asn_DEF_ProtocolIE_Container_1917P24_tags_49[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P24_tags_49, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P24_tags_49) - /sizeof(asn_DEF_ProtocolIE_Container_1917P24_tags_49[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_Container_1917P24_constr_49, &asn_PER_type_ProtocolIE_Container_1917P24_constr_49, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P24_49, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P24_specs_49 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P25_51[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdateFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P25_tags_51[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P25_specs_51 = { - sizeof(struct ProtocolIE_Container_1917P25), - offsetof(struct ProtocolIE_Container_1917P25, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P25 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P25_tags_51, - sizeof(asn_DEF_ProtocolIE_Container_1917P25_tags_51) - /sizeof(asn_DEF_ProtocolIE_Container_1917P25_tags_51[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P25_tags_51, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P25_tags_51) - /sizeof(asn_DEF_ProtocolIE_Container_1917P25_tags_51[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_Container_1917P25_constr_51, &asn_PER_type_ProtocolIE_Container_1917P25_constr_51, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P25_51, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P25_specs_51 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P26_53[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceQuery_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P26_tags_53[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P26_specs_53 = { - sizeof(struct ProtocolIE_Container_1917P26), - offsetof(struct ProtocolIE_Container_1917P26, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P26 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P26_tags_53, - sizeof(asn_DEF_ProtocolIE_Container_1917P26_tags_53) - /sizeof(asn_DEF_ProtocolIE_Container_1917P26_tags_53[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P26_tags_53, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P26_tags_53) - /sizeof(asn_DEF_ProtocolIE_Container_1917P26_tags_53[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_Container_1917P26_constr_53, &asn_PER_type_ProtocolIE_Container_1917P26_constr_53, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P26_53, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P26_specs_53 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-Container.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-Container.h deleted file mode 100644 index c456afc..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-Container.h +++ /dev/null @@ -1,330 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _ProtocolIE_Container_H_ -#define _ProtocolIE_Container_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct RICsubscriptionRequest_IEs; -struct RICsubscriptionResponse_IEs; -struct RICsubscriptionFailure_IEs; -struct RICsubscriptionDeleteRequest_IEs; -struct RICsubscriptionDeleteResponse_IEs; -struct RICsubscriptionDeleteFailure_IEs; -struct RICsubscriptionDeleteRequired_IEs; -struct RICindication_IEs; -struct RICcontrolRequest_IEs; -struct RICcontrolAcknowledge_IEs; -struct RICcontrolFailure_IEs; -struct ErrorIndication_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; -struct RICserviceUpdateAcknowledge_IEs; -struct RICserviceUpdateFailure_IEs; -struct RICserviceQuery_IEs; - -/* ProtocolIE-Container */ -typedef struct ProtocolIE_Container_1917P0 { - A_SEQUENCE_OF(struct RICsubscriptionRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P0_t; -typedef struct ProtocolIE_Container_1917P1 { - A_SEQUENCE_OF(struct RICsubscriptionResponse_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P1_t; -typedef struct ProtocolIE_Container_1917P2 { - A_SEQUENCE_OF(struct RICsubscriptionFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P2_t; -typedef struct ProtocolIE_Container_1917P3 { - A_SEQUENCE_OF(struct RICsubscriptionDeleteRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P3_t; -typedef struct ProtocolIE_Container_1917P4 { - A_SEQUENCE_OF(struct RICsubscriptionDeleteResponse_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P4_t; -typedef struct ProtocolIE_Container_1917P5 { - A_SEQUENCE_OF(struct RICsubscriptionDeleteFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P5_t; -typedef struct ProtocolIE_Container_1917P6 { - A_SEQUENCE_OF(struct RICsubscriptionDeleteRequired_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P6_t; -typedef struct ProtocolIE_Container_1917P7 { - A_SEQUENCE_OF(struct RICindication_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P7_t; -typedef struct ProtocolIE_Container_1917P8 { - A_SEQUENCE_OF(struct RICcontrolRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P8_t; -typedef struct ProtocolIE_Container_1917P9 { - A_SEQUENCE_OF(struct RICcontrolAcknowledge_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P9_t; -typedef struct ProtocolIE_Container_1917P10 { - A_SEQUENCE_OF(struct RICcontrolFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P10_t; -typedef struct ProtocolIE_Container_1917P11 { - A_SEQUENCE_OF(struct ErrorIndication_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P11_t; -typedef struct ProtocolIE_Container_1917P12 { - A_SEQUENCE_OF(struct E2setupRequestIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P12_t; -typedef struct ProtocolIE_Container_1917P13 { - A_SEQUENCE_OF(struct E2setupResponseIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P13_t; -typedef struct ProtocolIE_Container_1917P14 { - A_SEQUENCE_OF(struct E2setupFailureIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P14_t; -typedef struct ProtocolIE_Container_1917P15 { - A_SEQUENCE_OF(struct E2connectionUpdate_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P15_t; -typedef struct ProtocolIE_Container_1917P16 { - A_SEQUENCE_OF(struct E2connectionUpdateAck_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P16_t; -typedef struct ProtocolIE_Container_1917P17 { - A_SEQUENCE_OF(struct E2connectionUpdateFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P17_t; -typedef struct ProtocolIE_Container_1917P18 { - A_SEQUENCE_OF(struct E2nodeConfigurationUpdate_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P18_t; -typedef struct ProtocolIE_Container_1917P19 { - A_SEQUENCE_OF(struct E2nodeConfigurationUpdateAcknowledge_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P19_t; -typedef struct ProtocolIE_Container_1917P20 { - A_SEQUENCE_OF(struct E2nodeConfigurationUpdateFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P20_t; -typedef struct ProtocolIE_Container_1917P21 { - A_SEQUENCE_OF(struct ResetRequestIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P21_t; -typedef struct ProtocolIE_Container_1917P22 { - A_SEQUENCE_OF(struct ResetResponseIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P22_t; -typedef struct ProtocolIE_Container_1917P23 { - A_SEQUENCE_OF(struct RICserviceUpdate_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P23_t; -typedef struct ProtocolIE_Container_1917P24 { - A_SEQUENCE_OF(struct RICserviceUpdateAcknowledge_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P24_t; -typedef struct ProtocolIE_Container_1917P25 { - A_SEQUENCE_OF(struct RICserviceUpdateFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P25_t; -typedef struct ProtocolIE_Container_1917P26 { - A_SEQUENCE_OF(struct RICserviceQuery_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P26_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P0; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P0_specs_1; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P0_1[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P0_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P1; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P1_specs_3; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P1_3[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P1_constr_3; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P2; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P2_specs_5; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P2_5[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P2_constr_5; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P3; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P3_specs_7; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P3_7[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P3_constr_7; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P4; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P4_specs_9; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P4_9[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P4_constr_9; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P5; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P5_specs_11; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P5_11[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P5_constr_11; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P6; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P6_specs_13; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P6_13[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P6_constr_13; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P7; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P7_specs_15; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P7_15[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P7_constr_15; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P8; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P8_specs_17; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P8_17[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P8_constr_17; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P9; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P9_specs_19; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P9_19[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P9_constr_19; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P10; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P10_specs_21; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P10_21[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P10_constr_21; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P11; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P11_specs_23; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P11_23[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P11_constr_23; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P12; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P12_specs_25; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P12_25[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P12_constr_25; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P13; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P13_specs_27; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P13_27[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P13_constr_27; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P14; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P14_specs_29; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P14_29[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P14_constr_29; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P15; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P15_specs_31; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P15_31[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P15_constr_31; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P16; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P16_specs_33; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P16_33[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P16_constr_33; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P17; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P17_specs_35; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P17_35[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P17_constr_35; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P18; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P18_specs_37; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P18_37[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P18_constr_37; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P19; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P19_specs_39; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P19_39[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P19_constr_39; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P20; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P20_specs_41; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P20_41[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P20_constr_41; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P21; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P21_specs_43; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P21_43[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P21_constr_43; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P22; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P22_specs_45; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P22_45[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P22_constr_45; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P23; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P23_specs_47; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P23_47[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P23_constr_47; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P24; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P24_specs_49; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P24_49[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P24_constr_49; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P25; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P25_specs_51; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P25_51[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P25_constr_51; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P26; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P26_specs_53; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P26_53[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P26_constr_53; - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_Container_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerList.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerList.c deleted file mode 100644 index c036a5d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerList.c +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "ProtocolIE-ContainerList.h" - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerList.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerList.h deleted file mode 100644 index 83965fb..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerList.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _ProtocolIE_ContainerList_H_ -#define _ProtocolIE_ContainerList_H_ - - -#include "asn_application.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_ContainerList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerPair.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerPair.c deleted file mode 100644 index 3721a2c..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerPair.c +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "ProtocolIE-ContainerPair.h" - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerPair.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerPair.h deleted file mode 100644 index 3672c67..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerPair.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _ProtocolIE_ContainerPair_H_ -#define _ProtocolIE_ContainerPair_H_ - - -#include "asn_application.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_ContainerPair_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerPairList.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerPairList.c deleted file mode 100644 index fd11ba4..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerPairList.c +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "ProtocolIE-ContainerPairList.h" - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerPairList.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerPairList.h deleted file mode 100644 index 8ad73e3..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerPairList.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _ProtocolIE_ContainerPairList_H_ -#define _ProtocolIE_ContainerPairList_H_ - - -#include "asn_application.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_ContainerPairList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-Field.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-Field.c deleted file mode 100644 index 7123cc9..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-Field.c +++ /dev/null @@ -1,12546 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "ProtocolIE-Field.h" - -static const long asn_VAL_4_id_RICaction_ToBeSetup_Item = 19; -static const long asn_VAL_4_ignore = 1; -static const long asn_VAL_4_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICaction_ToBeSetup_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_4_id_RICaction_ToBeSetup_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_ignore }, - { "&Value", aioc__type, &asn_DEF_RICaction_ToBeSetup_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_4_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICaction_ToBeSetup_ItemIEs_1[] = { - { 1, 4, asn_IOS_RICaction_ToBeSetup_ItemIEs_1_rows } -}; -static const long asn_VAL_9_id_RICaction_Admitted_Item = 14; -static const long asn_VAL_9_ignore = 1; -static const long asn_VAL_9_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICaction_Admitted_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_9_id_RICaction_Admitted_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore }, - { "&Value", aioc__type, &asn_DEF_RICaction_Admitted_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_9_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICaction_Admitted_ItemIEs_1[] = { - { 1, 4, asn_IOS_RICaction_Admitted_ItemIEs_1_rows } -}; -static const long asn_VAL_10_id_RICaction_NotAdmitted_Item = 16; -static const long asn_VAL_10_ignore = 1; -static const long asn_VAL_10_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICaction_NotAdmitted_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_10_id_RICaction_NotAdmitted_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_ignore }, - { "&Value", aioc__type, &asn_DEF_RICaction_NotAdmitted_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_10_mandatory } -}; -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_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_ID, &asn_VAL_24_id_RICsubscription_withCause_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_24_ignore }, - { "&Value", aioc__type, &asn_DEF_RICsubscription_withCause_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_ID, &asn_VAL_71_id_E2connectionUpdate_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_71_ignore }, - { "&Value", aioc__type, &asn_DEF_E2connectionUpdate_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_ID, &asn_VAL_72_id_E2connectionUpdateRemove_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_72_ignore }, - { "&Value", aioc__type, &asn_DEF_E2connectionUpdateRemove_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_ID, &asn_VAL_76_id_E2connectionSetupFailed_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_76_ignore }, - { "&Value", aioc__type, &asn_DEF_E2connectionSetupFailed_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_ID, &asn_VAL_87_id_E2nodeComponentConfigAddition_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_87_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAddition_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_ID, &asn_VAL_88_id_E2nodeComponentConfigUpdate_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_88_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigUpdate_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_ID, &asn_VAL_89_id_E2nodeComponentConfigRemoval_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_89_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigRemoval_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_ID, &asn_VAL_90_id_E2nodeTNLassociationRemoval_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_90_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeTNLassociationRemoval_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_ID, &asn_VAL_95_id_E2nodeComponentConfigAdditionAck_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_95_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAdditionAck_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_ID, &asn_VAL_96_id_E2nodeComponentConfigUpdateAck_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_96_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigUpdateAck_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_ID, &asn_VAL_97_id_E2nodeComponentConfigRemovalAck_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_97_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigRemovalAck_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_ID, &asn_VAL_110_id_RANfunction_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_110_ignore }, - { "&Value", aioc__type, &asn_DEF_RANfunction_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_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_ID, &asn_VAL_111_id_RANfunctionID_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_111_ignore }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_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_ID, &asn_VAL_115_id_RANfunctionIEcause_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_115_ignore }, - { "&Value", aioc__type, &asn_DEF_RANfunctionIDcause_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_115_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RANfunctionIDcause_ItemIEs_1[] = { - { 1, 4, asn_IOS_RANfunctionIDcause_ItemIEs_1_rows } -}; -static const long asn_VAL_1_id_RICrequestID = 29; -static const long asn_VAL_1_reject = 0; -static const long asn_VAL_1_mandatory = 2; -static const long asn_VAL_2_id_RANfunctionID = 5; -static const long asn_VAL_2_reject = 0; -static const long asn_VAL_2_mandatory = 2; -static const long asn_VAL_3_id_RICsubscriptionDetails = 30; -static const long asn_VAL_3_reject = 0; -static const long asn_VAL_3_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_1_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_1_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_2_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_2_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_3_id_RICsubscriptionDetails }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, - { "&Value", aioc__type, &asn_DEF_RICsubscriptionDetails }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_3_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionRequest_IEs_1[] = { - { 3, 4, asn_IOS_RICsubscriptionRequest_IEs_1_rows } -}; -static const long asn_VAL_5_id_RICrequestID = 29; -static const long asn_VAL_5_reject = 0; -static const long asn_VAL_5_mandatory = 2; -static const long asn_VAL_6_id_RANfunctionID = 5; -static const long asn_VAL_6_reject = 0; -static const long asn_VAL_6_mandatory = 2; -static const long asn_VAL_7_id_RICactions_Admitted = 17; -static const long asn_VAL_7_reject = 0; -static const long asn_VAL_7_mandatory = 2; -static const long asn_VAL_8_id_RICactions_NotAdmitted = 18; -static const long asn_VAL_8_reject = 0; -static const long asn_VAL_8_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionResponse_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_5_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_5_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_6_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_6_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_7_id_RICactions_Admitted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_reject }, - { "&Value", aioc__type, &asn_DEF_RICaction_Admitted_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_7_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_8_id_RICactions_NotAdmitted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_reject }, - { "&Value", aioc__type, &asn_DEF_RICaction_NotAdmitted_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_8_optional } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionResponse_IEs_1[] = { - { 4, 4, asn_IOS_RICsubscriptionResponse_IEs_1_rows } -}; -static const long asn_VAL_11_id_RICrequestID = 29; -static const long asn_VAL_11_reject = 0; -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_Cause = 1; -static const long asn_VAL_13_reject = 0; -static const long asn_VAL_13_mandatory = 2; -static const long asn_VAL_14_id_CriticalityDiagnostics = 2; -static const long asn_VAL_14_ignore = 1; -static const long asn_VAL_14_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_11_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_11_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_12_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_12_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_13_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_13_reject }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_13_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_14_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_14_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_14_optional } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionFailure_IEs_1[] = { - { 4, 4, asn_IOS_RICsubscriptionFailure_IEs_1_rows } -}; -static const long asn_VAL_15_id_RICrequestID = 29; -static const long asn_VAL_15_reject = 0; -static const long asn_VAL_15_mandatory = 2; -static const long asn_VAL_16_id_RANfunctionID = 5; -static const long asn_VAL_16_reject = 0; -static const long asn_VAL_16_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_15_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_15_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_15_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_16_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_16_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_16_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionDeleteRequest_IEs_1[] = { - { 2, 4, asn_IOS_RICsubscriptionDeleteRequest_IEs_1_rows } -}; -static const long asn_VAL_17_id_RICrequestID = 29; -static const long asn_VAL_17_reject = 0; -static const long asn_VAL_17_mandatory = 2; -static const long asn_VAL_18_id_RANfunctionID = 5; -static const long asn_VAL_18_reject = 0; -static const long asn_VAL_18_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteResponse_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_17_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_17_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_17_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_18_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_18_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_18_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionDeleteResponse_IEs_1[] = { - { 2, 4, asn_IOS_RICsubscriptionDeleteResponse_IEs_1_rows } -}; -static const long asn_VAL_19_id_RICrequestID = 29; -static const long asn_VAL_19_reject = 0; -static const long asn_VAL_19_mandatory = 2; -static const long asn_VAL_20_id_RANfunctionID = 5; -static const long asn_VAL_20_reject = 0; -static const long asn_VAL_20_mandatory = 2; -static const long asn_VAL_21_id_Cause = 1; -static const long asn_VAL_21_ignore = 1; -static const long asn_VAL_21_mandatory = 2; -static const long asn_VAL_22_id_CriticalityDiagnostics = 2; -static const long asn_VAL_22_ignore = 1; -static const long asn_VAL_22_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_19_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_19_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_19_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_20_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_20_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_20_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_21_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_21_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_21_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_22_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_22_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_22_optional } -}; -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_RICsubscriptionToBeRemoved = 50; -static const long asn_VAL_23_ignore = 1; -static const long asn_VAL_23_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteRequired_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_23_id_RICsubscriptionToBeRemoved }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_23_ignore }, - { "&Value", aioc__type, &asn_DEF_RICsubscription_List_withCause }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_RANfunctionID = 5; -static const long asn_VAL_26_reject = 0; -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_RICindicationSN = 27; -static const long asn_VAL_28_reject = 0; -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_RICindicationHeader = 25; -static const long asn_VAL_30_reject = 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_ID, &asn_VAL_25_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_25_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_25_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_26_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_26_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_26_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_27_id_RICactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_27_reject }, - { "&Value", aioc__type, &asn_DEF_RICactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_27_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_28_id_RICindicationSN }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_28_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationSN }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_28_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_29_id_RICindicationType }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_29_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationType }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_29_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_30_id_RICindicationHeader }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_30_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationHeader }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_30_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_31_id_RICindicationMessage }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_31_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationMessage }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_31_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_32_id_RICcallProcessID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_32_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_33_id_RICrequestID = 29; -static const long asn_VAL_33_reject = 0; -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_RICcallProcessID = 20; -static const long asn_VAL_35_reject = 0; -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_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_ID, &asn_VAL_33_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_33_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_33_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_34_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_34_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_34_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_35_id_RICcallProcessID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_35_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_35_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_36_id_RICcontrolHeader }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_36_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolHeader }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_36_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_37_id_RICcontrolMessage }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_37_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolMessage }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_37_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_38_id_RICcontrolAckRequest }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_38_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolAckRequest }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_39_id_RICrequestID = 29; -static const long asn_VAL_39_reject = 0; -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_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_ID, &asn_VAL_39_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_39_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_39_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_40_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_40_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_40_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_41_id_RICcallProcessID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_41_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_41_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_42_id_RICcontrolOutcome }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_42_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolOutcome }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_42_optional } -}; -static const asn_ioc_set_t asn_IOS_RICcontrolAcknowledge_IEs_1[] = { - { 4, 4, asn_IOS_RICcontrolAcknowledge_IEs_1_rows } -}; -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_RANfunctionID = 5; -static const long asn_VAL_44_reject = 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_Cause = 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_ID, &asn_VAL_43_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_43_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_43_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_44_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_44_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_44_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_45_id_RICcallProcessID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_45_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_45_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_46_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_46_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_46_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_47_id_RICcontrolOutcome }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_47_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolOutcome }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_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_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_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_Cause = 1; -static const long asn_VAL_51_ignore = 1; -static const long asn_VAL_51_optional = 0; -static const long asn_VAL_52_id_CriticalityDiagnostics = 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_ErrorIndication_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_48_id_TransactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_48_reject }, - { "&Value", aioc__type, &asn_DEF_TransactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_48_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_49_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_49_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_49_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_50_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_50_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_50_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_51_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_51_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_51_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_52_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_52_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_52_optional } -}; -static const asn_ioc_set_t asn_IOS_ErrorIndication_IEs_1[] = { - { 5, 4, asn_IOS_ErrorIndication_IEs_1_rows } -}; -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_GlobalE2node_ID = 3; -static const long asn_VAL_54_reject = 0; -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_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_ID, &asn_VAL_53_id_TransactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_53_reject }, - { "&Value", aioc__type, &asn_DEF_TransactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_53_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_54_id_GlobalE2node_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_54_reject }, - { "&Value", aioc__type, &asn_DEF_GlobalE2node_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_54_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_55_id_RANfunctionsAdded }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_55_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctions_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_55_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_56_id_E2nodeComponentConfigAddition }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_56_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAddition_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_ID, &asn_VAL_57_id_TransactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_57_reject }, - { "&Value", aioc__type, &asn_DEF_TransactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_57_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_58_id_GlobalRIC_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_58_reject }, - { "&Value", aioc__type, &asn_DEF_GlobalRIC_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_58_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_59_id_RANfunctionsAccepted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_59_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_59_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_60_id_RANfunctionsRejected }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_60_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_60_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_61_id_E2nodeComponentConfigAdditionAck }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_61_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAdditionAck_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_61_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E2setupResponseIEs_1[] = { - { 5, 4, asn_IOS_E2setupResponseIEs_1_rows } -}; -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_Cause = 1; -static const long asn_VAL_63_ignore = 1; -static const long asn_VAL_63_mandatory = 2; -static const long asn_VAL_64_id_TimeToWait = 31; -static const long asn_VAL_64_ignore = 1; -static const long asn_VAL_64_optional = 0; -static const long asn_VAL_65_id_CriticalityDiagnostics = 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_ID, &asn_VAL_62_id_TransactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_62_reject }, - { "&Value", aioc__type, &asn_DEF_TransactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_62_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_63_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_63_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_63_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_64_id_TimeToWait }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_64_ignore }, - { "&Value", aioc__type, &asn_DEF_TimeToWait }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_64_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_65_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_65_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_65_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_66_id_TNLinformation }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_66_ignore }, - { "&Value", aioc__type, &asn_DEF_TNLinformation }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_66_optional } -}; -static const asn_ioc_set_t asn_IOS_E2setupFailureIEs_1[] = { - { 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_ID, &asn_VAL_67_id_TransactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_67_reject }, - { "&Value", aioc__type, &asn_DEF_TransactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_67_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_68_id_E2connectionUpdateAdd }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_68_reject }, - { "&Value", aioc__type, &asn_DEF_E2connectionUpdate_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_68_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_69_id_E2connectionUpdateRemove }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_69_reject }, - { "&Value", aioc__type, &asn_DEF_E2connectionUpdateRemove_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_69_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_70_id_E2connectionUpdateModify }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_70_reject }, - { "&Value", aioc__type, &asn_DEF_E2connectionUpdate_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_ID, &asn_VAL_73_id_TransactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_73_reject }, - { "&Value", aioc__type, &asn_DEF_TransactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_73_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_74_id_E2connectionSetup }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_74_reject }, - { "&Value", aioc__type, &asn_DEF_E2connectionUpdate_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_74_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_75_id_E2connectionSetupFailed }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_75_reject }, - { "&Value", aioc__type, &asn_DEF_E2connectionSetupFailed_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_Cause = 1; -static const long asn_VAL_78_reject = 0; -static const long asn_VAL_78_optional = 0; -static const long asn_VAL_79_id_TimeToWait = 31; -static const long asn_VAL_79_ignore = 1; -static const long asn_VAL_79_optional = 0; -static const long asn_VAL_80_id_CriticalityDiagnostics = 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_ID, &asn_VAL_77_id_TransactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_77_reject }, - { "&Value", aioc__type, &asn_DEF_TransactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_77_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_78_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_78_reject }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_78_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_79_id_TimeToWait }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_79_ignore }, - { "&Value", aioc__type, &asn_DEF_TimeToWait }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_79_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_80_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_80_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_ID, &asn_VAL_81_id_TransactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_81_reject }, - { "&Value", aioc__type, &asn_DEF_TransactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_81_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_82_id_GlobalE2node_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_82_reject }, - { "&Value", aioc__type, &asn_DEF_GlobalE2node_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_82_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_83_id_E2nodeComponentConfigAddition }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_83_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAddition_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_83_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_84_id_E2nodeComponentConfigUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_84_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigUpdate_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_84_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_85_id_E2nodeComponentConfigRemoval }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_85_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigRemoval_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_85_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_86_id_E2nodeTNLassociationRemoval }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_86_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeTNLassociationRemoval_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_ID, &asn_VAL_91_id_TransactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_91_reject }, - { "&Value", aioc__type, &asn_DEF_TransactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_91_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_92_id_E2nodeComponentConfigAdditionAck }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_92_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAdditionAck_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_92_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_93_id_E2nodeComponentConfigUpdateAck }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_93_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigUpdateAck_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_93_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_94_id_E2nodeComponentConfigRemovalAck }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_94_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigRemovalAck_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_Cause = 1; -static const long asn_VAL_99_ignore = 1; -static const long asn_VAL_99_mandatory = 2; -static const long asn_VAL_100_id_TimeToWait = 31; -static const long asn_VAL_100_ignore = 1; -static const long asn_VAL_100_optional = 0; -static const long asn_VAL_101_id_CriticalityDiagnostics = 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_ID, &asn_VAL_98_id_TransactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_98_reject }, - { "&Value", aioc__type, &asn_DEF_TransactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_98_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_99_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_99_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_99_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_100_id_TimeToWait }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_100_ignore }, - { "&Value", aioc__type, &asn_DEF_TimeToWait }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_100_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_101_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_101_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_101_optional } -}; -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_Cause = 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_ID, &asn_VAL_102_id_TransactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_102_reject }, - { "&Value", aioc__type, &asn_DEF_TransactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_102_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_103_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_103_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_103_mandatory } -}; -static const asn_ioc_set_t asn_IOS_ResetRequestIEs_1[] = { - { 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_CriticalityDiagnostics = 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_ID, &asn_VAL_104_id_TransactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_104_reject }, - { "&Value", aioc__type, &asn_DEF_TransactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_104_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_105_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_105_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_105_optional } -}; -static const asn_ioc_set_t asn_IOS_ResetResponseIEs_1[] = { - { 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_ID, &asn_VAL_106_id_TransactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_106_reject }, - { "&Value", aioc__type, &asn_DEF_TransactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_106_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_107_id_RANfunctionsAdded }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_107_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctions_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_107_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_108_id_RANfunctionsModified }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_108_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctions_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_108_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_109_id_RANfunctionsDeleted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_109_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_109_optional } -}; -static const asn_ioc_set_t asn_IOS_RICserviceUpdate_IEs_1[] = { - { 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_ID, &asn_VAL_112_id_TransactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_112_reject }, - { "&Value", aioc__type, &asn_DEF_TransactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_112_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_113_id_RANfunctionsAccepted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_113_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_113_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_114_id_RANfunctionsRejected }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_114_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_114_optional } -}; -static const asn_ioc_set_t asn_IOS_RICserviceUpdateAcknowledge_IEs_1[] = { - { 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_Cause = 1; -static const long asn_VAL_117_reject = 0; -static const long asn_VAL_117_mandatory = 2; -static const long asn_VAL_118_id_TimeToWait = 31; -static const long asn_VAL_118_ignore = 1; -static const long asn_VAL_118_optional = 0; -static const long asn_VAL_119_id_CriticalityDiagnostics = 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_ID, &asn_VAL_116_id_TransactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_116_reject }, - { "&Value", aioc__type, &asn_DEF_TransactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_116_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_117_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_117_reject }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_117_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_118_id_TimeToWait }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_118_ignore }, - { "&Value", aioc__type, &asn_DEF_TimeToWait }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_118_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_119_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_119_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_119_optional } -}; -static const asn_ioc_set_t asn_IOS_RICserviceUpdateFailure_IEs_1[] = { - { 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_ID, &asn_VAL_120_id_TransactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_120_reject }, - { "&Value", aioc__type, &asn_DEF_TransactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_120_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_121_id_RANfunctionsAccepted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_121_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_121_optional } -}; -static const asn_ioc_set_t asn_IOS_RICserviceQuery_IEs_1[] = { - { 2, 4, asn_IOS_RICserviceQuery_IEs_1_rows } -}; -static int -memb_id_constraint_1(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_RICaction_ToBeSetup_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_RICaction_ToBeSetup_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 RICaction_ToBeSetup_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]; - 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_1(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_RICaction_ToBeSetup_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_RICaction_ToBeSetup_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 RICaction_ToBeSetup_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]; - 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_1(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_5(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_RICaction_Admitted_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_RICaction_Admitted_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 RICaction_Admitted_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]; - 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_5(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_RICaction_Admitted_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_RICaction_Admitted_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 RICaction_Admitted_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]; - 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_5(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_9(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_RICaction_NotAdmitted_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_RICaction_NotAdmitted_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 RICaction_NotAdmitted_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]; - 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_9(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_RICaction_NotAdmitted_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_RICaction_NotAdmitted_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 RICaction_NotAdmitted_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]; - 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_9(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_13(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_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_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 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]; - 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_13(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_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_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 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]; - 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_13(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_17(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_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_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 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]; - 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_17(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_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_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 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]; - 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_17(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_21(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_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_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 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]; - 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_21(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_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_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 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]; - 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_21(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_25(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_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_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 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]; - 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_25(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_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_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 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]; - 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_25(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_29(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_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_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 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]; - 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_29(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_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_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 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]; - 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_29(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_33(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_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_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 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]; - 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_33(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_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_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 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]; - 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_33(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_37(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_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_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 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]; - 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_37(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_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_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 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]; - 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_37(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_41(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_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_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 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]; - 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_41(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_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_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 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]; - 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_41(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_45(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_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_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 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]; - 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_45(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_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_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 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]; - 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_45(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_49(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_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_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 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]; - 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_49(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_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_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 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]; - 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_49(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_53(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_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_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 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]; - 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_53(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_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_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 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]; - 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_53(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_57(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_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_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 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]; - 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_57(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_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_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 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]; - 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_57(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_61(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_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_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 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]; - 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_61(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_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_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 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]; - 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_61(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_65(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_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_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 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]; - 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_65(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_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_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 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]; - 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_65(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_69(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_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_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 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]; - 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_69(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_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_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 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]; - 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_69(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_73(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_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_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 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]; - 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_73(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_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_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 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]; - 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_73(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_77(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_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_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 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]; - 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_77(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_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_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 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]; - 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_77(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_81(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_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_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 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]; - 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_81(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_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_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 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]; - 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_81(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_85(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_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_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 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]; - 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_85(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_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_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 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]; - 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_85(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_89(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_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_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 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]; - 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_89(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_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_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 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]; - 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_89(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_93(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_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_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 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]; - 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_93(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_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_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 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]; - 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_93(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_97(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_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_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 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]; - 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_97(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_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_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 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]; - 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_97(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_101(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_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_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 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]; - 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_101(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_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_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 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]; - 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_101(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_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_ErrorIndication_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_ErrorIndication_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 ErrorIndication_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_ErrorIndication_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_ErrorIndication_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 ErrorIndication_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)); - const int indexToPresence[5] = { - E2connectionUpdate_IEs__value_PR_NOTHING, - E2connectionUpdate_IEs__value_PR_TransactionID, - E2connectionUpdate_IEs__value_PR_E2connectionUpdate_List, - E2connectionUpdate_IEs__value_PR_E2connectionUpdateRemove_List, - E2connectionUpdate_IEs__value_PR_E2connectionUpdate_List - }; - - 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 = indexToPresence[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)); - const int indexToPresence[5] = { - RICserviceUpdate_IEs__value_PR_NOTHING, - RICserviceUpdate_IEs__value_PR_TransactionID, - RICserviceUpdate_IEs__value_PR_RANfunctions_List, - RICserviceUpdate_IEs__value_PR_RANfunctions_List, - RICserviceUpdate_IEs__value_PR_RANfunctionsID_List - }; - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - 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 = indexToPresence[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_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_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_ID, - 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_Criticality, - 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_ID, - 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_Criticality, - 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_ID, - 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_Criticality, - 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_ID, - 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_Criticality, - 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_ID, - 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_Criticality, - 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_ID, - 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_Criticality, - 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_ID, - 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_Criticality, - 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_ID, - 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_Criticality, - 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_ID, - 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_Criticality, - 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_ID, - 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_Criticality, - 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_ID, - 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_Criticality, - 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_ID, - 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_Criticality, - 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 const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_45[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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 */ -}; -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 */ -}; -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_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 const asn_TYPE_tag2member_t asn_MAP_value_tag2el_52[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigUpdateAck-Item */ -}; -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 /* 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 */ -}; - -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_ID, - 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_Criticality, - 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 const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_49[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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 */ -}; -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 */ -}; -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_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 const asn_TYPE_tag2member_t asn_MAP_value_tag2el_56[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigRemovalAck-Item */ -}; -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 /* 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 */ -}; - -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_ID, - 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_Criticality, - 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 const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_53[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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 */ -}; -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 */ -}; -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_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 const asn_TYPE_tag2member_t asn_MAP_value_tag2el_60[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunction-Item */ -}; -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 /* 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 */ -}; - -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_ID, - 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_Criticality, - 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 const ber_tlv_tag_t asn_DEF_RANfunction_ItemIEs_tags_57[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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 */ -}; -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 */ -}; -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_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 const asn_TYPE_tag2member_t asn_MAP_value_tag2el_64[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionID-Item */ -}; -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 /* 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 */ -}; - -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_ID, - 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_Criticality, - 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 const ber_tlv_tag_t asn_DEF_RANfunctionID_ItemIEs_tags_61[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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 */ -}; -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 */ -}; -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_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 const asn_TYPE_tag2member_t asn_MAP_value_tag2el_68[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionIDcause-Item */ -}; -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 /* 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 */ -}; - -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_ID, - 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_Criticality, - 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 const ber_tlv_tag_t asn_DEF_RANfunctionIDcause_ItemIEs_tags_65[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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 */ -}; -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 */ -}; -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_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 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_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 /* 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 */ -}; - -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_ID, - 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_Criticality, - 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 const ber_tlv_tag_t asn_DEF_RICsubscriptionRequest_IEs_tags_69[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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 */ -}; -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 */ -}; -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_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "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 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_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_76 = { - "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_76, - 4, /* Elements count */ - &asn_SPC_value_specs_76 /* Additional specs */ -}; - -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_ID, - 0, - { &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 RICsubscriptionResponse_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 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 RICsubscriptionResponse_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &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_RICsubscriptionResponse_IEs_tags_73[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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_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_RICsubscriptionResponse_IEs = { - "RICsubscriptionResponse-IEs", - "RICsubscriptionResponse-IEs", - &asn_OP_SEQUENCE, - 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_RICsubscriptionResponse_IEs_73, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionResponse_IEs_specs_73 /* Additional specs */ -}; - -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_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "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.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -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 }, /* CriticalityDiagnostics */ - { (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_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_80 = { - "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_80, - 4, /* Elements count */ - &asn_SPC_value_specs_80 /* Additional specs */ -}; - -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_ID, - 0, - { &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 RICsubscriptionFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 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 RICsubscriptionFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &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_RICsubscriptionFailure_IEs_tags_77[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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_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_RICsubscriptionFailure_IEs = { - "RICsubscriptionFailure-IEs", - "RICsubscriptionFailure-IEs", - &asn_OP_SEQUENCE, - 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_RICsubscriptionFailure_IEs_77, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionFailure_IEs_specs_77 /* Additional specs */ -}; - -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_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "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 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_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_84 = { - "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_84, - 2, /* Elements count */ - &asn_SPC_value_specs_84 /* Additional specs */ -}; - -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_ID, - 0, - { &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 RICsubscriptionDeleteRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 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 RICsubscriptionDeleteRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &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_RICsubscriptionDeleteRequest_IEs_tags_81[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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_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_RICsubscriptionDeleteRequest_IEs = { - "RICsubscriptionDeleteRequest-IEs", - "RICsubscriptionDeleteRequest-IEs", - &asn_OP_SEQUENCE, - 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_RICsubscriptionDeleteRequest_IEs_81, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_81 /* Additional specs */ -}; - -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_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "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 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_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_88 = { - "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_88, - 2, /* Elements count */ - &asn_SPC_value_specs_88 /* Additional specs */ -}; - -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_ID, - 0, - { &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 RICsubscriptionDeleteResponse_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 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 RICsubscriptionDeleteResponse_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &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_RICsubscriptionDeleteResponse_IEs_tags_85[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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_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_RICsubscriptionDeleteResponse_IEs = { - "RICsubscriptionDeleteResponse-IEs", - "RICsubscriptionDeleteResponse-IEs", - &asn_OP_SEQUENCE, - 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_RICsubscriptionDeleteResponse_IEs_85, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_85 /* Additional specs */ -}; - -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.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -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 }, /* CriticalityDiagnostics */ - { (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_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_92 = { - "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_92, - 4, /* Elements count */ - &asn_SPC_value_specs_92 /* Additional specs */ -}; - -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_ID, - 0, - { &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 RICsubscriptionDeleteFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 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 RICsubscriptionDeleteFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &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_RICsubscriptionDeleteFailure_IEs_tags_89[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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_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_RICsubscriptionDeleteFailure_IEs = { - "RICsubscriptionDeleteFailure-IEs", - "RICsubscriptionDeleteFailure-IEs", - &asn_OP_SEQUENCE, - 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_RICsubscriptionDeleteFailure_IEs_89, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_89 /* Additional specs */ -}; - -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_RICsubscription_List_withCause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscription-List-withCause" - }, -}; -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_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_96 = { - "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_96, - 1, /* Elements count */ - &asn_SPC_value_specs_96 /* Additional specs */ -}; - -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_ID, - 0, - { &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 RICsubscriptionDeleteRequired_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 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 RICsubscriptionDeleteRequired_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &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_RICsubscriptionDeleteRequired_IEs_tags_93[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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_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_RICsubscriptionDeleteRequired_IEs = { - "RICsubscriptionDeleteRequired-IEs", - "RICsubscriptionDeleteRequired-IEs", - &asn_OP_SEQUENCE, - 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_RICsubscriptionDeleteRequired_IEs_93, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteRequired_IEs_specs_93 /* Additional specs */ -}; - -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, - 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), - (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_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_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_100 = { - "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_100, - 8, /* Elements count */ - &asn_SPC_value_specs_100 /* Additional specs */ -}; - -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_ID, - 0, - { &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 RICindication_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 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 RICindication_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &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_RICindication_IEs_tags_97[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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_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_RICindication_IEs = { - "RICindication-IEs", - "RICindication-IEs", - &asn_OP_SEQUENCE, - 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_RICindication_IEs_97, - 3, /* Elements count */ - &asn_SPC_RICindication_IEs_specs_97 /* Additional specs */ -}; - -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, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_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 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_RICcontrolMessage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolMessage" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICcontrolAckRequest), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_RICcontrolAckRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolAckRequest" - }, -}; -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 | (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_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_104 = { - "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_104, - 6, /* Elements count */ - &asn_SPC_value_specs_104 /* Additional specs */ -}; - -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_ID, - 0, - { &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 RICcontrolRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 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 RICcontrolRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &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_RICcontrolRequest_IEs_tags_101[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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_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_RICcontrolRequest_IEs = { - "RICcontrolRequest-IEs", - "RICcontrolRequest-IEs", - &asn_OP_SEQUENCE, - 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_RICcontrolRequest_IEs_101, - 3, /* Elements count */ - &asn_SPC_RICcontrolRequest_IEs_specs_101 /* Additional specs */ -}; - -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, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_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 RICcontrolAcknowledge_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 RICcontrolAcknowledge_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_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 | (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_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_108, - asn_MAP_value_from_canonical_108, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_108 = { - "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_108, - 4, /* Elements count */ - &asn_SPC_value_specs_108 /* Additional specs */ -}; - -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_ID, - 0, - { &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 RICcontrolAcknowledge_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 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 RICcontrolAcknowledge_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &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_RICcontrolAcknowledge_IEs_tags_105[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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_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_RICcontrolAcknowledge_IEs = { - "RICcontrolAcknowledge-IEs", - "RICcontrolAcknowledge-IEs", - &asn_OP_SEQUENCE, - 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_RICcontrolAcknowledge_IEs_105, - 3, /* Elements count */ - &asn_SPC_RICcontrolAcknowledge_IEs_specs_105 /* Additional specs */ -}; - -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, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_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 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.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { 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_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 | (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_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_112 = { - "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_112, - 5, /* Elements count */ - &asn_SPC_value_specs_112 /* Additional specs */ -}; - -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_ID, - 0, - { &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 RICcontrolFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 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 RICcontrolFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &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_RICcontrolFailure_IEs_tags_109[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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_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_RICcontrolFailure_IEs = { - "RICcontrolFailure-IEs", - "RICcontrolFailure-IEs", - &asn_OP_SEQUENCE, - 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_RICcontrolFailure_IEs_109, - 3, /* Elements count */ - &asn_SPC_RICcontrolFailure_IEs_specs_109 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_116[] = { - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_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 ErrorIndication_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 ErrorIndication_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 ErrorIndication_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -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 }, /* CriticalityDiagnostics */ - { (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 ErrorIndication_IEs__value), - offsetof(struct ErrorIndication_IEs__value, _asn_ctx), - offsetof(struct ErrorIndication_IEs__value, present), - sizeof(((struct ErrorIndication_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_116 = { - "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_116, - 5, /* Elements count */ - &asn_SPC_value_specs_116 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ErrorIndication_IEs_113[] = { - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { &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 ErrorIndication_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ErrorIndication_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 ErrorIndication_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_116, - select_ErrorIndication_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_ErrorIndication_IEs_tags_113[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ErrorIndication_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_ErrorIndication_IEs_specs_113 = { - sizeof(struct ErrorIndication_IEs), - offsetof(struct ErrorIndication_IEs, _asn_ctx), - asn_MAP_ErrorIndication_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_ErrorIndication_IEs = { - "ErrorIndication-IEs", - "ErrorIndication-IEs", - &asn_OP_SEQUENCE, - asn_DEF_ErrorIndication_IEs_tags_113, - sizeof(asn_DEF_ErrorIndication_IEs_tags_113) - /sizeof(asn_DEF_ErrorIndication_IEs_tags_113[0]), /* 1 */ - asn_DEF_ErrorIndication_IEs_tags_113, /* Same as above */ - sizeof(asn_DEF_ErrorIndication_IEs_tags_113) - /sizeof(asn_DEF_ErrorIndication_IEs_tags_113[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ErrorIndication_IEs_113, - 3, /* Elements count */ - &asn_SPC_ErrorIndication_IEs_specs_113 /* Additional specs */ -}; - -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_TransactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TransactionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__value, choice.GlobalE2node_ID), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_GlobalE2node_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GlobalE2node-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__value, choice.RANfunctions_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctions_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctions-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__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" - }, -}; -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_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_120 = { - "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_120, - 4, /* Elements count */ - &asn_SPC_value_specs_120 /* Additional specs */ -}; - -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_ID, - 0, - { &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 E2setupRequestIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 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 E2setupRequestIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &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_E2setupRequestIEs_tags_117[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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_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_E2setupRequestIEs = { - "E2setupRequestIEs", - "E2setupRequestIEs", - &asn_OP_SEQUENCE, - 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_E2setupRequestIEs_117, - 3, /* Elements count */ - &asn_SPC_E2setupRequestIEs_specs_117 /* Additional specs */ -}; - -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_TransactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TransactionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.GlobalRIC_ID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GlobalRIC_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GlobalRIC-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.RANfunctionsID_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsID_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsID-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.RANfunctionsIDcause_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsIDcause_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsIDcause-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.E2nodeComponentConfigAdditionAck_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2nodeComponentConfigAdditionAck_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2nodeComponentConfigAdditionAck-List" - }, -}; -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_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_124 = { - "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_124, - 5, /* Elements count */ - &asn_SPC_value_specs_124 /* Additional specs */ -}; - -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_ID, - 0, - { &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 E2setupResponseIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 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 E2setupResponseIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &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_E2setupResponseIEs_tags_121[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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_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_E2setupResponseIEs = { - "E2setupResponseIEs", - "E2setupResponseIEs", - &asn_OP_SEQUENCE, - 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_E2setupResponseIEs_121, - 3, /* Elements count */ - &asn_SPC_E2setupResponseIEs_specs_121 /* Additional specs */ -}; - -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_TransactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TransactionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.TimeToWait), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_TimeToWait, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TimeToWait" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.TNLinformation), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_TNLinformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TNLinformation" - }, -}; -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 }, /* TimeToWait */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 1 }, /* CriticalityDiagnostics */ - { (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_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_128 = { - "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_128, - 5, /* Elements count */ - &asn_SPC_value_specs_128 /* Additional specs */ -}; - -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_ID, - 0, - { &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 E2setupFailureIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 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 E2setupFailureIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &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_E2setupFailureIEs_tags_125[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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_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_E2setupFailureIEs = { - "E2setupFailureIEs", - "E2setupFailureIEs", - &asn_OP_SEQUENCE, - 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_E2setupFailureIEs_125, - 3, /* Elements count */ - &asn_SPC_E2setupFailureIEs_specs_125 /* Additional specs */ -}; - -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_TransactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TransactionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_IEs__value, choice.E2connectionUpdate_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2connectionUpdate_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2connectionUpdate-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_IEs__value, choice.E2connectionUpdateRemove_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2connectionUpdateRemove_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2connectionUpdateRemove-List" - }, -}; -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_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_132 = { - "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_132, - 3, /* Elements count */ - &asn_SPC_value_specs_132 /* Additional specs */ -}; - -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_ID, - 0, - { &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 E2connectionUpdate_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 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 E2connectionUpdate_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &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_E2connectionUpdate_IEs_tags_129[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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_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_E2connectionUpdate_IEs = { - "E2connectionUpdate-IEs", - "E2connectionUpdate-IEs", - &asn_OP_SEQUENCE, - 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_E2connectionUpdate_IEs_129, - 3, /* Elements count */ - &asn_SPC_E2connectionUpdate_IEs_specs_129 /* Additional specs */ -}; - -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_TransactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TransactionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateAck_IEs__value, choice.E2connectionUpdate_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2connectionUpdate_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2connectionUpdate-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateAck_IEs__value, choice.E2connectionSetupFailed_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2connectionSetupFailed_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2connectionSetupFailed-List" - }, -}; -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_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_136 = { - "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_136, - 3, /* Elements count */ - &asn_SPC_value_specs_136 /* Additional specs */ -}; - -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_ID, - 0, - { &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 E2connectionUpdateAck_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 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 E2connectionUpdateAck_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &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_E2connectionUpdateAck_IEs_tags_133[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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_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_E2connectionUpdateAck_IEs = { - "E2connectionUpdateAck-IEs", - "E2connectionUpdateAck-IEs", - &asn_OP_SEQUENCE, - 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_E2connectionUpdateAck_IEs_133, - 3, /* Elements count */ - &asn_SPC_E2connectionUpdateAck_IEs_specs_133 /* Additional specs */ -}; - -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_TransactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TransactionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure_IEs__value, choice.TimeToWait), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_TimeToWait, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TimeToWait" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -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 }, /* TimeToWait */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */ - { (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_140 = { - "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_140, - 4, /* Elements count */ - &asn_SPC_value_specs_140 /* Additional specs */ -}; - -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_ID, - 0, - { &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 E2connectionUpdateFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 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 E2connectionUpdateFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &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_E2connectionUpdateFailure_IEs_tags_137[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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_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_E2connectionUpdateFailure_IEs = { - "E2connectionUpdateFailure-IEs", - "E2connectionUpdateFailure-IEs", - &asn_OP_SEQUENCE, - 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_E2connectionUpdateFailure_IEs_137, - 3, /* Elements count */ - &asn_SPC_E2connectionUpdateFailure_IEs_specs_137 /* Additional specs */ -}; - -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, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GlobalE2node-ID" - }, - { 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_E2nodeTNLassociationRemoval_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "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_144 = { - "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_144, - 6, /* Elements count */ - &asn_SPC_value_specs_144 /* Additional specs */ -}; - -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_ID, - 0, - { &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 E2nodeConfigurationUpdate_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 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 E2nodeConfigurationUpdate_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &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_E2nodeConfigurationUpdate_IEs_tags_141[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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_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_E2nodeConfigurationUpdate_IEs = { - "E2nodeConfigurationUpdate-IEs", - "E2nodeConfigurationUpdate-IEs", - &asn_OP_SEQUENCE, - 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_E2nodeConfigurationUpdate_IEs_141, - 3, /* Elements count */ - &asn_SPC_E2nodeConfigurationUpdate_IEs_specs_141 /* Additional specs */ -}; - -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_E2nodeComponentConfigAdditionAck_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2nodeComponentConfigAdditionAck-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value, choice.E2nodeComponentConfigUpdateAck_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2nodeComponentConfigUpdateAck_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2nodeComponentConfigUpdateAck-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value, choice.E2nodeComponentConfigRemovalAck_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2nodeComponentConfigRemovalAck_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2nodeComponentConfigRemovalAck-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_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_148 = { - "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_148, - 4, /* Elements count */ - &asn_SPC_value_specs_148 /* Additional specs */ -}; - -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_ID, - 0, - { &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 E2nodeConfigurationUpdateAcknowledge_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 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 E2nodeConfigurationUpdateAcknowledge_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &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_E2nodeConfigurationUpdateAcknowledge_IEs_tags_145[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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_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_E2nodeConfigurationUpdateAcknowledge_IEs = { - "E2nodeConfigurationUpdateAcknowledge-IEs", - "E2nodeConfigurationUpdateAcknowledge-IEs", - &asn_OP_SEQUENCE, - 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_E2nodeConfigurationUpdateAcknowledge_IEs_145, - 3, /* Elements count */ - &asn_SPC_E2nodeConfigurationUpdateAcknowledge_IEs_specs_145 /* Additional specs */ -}; - -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.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs__value, choice.TimeToWait), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_TimeToWait, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TimeToWait" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -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 }, /* TimeToWait */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */ - { (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_152 = { - "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_152, - 4, /* Elements count */ - &asn_SPC_value_specs_152 /* Additional specs */ -}; - -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_ID, - 0, - { &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 E2nodeConfigurationUpdateFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 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 E2nodeConfigurationUpdateFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &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_E2nodeConfigurationUpdateFailure_IEs_tags_149[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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_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_E2nodeConfigurationUpdateFailure_IEs = { - "E2nodeConfigurationUpdateFailure-IEs", - "E2nodeConfigurationUpdateFailure-IEs", - &asn_OP_SEQUENCE, - 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_E2nodeConfigurationUpdateFailure_IEs_149, - 3, /* Elements count */ - &asn_SPC_E2nodeConfigurationUpdateFailure_IEs_specs_149 /* Additional specs */ -}; - -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.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, -}; -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_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_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_156 = { - "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_156, - 2, /* Elements count */ - &asn_SPC_value_specs_156 /* Additional specs */ -}; - -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_ID, - 0, - { &asn_OER_memb_id_constr_154, &asn_PER_memb_id_constr_154, memb_id_constraint_153 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ResetRequestIEs_criticality_type, - { &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_156, - select_ResetRequestIEs_value_type, - { &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_153[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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_153 = { - sizeof(struct ResetRequestIEs), - offsetof(struct ResetRequestIEs, _asn_ctx), - asn_MAP_ResetRequestIEs_tag2el_153, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResetRequestIEs = { - "ResetRequestIEs", - "ResetRequestIEs", - &asn_OP_SEQUENCE, - 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_153, - 3, /* Elements count */ - &asn_SPC_ResetRequestIEs_specs_153 /* Additional specs */ -}; - -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.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -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 } /* CriticalityDiagnostics */ -}; -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_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_160 = { - "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_160, - 2, /* Elements count */ - &asn_SPC_value_specs_160 /* Additional specs */ -}; - -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_ID, - 0, - { &asn_OER_memb_id_constr_158, &asn_PER_memb_id_constr_158, memb_id_constraint_157 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ResetResponseIEs_criticality_type, - { &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_160, - select_ResetResponseIEs_value_type, - { &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_157[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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_157 = { - sizeof(struct ResetResponseIEs), - offsetof(struct ResetResponseIEs, _asn_ctx), - asn_MAP_ResetResponseIEs_tag2el_157, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResetResponseIEs = { - "ResetResponseIEs", - "ResetResponseIEs", - &asn_OP_SEQUENCE, - 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_157, - 3, /* Elements count */ - &asn_SPC_ResetResponseIEs_specs_157 /* Additional specs */ -}; - -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, - &asn_DEF_RANfunctions_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctions-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs__value, choice.RANfunctionsID_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsID_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "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_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_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_164 = { - "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_164, - 3, /* Elements count */ - &asn_SPC_value_specs_164 /* Additional specs */ -}; - -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_ID, - 0, - { &asn_OER_memb_id_constr_162, &asn_PER_memb_id_constr_162, memb_id_constraint_161 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICserviceUpdate_IEs_criticality_type, - { &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_164, - select_RICserviceUpdate_IEs_value_type, - { &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_161[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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_161 = { - sizeof(struct RICserviceUpdate_IEs), - offsetof(struct RICserviceUpdate_IEs, _asn_ctx), - asn_MAP_RICserviceUpdate_IEs_tag2el_161, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate_IEs = { - "RICserviceUpdate-IEs", - "RICserviceUpdate-IEs", - &asn_OP_SEQUENCE, - 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_161, - 3, /* Elements count */ - &asn_SPC_RICserviceUpdate_IEs_specs_161 /* Additional specs */ -}; - -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, - &asn_DEF_RANfunctionsID_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsID-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs__value, choice.RANfunctionsIDcause_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsIDcause_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "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_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_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_168 = { - "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_168, - 3, /* Elements count */ - &asn_SPC_value_specs_168 /* Additional specs */ -}; - -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_ID, - 0, - { &asn_OER_memb_id_constr_166, &asn_PER_memb_id_constr_166, memb_id_constraint_165 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICserviceUpdateAcknowledge_IEs_criticality_type, - { &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_168, - select_RICserviceUpdateAcknowledge_IEs_value_type, - { &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_165[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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_165 = { - sizeof(struct RICserviceUpdateAcknowledge_IEs), - offsetof(struct RICserviceUpdateAcknowledge_IEs, _asn_ctx), - asn_MAP_RICserviceUpdateAcknowledge_IEs_tag2el_165, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge_IEs = { - "RICserviceUpdateAcknowledge-IEs", - "RICserviceUpdateAcknowledge-IEs", - &asn_OP_SEQUENCE, - 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_165, - 3, /* Elements count */ - &asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_165 /* Additional specs */ -}; - -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_TransactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TransactionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.TimeToWait), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_TimeToWait, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TimeToWait" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -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 }, /* TimeToWait */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */ - { (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_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_172 = { - "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_172, - 4, /* Elements count */ - &asn_SPC_value_specs_172 /* Additional specs */ -}; - -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_ID, - 0, - { &asn_OER_memb_id_constr_170, &asn_PER_memb_id_constr_170, memb_id_constraint_169 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICserviceUpdateFailure_IEs_criticality_type, - { &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_172, - select_RICserviceUpdateFailure_IEs_value_type, - { &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_169[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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_169 = { - sizeof(struct RICserviceUpdateFailure_IEs), - offsetof(struct RICserviceUpdateFailure_IEs, _asn_ctx), - asn_MAP_RICserviceUpdateFailure_IEs_tag2el_169, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure_IEs = { - "RICserviceUpdateFailure-IEs", - "RICserviceUpdateFailure-IEs", - &asn_OP_SEQUENCE, - 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_169, - 3, /* Elements count */ - &asn_SPC_RICserviceUpdateFailure_IEs_specs_169 /* Additional specs */ -}; - -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, - &asn_DEF_RANfunctionsID_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "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_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_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_176 = { - "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_176, - 2, /* Elements count */ - &asn_SPC_value_specs_176 /* Additional specs */ -}; - -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_ID, - 0, - { &asn_OER_memb_id_constr_174, &asn_PER_memb_id_constr_174, memb_id_constraint_173 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICserviceQuery_IEs_criticality_type, - { &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_176, - select_RICserviceQuery_IEs_value_type, - { &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_173[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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_173 = { - sizeof(struct RICserviceQuery_IEs), - offsetof(struct RICserviceQuery_IEs, _asn_ctx), - asn_MAP_RICserviceQuery_IEs_tag2el_173, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceQuery_IEs = { - "RICserviceQuery-IEs", - "RICserviceQuery-IEs", - &asn_OP_SEQUENCE, - 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_173, - 3, /* Elements count */ - &asn_SPC_RICserviceQuery_IEs_specs_173 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-Field.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-Field.h deleted file mode 100644 index e138e9c..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-Field.h +++ /dev/null @@ -1,1254 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _ProtocolIE_Field_H_ -#define _ProtocolIE_Field_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-ID.h" -#include "Criticality.h" -#include "ANY.h" -#include "asn_ioc.h" -#include "RICaction-ToBeSetup-Item.h" -#include "Presence.h" -#include "OPEN_TYPE.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" -#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" -#include "RICrequestID.h" -#include "RANfunctionID.h" -#include "RICsubscriptionDetails.h" -#include "RICaction-Admitted-List.h" -#include "RICaction-NotAdmitted-List.h" -#include "Cause.h" -#include "CriticalityDiagnostics.h" -#include "RICsubscription-List-withCause.h" -#include "RICactionID.h" -#include "RICindicationSN.h" -#include "RICindicationType.h" -#include "RICindicationHeader.h" -#include "RICindicationMessage.h" -#include "RICcallProcessID.h" -#include "RICcontrolHeader.h" -#include "RICcontrolMessage.h" -#include "RICcontrolAckRequest.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 "TimeToWait.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" { -#endif - -/* Dependencies */ -typedef enum RICaction_ToBeSetup_ItemIEs__value_PR { - RICaction_ToBeSetup_ItemIEs__value_PR_NOTHING, /* No components present */ - RICaction_ToBeSetup_ItemIEs__value_PR_RICaction_ToBeSetup_Item -} RICaction_ToBeSetup_ItemIEs__value_PR; -typedef enum RICaction_Admitted_ItemIEs__value_PR { - RICaction_Admitted_ItemIEs__value_PR_NOTHING, /* No components present */ - RICaction_Admitted_ItemIEs__value_PR_RICaction_Admitted_Item -} RICaction_Admitted_ItemIEs__value_PR; -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 -} RANfunction_ItemIEs__value_PR; -typedef enum RANfunctionID_ItemIEs__value_PR { - RANfunctionID_ItemIEs__value_PR_NOTHING, /* No components present */ - RANfunctionID_ItemIEs__value_PR_RANfunctionID_Item -} RANfunctionID_ItemIEs__value_PR; -typedef enum RANfunctionIDcause_ItemIEs__value_PR { - RANfunctionIDcause_ItemIEs__value_PR_NOTHING, /* No components present */ - RANfunctionIDcause_ItemIEs__value_PR_RANfunctionIDcause_Item -} RANfunctionIDcause_ItemIEs__value_PR; -typedef enum RICsubscriptionRequest_IEs__value_PR { - RICsubscriptionRequest_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionRequest_IEs__value_PR_RICrequestID, - RICsubscriptionRequest_IEs__value_PR_RANfunctionID, - RICsubscriptionRequest_IEs__value_PR_RICsubscriptionDetails -} RICsubscriptionRequest_IEs__value_PR; -typedef enum RICsubscriptionResponse_IEs__value_PR { - RICsubscriptionResponse_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionResponse_IEs__value_PR_RICrequestID, - RICsubscriptionResponse_IEs__value_PR_RANfunctionID, - RICsubscriptionResponse_IEs__value_PR_RICaction_Admitted_List, - RICsubscriptionResponse_IEs__value_PR_RICaction_NotAdmitted_List -} RICsubscriptionResponse_IEs__value_PR; -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_Cause, - RICsubscriptionFailure_IEs__value_PR_CriticalityDiagnostics -} RICsubscriptionFailure_IEs__value_PR; -typedef enum RICsubscriptionDeleteRequest_IEs__value_PR { - RICsubscriptionDeleteRequest_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionDeleteRequest_IEs__value_PR_RICrequestID, - RICsubscriptionDeleteRequest_IEs__value_PR_RANfunctionID -} RICsubscriptionDeleteRequest_IEs__value_PR; -typedef enum RICsubscriptionDeleteResponse_IEs__value_PR { - RICsubscriptionDeleteResponse_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionDeleteResponse_IEs__value_PR_RICrequestID, - RICsubscriptionDeleteResponse_IEs__value_PR_RANfunctionID -} RICsubscriptionDeleteResponse_IEs__value_PR; -typedef enum RICsubscriptionDeleteFailure_IEs__value_PR { - RICsubscriptionDeleteFailure_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionDeleteFailure_IEs__value_PR_RICrequestID, - RICsubscriptionDeleteFailure_IEs__value_PR_RANfunctionID, - RICsubscriptionDeleteFailure_IEs__value_PR_Cause, - RICsubscriptionDeleteFailure_IEs__value_PR_CriticalityDiagnostics -} 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, - RICindication_IEs__value_PR_RANfunctionID, - RICindication_IEs__value_PR_RICactionID, - RICindication_IEs__value_PR_RICindicationSN, - RICindication_IEs__value_PR_RICindicationType, - RICindication_IEs__value_PR_RICindicationHeader, - RICindication_IEs__value_PR_RICindicationMessage, - RICindication_IEs__value_PR_RICcallProcessID -} RICindication_IEs__value_PR; -typedef enum RICcontrolRequest_IEs__value_PR { - RICcontrolRequest_IEs__value_PR_NOTHING, /* No components present */ - RICcontrolRequest_IEs__value_PR_RICrequestID, - RICcontrolRequest_IEs__value_PR_RANfunctionID, - RICcontrolRequest_IEs__value_PR_RICcallProcessID, - RICcontrolRequest_IEs__value_PR_RICcontrolHeader, - RICcontrolRequest_IEs__value_PR_RICcontrolMessage, - RICcontrolRequest_IEs__value_PR_RICcontrolAckRequest -} RICcontrolRequest_IEs__value_PR; -typedef enum RICcontrolAcknowledge_IEs__value_PR { - RICcontrolAcknowledge_IEs__value_PR_NOTHING, /* No components present */ - RICcontrolAcknowledge_IEs__value_PR_RICrequestID, - RICcontrolAcknowledge_IEs__value_PR_RANfunctionID, - RICcontrolAcknowledge_IEs__value_PR_RICcallProcessID, - RICcontrolAcknowledge_IEs__value_PR_RICcontrolOutcome -} RICcontrolAcknowledge_IEs__value_PR; -typedef enum RICcontrolFailure_IEs__value_PR { - RICcontrolFailure_IEs__value_PR_NOTHING, /* No components present */ - RICcontrolFailure_IEs__value_PR_RICrequestID, - RICcontrolFailure_IEs__value_PR_RANfunctionID, - RICcontrolFailure_IEs__value_PR_RICcallProcessID, - RICcontrolFailure_IEs__value_PR_Cause, - RICcontrolFailure_IEs__value_PR_RICcontrolOutcome -} RICcontrolFailure_IEs__value_PR; -typedef enum ErrorIndication_IEs__value_PR { - ErrorIndication_IEs__value_PR_NOTHING, /* No components present */ - ErrorIndication_IEs__value_PR_TransactionID, - ErrorIndication_IEs__value_PR_RICrequestID, - ErrorIndication_IEs__value_PR_RANfunctionID, - ErrorIndication_IEs__value_PR_Cause, - ErrorIndication_IEs__value_PR_CriticalityDiagnostics -} ErrorIndication_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_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_E2nodeComponentConfigAdditionAck_List -} E2setupResponseIEs__value_PR; -typedef enum E2setupFailureIEs__value_PR { - E2setupFailureIEs__value_PR_NOTHING, /* No components present */ - E2setupFailureIEs__value_PR_TransactionID, - E2setupFailureIEs__value_PR_Cause, - E2setupFailureIEs__value_PR_TimeToWait, - E2setupFailureIEs__value_PR_CriticalityDiagnostics, - 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_Cause, - E2connectionUpdateFailure_IEs__value_PR_TimeToWait, - E2connectionUpdateFailure_IEs__value_PR_CriticalityDiagnostics -} 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_Cause, - E2nodeConfigurationUpdateFailure_IEs__value_PR_TimeToWait, - E2nodeConfigurationUpdateFailure_IEs__value_PR_CriticalityDiagnostics -} E2nodeConfigurationUpdateFailure_IEs__value_PR; -typedef enum ResetRequestIEs__value_PR { - ResetRequestIEs__value_PR_NOTHING, /* No components present */ - ResetRequestIEs__value_PR_TransactionID, - ResetRequestIEs__value_PR_Cause -} ResetRequestIEs__value_PR; -typedef enum ResetResponseIEs__value_PR { - ResetResponseIEs__value_PR_NOTHING, /* No components present */ - ResetResponseIEs__value_PR_TransactionID, - ResetResponseIEs__value_PR_CriticalityDiagnostics -} 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_TransactionID, - RICserviceUpdateFailure_IEs__value_PR_Cause, - RICserviceUpdateFailure_IEs__value_PR_TimeToWait, - RICserviceUpdateFailure_IEs__value_PR_CriticalityDiagnostics -} 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; - -/* ProtocolIE-Field */ -typedef struct RICaction_ToBeSetup_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICaction_ToBeSetup_ItemIEs__value { - RICaction_ToBeSetup_ItemIEs__value_PR present; - union RICaction_ToBeSetup_ItemIEs__value_u { - RICaction_ToBeSetup_Item_t RICaction_ToBeSetup_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; -} RICaction_ToBeSetup_ItemIEs_t; -typedef struct RICaction_Admitted_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICaction_Admitted_ItemIEs__value { - RICaction_Admitted_ItemIEs__value_PR present; - union RICaction_Admitted_ItemIEs__value_u { - RICaction_Admitted_Item_t RICaction_Admitted_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; -} RICaction_Admitted_ItemIEs_t; -typedef struct RICaction_NotAdmitted_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICaction_NotAdmitted_ItemIEs__value { - RICaction_NotAdmitted_ItemIEs__value_PR present; - union RICaction_NotAdmitted_ItemIEs__value_u { - RICaction_NotAdmitted_Item_t RICaction_NotAdmitted_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; -} RICaction_NotAdmitted_ItemIEs_t; -typedef struct RICsubscription_withCause_ItemIEs { - ProtocolIE_ID_t id; - Criticality_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_ID_t id; - Criticality_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_ID_t id; - Criticality_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_ID_t id; - Criticality_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_ID_t id; - Criticality_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_ID_t id; - Criticality_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_ID_t id; - Criticality_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_ID_t id; - Criticality_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_ID_t id; - Criticality_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_ID_t id; - Criticality_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_ID_t id; - Criticality_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_ID_t id; - Criticality_t criticality; - struct RANfunction_ItemIEs__value { - RANfunction_ItemIEs__value_PR present; - union RANfunction_ItemIEs__value_u { - RANfunction_Item_t RANfunction_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; -} RANfunction_ItemIEs_t; -typedef struct RANfunctionID_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RANfunctionID_ItemIEs__value { - RANfunctionID_ItemIEs__value_PR present; - union RANfunctionID_ItemIEs__value_u { - RANfunctionID_Item_t RANfunctionID_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; -} RANfunctionID_ItemIEs_t; -typedef struct RANfunctionIDcause_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RANfunctionIDcause_ItemIEs__value { - RANfunctionIDcause_ItemIEs__value_PR present; - union RANfunctionIDcause_ItemIEs__value_u { - RANfunctionIDcause_Item_t RANfunctionIDcause_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; -} RANfunctionIDcause_ItemIEs_t; -typedef struct RICsubscriptionRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionRequest_IEs__value { - RICsubscriptionRequest_IEs__value_PR present; - union RICsubscriptionRequest_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICsubscriptionDetails_t RICsubscriptionDetails; - } 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; -} RICsubscriptionRequest_IEs_t; -typedef struct RICsubscriptionResponse_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionResponse_IEs__value { - RICsubscriptionResponse_IEs__value_PR present; - union RICsubscriptionResponse_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICaction_Admitted_List_t RICaction_Admitted_List; - RICaction_NotAdmitted_List_t RICaction_NotAdmitted_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; -} RICsubscriptionResponse_IEs_t; -typedef struct RICsubscriptionFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionFailure_IEs__value { - RICsubscriptionFailure_IEs__value_PR present; - union RICsubscriptionFailure_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - Cause_t Cause; - CriticalityDiagnostics_t CriticalityDiagnostics; - } 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; -} RICsubscriptionFailure_IEs_t; -typedef struct RICsubscriptionDeleteRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionDeleteRequest_IEs__value { - RICsubscriptionDeleteRequest_IEs__value_PR present; - union RICsubscriptionDeleteRequest_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - } 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; -} RICsubscriptionDeleteRequest_IEs_t; -typedef struct RICsubscriptionDeleteResponse_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionDeleteResponse_IEs__value { - RICsubscriptionDeleteResponse_IEs__value_PR present; - union RICsubscriptionDeleteResponse_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - } 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; -} RICsubscriptionDeleteResponse_IEs_t; -typedef struct RICsubscriptionDeleteFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionDeleteFailure_IEs__value { - RICsubscriptionDeleteFailure_IEs__value_PR present; - union RICsubscriptionDeleteFailure_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - Cause_t Cause; - CriticalityDiagnostics_t CriticalityDiagnostics; - } 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; -} RICsubscriptionDeleteFailure_IEs_t; -typedef struct RICsubscriptionDeleteRequired_IEs { - ProtocolIE_ID_t id; - Criticality_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_ID_t id; - Criticality_t criticality; - struct RICindication_IEs__value { - RICindication_IEs__value_PR present; - union RICindication_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICactionID_t RICactionID; - RICindicationSN_t RICindicationSN; - RICindicationType_t RICindicationType; - RICindicationHeader_t RICindicationHeader; - RICindicationMessage_t RICindicationMessage; - RICcallProcessID_t RICcallProcessID; - } 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; -} RICindication_IEs_t; -typedef struct RICcontrolRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICcontrolRequest_IEs__value { - RICcontrolRequest_IEs__value_PR present; - union RICcontrolRequest_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICcallProcessID_t RICcallProcessID; - RICcontrolHeader_t RICcontrolHeader; - RICcontrolMessage_t RICcontrolMessage; - RICcontrolAckRequest_t RICcontrolAckRequest; - } 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; -} RICcontrolRequest_IEs_t; -typedef struct RICcontrolAcknowledge_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICcontrolAcknowledge_IEs__value { - RICcontrolAcknowledge_IEs__value_PR present; - union RICcontrolAcknowledge_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICcallProcessID_t RICcallProcessID; - RICcontrolOutcome_t RICcontrolOutcome; - } 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; -} RICcontrolAcknowledge_IEs_t; -typedef struct RICcontrolFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICcontrolFailure_IEs__value { - RICcontrolFailure_IEs__value_PR present; - union RICcontrolFailure_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICcallProcessID_t RICcallProcessID; - Cause_t Cause; - RICcontrolOutcome_t RICcontrolOutcome; - } 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; -} RICcontrolFailure_IEs_t; -typedef struct ErrorIndication_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ErrorIndication_IEs__value { - ErrorIndication_IEs__value_PR present; - union ErrorIndication_IEs__value_u { - TransactionID_t TransactionID; - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - Cause_t Cause; - CriticalityDiagnostics_t CriticalityDiagnostics; - } 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; -} ErrorIndication_IEs_t; -typedef struct E2setupRequestIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - 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 */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2setupRequestIEs_t; -typedef struct E2setupResponseIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - 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 */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2setupResponseIEs_t; -typedef struct E2setupFailureIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E2setupFailureIEs__value { - E2setupFailureIEs__value_PR present; - union E2setupFailureIEs__value_u { - TransactionID_t TransactionID; - Cause_t Cause; - TimeToWait_t TimeToWait; - CriticalityDiagnostics_t CriticalityDiagnostics; - TNLinformation_t TNLinformation; - } 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; -} E2setupFailureIEs_t; -typedef struct E2connectionUpdate_IEs { - ProtocolIE_ID_t id; - Criticality_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_ID_t id; - Criticality_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_ID_t id; - Criticality_t criticality; - struct E2connectionUpdateFailure_IEs__value { - E2connectionUpdateFailure_IEs__value_PR present; - union E2connectionUpdateFailure_IEs__value_u { - TransactionID_t TransactionID; - Cause_t Cause; - TimeToWait_t TimeToWait; - CriticalityDiagnostics_t CriticalityDiagnostics; - } 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_ID_t id; - Criticality_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_ID_t id; - Criticality_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_ID_t id; - Criticality_t criticality; - struct E2nodeConfigurationUpdateFailure_IEs__value { - E2nodeConfigurationUpdateFailure_IEs__value_PR present; - union E2nodeConfigurationUpdateFailure_IEs__value_u { - TransactionID_t TransactionID; - Cause_t Cause; - TimeToWait_t TimeToWait; - CriticalityDiagnostics_t CriticalityDiagnostics; - } 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_ID_t id; - Criticality_t criticality; - struct ResetRequestIEs__value { - ResetRequestIEs__value_PR present; - union ResetRequestIEs__value_u { - TransactionID_t TransactionID; - Cause_t Cause; - } 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; -} ResetRequestIEs_t; -typedef struct ResetResponseIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ResetResponseIEs__value { - ResetResponseIEs__value_PR present; - union ResetResponseIEs__value_u { - TransactionID_t TransactionID; - CriticalityDiagnostics_t CriticalityDiagnostics; - } 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; -} ResetResponseIEs_t; -typedef struct RICserviceUpdate_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - 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; - - /* 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; -} RICserviceUpdate_IEs_t; -typedef struct RICserviceUpdateAcknowledge_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - 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; - - /* 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; -} RICserviceUpdateAcknowledge_IEs_t; -typedef struct RICserviceUpdateFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICserviceUpdateFailure_IEs__value { - RICserviceUpdateFailure_IEs__value_PR present; - union RICserviceUpdateFailure_IEs__value_u { - TransactionID_t TransactionID; - Cause_t Cause; - TimeToWait_t TimeToWait; - CriticalityDiagnostics_t CriticalityDiagnostics; - } 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; -} RICserviceUpdateFailure_IEs_t; -typedef struct RICserviceQuery_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICserviceQuery_IEs__value { - RICserviceQuery_IEs__value_PR present; - union RICserviceQuery_IEs__value_u { - TransactionID_t TransactionID; - RANfunctionsID_List_t RANfunctionsID_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; -} RICserviceQuery_IEs_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1; -extern asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_ItemIEs_1[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_ItemIEs_specs_5; -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_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_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_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_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_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_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_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_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_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_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_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_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_109; -extern asn_TYPE_member_t asn_MBR_RICcontrolFailure_IEs_109[3]; -extern asn_TYPE_descriptor_t asn_DEF_ErrorIndication_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_IEs_specs_113; -extern asn_TYPE_member_t asn_MBR_ErrorIndication_IEs_113[3]; -extern asn_TYPE_descriptor_t asn_DEF_E2setupRequestIEs; -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_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_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_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_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_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_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_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_173; -extern asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_173[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_Field_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-FieldPair.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-FieldPair.c deleted file mode 100644 index 369845c..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-FieldPair.c +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "ProtocolIE-FieldPair.h" - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-FieldPair.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-FieldPair.h deleted file mode 100644 index 485ab58..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-FieldPair.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _ProtocolIE_FieldPair_H_ -#define _ProtocolIE_FieldPair_H_ - - -#include "asn_application.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_FieldPair_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ID.c deleted file mode 100644 index 6fb4247..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ID.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "ProtocolIE-ID.h" - -int -ProtocolIE_ID_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 <= 65535)) { - /* 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_ProtocolIE_ID_constr_1 CC_NOTUSED = { - { 2, 1 } /* (0..65535) */, - -1}; -asn_per_constraints_t asn_PER_type_ProtocolIE_ID_constr_1 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_ProtocolIE_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ID = { - "ProtocolIE-ID", - "ProtocolIE-ID", - &asn_OP_NativeInteger, - asn_DEF_ProtocolIE_ID_tags_1, - sizeof(asn_DEF_ProtocolIE_ID_tags_1) - /sizeof(asn_DEF_ProtocolIE_ID_tags_1[0]), /* 1 */ - asn_DEF_ProtocolIE_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_ID_tags_1) - /sizeof(asn_DEF_ProtocolIE_ID_tags_1[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_ID_constr_1, &asn_PER_type_ProtocolIE_ID_constr_1, ProtocolIE_ID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ID.h deleted file mode 100644 index a50dc2d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ID.h +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _ProtocolIE_ID_H_ -#define _ProtocolIE_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ProtocolIE-ID */ -typedef long ProtocolIE_ID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ProtocolIE_ID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ID; -asn_struct_free_f ProtocolIE_ID_free; -asn_struct_print_f ProtocolIE_ID_print; -asn_constr_check_f ProtocolIE_ID_constraint; -ber_type_decoder_f ProtocolIE_ID_decode_ber; -der_type_encoder_f ProtocolIE_ID_encode_der; -xer_type_decoder_f ProtocolIE_ID_decode_xer; -xer_type_encoder_f ProtocolIE_ID_encode_xer; -oer_type_decoder_f ProtocolIE_ID_decode_oer; -oer_type_encoder_f ProtocolIE_ID_encode_oer; -per_type_decoder_f ProtocolIE_ID_decode_uper; -per_type_encoder_f ProtocolIE_ID_encode_uper; -per_type_decoder_f ProtocolIE_ID_decode_aper; -per_type_encoder_f ProtocolIE_ID_encode_aper; -#define ProtocolIE_ID_id_Cause ((ProtocolIE_ID_t)1) -#define ProtocolIE_ID_id_CriticalityDiagnostics ((ProtocolIE_ID_t)2) -#define ProtocolIE_ID_id_GlobalE2node_ID ((ProtocolIE_ID_t)3) -#define ProtocolIE_ID_id_GlobalRIC_ID ((ProtocolIE_ID_t)4) -#define ProtocolIE_ID_id_RANfunctionID ((ProtocolIE_ID_t)5) -#define ProtocolIE_ID_id_RANfunctionID_Item ((ProtocolIE_ID_t)6) -#define ProtocolIE_ID_id_RANfunctionIEcause_Item ((ProtocolIE_ID_t)7) -#define ProtocolIE_ID_id_RANfunction_Item ((ProtocolIE_ID_t)8) -#define ProtocolIE_ID_id_RANfunctionsAccepted ((ProtocolIE_ID_t)9) -#define ProtocolIE_ID_id_RANfunctionsAdded ((ProtocolIE_ID_t)10) -#define ProtocolIE_ID_id_RANfunctionsDeleted ((ProtocolIE_ID_t)11) -#define ProtocolIE_ID_id_RANfunctionsModified ((ProtocolIE_ID_t)12) -#define ProtocolIE_ID_id_RANfunctionsRejected ((ProtocolIE_ID_t)13) -#define ProtocolIE_ID_id_RICaction_Admitted_Item ((ProtocolIE_ID_t)14) -#define ProtocolIE_ID_id_RICactionID ((ProtocolIE_ID_t)15) -#define ProtocolIE_ID_id_RICaction_NotAdmitted_Item ((ProtocolIE_ID_t)16) -#define ProtocolIE_ID_id_RICactions_Admitted ((ProtocolIE_ID_t)17) -#define ProtocolIE_ID_id_RICactions_NotAdmitted ((ProtocolIE_ID_t)18) -#define ProtocolIE_ID_id_RICaction_ToBeSetup_Item ((ProtocolIE_ID_t)19) -#define ProtocolIE_ID_id_RICcallProcessID ((ProtocolIE_ID_t)20) -#define ProtocolIE_ID_id_RICcontrolAckRequest ((ProtocolIE_ID_t)21) -#define ProtocolIE_ID_id_RICcontrolHeader ((ProtocolIE_ID_t)22) -#define ProtocolIE_ID_id_RICcontrolMessage ((ProtocolIE_ID_t)23) -#define ProtocolIE_ID_id_RICcontrolStatus ((ProtocolIE_ID_t)24) -#define ProtocolIE_ID_id_RICindicationHeader ((ProtocolIE_ID_t)25) -#define ProtocolIE_ID_id_RICindicationMessage ((ProtocolIE_ID_t)26) -#define ProtocolIE_ID_id_RICindicationSN ((ProtocolIE_ID_t)27) -#define ProtocolIE_ID_id_RICindicationType ((ProtocolIE_ID_t)28) -#define ProtocolIE_ID_id_RICrequestID ((ProtocolIE_ID_t)29) -#define ProtocolIE_ID_id_RICsubscriptionDetails ((ProtocolIE_ID_t)30) -#define ProtocolIE_ID_id_TimeToWait ((ProtocolIE_ID_t)31) -#define ProtocolIE_ID_id_RICcontrolOutcome ((ProtocolIE_ID_t)32) -#define ProtocolIE_ID_id_E2nodeComponentConfigUpdate ((ProtocolIE_ID_t)33) -#define ProtocolIE_ID_id_E2nodeComponentConfigUpdate_Item ((ProtocolIE_ID_t)34) -#define ProtocolIE_ID_id_E2nodeComponentConfigUpdateAck ((ProtocolIE_ID_t)35) -#define ProtocolIE_ID_id_E2nodeComponentConfigUpdateAck_Item ((ProtocolIE_ID_t)36) -#define ProtocolIE_ID_id_E2connectionSetup ((ProtocolIE_ID_t)39) -#define ProtocolIE_ID_id_E2connectionSetupFailed ((ProtocolIE_ID_t)40) -#define ProtocolIE_ID_id_E2connectionSetupFailed_Item ((ProtocolIE_ID_t)41) -#define ProtocolIE_ID_id_E2connectionFailed_Item ((ProtocolIE_ID_t)42) -#define ProtocolIE_ID_id_E2connectionUpdate_Item ((ProtocolIE_ID_t)43) -#define ProtocolIE_ID_id_E2connectionUpdateAdd ((ProtocolIE_ID_t)44) -#define ProtocolIE_ID_id_E2connectionUpdateModify ((ProtocolIE_ID_t)45) -#define ProtocolIE_ID_id_E2connectionUpdateRemove ((ProtocolIE_ID_t)46) -#define ProtocolIE_ID_id_E2connectionUpdateRemove_Item ((ProtocolIE_ID_t)47) -#define ProtocolIE_ID_id_TNLinformation ((ProtocolIE_ID_t)48) -#define ProtocolIE_ID_id_TransactionID ((ProtocolIE_ID_t)49) -#define ProtocolIE_ID_id_E2nodeComponentConfigAddition ((ProtocolIE_ID_t)50) -#define ProtocolIE_ID_id_E2nodeComponentConfigAddition_Item ((ProtocolIE_ID_t)51) -#define ProtocolIE_ID_id_E2nodeComponentConfigAdditionAck ((ProtocolIE_ID_t)52) -#define ProtocolIE_ID_id_E2nodeComponentConfigAdditionAck_Item ((ProtocolIE_ID_t)53) -#define ProtocolIE_ID_id_E2nodeComponentConfigRemoval ((ProtocolIE_ID_t)54) -#define ProtocolIE_ID_id_E2nodeComponentConfigRemoval_Item ((ProtocolIE_ID_t)55) -#define ProtocolIE_ID_id_E2nodeComponentConfigRemovalAck ((ProtocolIE_ID_t)56) -#define ProtocolIE_ID_id_E2nodeComponentConfigRemovalAck_Item ((ProtocolIE_ID_t)57) -#define ProtocolIE_ID_id_E2nodeTNLassociationRemoval ((ProtocolIE_ID_t)58) -#define ProtocolIE_ID_id_E2nodeTNLassociationRemoval_Item ((ProtocolIE_ID_t)59) -#define ProtocolIE_ID_id_RICsubscriptionToBeRemoved ((ProtocolIE_ID_t)50) -#define ProtocolIE_ID_id_RICsubscription_withCause_Item ((ProtocolIE_ID_t)51) - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-SingleContainer.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-SingleContainer.c deleted file mode 100644 index e56a8dc..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-SingleContainer.c +++ /dev/null @@ -1,400 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "ProtocolIE-SingleContainer.h" - -/* - * This type is implemented using RICaction_ToBeSetup_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using RICaction_Admitted_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * 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. - */ -/* - * This type is implemented using RANfunctionID_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using RANfunctionIDcause_ItemIEs, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P0_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P0 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P0_tags_1, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P0_tags_1[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P0_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P0_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_SingleContainer_1920P1_tags_2[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P1 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P1_tags_2, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P1_tags_2) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P1_tags_2[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P1_tags_2, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P1_tags_2) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P1_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_SingleContainer_1920P2_tags_3[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P2 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P2_tags_3, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P2_tags_3) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P2_tags_3[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P2_tags_3, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P2_tags_3) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P2_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_SingleContainer_1920P3_tags_4[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P3 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P3_tags_4, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P3_tags_4) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P3_tags_4[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P3_tags_4, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P3_tags_4) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P3_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_SingleContainer_1920P4_tags_5[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P4 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P4_tags_5, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P4_tags_5) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P4_tags_5[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P4_tags_5, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P4_tags_5) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P4_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_SingleContainer_1920P5_tags_6[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P5 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P5_tags_6, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P5_tags_6) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P5_tags_6[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P5_tags_6, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P5_tags_6) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P5_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_SingleContainer_1920P6_tags_7[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P6 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P6_tags_7, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P6_tags_7) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P6_tags_7[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P6_tags_7, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P6_tags_7) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P6_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_SingleContainer_1920P7_tags_8[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P7 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P7_tags_8, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P7_tags_8) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P7_tags_8[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P7_tags_8, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P7_tags_8) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P7_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_SingleContainer_1920P8_tags_9[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P8 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P8_tags_9, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P8_tags_9) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P8_tags_9[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P8_tags_9, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P8_tags_9) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P8_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_SingleContainer_1920P9_tags_10[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P9 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P9_tags_10, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P9_tags_10) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P9_tags_10[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P9_tags_10, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P9_tags_10) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P9_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_SingleContainer_1920P10_tags_11[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P10 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P10_tags_11, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P10_tags_11) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P10_tags_11[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P10_tags_11, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P10_tags_11) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P10_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_SingleContainer_1920P11_tags_12[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P11 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P11_tags_12, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P11_tags_12) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P11_tags_12[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P11_tags_12, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P11_tags_12) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P11_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_SingleContainer_1920P12_tags_13[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P12 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P12_tags_13, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P12_tags_13) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P12_tags_13[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P12_tags_13, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P12_tags_13) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P12_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_SingleContainer_1920P13_tags_14[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P13 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P13_tags_14, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P13_tags_14) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P13_tags_14[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P13_tags_14, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P13_tags_14) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P13_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_SingleContainer_1920P14_tags_15[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P14 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P14_tags_15, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P14_tags_15) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P14_tags_15[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P14_tags_15, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P14_tags_15) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P14_tags_15[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunction_ItemIEs_57, - 3, /* Elements count */ - &asn_SPC_RANfunction_ItemIEs_specs_57 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P15_tags_16[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P15 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P15_tags_16, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P15_tags_16) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P15_tags_16[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P15_tags_16, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P15_tags_16) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P15_tags_16[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionID_ItemIEs_61, - 3, /* Elements count */ - &asn_SPC_RANfunctionID_ItemIEs_specs_61 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P16_tags_17[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P16 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P16_tags_17, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P16_tags_17) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P16_tags_17[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P16_tags_17, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P16_tags_17) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P16_tags_17[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionIDcause_ItemIEs_65, - 3, /* Elements count */ - &asn_SPC_RANfunctionIDcause_ItemIEs_specs_65 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-SingleContainer.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-SingleContainer.h deleted file mode 100644 index e3d59b5..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-SingleContainer.h +++ /dev/null @@ -1,285 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _ProtocolIE_SingleContainer_H_ -#define _ProtocolIE_SingleContainer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Field.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ProtocolIE-SingleContainer */ -typedef RICaction_ToBeSetup_ItemIEs_t ProtocolIE_SingleContainer_1920P0_t; -typedef RICaction_Admitted_ItemIEs_t ProtocolIE_SingleContainer_1920P1_t; -typedef RICaction_NotAdmitted_ItemIEs_t ProtocolIE_SingleContainer_1920P2_t; -typedef RICsubscription_withCause_ItemIEs_t ProtocolIE_SingleContainer_1920P3_t; -typedef E2connectionUpdate_ItemIEs_t ProtocolIE_SingleContainer_1920P4_t; -typedef E2connectionUpdateRemove_ItemIEs_t ProtocolIE_SingleContainer_1920P5_t; -typedef E2connectionSetupFailed_ItemIEs_t ProtocolIE_SingleContainer_1920P6_t; -typedef E2nodeComponentConfigAddition_ItemIEs_t ProtocolIE_SingleContainer_1920P7_t; -typedef E2nodeComponentConfigUpdate_ItemIEs_t ProtocolIE_SingleContainer_1920P8_t; -typedef E2nodeComponentConfigRemoval_ItemIEs_t ProtocolIE_SingleContainer_1920P9_t; -typedef E2nodeTNLassociationRemoval_ItemIEs_t ProtocolIE_SingleContainer_1920P10_t; -typedef E2nodeComponentConfigAdditionAck_ItemIEs_t ProtocolIE_SingleContainer_1920P11_t; -typedef E2nodeComponentConfigUpdateAck_ItemIEs_t ProtocolIE_SingleContainer_1920P12_t; -typedef E2nodeComponentConfigRemovalAck_ItemIEs_t ProtocolIE_SingleContainer_1920P13_t; -typedef RANfunction_ItemIEs_t ProtocolIE_SingleContainer_1920P14_t; -typedef RANfunctionID_ItemIEs_t ProtocolIE_SingleContainer_1920P15_t; -typedef RANfunctionIDcause_ItemIEs_t ProtocolIE_SingleContainer_1920P16_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P0; -asn_struct_free_f ProtocolIE_SingleContainer_1920P0_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P0_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P0_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P0_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P0_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P0_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P0_encode_xer; -oer_type_decoder_f ProtocolIE_SingleContainer_1920P0_decode_oer; -oer_type_encoder_f ProtocolIE_SingleContainer_1920P0_encode_oer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P0_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P0_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P0_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P0_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P1; -asn_struct_free_f ProtocolIE_SingleContainer_1920P1_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P1_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P1_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P1_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P1_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P1_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P1_encode_xer; -oer_type_decoder_f ProtocolIE_SingleContainer_1920P1_decode_oer; -oer_type_encoder_f ProtocolIE_SingleContainer_1920P1_encode_oer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P1_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P1_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P1_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P1_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P2; -asn_struct_free_f ProtocolIE_SingleContainer_1920P2_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P2_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P2_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P2_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P2_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P2_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P2_encode_xer; -oer_type_decoder_f ProtocolIE_SingleContainer_1920P2_decode_oer; -oer_type_encoder_f ProtocolIE_SingleContainer_1920P2_encode_oer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P2_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P2_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P2_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P2_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P3; -asn_struct_free_f ProtocolIE_SingleContainer_1920P3_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P3_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P3_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P3_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P3_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P3_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P3_encode_xer; -oer_type_decoder_f ProtocolIE_SingleContainer_1920P3_decode_oer; -oer_type_encoder_f ProtocolIE_SingleContainer_1920P3_encode_oer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P3_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P3_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P3_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P3_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P4; -asn_struct_free_f ProtocolIE_SingleContainer_1920P4_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P4_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P4_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P4_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P4_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P4_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P4_encode_xer; -oer_type_decoder_f ProtocolIE_SingleContainer_1920P4_decode_oer; -oer_type_encoder_f ProtocolIE_SingleContainer_1920P4_encode_oer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P4_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P4_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P4_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P4_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P5; -asn_struct_free_f ProtocolIE_SingleContainer_1920P5_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P5_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P5_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P5_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P5_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P5_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P5_encode_xer; -oer_type_decoder_f ProtocolIE_SingleContainer_1920P5_decode_oer; -oer_type_encoder_f ProtocolIE_SingleContainer_1920P5_encode_oer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P5_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P5_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P5_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P5_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P6; -asn_struct_free_f ProtocolIE_SingleContainer_1920P6_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P6_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P6_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P6_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P6_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P6_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P6_encode_xer; -oer_type_decoder_f ProtocolIE_SingleContainer_1920P6_decode_oer; -oer_type_encoder_f ProtocolIE_SingleContainer_1920P6_encode_oer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P6_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P6_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P6_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P6_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P7; -asn_struct_free_f ProtocolIE_SingleContainer_1920P7_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P7_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P7_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P7_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P7_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P7_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P7_encode_xer; -oer_type_decoder_f ProtocolIE_SingleContainer_1920P7_decode_oer; -oer_type_encoder_f ProtocolIE_SingleContainer_1920P7_encode_oer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P7_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P7_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P7_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P7_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P8; -asn_struct_free_f ProtocolIE_SingleContainer_1920P8_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P8_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P8_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P8_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P8_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P8_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P8_encode_xer; -oer_type_decoder_f ProtocolIE_SingleContainer_1920P8_decode_oer; -oer_type_encoder_f ProtocolIE_SingleContainer_1920P8_encode_oer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P8_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P8_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P8_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P8_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P9; -asn_struct_free_f ProtocolIE_SingleContainer_1920P9_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P9_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P9_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P9_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P9_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P9_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P9_encode_xer; -oer_type_decoder_f ProtocolIE_SingleContainer_1920P9_decode_oer; -oer_type_encoder_f ProtocolIE_SingleContainer_1920P9_encode_oer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P9_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P9_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P9_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P9_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P10; -asn_struct_free_f ProtocolIE_SingleContainer_1920P10_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P10_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P10_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P10_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P10_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P10_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P10_encode_xer; -oer_type_decoder_f ProtocolIE_SingleContainer_1920P10_decode_oer; -oer_type_encoder_f ProtocolIE_SingleContainer_1920P10_encode_oer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P10_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P10_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P10_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P10_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P11; -asn_struct_free_f ProtocolIE_SingleContainer_1920P11_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P11_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P11_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P11_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P11_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P11_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P11_encode_xer; -oer_type_decoder_f ProtocolIE_SingleContainer_1920P11_decode_oer; -oer_type_encoder_f ProtocolIE_SingleContainer_1920P11_encode_oer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P11_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P11_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P11_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P11_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P12; -asn_struct_free_f ProtocolIE_SingleContainer_1920P12_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P12_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P12_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P12_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P12_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P12_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P12_encode_xer; -oer_type_decoder_f ProtocolIE_SingleContainer_1920P12_decode_oer; -oer_type_encoder_f ProtocolIE_SingleContainer_1920P12_encode_oer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P12_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P12_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P12_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P12_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P13; -asn_struct_free_f ProtocolIE_SingleContainer_1920P13_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P13_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P13_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P13_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P13_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P13_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P13_encode_xer; -oer_type_decoder_f ProtocolIE_SingleContainer_1920P13_decode_oer; -oer_type_encoder_f ProtocolIE_SingleContainer_1920P13_encode_oer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P13_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P13_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P13_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P13_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P14; -asn_struct_free_f ProtocolIE_SingleContainer_1920P14_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P14_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P14_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P14_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P14_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P14_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P14_encode_xer; -oer_type_decoder_f ProtocolIE_SingleContainer_1920P14_decode_oer; -oer_type_encoder_f ProtocolIE_SingleContainer_1920P14_encode_oer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P14_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P14_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P14_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P14_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P15; -asn_struct_free_f ProtocolIE_SingleContainer_1920P15_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P15_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P15_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P15_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P15_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P15_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P15_encode_xer; -oer_type_decoder_f ProtocolIE_SingleContainer_1920P15_decode_oer; -oer_type_encoder_f ProtocolIE_SingleContainer_1920P15_encode_oer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P15_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P15_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P15_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P15_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P16; -asn_struct_free_f ProtocolIE_SingleContainer_1920P16_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P16_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P16_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P16_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P16_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P16_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P16_encode_xer; -oer_type_decoder_f ProtocolIE_SingleContainer_1920P16_decode_oer; -oer_type_encoder_f ProtocolIE_SingleContainer_1920P16_encode_oer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P16_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P16_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P16_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P16_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_SingleContainer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RAN-Container.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RAN-Container.c deleted file mode 100644 index 373508b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RAN-Container.c +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RAN-Container.h" - -static asn_oer_constraints_t asn_OER_type_reportContainer_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_reportContainer_constr_3 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 asn_TYPE_member_t asn_MBR_reportContainer_3[] = { - { ATF_NOFLAGS, 0, offsetof(struct RAN_Container__reportContainer, choice.oDU_UE), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_DU_Usage_Report_Per_UE, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oDU-UE" - }, - { ATF_NOFLAGS, 0, offsetof(struct RAN_Container__reportContainer, choice.oCU_CP_UE), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CU_CP_Usage_Report_Per_UE, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oCU-CP-UE" - }, - { ATF_NOFLAGS, 0, offsetof(struct RAN_Container__reportContainer, choice.oCU_UP_UE), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CU_UP_Usage_Report_Per_UE, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oCU-UP-UE" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_reportContainer_tag2el_3[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* oDU-UE */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* oCU-CP-UE */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* oCU-UP-UE */ -}; -static asn_CHOICE_specifics_t asn_SPC_reportContainer_specs_3 = { - sizeof(struct RAN_Container__reportContainer), - offsetof(struct RAN_Container__reportContainer, _asn_ctx), - offsetof(struct RAN_Container__reportContainer, present), - sizeof(((struct RAN_Container__reportContainer *)0)->present), - asn_MAP_reportContainer_tag2el_3, - 3, /* Count of tags in the map */ - 0, 0, - 3 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_reportContainer_3 = { - "reportContainer", - "reportContainer", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_reportContainer_constr_3, &asn_PER_type_reportContainer_constr_3, CHOICE_constraint }, - asn_MBR_reportContainer_3, - 3, /* Elements count */ - &asn_SPC_reportContainer_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RAN_Container_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RAN_Container, timestamp), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Timestamp, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "timestamp" - }, - { ATF_NOFLAGS, 0, offsetof(struct RAN_Container, reportContainer), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_reportContainer_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "reportContainer" - }, -}; -static const ber_tlv_tag_t asn_DEF_RAN_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RAN_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timestamp */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* reportContainer */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RAN_Container_specs_1 = { - sizeof(struct RAN_Container), - offsetof(struct RAN_Container, _asn_ctx), - asn_MAP_RAN_Container_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_RAN_Container = { - "RAN-Container", - "RAN-Container", - &asn_OP_SEQUENCE, - asn_DEF_RAN_Container_tags_1, - sizeof(asn_DEF_RAN_Container_tags_1) - /sizeof(asn_DEF_RAN_Container_tags_1[0]), /* 1 */ - asn_DEF_RAN_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_RAN_Container_tags_1) - /sizeof(asn_DEF_RAN_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RAN_Container_1, - 2, /* Elements count */ - &asn_SPC_RAN_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RAN-Container.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RAN-Container.h deleted file mode 100644 index 8184460..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RAN-Container.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RAN_Container_H_ -#define _RAN_Container_H_ - - -#include - -/* Including external dependencies */ -#include "Timestamp.h" -#include "DU-Usage-Report-Per-UE.h" -#include "CU-CP-Usage-Report-Per-UE.h" -#include "CU-UP-Usage-Report-Per-UE.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RAN_Container__reportContainer_PR { - RAN_Container__reportContainer_PR_NOTHING, /* No components present */ - RAN_Container__reportContainer_PR_oDU_UE, - RAN_Container__reportContainer_PR_oCU_CP_UE, - RAN_Container__reportContainer_PR_oCU_UP_UE - /* Extensions may appear below */ - -} RAN_Container__reportContainer_PR; - -/* RAN-Container */ -typedef struct RAN_Container { - Timestamp_t timestamp; - struct RAN_Container__reportContainer { - RAN_Container__reportContainer_PR present; - union RAN_Container__reportContainer_u { - DU_Usage_Report_Per_UE_t oDU_UE; - CU_CP_Usage_Report_Per_UE_t oCU_CP_UE; - CU_UP_Usage_Report_Per_UE_t oCU_UP_UE; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } reportContainer; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RAN_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RAN_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_RAN_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_RAN_Container_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RAN_Container_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANcallProcess-ID-string.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANcallProcess-ID-string.c deleted file mode 100644 index 4cd1b70..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANcallProcess-ID-string.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RANcallProcess-ID-string.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 -RANcallProcess_ID_string_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_RANcallProcess_ID_string_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_RANcallProcess_ID_string_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_RANcallProcess_ID_string_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -static asn_per_constraints_t asn_PER_type_RANcallProcess_ID_string_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_RANcallProcess_ID_string_1_v2c, /* Value to PER code map */ - asn_PER_MAP_RANcallProcess_ID_string_1_c2v /* PER code to value map */ -}; -static const ber_tlv_tag_t asn_DEF_RANcallProcess_ID_string_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RANcallProcess_ID_string = { - "RANcallProcess-ID-string", - "RANcallProcess-ID-string", - &asn_OP_PrintableString, - asn_DEF_RANcallProcess_ID_string_tags_1, - sizeof(asn_DEF_RANcallProcess_ID_string_tags_1) - /sizeof(asn_DEF_RANcallProcess_ID_string_tags_1[0]), /* 1 */ - asn_DEF_RANcallProcess_ID_string_tags_1, /* Same as above */ - sizeof(asn_DEF_RANcallProcess_ID_string_tags_1) - /sizeof(asn_DEF_RANcallProcess_ID_string_tags_1[0]), /* 1 */ - { &asn_OER_type_RANcallProcess_ID_string_constr_1, &asn_PER_type_RANcallProcess_ID_string_constr_1, RANcallProcess_ID_string_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANcallProcess-ID-string.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANcallProcess-ID-string.h deleted file mode 100644 index 087cdc0..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANcallProcess-ID-string.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RANcallProcess_ID_string_H_ -#define _RANcallProcess_ID_string_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANcallProcess-ID-string */ -typedef PrintableString_t RANcallProcess_ID_string_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANcallProcess_ID_string; -asn_struct_free_f RANcallProcess_ID_string_free; -asn_struct_print_f RANcallProcess_ID_string_print; -asn_constr_check_f RANcallProcess_ID_string_constraint; -ber_type_decoder_f RANcallProcess_ID_string_decode_ber; -der_type_encoder_f RANcallProcess_ID_string_encode_der; -xer_type_decoder_f RANcallProcess_ID_string_decode_xer; -xer_type_encoder_f RANcallProcess_ID_string_encode_xer; -oer_type_decoder_f RANcallProcess_ID_string_decode_oer; -oer_type_encoder_f RANcallProcess_ID_string_encode_oer; -per_type_decoder_f RANcallProcess_ID_string_decode_uper; -per_type_encoder_f RANcallProcess_ID_string_encode_uper; -per_type_decoder_f RANcallProcess_ID_string_decode_aper; -per_type_encoder_f RANcallProcess_ID_string_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANcallProcess_ID_string_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunction-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunction-Item.c deleted file mode 100644 index fc406d5..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunction-Item.c +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RANfunction-Item.h" - -static asn_TYPE_member_t asn_MBR_RANfunction_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Item, ranFunctionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 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 RANfunction_Item, ranFunctionDefinition), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunctionDefinition, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunctionDefinition" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Item, ranFunctionRevision), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunctionRevision, - 0, - { 0, 0, 0 }, - 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)) -}; -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 | (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, - 4, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunction_Item = { - "RANfunction-Item", - "RANfunction-Item", - &asn_OP_SEQUENCE, - asn_DEF_RANfunction_Item_tags_1, - sizeof(asn_DEF_RANfunction_Item_tags_1) - /sizeof(asn_DEF_RANfunction_Item_tags_1[0]), /* 1 */ - asn_DEF_RANfunction_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunction_Item_tags_1) - /sizeof(asn_DEF_RANfunction_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunction_Item_1, - 4, /* Elements count */ - &asn_SPC_RANfunction_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunction-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunction-Item.h deleted file mode 100644 index df49735..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunction-Item.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RANfunction_Item_H_ -#define _RANfunction_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RANfunctionID.h" -#include "RANfunctionDefinition.h" -#include "RANfunctionRevision.h" -#include "RANfunctionOID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunction-Item */ -typedef struct RANfunction_Item { - RANfunctionID_t ranFunctionID; - RANfunctionDefinition_t ranFunctionDefinition; - RANfunctionRevision_t ranFunctionRevision; - RANfunctionOID_t ranFunctionOID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunction_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunction_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunction_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunction-Name.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunction-Name.c deleted file mode 100644 index 72a90a9..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunction-Name.c +++ /dev/null @@ -1,316 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RANfunction-Name.h" - -static const int permitted_alphabet_table_2[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_2[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_2(const void *sptr) { - const int *table = permitted_alphabet_table_2; - /* 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; -} - -static const int permitted_alphabet_table_3[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_3[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_3(const void *sptr) { - const int *table = permitted_alphabet_table_3; - /* 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; -} - -static const int permitted_alphabet_table_4[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_4[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_4(const void *sptr) { - const int *table = permitted_alphabet_table_4; - /* 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; -} - -static int -memb_ranFunction_ShortName_constraint_1(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_2(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_ranFunction_ShortName_2_v2c(unsigned int value) { - if(value >= sizeof(permitted_alphabet_table_2)/sizeof(permitted_alphabet_table_2[0])) - return -1; - return permitted_alphabet_table_2[value] - 1; -} -static int asn_PER_MAP_ranFunction_ShortName_2_c2v(unsigned int code) { - if(code >= sizeof(permitted_alphabet_code2value_2)/sizeof(permitted_alphabet_code2value_2[0])) - return -1; - return permitted_alphabet_code2value_2[code]; -} -static int -memb_ranFunction_E2SM_OID_constraint_1(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_3(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_ranFunction_E2SM_OID_3_v2c(unsigned int value) { - if(value >= sizeof(permitted_alphabet_table_3)/sizeof(permitted_alphabet_table_3[0])) - return -1; - return permitted_alphabet_table_3[value] - 1; -} -static int asn_PER_MAP_ranFunction_E2SM_OID_3_c2v(unsigned int code) { - if(code >= sizeof(permitted_alphabet_code2value_3)/sizeof(permitted_alphabet_code2value_3[0])) - return -1; - return permitted_alphabet_code2value_3[code]; -} -static int -memb_ranFunction_Description_constraint_1(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_4(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_ranFunction_Description_4_v2c(unsigned int value) { - if(value >= sizeof(permitted_alphabet_table_4)/sizeof(permitted_alphabet_table_4[0])) - return -1; - return permitted_alphabet_table_4[value] - 1; -} -static int asn_PER_MAP_ranFunction_Description_4_c2v(unsigned int code) { - if(code >= sizeof(permitted_alphabet_code2value_4)/sizeof(permitted_alphabet_code2value_4[0])) - return -1; - return permitted_alphabet_code2value_4[code]; -} -static asn_oer_constraints_t asn_OER_memb_ranFunction_ShortName_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -static asn_per_constraints_t asn_PER_memb_ranFunction_ShortName_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, - { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, - asn_PER_MAP_ranFunction_ShortName_2_v2c, /* Value to PER code map */ - asn_PER_MAP_ranFunction_ShortName_2_c2v /* PER code to value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ranFunction_E2SM_OID_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -static asn_per_constraints_t asn_PER_memb_ranFunction_E2SM_OID_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, - { APC_CONSTRAINED | APC_EXTENSIBLE, 10, 10, 1, 1000 } /* (SIZE(1..1000,...)) */, - asn_PER_MAP_ranFunction_E2SM_OID_3_v2c, /* Value to PER code map */ - asn_PER_MAP_ranFunction_E2SM_OID_3_c2v /* PER code to value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ranFunction_Description_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -static asn_per_constraints_t asn_PER_memb_ranFunction_Description_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, - { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, - asn_PER_MAP_ranFunction_Description_4_v2c, /* Value to PER code map */ - asn_PER_MAP_ranFunction_Description_4_c2v /* PER code to value map */ -}; -asn_TYPE_member_t asn_MBR_RANfunction_Name_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Name, ranFunction_ShortName), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PrintableString, - 0, - { &asn_OER_memb_ranFunction_ShortName_constr_2, &asn_PER_memb_ranFunction_ShortName_constr_2, memb_ranFunction_ShortName_constraint_1 }, - 0, 0, /* No default value */ - "ranFunction-ShortName" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Name, ranFunction_E2SM_OID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PrintableString, - 0, - { &asn_OER_memb_ranFunction_E2SM_OID_constr_3, &asn_PER_memb_ranFunction_E2SM_OID_constr_3, memb_ranFunction_E2SM_OID_constraint_1 }, - 0, 0, /* No default value */ - "ranFunction-E2SM-OID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Name, ranFunction_Description), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PrintableString, - 0, - { &asn_OER_memb_ranFunction_Description_constr_4, &asn_PER_memb_ranFunction_Description_constr_4, memb_ranFunction_Description_constraint_1 }, - 0, 0, /* No default value */ - "ranFunction-Description" - }, - { ATF_POINTER, 1, offsetof(struct RANfunction_Name, ranFunction_Instance), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunction-Instance" - }, -}; -static const int asn_MAP_RANfunction_Name_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_RANfunction_Name_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunction_Name_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunction-ShortName */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ranFunction-E2SM-OID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ranFunction-Description */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ranFunction-Instance */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RANfunction_Name_specs_1 = { - sizeof(struct RANfunction_Name), - offsetof(struct RANfunction_Name, _asn_ctx), - asn_MAP_RANfunction_Name_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_RANfunction_Name_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunction_Name = { - "RANfunction-Name", - "RANfunction-Name", - &asn_OP_SEQUENCE, - asn_DEF_RANfunction_Name_tags_1, - sizeof(asn_DEF_RANfunction_Name_tags_1) - /sizeof(asn_DEF_RANfunction_Name_tags_1[0]), /* 1 */ - asn_DEF_RANfunction_Name_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunction_Name_tags_1) - /sizeof(asn_DEF_RANfunction_Name_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunction_Name_1, - 4, /* Elements count */ - &asn_SPC_RANfunction_Name_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunction-Name.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunction-Name.h deleted file mode 100644 index 0fe182b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunction-Name.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RANfunction_Name_H_ -#define _RANfunction_Name_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunction-Name */ -typedef struct RANfunction_Name { - PrintableString_t ranFunction_ShortName; - PrintableString_t ranFunction_E2SM_OID; - PrintableString_t ranFunction_Description; - long *ranFunction_Instance; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunction_Name_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunction_Name; -extern asn_SEQUENCE_specifics_t asn_SPC_RANfunction_Name_specs_1; -extern asn_TYPE_member_t asn_MBR_RANfunction_Name_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunction_Name_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionDefinition.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionDefinition.c deleted file mode 100644 index 14eaaec..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionDefinition.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RANfunctionDefinition.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RANfunctionDefinition_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionDefinition = { - "RANfunctionDefinition", - "RANfunctionDefinition", - &asn_OP_OCTET_STRING, - asn_DEF_RANfunctionDefinition_tags_1, - sizeof(asn_DEF_RANfunctionDefinition_tags_1) - /sizeof(asn_DEF_RANfunctionDefinition_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionDefinition_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionDefinition_tags_1) - /sizeof(asn_DEF_RANfunctionDefinition_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionDefinition.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionDefinition.h deleted file mode 100644 index c78ff90..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionDefinition.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RANfunctionDefinition_H_ -#define _RANfunctionDefinition_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionDefinition */ -typedef OCTET_STRING_t RANfunctionDefinition_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionDefinition; -asn_struct_free_f RANfunctionDefinition_free; -asn_struct_print_f RANfunctionDefinition_print; -asn_constr_check_f RANfunctionDefinition_constraint; -ber_type_decoder_f RANfunctionDefinition_decode_ber; -der_type_encoder_f RANfunctionDefinition_encode_der; -xer_type_decoder_f RANfunctionDefinition_decode_xer; -xer_type_encoder_f RANfunctionDefinition_encode_xer; -oer_type_decoder_f RANfunctionDefinition_decode_oer; -oer_type_encoder_f RANfunctionDefinition_encode_oer; -per_type_decoder_f RANfunctionDefinition_decode_uper; -per_type_encoder_f RANfunctionDefinition_encode_uper; -per_type_decoder_f RANfunctionDefinition_decode_aper; -per_type_encoder_f RANfunctionDefinition_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionDefinition_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionID-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionID-Item.c deleted file mode 100644 index 563e65b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionID-Item.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RANfunctionID-Item.h" - -static asn_TYPE_member_t asn_MBR_RANfunctionID_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_Item, ranFunctionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 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 RANfunctionID_Item, ranFunctionRevision), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunctionRevision, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunctionRevision" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionID_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunctionID_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunctionID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ranFunctionRevision */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_Item_specs_1 = { - sizeof(struct RANfunctionID_Item), - offsetof(struct RANfunctionID_Item, _asn_ctx), - asn_MAP_RANfunctionID_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_RANfunctionID_Item = { - "RANfunctionID-Item", - "RANfunctionID-Item", - &asn_OP_SEQUENCE, - asn_DEF_RANfunctionID_Item_tags_1, - sizeof(asn_DEF_RANfunctionID_Item_tags_1) - /sizeof(asn_DEF_RANfunctionID_Item_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionID_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionID_Item_tags_1) - /sizeof(asn_DEF_RANfunctionID_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionID_Item_1, - 2, /* Elements count */ - &asn_SPC_RANfunctionID_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionID-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionID-Item.h deleted file mode 100644 index fc30438..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionID-Item.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RANfunctionID_Item_H_ -#define _RANfunctionID_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RANfunctionID.h" -#include "RANfunctionRevision.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionID-Item */ -typedef struct RANfunctionID_Item { - RANfunctionID_t ranFunctionID; - RANfunctionRevision_t ranFunctionRevision; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionID_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionID_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionID.c deleted file mode 100644 index d835872..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionID.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RANfunctionID.h" - -int -RANfunctionID_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 <= 4095)) { - /* 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_RANfunctionID_constr_1 CC_NOTUSED = { - { 2, 1 } /* (0..4095) */, - -1}; -asn_per_constraints_t asn_PER_type_RANfunctionID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionID = { - "RANfunctionID", - "RANfunctionID", - &asn_OP_NativeInteger, - asn_DEF_RANfunctionID_tags_1, - sizeof(asn_DEF_RANfunctionID_tags_1) - /sizeof(asn_DEF_RANfunctionID_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionID_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionID_tags_1) - /sizeof(asn_DEF_RANfunctionID_tags_1[0]), /* 1 */ - { &asn_OER_type_RANfunctionID_constr_1, &asn_PER_type_RANfunctionID_constr_1, RANfunctionID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionID.h deleted file mode 100644 index a44c4b4..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionID.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RANfunctionID_H_ -#define _RANfunctionID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionID */ -typedef long RANfunctionID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RANfunctionID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID; -asn_struct_free_f RANfunctionID_free; -asn_struct_print_f RANfunctionID_print; -asn_constr_check_f RANfunctionID_constraint; -ber_type_decoder_f RANfunctionID_decode_ber; -der_type_encoder_f RANfunctionID_encode_der; -xer_type_decoder_f RANfunctionID_decode_xer; -xer_type_encoder_f RANfunctionID_encode_xer; -oer_type_decoder_f RANfunctionID_decode_oer; -oer_type_encoder_f RANfunctionID_encode_oer; -per_type_decoder_f RANfunctionID_decode_uper; -per_type_encoder_f RANfunctionID_encode_uper; -per_type_decoder_f RANfunctionID_decode_aper; -per_type_encoder_f RANfunctionID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionIDcause-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionIDcause-Item.c deleted file mode 100644 index 99f2b58..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionIDcause-Item.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RANfunctionIDcause-Item.h" - -static asn_TYPE_member_t asn_MBR_RANfunctionIDcause_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_Item, ranFunctionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 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 RANfunctionIDcause_Item, cause), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cause" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionIDcause_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunctionIDcause_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunctionID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cause */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_Item_specs_1 = { - sizeof(struct RANfunctionIDcause_Item), - offsetof(struct RANfunctionIDcause_Item, _asn_ctx), - asn_MAP_RANfunctionIDcause_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_RANfunctionIDcause_Item = { - "RANfunctionIDcause-Item", - "RANfunctionIDcause-Item", - &asn_OP_SEQUENCE, - asn_DEF_RANfunctionIDcause_Item_tags_1, - sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1) - /sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionIDcause_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1) - /sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionIDcause_Item_1, - 2, /* Elements count */ - &asn_SPC_RANfunctionIDcause_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionIDcause-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionIDcause-Item.h deleted file mode 100644 index 91621cf..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionIDcause-Item.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RANfunctionIDcause_Item_H_ -#define _RANfunctionIDcause_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RANfunctionID.h" -#include "Cause.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionIDcause-Item */ -typedef struct RANfunctionIDcause_Item { - RANfunctionID_t ranFunctionID; - Cause_t cause; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionIDcause_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionIDcause_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionOID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionOID.c deleted file mode 100644 index 11bfe86..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionOID.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionOID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionOID.h deleted file mode 100644 index 84085ab..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionOID.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RANfunctionOID_H_ -#define _RANfunctionOID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PrintableString.h" - -#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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionRevision.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionRevision.c deleted file mode 100644 index 940862b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionRevision.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RANfunctionRevision.h" - -int -RANfunctionRevision_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 <= 4095)) { - /* 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_RANfunctionRevision_constr_1 CC_NOTUSED = { - { 2, 1 } /* (0..4095) */, - -1}; -asn_per_constraints_t asn_PER_type_RANfunctionRevision_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionRevision_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionRevision = { - "RANfunctionRevision", - "RANfunctionRevision", - &asn_OP_NativeInteger, - asn_DEF_RANfunctionRevision_tags_1, - sizeof(asn_DEF_RANfunctionRevision_tags_1) - /sizeof(asn_DEF_RANfunctionRevision_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionRevision_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionRevision_tags_1) - /sizeof(asn_DEF_RANfunctionRevision_tags_1[0]), /* 1 */ - { &asn_OER_type_RANfunctionRevision_constr_1, &asn_PER_type_RANfunctionRevision_constr_1, RANfunctionRevision_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionRevision.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionRevision.h deleted file mode 100644 index 3190cdc..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionRevision.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RANfunctionRevision_H_ -#define _RANfunctionRevision_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionRevision */ -typedef long RANfunctionRevision_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RANfunctionRevision_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionRevision; -asn_struct_free_f RANfunctionRevision_free; -asn_struct_print_f RANfunctionRevision_print; -asn_constr_check_f RANfunctionRevision_constraint; -ber_type_decoder_f RANfunctionRevision_decode_ber; -der_type_encoder_f RANfunctionRevision_encode_der; -xer_type_decoder_f RANfunctionRevision_decode_xer; -xer_type_encoder_f RANfunctionRevision_encode_xer; -oer_type_decoder_f RANfunctionRevision_decode_oer; -oer_type_encoder_f RANfunctionRevision_encode_oer; -per_type_decoder_f RANfunctionRevision_decode_uper; -per_type_encoder_f RANfunctionRevision_encode_uper; -per_type_decoder_f RANfunctionRevision_decode_aper; -per_type_encoder_f RANfunctionRevision_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionRevision_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctions-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctions-List.c deleted file mode 100644 index 3b1d0af..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctions-List.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RANfunctions-List.h" - -#include "ProtocolIE-SingleContainer.h" -static asn_oer_constraints_t asn_OER_type_RANfunctions_List_constr_1 CC_NOTUSED = { - { 0, 0 }, - -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, 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_SingleContainer_1920P14, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctions_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RANfunctions_List_specs_1 = { - sizeof(struct RANfunctions_List), - offsetof(struct RANfunctions_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctions_List = { - "RANfunctions-List", - "RANfunctions-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RANfunctions_List_tags_1, - sizeof(asn_DEF_RANfunctions_List_tags_1) - /sizeof(asn_DEF_RANfunctions_List_tags_1[0]), /* 1 */ - asn_DEF_RANfunctions_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctions_List_tags_1) - /sizeof(asn_DEF_RANfunctions_List_tags_1[0]), /* 1 */ - { &asn_OER_type_RANfunctions_List_constr_1, &asn_PER_type_RANfunctions_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RANfunctions_List_1, - 1, /* Single element */ - &asn_SPC_RANfunctions_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctions-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctions-List.h deleted file mode 100644 index 9cf4ac4..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctions-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RANfunctions_List_H_ -#define _RANfunctions_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RANfunctions-List */ -typedef struct RANfunctions_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctions_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctions_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctions_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionsID-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionsID-List.c deleted file mode 100644 index 0eb7988..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionsID-List.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RANfunctionsID-List.h" - -#include "ProtocolIE-SingleContainer.h" -static asn_oer_constraints_t asn_OER_type_RANfunctionsID_List_constr_1 CC_NOTUSED = { - { 0, 0 }, - -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, 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_SingleContainer_1920P15, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionsID_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RANfunctionsID_List_specs_1 = { - sizeof(struct RANfunctionsID_List), - offsetof(struct RANfunctionsID_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionsID_List = { - "RANfunctionsID-List", - "RANfunctionsID-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RANfunctionsID_List_tags_1, - sizeof(asn_DEF_RANfunctionsID_List_tags_1) - /sizeof(asn_DEF_RANfunctionsID_List_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionsID_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionsID_List_tags_1) - /sizeof(asn_DEF_RANfunctionsID_List_tags_1[0]), /* 1 */ - { &asn_OER_type_RANfunctionsID_List_constr_1, &asn_PER_type_RANfunctionsID_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RANfunctionsID_List_1, - 1, /* Single element */ - &asn_SPC_RANfunctionsID_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionsID-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionsID-List.h deleted file mode 100644 index ad5722a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionsID-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RANfunctionsID_List_H_ -#define _RANfunctionsID_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RANfunctionsID-List */ -typedef struct RANfunctionsID_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionsID_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionsID_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionsID_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionsIDcause-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionsIDcause-List.c deleted file mode 100644 index f557347..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionsIDcause-List.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RANfunctionsIDcause-List.h" - -#include "ProtocolIE-SingleContainer.h" -static asn_oer_constraints_t asn_OER_type_RANfunctionsIDcause_List_constr_1 CC_NOTUSED = { - { 0, 0 }, - -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, 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_SingleContainer_1920P16, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionsIDcause_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RANfunctionsIDcause_List_specs_1 = { - sizeof(struct RANfunctionsIDcause_List), - offsetof(struct RANfunctionsIDcause_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionsIDcause_List = { - "RANfunctionsIDcause-List", - "RANfunctionsIDcause-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RANfunctionsIDcause_List_tags_1, - sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1) - /sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionsIDcause_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1) - /sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1[0]), /* 1 */ - { &asn_OER_type_RANfunctionsIDcause_List_constr_1, &asn_PER_type_RANfunctionsIDcause_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RANfunctionsIDcause_List_1, - 1, /* Single element */ - &asn_SPC_RANfunctionsIDcause_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionsIDcause-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionsIDcause-List.h deleted file mode 100644 index 6d8de97..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionsIDcause-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RANfunctionsIDcause_List_H_ -#define _RANfunctionsIDcause_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RANfunctionsIDcause-List */ -typedef struct RANfunctionsIDcause_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionsIDcause_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionsIDcause_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionsIDcause_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RIC-EventTriggerStyle-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RIC-EventTriggerStyle-List.c deleted file mode 100644 index 246322a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RIC-EventTriggerStyle-List.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RIC-EventTriggerStyle-List.h" - -asn_TYPE_member_t asn_MBR_RIC_EventTriggerStyle_List_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RIC_EventTriggerStyle_List, ric_EventTriggerStyle_Type), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Style_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-EventTriggerStyle-Type" - }, - { ATF_NOFLAGS, 0, offsetof(struct RIC_EventTriggerStyle_List, ric_EventTriggerStyle_Name), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Style_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-EventTriggerStyle-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct RIC_EventTriggerStyle_List, ric_EventTriggerFormat_Type), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Format_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-EventTriggerFormat-Type" - }, -}; -static const ber_tlv_tag_t asn_DEF_RIC_EventTriggerStyle_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RIC_EventTriggerStyle_List_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-EventTriggerStyle-Type */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ric-EventTriggerStyle-Name */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ric-EventTriggerFormat-Type */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RIC_EventTriggerStyle_List_specs_1 = { - sizeof(struct RIC_EventTriggerStyle_List), - offsetof(struct RIC_EventTriggerStyle_List, _asn_ctx), - asn_MAP_RIC_EventTriggerStyle_List_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_RIC_EventTriggerStyle_List = { - "RIC-EventTriggerStyle-List", - "RIC-EventTriggerStyle-List", - &asn_OP_SEQUENCE, - asn_DEF_RIC_EventTriggerStyle_List_tags_1, - sizeof(asn_DEF_RIC_EventTriggerStyle_List_tags_1) - /sizeof(asn_DEF_RIC_EventTriggerStyle_List_tags_1[0]), /* 1 */ - asn_DEF_RIC_EventTriggerStyle_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RIC_EventTriggerStyle_List_tags_1) - /sizeof(asn_DEF_RIC_EventTriggerStyle_List_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RIC_EventTriggerStyle_List_1, - 3, /* Elements count */ - &asn_SPC_RIC_EventTriggerStyle_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RIC-EventTriggerStyle-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RIC-EventTriggerStyle-List.h deleted file mode 100644 index 18a6a8a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RIC-EventTriggerStyle-List.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RIC_EventTriggerStyle_List_H_ -#define _RIC_EventTriggerStyle_List_H_ - - -#include - -/* Including external dependencies */ -#include "RIC-Style-Type.h" -#include "RIC-Style-Name.h" -#include "RIC-Format-Type.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RIC-EventTriggerStyle-List */ -typedef struct RIC_EventTriggerStyle_List { - RIC_Style_Type_t ric_EventTriggerStyle_Type; - RIC_Style_Name_t ric_EventTriggerStyle_Name; - RIC_Format_Type_t ric_EventTriggerFormat_Type; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RIC_EventTriggerStyle_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RIC_EventTriggerStyle_List; -extern asn_SEQUENCE_specifics_t asn_SPC_RIC_EventTriggerStyle_List_specs_1; -extern asn_TYPE_member_t asn_MBR_RIC_EventTriggerStyle_List_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RIC_EventTriggerStyle_List_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RIC-Format-Type.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RIC-Format-Type.c deleted file mode 100644 index 53f0624..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RIC-Format-Type.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RIC-Format-Type.h" - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RIC_Format_Type_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RIC_Format_Type = { - "RIC-Format-Type", - "RIC-Format-Type", - &asn_OP_NativeInteger, - asn_DEF_RIC_Format_Type_tags_1, - sizeof(asn_DEF_RIC_Format_Type_tags_1) - /sizeof(asn_DEF_RIC_Format_Type_tags_1[0]), /* 1 */ - asn_DEF_RIC_Format_Type_tags_1, /* Same as above */ - sizeof(asn_DEF_RIC_Format_Type_tags_1) - /sizeof(asn_DEF_RIC_Format_Type_tags_1[0]), /* 1 */ - { 0, 0, NativeInteger_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RIC-Format-Type.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RIC-Format-Type.h deleted file mode 100644 index 81cec85..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RIC-Format-Type.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RIC_Format_Type_H_ -#define _RIC_Format_Type_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RIC-Format-Type */ -typedef long RIC_Format_Type_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RIC_Format_Type; -asn_struct_free_f RIC_Format_Type_free; -asn_struct_print_f RIC_Format_Type_print; -asn_constr_check_f RIC_Format_Type_constraint; -ber_type_decoder_f RIC_Format_Type_decode_ber; -der_type_encoder_f RIC_Format_Type_encode_der; -xer_type_decoder_f RIC_Format_Type_decode_xer; -xer_type_encoder_f RIC_Format_Type_encode_xer; -oer_type_decoder_f RIC_Format_Type_decode_oer; -oer_type_encoder_f RIC_Format_Type_encode_oer; -per_type_decoder_f RIC_Format_Type_decode_uper; -per_type_encoder_f RIC_Format_Type_encode_uper; -per_type_decoder_f RIC_Format_Type_decode_aper; -per_type_encoder_f RIC_Format_Type_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RIC_Format_Type_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RIC-ReportStyle-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RIC-ReportStyle-List.c deleted file mode 100644 index 93d4a15..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RIC-ReportStyle-List.c +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RIC-ReportStyle-List.h" - -asn_TYPE_member_t asn_MBR_RIC_ReportStyle_List_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RIC_ReportStyle_List, ric_ReportStyle_Type), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Style_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-ReportStyle-Type" - }, - { ATF_NOFLAGS, 0, offsetof(struct RIC_ReportStyle_List, ric_ReportStyle_Name), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Style_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-ReportStyle-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct RIC_ReportStyle_List, ric_IndicationHeaderFormat_Type), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Format_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-IndicationHeaderFormat-Type" - }, - { ATF_NOFLAGS, 0, offsetof(struct RIC_ReportStyle_List, ric_IndicationMessageFormat_Type), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Format_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-IndicationMessageFormat-Type" - }, -}; -static const ber_tlv_tag_t asn_DEF_RIC_ReportStyle_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RIC_ReportStyle_List_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-ReportStyle-Type */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ric-ReportStyle-Name */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ric-IndicationHeaderFormat-Type */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ric-IndicationMessageFormat-Type */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RIC_ReportStyle_List_specs_1 = { - sizeof(struct RIC_ReportStyle_List), - offsetof(struct RIC_ReportStyle_List, _asn_ctx), - asn_MAP_RIC_ReportStyle_List_tag2el_1, - 4, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RIC_ReportStyle_List = { - "RIC-ReportStyle-List", - "RIC-ReportStyle-List", - &asn_OP_SEQUENCE, - asn_DEF_RIC_ReportStyle_List_tags_1, - sizeof(asn_DEF_RIC_ReportStyle_List_tags_1) - /sizeof(asn_DEF_RIC_ReportStyle_List_tags_1[0]), /* 1 */ - asn_DEF_RIC_ReportStyle_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RIC_ReportStyle_List_tags_1) - /sizeof(asn_DEF_RIC_ReportStyle_List_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RIC_ReportStyle_List_1, - 4, /* Elements count */ - &asn_SPC_RIC_ReportStyle_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RIC-ReportStyle-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RIC-ReportStyle-List.h deleted file mode 100644 index af886aa..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RIC-ReportStyle-List.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RIC_ReportStyle_List_H_ -#define _RIC_ReportStyle_List_H_ - - -#include - -/* Including external dependencies */ -#include "RIC-Style-Type.h" -#include "RIC-Style-Name.h" -#include "RIC-Format-Type.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RIC-ReportStyle-List */ -typedef struct RIC_ReportStyle_List { - RIC_Style_Type_t ric_ReportStyle_Type; - RIC_Style_Name_t ric_ReportStyle_Name; - RIC_Format_Type_t ric_IndicationHeaderFormat_Type; - RIC_Format_Type_t ric_IndicationMessageFormat_Type; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RIC_ReportStyle_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RIC_ReportStyle_List; -extern asn_SEQUENCE_specifics_t asn_SPC_RIC_ReportStyle_List_specs_1; -extern asn_TYPE_member_t asn_MBR_RIC_ReportStyle_List_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RIC_ReportStyle_List_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RIC-Style-Name.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RIC-Style-Name.c deleted file mode 100644 index 2c4a054..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RIC-Style-Name.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RIC-Style-Name.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 -RIC_Style_Name_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_RIC_Style_Name_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_RIC_Style_Name_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_RIC_Style_Name_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -asn_per_constraints_t asn_PER_type_RIC_Style_Name_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_RIC_Style_Name_1_v2c, /* Value to PER code map */ - asn_PER_MAP_RIC_Style_Name_1_c2v /* PER code to value map */ -}; -static const ber_tlv_tag_t asn_DEF_RIC_Style_Name_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RIC_Style_Name = { - "RIC-Style-Name", - "RIC-Style-Name", - &asn_OP_PrintableString, - asn_DEF_RIC_Style_Name_tags_1, - sizeof(asn_DEF_RIC_Style_Name_tags_1) - /sizeof(asn_DEF_RIC_Style_Name_tags_1[0]), /* 1 */ - asn_DEF_RIC_Style_Name_tags_1, /* Same as above */ - sizeof(asn_DEF_RIC_Style_Name_tags_1) - /sizeof(asn_DEF_RIC_Style_Name_tags_1[0]), /* 1 */ - { &asn_OER_type_RIC_Style_Name_constr_1, &asn_PER_type_RIC_Style_Name_constr_1, RIC_Style_Name_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RIC-Style-Name.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RIC-Style-Name.h deleted file mode 100644 index bb02b2c..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RIC-Style-Name.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RIC_Style_Name_H_ -#define _RIC_Style_Name_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RIC-Style-Name */ -typedef PrintableString_t RIC_Style_Name_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RIC_Style_Name_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RIC_Style_Name; -asn_struct_free_f RIC_Style_Name_free; -asn_struct_print_f RIC_Style_Name_print; -asn_constr_check_f RIC_Style_Name_constraint; -ber_type_decoder_f RIC_Style_Name_decode_ber; -der_type_encoder_f RIC_Style_Name_encode_der; -xer_type_decoder_f RIC_Style_Name_decode_xer; -xer_type_encoder_f RIC_Style_Name_encode_xer; -oer_type_decoder_f RIC_Style_Name_decode_oer; -oer_type_encoder_f RIC_Style_Name_encode_oer; -per_type_decoder_f RIC_Style_Name_decode_uper; -per_type_encoder_f RIC_Style_Name_encode_uper; -per_type_decoder_f RIC_Style_Name_decode_aper; -per_type_encoder_f RIC_Style_Name_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RIC_Style_Name_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RIC-Style-Type.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RIC-Style-Type.c deleted file mode 100644 index 5324c4a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RIC-Style-Type.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RIC-Style-Type.h" - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RIC_Style_Type_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RIC_Style_Type = { - "RIC-Style-Type", - "RIC-Style-Type", - &asn_OP_NativeInteger, - asn_DEF_RIC_Style_Type_tags_1, - sizeof(asn_DEF_RIC_Style_Type_tags_1) - /sizeof(asn_DEF_RIC_Style_Type_tags_1[0]), /* 1 */ - asn_DEF_RIC_Style_Type_tags_1, /* Same as above */ - sizeof(asn_DEF_RIC_Style_Type_tags_1) - /sizeof(asn_DEF_RIC_Style_Type_tags_1[0]), /* 1 */ - { 0, 0, NativeInteger_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RIC-Style-Type.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RIC-Style-Type.h deleted file mode 100644 index 9948bb0..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RIC-Style-Type.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RIC_Style_Type_H_ -#define _RIC_Style_Type_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RIC-Style-Type */ -typedef long RIC_Style_Type_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RIC_Style_Type; -asn_struct_free_f RIC_Style_Type_free; -asn_struct_print_f RIC_Style_Type_print; -asn_constr_check_f RIC_Style_Type_constraint; -ber_type_decoder_f RIC_Style_Type_decode_ber; -der_type_encoder_f RIC_Style_Type_encode_der; -xer_type_decoder_f RIC_Style_Type_decode_xer; -xer_type_encoder_f RIC_Style_Type_encode_xer; -oer_type_decoder_f RIC_Style_Type_decode_oer; -oer_type_encoder_f RIC_Style_Type_encode_oer; -per_type_decoder_f RIC_Style_Type_decode_uper; -per_type_encoder_f RIC_Style_Type_encode_uper; -per_type_decoder_f RIC_Style_Type_decode_aper; -per_type_encoder_f RIC_Style_Type_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RIC_Style_Type_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-Admitted-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-Admitted-Item.c deleted file mode 100644 index bc952d3..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-Admitted-Item.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICaction-Admitted-Item.h" - -static asn_TYPE_member_t asn_MBR_RICaction_Admitted_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_Item, ricActionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionID" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_Admitted_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ricActionID */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_Item_specs_1 = { - sizeof(struct RICaction_Admitted_Item), - offsetof(struct RICaction_Admitted_Item, _asn_ctx), - asn_MAP_RICaction_Admitted_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_RICaction_Admitted_Item = { - "RICaction-Admitted-Item", - "RICaction-Admitted-Item", - &asn_OP_SEQUENCE, - asn_DEF_RICaction_Admitted_Item_tags_1, - sizeof(asn_DEF_RICaction_Admitted_Item_tags_1) - /sizeof(asn_DEF_RICaction_Admitted_Item_tags_1[0]), /* 1 */ - asn_DEF_RICaction_Admitted_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_Admitted_Item_tags_1) - /sizeof(asn_DEF_RICaction_Admitted_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_Admitted_Item_1, - 1, /* Elements count */ - &asn_SPC_RICaction_Admitted_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-Admitted-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-Admitted-Item.h deleted file mode 100644 index 1c7fce7..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-Admitted-Item.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICaction_Admitted_Item_H_ -#define _RICaction_Admitted_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICactionID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICaction-Admitted-Item */ -typedef struct RICaction_Admitted_Item { - RICactionID_t ricActionID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_Admitted_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_Admitted_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-Admitted-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-Admitted-List.c deleted file mode 100644 index 0028709..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-Admitted-List.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICaction-Admitted-List.h" - -#include "ProtocolIE-SingleContainer.h" -static asn_oer_constraints_t asn_OER_type_RICaction_Admitted_List_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..16)) */}; -static asn_per_constraints_t asn_PER_type_RICaction_Admitted_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, - 0, 0 /* No PER value map */ -}; -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_SingleContainer_1920P1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RICaction_Admitted_List_specs_1 = { - sizeof(struct RICaction_Admitted_List), - offsetof(struct RICaction_Admitted_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_List = { - "RICaction-Admitted-List", - "RICaction-Admitted-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RICaction_Admitted_List_tags_1, - sizeof(asn_DEF_RICaction_Admitted_List_tags_1) - /sizeof(asn_DEF_RICaction_Admitted_List_tags_1[0]), /* 1 */ - asn_DEF_RICaction_Admitted_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_Admitted_List_tags_1) - /sizeof(asn_DEF_RICaction_Admitted_List_tags_1[0]), /* 1 */ - { &asn_OER_type_RICaction_Admitted_List_constr_1, &asn_PER_type_RICaction_Admitted_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RICaction_Admitted_List_1, - 1, /* Single element */ - &asn_SPC_RICaction_Admitted_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-Admitted-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-Admitted-List.h deleted file mode 100644 index f10a2a0..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-Admitted-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICaction_Admitted_List_H_ -#define _RICaction_Admitted_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RICaction-Admitted-List */ -typedef struct RICaction_Admitted_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_Admitted_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_Admitted_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-NotAdmitted-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-NotAdmitted-Item.c deleted file mode 100644 index 57e5663..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-NotAdmitted-Item.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICaction-NotAdmitted-Item.h" - -static asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_Item, ricActionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_Item, cause), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cause" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_NotAdmitted_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_NotAdmitted_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricActionID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cause */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_Item_specs_1 = { - sizeof(struct RICaction_NotAdmitted_Item), - offsetof(struct RICaction_NotAdmitted_Item, _asn_ctx), - asn_MAP_RICaction_NotAdmitted_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_RICaction_NotAdmitted_Item = { - "RICaction-NotAdmitted-Item", - "RICaction-NotAdmitted-Item", - &asn_OP_SEQUENCE, - asn_DEF_RICaction_NotAdmitted_Item_tags_1, - sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1) - /sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1[0]), /* 1 */ - asn_DEF_RICaction_NotAdmitted_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1) - /sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_NotAdmitted_Item_1, - 2, /* Elements count */ - &asn_SPC_RICaction_NotAdmitted_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-NotAdmitted-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-NotAdmitted-Item.h deleted file mode 100644 index f0d09d0..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-NotAdmitted-Item.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICaction_NotAdmitted_Item_H_ -#define _RICaction_NotAdmitted_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICactionID.h" -#include "Cause.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICaction-NotAdmitted-Item */ -typedef struct RICaction_NotAdmitted_Item { - RICactionID_t ricActionID; - Cause_t cause; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_NotAdmitted_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_NotAdmitted_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-NotAdmitted-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-NotAdmitted-List.c deleted file mode 100644 index ce63307..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-NotAdmitted-List.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICaction-NotAdmitted-List.h" - -#include "ProtocolIE-SingleContainer.h" -static asn_oer_constraints_t asn_OER_type_RICaction_NotAdmitted_List_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..16)) */}; -static asn_per_constraints_t asn_PER_type_RICaction_NotAdmitted_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 5, 5, 0, 16 } /* (SIZE(0..16)) */, - 0, 0 /* No PER value map */ -}; -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_SingleContainer_1920P2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_NotAdmitted_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RICaction_NotAdmitted_List_specs_1 = { - sizeof(struct RICaction_NotAdmitted_List), - offsetof(struct RICaction_NotAdmitted_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_List = { - "RICaction-NotAdmitted-List", - "RICaction-NotAdmitted-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RICaction_NotAdmitted_List_tags_1, - sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1) - /sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1[0]), /* 1 */ - asn_DEF_RICaction_NotAdmitted_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1) - /sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1[0]), /* 1 */ - { &asn_OER_type_RICaction_NotAdmitted_List_constr_1, &asn_PER_type_RICaction_NotAdmitted_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RICaction_NotAdmitted_List_1, - 1, /* Single element */ - &asn_SPC_RICaction_NotAdmitted_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-NotAdmitted-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-NotAdmitted-List.h deleted file mode 100644 index 1ba455f..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-NotAdmitted-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICaction_NotAdmitted_List_H_ -#define _RICaction_NotAdmitted_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RICaction-NotAdmitted-List */ -typedef struct RICaction_NotAdmitted_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_NotAdmitted_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_NotAdmitted_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-ToBeSetup-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-ToBeSetup-Item.c deleted file mode 100644 index aac91ba..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-ToBeSetup-Item.c +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICaction-ToBeSetup-Item.h" - -#include "RICsubsequentAction.h" -static asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_Item, ricActionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_Item, ricActionType), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionType, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionType" - }, - { ATF_POINTER, 2, offsetof(struct RICaction_ToBeSetup_Item, ricActionDefinition), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionDefinition, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionDefinition" - }, - { ATF_POINTER, 1, offsetof(struct RICaction_ToBeSetup_Item, ricSubsequentAction), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICsubsequentAction, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricSubsequentAction" - }, -}; -static const int asn_MAP_RICaction_ToBeSetup_Item_oms_1[] = { 2, 3 }; -static const ber_tlv_tag_t asn_DEF_RICaction_ToBeSetup_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_ToBeSetup_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricActionID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricActionType */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ricActionDefinition */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ricSubsequentAction */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_Item_specs_1 = { - sizeof(struct RICaction_ToBeSetup_Item), - offsetof(struct RICaction_ToBeSetup_Item, _asn_ctx), - asn_MAP_RICaction_ToBeSetup_Item_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_RICaction_ToBeSetup_Item_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_Item = { - "RICaction-ToBeSetup-Item", - "RICaction-ToBeSetup-Item", - &asn_OP_SEQUENCE, - asn_DEF_RICaction_ToBeSetup_Item_tags_1, - sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1) - /sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1[0]), /* 1 */ - asn_DEF_RICaction_ToBeSetup_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1) - /sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_ToBeSetup_Item_1, - 4, /* Elements count */ - &asn_SPC_RICaction_ToBeSetup_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-ToBeSetup-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-ToBeSetup-Item.h deleted file mode 100644 index 767749c..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-ToBeSetup-Item.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICaction_ToBeSetup_Item_H_ -#define _RICaction_ToBeSetup_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICactionID.h" -#include "RICactionType.h" -#include "RICactionDefinition.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct RICsubsequentAction; - -/* RICaction-ToBeSetup-Item */ -typedef struct RICaction_ToBeSetup_Item { - RICactionID_t ricActionID; - RICactionType_t ricActionType; - RICactionDefinition_t *ricActionDefinition; /* OPTIONAL */ - struct RICsubsequentAction *ricSubsequentAction; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_ToBeSetup_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_ToBeSetup_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionDefinition.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionDefinition.c deleted file mode 100644 index 2d15df4..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionDefinition.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICactionDefinition.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICactionDefinition_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICactionDefinition = { - "RICactionDefinition", - "RICactionDefinition", - &asn_OP_OCTET_STRING, - asn_DEF_RICactionDefinition_tags_1, - sizeof(asn_DEF_RICactionDefinition_tags_1) - /sizeof(asn_DEF_RICactionDefinition_tags_1[0]), /* 1 */ - asn_DEF_RICactionDefinition_tags_1, /* Same as above */ - sizeof(asn_DEF_RICactionDefinition_tags_1) - /sizeof(asn_DEF_RICactionDefinition_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionDefinition.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionDefinition.h deleted file mode 100644 index 3d553ba..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionDefinition.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICactionDefinition_H_ -#define _RICactionDefinition_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICactionDefinition */ -typedef OCTET_STRING_t RICactionDefinition_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICactionDefinition; -asn_struct_free_f RICactionDefinition_free; -asn_struct_print_f RICactionDefinition_print; -asn_constr_check_f RICactionDefinition_constraint; -ber_type_decoder_f RICactionDefinition_decode_ber; -der_type_encoder_f RICactionDefinition_encode_der; -xer_type_decoder_f RICactionDefinition_decode_xer; -xer_type_encoder_f RICactionDefinition_encode_xer; -oer_type_decoder_f RICactionDefinition_decode_oer; -oer_type_encoder_f RICactionDefinition_encode_oer; -per_type_decoder_f RICactionDefinition_decode_uper; -per_type_encoder_f RICactionDefinition_encode_uper; -per_type_decoder_f RICactionDefinition_decode_aper; -per_type_encoder_f RICactionDefinition_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICactionDefinition_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionID.c deleted file mode 100644 index abe442a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionID.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICactionID.h" - -int -RICactionID_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_RICactionID_constr_1 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -asn_per_constraints_t asn_PER_type_RICactionID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 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_RICactionID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICactionID = { - "RICactionID", - "RICactionID", - &asn_OP_NativeInteger, - asn_DEF_RICactionID_tags_1, - sizeof(asn_DEF_RICactionID_tags_1) - /sizeof(asn_DEF_RICactionID_tags_1[0]), /* 1 */ - asn_DEF_RICactionID_tags_1, /* Same as above */ - sizeof(asn_DEF_RICactionID_tags_1) - /sizeof(asn_DEF_RICactionID_tags_1[0]), /* 1 */ - { &asn_OER_type_RICactionID_constr_1, &asn_PER_type_RICactionID_constr_1, RICactionID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionID.h deleted file mode 100644 index 4c255b7..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionID.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICactionID_H_ -#define _RICactionID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICactionID */ -typedef long RICactionID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICactionID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RICactionID; -asn_struct_free_f RICactionID_free; -asn_struct_print_f RICactionID_print; -asn_constr_check_f RICactionID_constraint; -ber_type_decoder_f RICactionID_decode_ber; -der_type_encoder_f RICactionID_encode_der; -xer_type_decoder_f RICactionID_decode_xer; -xer_type_encoder_f RICactionID_encode_xer; -oer_type_decoder_f RICactionID_decode_oer; -oer_type_encoder_f RICactionID_encode_oer; -per_type_decoder_f RICactionID_decode_uper; -per_type_encoder_f RICactionID_encode_uper; -per_type_decoder_f RICactionID_decode_aper; -per_type_encoder_f RICactionID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICactionID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionType.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionType.c deleted file mode 100644 index 133ac04..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionType.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICactionType.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_RICactionType_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_RICactionType_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_RICactionType_value2enum_1[] = { - { 0, 6, "report" }, - { 1, 6, "insert" }, - { 2, 6, "policy" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICactionType_enum2value_1[] = { - 1, /* insert(1) */ - 2, /* policy(2) */ - 0 /* report(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_RICactionType_specs_1 = { - asn_MAP_RICactionType_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICactionType_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_RICactionType_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICactionType = { - "RICactionType", - "RICactionType", - &asn_OP_NativeEnumerated, - asn_DEF_RICactionType_tags_1, - sizeof(asn_DEF_RICactionType_tags_1) - /sizeof(asn_DEF_RICactionType_tags_1[0]), /* 1 */ - asn_DEF_RICactionType_tags_1, /* Same as above */ - sizeof(asn_DEF_RICactionType_tags_1) - /sizeof(asn_DEF_RICactionType_tags_1[0]), /* 1 */ - { &asn_OER_type_RICactionType_constr_1, &asn_PER_type_RICactionType_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICactionType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionType.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionType.h deleted file mode 100644 index 8b3e10e..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionType.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICactionType_H_ -#define _RICactionType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICactionType { - RICactionType_report = 0, - RICactionType_insert = 1, - RICactionType_policy = 2 - /* - * Enumeration is extensible - */ -} e_RICactionType; - -/* RICactionType */ -typedef long RICactionType_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICactionType_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RICactionType; -extern const asn_INTEGER_specifics_t asn_SPC_RICactionType_specs_1; -asn_struct_free_f RICactionType_free; -asn_struct_print_f RICactionType_print; -asn_constr_check_f RICactionType_constraint; -ber_type_decoder_f RICactionType_decode_ber; -der_type_encoder_f RICactionType_encode_der; -xer_type_decoder_f RICactionType_decode_xer; -xer_type_encoder_f RICactionType_encode_xer; -oer_type_decoder_f RICactionType_decode_oer; -oer_type_encoder_f RICactionType_encode_oer; -per_type_decoder_f RICactionType_decode_uper; -per_type_encoder_f RICactionType_encode_uper; -per_type_decoder_f RICactionType_decode_aper; -per_type_encoder_f RICactionType_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICactionType_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactions-ToBeSetup-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactions-ToBeSetup-List.c deleted file mode 100644 index 0236112..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactions-ToBeSetup-List.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICactions-ToBeSetup-List.h" - -#include "ProtocolIE-SingleContainer.h" -static asn_oer_constraints_t asn_OER_type_RICactions_ToBeSetup_List_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..16)) */}; -asn_per_constraints_t asn_PER_type_RICactions_ToBeSetup_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_RICactions_ToBeSetup_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_SingleContainer_1920P0, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICactions_ToBeSetup_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_RICactions_ToBeSetup_List_specs_1 = { - sizeof(struct RICactions_ToBeSetup_List), - offsetof(struct RICactions_ToBeSetup_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RICactions_ToBeSetup_List = { - "RICactions-ToBeSetup-List", - "RICactions-ToBeSetup-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RICactions_ToBeSetup_List_tags_1, - sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1) - /sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1[0]), /* 1 */ - asn_DEF_RICactions_ToBeSetup_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1) - /sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1[0]), /* 1 */ - { &asn_OER_type_RICactions_ToBeSetup_List_constr_1, &asn_PER_type_RICactions_ToBeSetup_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RICactions_ToBeSetup_List_1, - 1, /* Single element */ - &asn_SPC_RICactions_ToBeSetup_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactions-ToBeSetup-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactions-ToBeSetup-List.h deleted file mode 100644 index 95834cf..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactions-ToBeSetup-List.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICactions_ToBeSetup_List_H_ -#define _RICactions_ToBeSetup_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RICactions-ToBeSetup-List */ -typedef struct RICactions_ToBeSetup_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICactions_ToBeSetup_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICactions_ToBeSetup_List; -extern asn_SET_OF_specifics_t asn_SPC_RICactions_ToBeSetup_List_specs_1; -extern asn_TYPE_member_t asn_MBR_RICactions_ToBeSetup_List_1[1]; -extern asn_per_constraints_t asn_PER_type_RICactions_ToBeSetup_List_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICactions_ToBeSetup_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcallProcessID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcallProcessID.c deleted file mode 100644 index 10c2fd4..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcallProcessID.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICcallProcessID.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICcallProcessID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcallProcessID = { - "RICcallProcessID", - "RICcallProcessID", - &asn_OP_OCTET_STRING, - asn_DEF_RICcallProcessID_tags_1, - sizeof(asn_DEF_RICcallProcessID_tags_1) - /sizeof(asn_DEF_RICcallProcessID_tags_1[0]), /* 1 */ - asn_DEF_RICcallProcessID_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcallProcessID_tags_1) - /sizeof(asn_DEF_RICcallProcessID_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcallProcessID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcallProcessID.h deleted file mode 100644 index 0ba6bdb..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcallProcessID.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICcallProcessID_H_ -#define _RICcallProcessID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcallProcessID */ -typedef OCTET_STRING_t RICcallProcessID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcallProcessID; -asn_struct_free_f RICcallProcessID_free; -asn_struct_print_f RICcallProcessID_print; -asn_constr_check_f RICcallProcessID_constraint; -ber_type_decoder_f RICcallProcessID_decode_ber; -der_type_encoder_f RICcallProcessID_encode_der; -xer_type_decoder_f RICcallProcessID_decode_xer; -xer_type_encoder_f RICcallProcessID_encode_xer; -oer_type_decoder_f RICcallProcessID_decode_oer; -oer_type_encoder_f RICcallProcessID_encode_oer; -per_type_decoder_f RICcallProcessID_decode_uper; -per_type_encoder_f RICcallProcessID_encode_uper; -per_type_decoder_f RICcallProcessID_decode_aper; -per_type_encoder_f RICcallProcessID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcallProcessID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolAckRequest.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolAckRequest.c deleted file mode 100644 index 417dc30..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolAckRequest.c +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICcontrolAckRequest.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_RICcontrolAckRequest_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_RICcontrolAckRequest_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 */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICcontrolAckRequest_value2enum_1[] = { - { 0, 5, "noAck" }, - { 1, 3, "ack" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICcontrolAckRequest_enum2value_1[] = { - 1, /* ack(1) */ - 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 */ - 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_RICcontrolAckRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolAckRequest = { - "RICcontrolAckRequest", - "RICcontrolAckRequest", - &asn_OP_NativeEnumerated, - asn_DEF_RICcontrolAckRequest_tags_1, - sizeof(asn_DEF_RICcontrolAckRequest_tags_1) - /sizeof(asn_DEF_RICcontrolAckRequest_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolAckRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolAckRequest_tags_1) - /sizeof(asn_DEF_RICcontrolAckRequest_tags_1[0]), /* 1 */ - { &asn_OER_type_RICcontrolAckRequest_constr_1, &asn_PER_type_RICcontrolAckRequest_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICcontrolAckRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolAckRequest.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolAckRequest.h deleted file mode 100644 index 4fb713a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolAckRequest.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICcontrolAckRequest_H_ -#define _RICcontrolAckRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICcontrolAckRequest { - RICcontrolAckRequest_noAck = 0, - RICcontrolAckRequest_ack = 1 - /* - * Enumeration is extensible - */ -} e_RICcontrolAckRequest; - -/* RICcontrolAckRequest */ -typedef long RICcontrolAckRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAckRequest; -asn_struct_free_f RICcontrolAckRequest_free; -asn_struct_print_f RICcontrolAckRequest_print; -asn_constr_check_f RICcontrolAckRequest_constraint; -ber_type_decoder_f RICcontrolAckRequest_decode_ber; -der_type_encoder_f RICcontrolAckRequest_encode_der; -xer_type_decoder_f RICcontrolAckRequest_decode_xer; -xer_type_encoder_f RICcontrolAckRequest_encode_xer; -oer_type_decoder_f RICcontrolAckRequest_decode_oer; -oer_type_encoder_f RICcontrolAckRequest_encode_oer; -per_type_decoder_f RICcontrolAckRequest_decode_uper; -per_type_encoder_f RICcontrolAckRequest_encode_uper; -per_type_decoder_f RICcontrolAckRequest_decode_aper; -per_type_encoder_f RICcontrolAckRequest_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolAckRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolAcknowledge.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolAcknowledge.c deleted file mode 100644 index bc16991..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolAcknowledge.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICcontrolAcknowledge.h" - -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_Container_1917P9, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolAcknowledge_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolAcknowledge_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_specs_1 = { - sizeof(struct RICcontrolAcknowledge), - offsetof(struct RICcontrolAcknowledge, _asn_ctx), - asn_MAP_RICcontrolAcknowledge_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_RICcontrolAcknowledge = { - "RICcontrolAcknowledge", - "RICcontrolAcknowledge", - &asn_OP_SEQUENCE, - asn_DEF_RICcontrolAcknowledge_tags_1, - sizeof(asn_DEF_RICcontrolAcknowledge_tags_1) - /sizeof(asn_DEF_RICcontrolAcknowledge_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolAcknowledge_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolAcknowledge_tags_1) - /sizeof(asn_DEF_RICcontrolAcknowledge_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolAcknowledge_1, - 1, /* Elements count */ - &asn_SPC_RICcontrolAcknowledge_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolAcknowledge.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolAcknowledge.h deleted file mode 100644 index afa6870..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolAcknowledge.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICcontrolAcknowledge_H_ -#define _RICcontrolAcknowledge_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolAcknowledge */ -typedef struct RICcontrolAcknowledge { - ProtocolIE_Container_1917P9_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcontrolAcknowledge_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_specs_1; -extern asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolAcknowledge_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolFailure.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolFailure.c deleted file mode 100644 index c4ea6bc..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICcontrolFailure.h" - -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_Container_1917P10, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_specs_1 = { - sizeof(struct RICcontrolFailure), - offsetof(struct RICcontrolFailure, _asn_ctx), - asn_MAP_RICcontrolFailure_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_RICcontrolFailure = { - "RICcontrolFailure", - "RICcontrolFailure", - &asn_OP_SEQUENCE, - asn_DEF_RICcontrolFailure_tags_1, - sizeof(asn_DEF_RICcontrolFailure_tags_1) - /sizeof(asn_DEF_RICcontrolFailure_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolFailure_tags_1) - /sizeof(asn_DEF_RICcontrolFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolFailure_1, - 1, /* Elements count */ - &asn_SPC_RICcontrolFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolFailure.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolFailure.h deleted file mode 100644 index 9119a50..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICcontrolFailure_H_ -#define _RICcontrolFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolFailure */ -typedef struct RICcontrolFailure { - ProtocolIE_Container_1917P10_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcontrolFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_RICcontrolFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolHeader.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolHeader.c deleted file mode 100644 index 34a7d05..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolHeader.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICcontrolHeader.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICcontrolHeader_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolHeader = { - "RICcontrolHeader", - "RICcontrolHeader", - &asn_OP_OCTET_STRING, - asn_DEF_RICcontrolHeader_tags_1, - sizeof(asn_DEF_RICcontrolHeader_tags_1) - /sizeof(asn_DEF_RICcontrolHeader_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolHeader_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolHeader_tags_1) - /sizeof(asn_DEF_RICcontrolHeader_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolHeader.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolHeader.h deleted file mode 100644 index f4b3091..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolHeader.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICcontrolHeader_H_ -#define _RICcontrolHeader_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolHeader */ -typedef OCTET_STRING_t RICcontrolHeader_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolHeader; -asn_struct_free_f RICcontrolHeader_free; -asn_struct_print_f RICcontrolHeader_print; -asn_constr_check_f RICcontrolHeader_constraint; -ber_type_decoder_f RICcontrolHeader_decode_ber; -der_type_encoder_f RICcontrolHeader_encode_der; -xer_type_decoder_f RICcontrolHeader_decode_xer; -xer_type_encoder_f RICcontrolHeader_encode_xer; -oer_type_decoder_f RICcontrolHeader_decode_oer; -oer_type_encoder_f RICcontrolHeader_encode_oer; -per_type_decoder_f RICcontrolHeader_decode_uper; -per_type_encoder_f RICcontrolHeader_encode_uper; -per_type_decoder_f RICcontrolHeader_decode_aper; -per_type_encoder_f RICcontrolHeader_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolHeader_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolMessage.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolMessage.c deleted file mode 100644 index 9237dc5..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolMessage.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICcontrolMessage.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICcontrolMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolMessage = { - "RICcontrolMessage", - "RICcontrolMessage", - &asn_OP_OCTET_STRING, - asn_DEF_RICcontrolMessage_tags_1, - sizeof(asn_DEF_RICcontrolMessage_tags_1) - /sizeof(asn_DEF_RICcontrolMessage_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolMessage_tags_1) - /sizeof(asn_DEF_RICcontrolMessage_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolMessage.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolMessage.h deleted file mode 100644 index 4177e59..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolMessage.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICcontrolMessage_H_ -#define _RICcontrolMessage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolMessage */ -typedef OCTET_STRING_t RICcontrolMessage_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolMessage; -asn_struct_free_f RICcontrolMessage_free; -asn_struct_print_f RICcontrolMessage_print; -asn_constr_check_f RICcontrolMessage_constraint; -ber_type_decoder_f RICcontrolMessage_decode_ber; -der_type_encoder_f RICcontrolMessage_encode_der; -xer_type_decoder_f RICcontrolMessage_decode_xer; -xer_type_encoder_f RICcontrolMessage_encode_xer; -oer_type_decoder_f RICcontrolMessage_decode_oer; -oer_type_encoder_f RICcontrolMessage_encode_oer; -per_type_decoder_f RICcontrolMessage_decode_uper; -per_type_encoder_f RICcontrolMessage_encode_uper; -per_type_decoder_f RICcontrolMessage_decode_aper; -per_type_encoder_f RICcontrolMessage_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolMessage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolOutcome.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolOutcome.c deleted file mode 100644 index 0bedd24..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolOutcome.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICcontrolOutcome.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICcontrolOutcome_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolOutcome = { - "RICcontrolOutcome", - "RICcontrolOutcome", - &asn_OP_OCTET_STRING, - asn_DEF_RICcontrolOutcome_tags_1, - sizeof(asn_DEF_RICcontrolOutcome_tags_1) - /sizeof(asn_DEF_RICcontrolOutcome_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolOutcome_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolOutcome_tags_1) - /sizeof(asn_DEF_RICcontrolOutcome_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolOutcome.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolOutcome.h deleted file mode 100644 index c285f44..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolOutcome.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICcontrolOutcome_H_ -#define _RICcontrolOutcome_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolOutcome */ -typedef OCTET_STRING_t RICcontrolOutcome_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolOutcome; -asn_struct_free_f RICcontrolOutcome_free; -asn_struct_print_f RICcontrolOutcome_print; -asn_constr_check_f RICcontrolOutcome_constraint; -ber_type_decoder_f RICcontrolOutcome_decode_ber; -der_type_encoder_f RICcontrolOutcome_encode_der; -xer_type_decoder_f RICcontrolOutcome_decode_xer; -xer_type_encoder_f RICcontrolOutcome_encode_xer; -oer_type_decoder_f RICcontrolOutcome_decode_oer; -oer_type_encoder_f RICcontrolOutcome_encode_oer; -per_type_decoder_f RICcontrolOutcome_decode_uper; -per_type_encoder_f RICcontrolOutcome_encode_uper; -per_type_decoder_f RICcontrolOutcome_decode_aper; -per_type_encoder_f RICcontrolOutcome_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolOutcome_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolRequest.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolRequest.c deleted file mode 100644 index 467ff4b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolRequest.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICcontrolRequest.h" - -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_Container_1917P8, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_specs_1 = { - sizeof(struct RICcontrolRequest), - offsetof(struct RICcontrolRequest, _asn_ctx), - asn_MAP_RICcontrolRequest_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_RICcontrolRequest = { - "RICcontrolRequest", - "RICcontrolRequest", - &asn_OP_SEQUENCE, - asn_DEF_RICcontrolRequest_tags_1, - sizeof(asn_DEF_RICcontrolRequest_tags_1) - /sizeof(asn_DEF_RICcontrolRequest_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolRequest_tags_1) - /sizeof(asn_DEF_RICcontrolRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolRequest_1, - 1, /* Elements count */ - &asn_SPC_RICcontrolRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolRequest.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolRequest.h deleted file mode 100644 index 561fd37..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolRequest.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICcontrolRequest_H_ -#define _RICcontrolRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolRequest */ -typedef struct RICcontrolRequest { - ProtocolIE_Container_1917P8_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcontrolRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_RICcontrolRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICeventTriggerDefinition.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICeventTriggerDefinition.c deleted file mode 100644 index bec7659..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICeventTriggerDefinition.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICeventTriggerDefinition.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICeventTriggerDefinition_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICeventTriggerDefinition = { - "RICeventTriggerDefinition", - "RICeventTriggerDefinition", - &asn_OP_OCTET_STRING, - asn_DEF_RICeventTriggerDefinition_tags_1, - sizeof(asn_DEF_RICeventTriggerDefinition_tags_1) - /sizeof(asn_DEF_RICeventTriggerDefinition_tags_1[0]), /* 1 */ - asn_DEF_RICeventTriggerDefinition_tags_1, /* Same as above */ - sizeof(asn_DEF_RICeventTriggerDefinition_tags_1) - /sizeof(asn_DEF_RICeventTriggerDefinition_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICeventTriggerDefinition.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICeventTriggerDefinition.h deleted file mode 100644 index d53ac38..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICeventTriggerDefinition.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICeventTriggerDefinition_H_ -#define _RICeventTriggerDefinition_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICeventTriggerDefinition */ -typedef OCTET_STRING_t RICeventTriggerDefinition_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICeventTriggerDefinition; -asn_struct_free_f RICeventTriggerDefinition_free; -asn_struct_print_f RICeventTriggerDefinition_print; -asn_constr_check_f RICeventTriggerDefinition_constraint; -ber_type_decoder_f RICeventTriggerDefinition_decode_ber; -der_type_encoder_f RICeventTriggerDefinition_encode_der; -xer_type_decoder_f RICeventTriggerDefinition_decode_xer; -xer_type_encoder_f RICeventTriggerDefinition_encode_xer; -oer_type_decoder_f RICeventTriggerDefinition_decode_oer; -oer_type_encoder_f RICeventTriggerDefinition_encode_oer; -per_type_decoder_f RICeventTriggerDefinition_decode_uper; -per_type_encoder_f RICeventTriggerDefinition_encode_uper; -per_type_decoder_f RICeventTriggerDefinition_decode_aper; -per_type_encoder_f RICeventTriggerDefinition_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICeventTriggerDefinition_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindication.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindication.c deleted file mode 100644 index 5f164b5..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindication.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICindication.h" - -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_Container_1917P7, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICindication_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICindication_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICindication_specs_1 = { - sizeof(struct RICindication), - offsetof(struct RICindication, _asn_ctx), - asn_MAP_RICindication_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_RICindication = { - "RICindication", - "RICindication", - &asn_OP_SEQUENCE, - asn_DEF_RICindication_tags_1, - sizeof(asn_DEF_RICindication_tags_1) - /sizeof(asn_DEF_RICindication_tags_1[0]), /* 1 */ - asn_DEF_RICindication_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindication_tags_1) - /sizeof(asn_DEF_RICindication_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICindication_1, - 1, /* Elements count */ - &asn_SPC_RICindication_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindication.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindication.h deleted file mode 100644 index b189589..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindication.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICindication_H_ -#define _RICindication_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICindication */ -typedef struct RICindication { - ProtocolIE_Container_1917P7_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICindication_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindication; -extern asn_SEQUENCE_specifics_t asn_SPC_RICindication_specs_1; -extern asn_TYPE_member_t asn_MBR_RICindication_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindication_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationHeader.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationHeader.c deleted file mode 100644 index 7a3b70c..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationHeader.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICindicationHeader.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICindicationHeader_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICindicationHeader = { - "RICindicationHeader", - "RICindicationHeader", - &asn_OP_OCTET_STRING, - asn_DEF_RICindicationHeader_tags_1, - sizeof(asn_DEF_RICindicationHeader_tags_1) - /sizeof(asn_DEF_RICindicationHeader_tags_1[0]), /* 1 */ - asn_DEF_RICindicationHeader_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindicationHeader_tags_1) - /sizeof(asn_DEF_RICindicationHeader_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationHeader.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationHeader.h deleted file mode 100644 index 9b99d11..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationHeader.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICindicationHeader_H_ -#define _RICindicationHeader_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICindicationHeader */ -typedef OCTET_STRING_t RICindicationHeader_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindicationHeader; -asn_struct_free_f RICindicationHeader_free; -asn_struct_print_f RICindicationHeader_print; -asn_constr_check_f RICindicationHeader_constraint; -ber_type_decoder_f RICindicationHeader_decode_ber; -der_type_encoder_f RICindicationHeader_encode_der; -xer_type_decoder_f RICindicationHeader_decode_xer; -xer_type_encoder_f RICindicationHeader_encode_xer; -oer_type_decoder_f RICindicationHeader_decode_oer; -oer_type_encoder_f RICindicationHeader_encode_oer; -per_type_decoder_f RICindicationHeader_decode_uper; -per_type_encoder_f RICindicationHeader_encode_uper; -per_type_decoder_f RICindicationHeader_decode_aper; -per_type_encoder_f RICindicationHeader_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindicationHeader_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationMessage.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationMessage.c deleted file mode 100644 index 85d3627..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationMessage.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICindicationMessage.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICindicationMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICindicationMessage = { - "RICindicationMessage", - "RICindicationMessage", - &asn_OP_OCTET_STRING, - asn_DEF_RICindicationMessage_tags_1, - sizeof(asn_DEF_RICindicationMessage_tags_1) - /sizeof(asn_DEF_RICindicationMessage_tags_1[0]), /* 1 */ - asn_DEF_RICindicationMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindicationMessage_tags_1) - /sizeof(asn_DEF_RICindicationMessage_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationMessage.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationMessage.h deleted file mode 100644 index 794f93d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationMessage.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICindicationMessage_H_ -#define _RICindicationMessage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICindicationMessage */ -typedef OCTET_STRING_t RICindicationMessage_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindicationMessage; -asn_struct_free_f RICindicationMessage_free; -asn_struct_print_f RICindicationMessage_print; -asn_constr_check_f RICindicationMessage_constraint; -ber_type_decoder_f RICindicationMessage_decode_ber; -der_type_encoder_f RICindicationMessage_encode_der; -xer_type_decoder_f RICindicationMessage_decode_xer; -xer_type_encoder_f RICindicationMessage_encode_xer; -oer_type_decoder_f RICindicationMessage_decode_oer; -oer_type_encoder_f RICindicationMessage_encode_oer; -per_type_decoder_f RICindicationMessage_decode_uper; -per_type_encoder_f RICindicationMessage_encode_uper; -per_type_decoder_f RICindicationMessage_decode_aper; -per_type_encoder_f RICindicationMessage_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindicationMessage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationSN.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationSN.c deleted file mode 100644 index 02e15d9..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationSN.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICindicationSN.h" - -int -RICindicationSN_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 <= 65535)) { - /* 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_RICindicationSN_constr_1 CC_NOTUSED = { - { 2, 1 } /* (0..65535) */, - -1}; -static asn_per_constraints_t asn_PER_type_RICindicationSN_constr_1 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_RICindicationSN_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICindicationSN = { - "RICindicationSN", - "RICindicationSN", - &asn_OP_NativeInteger, - asn_DEF_RICindicationSN_tags_1, - sizeof(asn_DEF_RICindicationSN_tags_1) - /sizeof(asn_DEF_RICindicationSN_tags_1[0]), /* 1 */ - asn_DEF_RICindicationSN_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindicationSN_tags_1) - /sizeof(asn_DEF_RICindicationSN_tags_1[0]), /* 1 */ - { &asn_OER_type_RICindicationSN_constr_1, &asn_PER_type_RICindicationSN_constr_1, RICindicationSN_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationSN.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationSN.h deleted file mode 100644 index b802c11..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationSN.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICindicationSN_H_ -#define _RICindicationSN_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICindicationSN */ -typedef long RICindicationSN_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindicationSN; -asn_struct_free_f RICindicationSN_free; -asn_struct_print_f RICindicationSN_print; -asn_constr_check_f RICindicationSN_constraint; -ber_type_decoder_f RICindicationSN_decode_ber; -der_type_encoder_f RICindicationSN_encode_der; -xer_type_decoder_f RICindicationSN_decode_xer; -xer_type_encoder_f RICindicationSN_encode_xer; -oer_type_decoder_f RICindicationSN_decode_oer; -oer_type_encoder_f RICindicationSN_encode_oer; -per_type_decoder_f RICindicationSN_decode_uper; -per_type_encoder_f RICindicationSN_encode_uper; -per_type_decoder_f RICindicationSN_decode_aper; -per_type_encoder_f RICindicationSN_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindicationSN_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationType.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationType.c deleted file mode 100644 index d4b4ef6..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationType.c +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICindicationType.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_RICindicationType_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_RICindicationType_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 */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICindicationType_value2enum_1[] = { - { 0, 6, "report" }, - { 1, 6, "insert" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICindicationType_enum2value_1[] = { - 1, /* insert(1) */ - 0 /* report(0) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_RICindicationType_specs_1 = { - asn_MAP_RICindicationType_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICindicationType_enum2value_1, /* 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_RICindicationType_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICindicationType = { - "RICindicationType", - "RICindicationType", - &asn_OP_NativeEnumerated, - asn_DEF_RICindicationType_tags_1, - sizeof(asn_DEF_RICindicationType_tags_1) - /sizeof(asn_DEF_RICindicationType_tags_1[0]), /* 1 */ - asn_DEF_RICindicationType_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindicationType_tags_1) - /sizeof(asn_DEF_RICindicationType_tags_1[0]), /* 1 */ - { &asn_OER_type_RICindicationType_constr_1, &asn_PER_type_RICindicationType_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICindicationType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationType.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationType.h deleted file mode 100644 index b21a107..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationType.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICindicationType_H_ -#define _RICindicationType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICindicationType { - RICindicationType_report = 0, - RICindicationType_insert = 1 - /* - * Enumeration is extensible - */ -} e_RICindicationType; - -/* RICindicationType */ -typedef long RICindicationType_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindicationType; -asn_struct_free_f RICindicationType_free; -asn_struct_print_f RICindicationType_print; -asn_constr_check_f RICindicationType_constraint; -ber_type_decoder_f RICindicationType_decode_ber; -der_type_encoder_f RICindicationType_encode_der; -xer_type_decoder_f RICindicationType_decode_xer; -xer_type_encoder_f RICindicationType_encode_xer; -oer_type_decoder_f RICindicationType_decode_oer; -oer_type_encoder_f RICindicationType_encode_oer; -per_type_decoder_f RICindicationType_decode_uper; -per_type_encoder_f RICindicationType_encode_uper; -per_type_decoder_f RICindicationType_decode_aper; -per_type_encoder_f RICindicationType_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindicationType_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICrequestID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICrequestID.c deleted file mode 100644 index 0a77044..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICrequestID.c +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICrequestID.h" - -static int -memb_ricRequestorID_constraint_1(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 int -memb_ricInstanceID_constraint_1(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_oer_constraints_t asn_OER_memb_ricRequestorID_constr_2 CC_NOTUSED = { - { 2, 1 } /* (0..65535) */, - -1}; -static asn_per_constraints_t asn_PER_memb_ricRequestorID_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_ricInstanceID_constr_3 CC_NOTUSED = { - { 2, 1 } /* (0..65535) */, - -1}; -static asn_per_constraints_t asn_PER_memb_ricInstanceID_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_RICrequestID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICrequestID, ricRequestorID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_ricRequestorID_constr_2, &asn_PER_memb_ricRequestorID_constr_2, memb_ricRequestorID_constraint_1 }, - 0, 0, /* No default value */ - "ricRequestorID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICrequestID, ricInstanceID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_ricInstanceID_constr_3, &asn_PER_memb_ricInstanceID_constr_3, memb_ricInstanceID_constraint_1 }, - 0, 0, /* No default value */ - "ricInstanceID" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICrequestID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICrequestID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequestorID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricInstanceID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICrequestID_specs_1 = { - sizeof(struct RICrequestID), - offsetof(struct RICrequestID, _asn_ctx), - asn_MAP_RICrequestID_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_RICrequestID = { - "RICrequestID", - "RICrequestID", - &asn_OP_SEQUENCE, - asn_DEF_RICrequestID_tags_1, - sizeof(asn_DEF_RICrequestID_tags_1) - /sizeof(asn_DEF_RICrequestID_tags_1[0]), /* 1 */ - asn_DEF_RICrequestID_tags_1, /* Same as above */ - sizeof(asn_DEF_RICrequestID_tags_1) - /sizeof(asn_DEF_RICrequestID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICrequestID_1, - 2, /* Elements count */ - &asn_SPC_RICrequestID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICrequestID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICrequestID.h deleted file mode 100644 index 5e2fe15..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICrequestID.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICrequestID_H_ -#define _RICrequestID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICrequestID */ -typedef struct RICrequestID { - long ricRequestorID; - long ricInstanceID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICrequestID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICrequestID; -extern asn_SEQUENCE_specifics_t asn_SPC_RICrequestID_specs_1; -extern asn_TYPE_member_t asn_MBR_RICrequestID_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICrequestID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceQuery.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceQuery.c deleted file mode 100644 index a5a5a03..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceQuery.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICserviceQuery.h" - -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_Container_1917P26, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceQuery_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceQuery_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_specs_1 = { - sizeof(struct RICserviceQuery), - offsetof(struct RICserviceQuery, _asn_ctx), - asn_MAP_RICserviceQuery_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_RICserviceQuery = { - "RICserviceQuery", - "RICserviceQuery", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceQuery_tags_1, - sizeof(asn_DEF_RICserviceQuery_tags_1) - /sizeof(asn_DEF_RICserviceQuery_tags_1[0]), /* 1 */ - asn_DEF_RICserviceQuery_tags_1, /* Same as above */ - sizeof(asn_DEF_RICserviceQuery_tags_1) - /sizeof(asn_DEF_RICserviceQuery_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceQuery_1, - 1, /* Elements count */ - &asn_SPC_RICserviceQuery_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceQuery.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceQuery.h deleted file mode 100644 index 7760fc7..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceQuery.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICserviceQuery_H_ -#define _RICserviceQuery_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICserviceQuery */ -typedef struct RICserviceQuery { - ProtocolIE_Container_1917P26_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceQuery_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICserviceQuery; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_specs_1; -extern asn_TYPE_member_t asn_MBR_RICserviceQuery_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICserviceQuery_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdate.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdate.c deleted file mode 100644 index 5ee17e3..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdate.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICserviceUpdate.h" - -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_Container_1917P23, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdate_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdate_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_specs_1 = { - sizeof(struct RICserviceUpdate), - offsetof(struct RICserviceUpdate, _asn_ctx), - asn_MAP_RICserviceUpdate_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_RICserviceUpdate = { - "RICserviceUpdate", - "RICserviceUpdate", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdate_tags_1, - sizeof(asn_DEF_RICserviceUpdate_tags_1) - /sizeof(asn_DEF_RICserviceUpdate_tags_1[0]), /* 1 */ - asn_DEF_RICserviceUpdate_tags_1, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdate_tags_1) - /sizeof(asn_DEF_RICserviceUpdate_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdate_1, - 1, /* Elements count */ - &asn_SPC_RICserviceUpdate_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdate.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdate.h deleted file mode 100644 index 7425da6..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdate.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICserviceUpdate_H_ -#define _RICserviceUpdate_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICserviceUpdate */ -typedef struct RICserviceUpdate { - ProtocolIE_Container_1917P23_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceUpdate_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_specs_1; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdate_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICserviceUpdate_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdateAcknowledge.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdateAcknowledge.c deleted file mode 100644 index e16604f..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdateAcknowledge.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICserviceUpdateAcknowledge.h" - -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_Container_1917P24, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdateAcknowledge_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateAcknowledge_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_specs_1 = { - sizeof(struct RICserviceUpdateAcknowledge), - offsetof(struct RICserviceUpdateAcknowledge, _asn_ctx), - asn_MAP_RICserviceUpdateAcknowledge_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_RICserviceUpdateAcknowledge = { - "RICserviceUpdateAcknowledge", - "RICserviceUpdateAcknowledge", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdateAcknowledge_tags_1, - sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1) - /sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1[0]), /* 1 */ - asn_DEF_RICserviceUpdateAcknowledge_tags_1, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1) - /sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdateAcknowledge_1, - 1, /* Elements count */ - &asn_SPC_RICserviceUpdateAcknowledge_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdateAcknowledge.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdateAcknowledge.h deleted file mode 100644 index aae8baf..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdateAcknowledge.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICserviceUpdateAcknowledge_H_ -#define _RICserviceUpdateAcknowledge_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICserviceUpdateAcknowledge */ -typedef struct RICserviceUpdateAcknowledge { - ProtocolIE_Container_1917P24_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceUpdateAcknowledge_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_specs_1; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICserviceUpdateAcknowledge_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdateFailure.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdateFailure.c deleted file mode 100644 index 314d892..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdateFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICserviceUpdateFailure.h" - -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_Container_1917P25, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdateFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_specs_1 = { - sizeof(struct RICserviceUpdateFailure), - offsetof(struct RICserviceUpdateFailure, _asn_ctx), - asn_MAP_RICserviceUpdateFailure_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_RICserviceUpdateFailure = { - "RICserviceUpdateFailure", - "RICserviceUpdateFailure", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdateFailure_tags_1, - sizeof(asn_DEF_RICserviceUpdateFailure_tags_1) - /sizeof(asn_DEF_RICserviceUpdateFailure_tags_1[0]), /* 1 */ - asn_DEF_RICserviceUpdateFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdateFailure_tags_1) - /sizeof(asn_DEF_RICserviceUpdateFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdateFailure_1, - 1, /* Elements count */ - &asn_SPC_RICserviceUpdateFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdateFailure.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdateFailure.h deleted file mode 100644 index f418bc8..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdateFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICserviceUpdateFailure_H_ -#define _RICserviceUpdateFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICserviceUpdateFailure */ -typedef struct RICserviceUpdateFailure { - ProtocolIE_Container_1917P25_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceUpdateFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICserviceUpdateFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscription-List-withCause.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscription-List-withCause.c deleted file mode 100644 index 384fc73..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscription-List-withCause.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICsubscription-List-withCause.h" - -#include "ProtocolIE-SingleContainer.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_SingleContainer_1920P3, - 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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscription-List-withCause.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscription-List-withCause.h deleted file mode 100644 index 43117cd..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscription-List-withCause.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICsubscription_List_withCause_H_ -#define _RICsubscription_List_withCause_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RICsubscription-List-withCause */ -typedef struct RICsubscription_List_withCause { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) 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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscription-withCause-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscription-withCause-Item.c deleted file mode 100644 index fef3391..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscription-withCause-Item.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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_Cause, - 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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscription-withCause-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscription-withCause-Item.h deleted file mode 100644 index db46929..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscription-withCause-Item.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICsubscription_withCause_Item_H_ -#define _RICsubscription_withCause_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICrequestID.h" -#include "RANfunctionID.h" -#include "Cause.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscription-withCause-Item */ -typedef struct RICsubscription_withCause_Item { - RICrequestID_t ricRequestID; - RANfunctionID_t ranFunctionID; - Cause_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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteFailure.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteFailure.c deleted file mode 100644 index 7ecf563..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICsubscriptionDeleteFailure.h" - -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_Container_1917P5, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_specs_1 = { - sizeof(struct RICsubscriptionDeleteFailure), - offsetof(struct RICsubscriptionDeleteFailure, _asn_ctx), - asn_MAP_RICsubscriptionDeleteFailure_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_RICsubscriptionDeleteFailure = { - "RICsubscriptionDeleteFailure", - "RICsubscriptionDeleteFailure", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteFailure_tags_1, - sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteFailure_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteFailure.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteFailure.h deleted file mode 100644 index 6279bf9..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICsubscriptionDeleteFailure_H_ -#define _RICsubscriptionDeleteFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionDeleteFailure */ -typedef struct RICsubscriptionDeleteFailure { - ProtocolIE_Container_1917P5_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDeleteFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionDeleteFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteRequest.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteRequest.c deleted file mode 100644 index deecbb5..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteRequest.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICsubscriptionDeleteRequest.h" - -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_Container_1917P3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_specs_1 = { - sizeof(struct RICsubscriptionDeleteRequest), - offsetof(struct RICsubscriptionDeleteRequest, _asn_ctx), - asn_MAP_RICsubscriptionDeleteRequest_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_RICsubscriptionDeleteRequest = { - "RICsubscriptionDeleteRequest", - "RICsubscriptionDeleteRequest", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteRequest_tags_1, - sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteRequest_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteRequest.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteRequest.h deleted file mode 100644 index 3365757..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteRequest.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICsubscriptionDeleteRequest_H_ -#define _RICsubscriptionDeleteRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionDeleteRequest */ -typedef struct RICsubscriptionDeleteRequest { - ProtocolIE_Container_1917P3_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDeleteRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionDeleteRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteRequired.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteRequired.c deleted file mode 100644 index e52fc9c..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteRequired.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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_Container_1917P6, - 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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteRequired.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteRequired.h deleted file mode 100644 index ed1945d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteRequired.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICsubscriptionDeleteRequired_H_ -#define _RICsubscriptionDeleteRequired_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionDeleteRequired */ -typedef struct RICsubscriptionDeleteRequired { - ProtocolIE_Container_1917P6_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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteResponse.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteResponse.c deleted file mode 100644 index 2170d81..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteResponse.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICsubscriptionDeleteResponse.h" - -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_Container_1917P4, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_specs_1 = { - sizeof(struct RICsubscriptionDeleteResponse), - offsetof(struct RICsubscriptionDeleteResponse, _asn_ctx), - asn_MAP_RICsubscriptionDeleteResponse_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_RICsubscriptionDeleteResponse = { - "RICsubscriptionDeleteResponse", - "RICsubscriptionDeleteResponse", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteResponse_tags_1, - sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteResponse_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteResponse.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteResponse.h deleted file mode 100644 index cddc20e..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteResponse.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICsubscriptionDeleteResponse_H_ -#define _RICsubscriptionDeleteResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionDeleteResponse */ -typedef struct RICsubscriptionDeleteResponse { - ProtocolIE_Container_1917P4_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDeleteResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionDeleteResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDetails.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDetails.c deleted file mode 100644 index 777fae0..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDetails.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICsubscriptionDetails.h" - -static asn_TYPE_member_t asn_MBR_RICsubscriptionDetails_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDetails, ricEventTriggerDefinition), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICeventTriggerDefinition, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricEventTriggerDefinition" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDetails, ricAction_ToBeSetup_List), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactions_ToBeSetup_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricAction-ToBeSetup-List" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDetails_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDetails_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricEventTriggerDefinition */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricAction-ToBeSetup-List */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDetails_specs_1 = { - sizeof(struct RICsubscriptionDetails), - offsetof(struct RICsubscriptionDetails, _asn_ctx), - asn_MAP_RICsubscriptionDetails_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_RICsubscriptionDetails = { - "RICsubscriptionDetails", - "RICsubscriptionDetails", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDetails_tags_1, - sizeof(asn_DEF_RICsubscriptionDetails_tags_1) - /sizeof(asn_DEF_RICsubscriptionDetails_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionDetails_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDetails_tags_1) - /sizeof(asn_DEF_RICsubscriptionDetails_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDetails_1, - 2, /* Elements count */ - &asn_SPC_RICsubscriptionDetails_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDetails.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDetails.h deleted file mode 100644 index 4f45d46..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDetails.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICsubscriptionDetails_H_ -#define _RICsubscriptionDetails_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICeventTriggerDefinition.h" -#include "RICactions-ToBeSetup-List.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionDetails */ -typedef struct RICsubscriptionDetails { - RICeventTriggerDefinition_t ricEventTriggerDefinition; - RICactions_ToBeSetup_List_t ricAction_ToBeSetup_List; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDetails_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDetails; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionDetails_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionFailure.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionFailure.c deleted file mode 100644 index 576e1cf..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICsubscriptionFailure.h" - -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_Container_1917P2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_specs_1 = { - sizeof(struct RICsubscriptionFailure), - offsetof(struct RICsubscriptionFailure, _asn_ctx), - asn_MAP_RICsubscriptionFailure_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_RICsubscriptionFailure = { - "RICsubscriptionFailure", - "RICsubscriptionFailure", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionFailure_tags_1, - sizeof(asn_DEF_RICsubscriptionFailure_tags_1) - /sizeof(asn_DEF_RICsubscriptionFailure_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionFailure_tags_1) - /sizeof(asn_DEF_RICsubscriptionFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionFailure_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionFailure.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionFailure.h deleted file mode 100644 index e5bfe7d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICsubscriptionFailure_H_ -#define _RICsubscriptionFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionFailure */ -typedef struct RICsubscriptionFailure { - ProtocolIE_Container_1917P2_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionRequest.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionRequest.c deleted file mode 100644 index 383a300..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionRequest.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICsubscriptionRequest.h" - -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_Container_1917P0, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_specs_1 = { - sizeof(struct RICsubscriptionRequest), - offsetof(struct RICsubscriptionRequest, _asn_ctx), - asn_MAP_RICsubscriptionRequest_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_RICsubscriptionRequest = { - "RICsubscriptionRequest", - "RICsubscriptionRequest", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionRequest_tags_1, - sizeof(asn_DEF_RICsubscriptionRequest_tags_1) - /sizeof(asn_DEF_RICsubscriptionRequest_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionRequest_tags_1) - /sizeof(asn_DEF_RICsubscriptionRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionRequest_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionRequest.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionRequest.h deleted file mode 100644 index ed87c29..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionRequest.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICsubscriptionRequest_H_ -#define _RICsubscriptionRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionRequest */ -typedef struct RICsubscriptionRequest { - ProtocolIE_Container_1917P0_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionResponse.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionResponse.c deleted file mode 100644 index 8c46f2e..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionResponse.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICsubscriptionResponse.h" - -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_Container_1917P1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_specs_1 = { - sizeof(struct RICsubscriptionResponse), - offsetof(struct RICsubscriptionResponse, _asn_ctx), - asn_MAP_RICsubscriptionResponse_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_RICsubscriptionResponse = { - "RICsubscriptionResponse", - "RICsubscriptionResponse", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionResponse_tags_1, - sizeof(asn_DEF_RICsubscriptionResponse_tags_1) - /sizeof(asn_DEF_RICsubscriptionResponse_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionResponse_tags_1) - /sizeof(asn_DEF_RICsubscriptionResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionResponse_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionResponse.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionResponse.h deleted file mode 100644 index 7367e7b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionResponse.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICsubscriptionResponse_H_ -#define _RICsubscriptionResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionResponse */ -typedef struct RICsubscriptionResponse { - ProtocolIE_Container_1917P1_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubsequentAction.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubsequentAction.c deleted file mode 100644 index 3205562..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubsequentAction.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICsubsequentAction.h" - -asn_TYPE_member_t asn_MBR_RICsubsequentAction_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubsequentAction, ricSubsequentActionType), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICsubsequentActionType, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricSubsequentActionType" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubsequentAction, ricTimeToWait), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICtimeToWait, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricTimeToWait" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubsequentAction_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubsequentAction_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricSubsequentActionType */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricTimeToWait */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubsequentAction_specs_1 = { - sizeof(struct RICsubsequentAction), - offsetof(struct RICsubsequentAction, _asn_ctx), - asn_MAP_RICsubsequentAction_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_RICsubsequentAction = { - "RICsubsequentAction", - "RICsubsequentAction", - &asn_OP_SEQUENCE, - asn_DEF_RICsubsequentAction_tags_1, - sizeof(asn_DEF_RICsubsequentAction_tags_1) - /sizeof(asn_DEF_RICsubsequentAction_tags_1[0]), /* 1 */ - asn_DEF_RICsubsequentAction_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubsequentAction_tags_1) - /sizeof(asn_DEF_RICsubsequentAction_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubsequentAction_1, - 2, /* Elements count */ - &asn_SPC_RICsubsequentAction_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubsequentAction.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubsequentAction.h deleted file mode 100644 index d485d2f..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubsequentAction.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICsubsequentAction_H_ -#define _RICsubsequentAction_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICsubsequentActionType.h" -#include "RICtimeToWait.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubsequentAction */ -typedef struct RICsubsequentAction { - RICsubsequentActionType_t ricSubsequentActionType; - RICtimeToWait_t ricTimeToWait; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubsequentAction_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubsequentAction; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubsequentAction_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubsequentAction_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubsequentAction_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubsequentActionType.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubsequentActionType.c deleted file mode 100644 index 4a21d06..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubsequentActionType.c +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICsubsequentActionType.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_RICsubsequentActionType_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_RICsubsequentActionType_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 */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICsubsequentActionType_value2enum_1[] = { - { 0, 8, "continue" }, - { 1, 4, "wait" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICsubsequentActionType_enum2value_1[] = { - 0, /* continue(0) */ - 1 /* wait(1) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_RICsubsequentActionType_specs_1 = { - asn_MAP_RICsubsequentActionType_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICsubsequentActionType_enum2value_1, /* 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_RICsubsequentActionType_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICsubsequentActionType = { - "RICsubsequentActionType", - "RICsubsequentActionType", - &asn_OP_NativeEnumerated, - asn_DEF_RICsubsequentActionType_tags_1, - sizeof(asn_DEF_RICsubsequentActionType_tags_1) - /sizeof(asn_DEF_RICsubsequentActionType_tags_1[0]), /* 1 */ - asn_DEF_RICsubsequentActionType_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubsequentActionType_tags_1) - /sizeof(asn_DEF_RICsubsequentActionType_tags_1[0]), /* 1 */ - { &asn_OER_type_RICsubsequentActionType_constr_1, &asn_PER_type_RICsubsequentActionType_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICsubsequentActionType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubsequentActionType.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubsequentActionType.h deleted file mode 100644 index 2faa650..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubsequentActionType.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICsubsequentActionType_H_ -#define _RICsubsequentActionType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICsubsequentActionType { - RICsubsequentActionType_continue = 0, - RICsubsequentActionType_wait = 1 - /* - * Enumeration is extensible - */ -} e_RICsubsequentActionType; - -/* RICsubsequentActionType */ -typedef long RICsubsequentActionType_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICsubsequentActionType_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RICsubsequentActionType; -extern const asn_INTEGER_specifics_t asn_SPC_RICsubsequentActionType_specs_1; -asn_struct_free_f RICsubsequentActionType_free; -asn_struct_print_f RICsubsequentActionType_print; -asn_constr_check_f RICsubsequentActionType_constraint; -ber_type_decoder_f RICsubsequentActionType_decode_ber; -der_type_encoder_f RICsubsequentActionType_encode_der; -xer_type_decoder_f RICsubsequentActionType_decode_xer; -xer_type_encoder_f RICsubsequentActionType_encode_xer; -oer_type_decoder_f RICsubsequentActionType_decode_oer; -oer_type_encoder_f RICsubsequentActionType_encode_oer; -per_type_decoder_f RICsubsequentActionType_decode_uper; -per_type_encoder_f RICsubsequentActionType_encode_uper; -per_type_decoder_f RICsubsequentActionType_decode_aper; -per_type_encoder_f RICsubsequentActionType_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubsequentActionType_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICtimeToWait.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICtimeToWait.c deleted file mode 100644 index 5a5e765..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICtimeToWait.c +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "RICtimeToWait.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -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, 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, "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[] = { - 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 */ - 17, /* Number of elements in the maps */ - 18, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RICtimeToWait_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICtimeToWait = { - "RICtimeToWait", - "RICtimeToWait", - &asn_OP_NativeEnumerated, - asn_DEF_RICtimeToWait_tags_1, - sizeof(asn_DEF_RICtimeToWait_tags_1) - /sizeof(asn_DEF_RICtimeToWait_tags_1[0]), /* 1 */ - asn_DEF_RICtimeToWait_tags_1, /* Same as above */ - sizeof(asn_DEF_RICtimeToWait_tags_1) - /sizeof(asn_DEF_RICtimeToWait_tags_1[0]), /* 1 */ - { &asn_OER_type_RICtimeToWait_constr_1, &asn_PER_type_RICtimeToWait_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICtimeToWait_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICtimeToWait.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICtimeToWait.h deleted file mode 100644 index 840bc00..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICtimeToWait.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _RICtimeToWait_H_ -#define _RICtimeToWait_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICtimeToWait { - 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 - */ -} e_RICtimeToWait; - -/* RICtimeToWait */ -typedef long RICtimeToWait_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICtimeToWait_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RICtimeToWait; -extern const asn_INTEGER_specifics_t asn_SPC_RICtimeToWait_specs_1; -asn_struct_free_f RICtimeToWait_free; -asn_struct_print_f RICtimeToWait_print; -asn_constr_check_f RICtimeToWait_constraint; -ber_type_decoder_f RICtimeToWait_decode_ber; -der_type_encoder_f RICtimeToWait_encode_der; -xer_type_decoder_f RICtimeToWait_decode_xer; -xer_type_encoder_f RICtimeToWait_encode_xer; -oer_type_decoder_f RICtimeToWait_decode_oer; -oer_type_encoder_f RICtimeToWait_encode_oer; -per_type_decoder_f RICtimeToWait_decode_uper; -per_type_encoder_f RICtimeToWait_encode_uper; -per_type_decoder_f RICtimeToWait_decode_aper; -per_type_encoder_f RICtimeToWait_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICtimeToWait_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RT-Period-IE.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RT-Period-IE.c deleted file mode 100644 index 5f99297..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RT-Period-IE.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RT-Period-IE.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_RT_Period_IE_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_RT_Period_IE_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 19 } /* (0..19,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RT_Period_IE_value2enum_1[] = { - { 0, 4, "ms10" }, - { 1, 4, "ms20" }, - { 2, 4, "ms32" }, - { 3, 4, "ms40" }, - { 4, 4, "ms60" }, - { 5, 4, "ms64" }, - { 6, 4, "ms70" }, - { 7, 4, "ms80" }, - { 8, 5, "ms128" }, - { 9, 5, "ms160" }, - { 10, 5, "ms256" }, - { 11, 5, "ms320" }, - { 12, 5, "ms512" }, - { 13, 5, "ms640" }, - { 14, 6, "ms1024" }, - { 15, 6, "ms1280" }, - { 16, 6, "ms2048" }, - { 17, 6, "ms2560" }, - { 18, 6, "ms5120" }, - { 19, 7, "ms10240" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RT_Period_IE_enum2value_1[] = { - 0, /* ms10(0) */ - 14, /* ms1024(14) */ - 19, /* ms10240(19) */ - 8, /* ms128(8) */ - 15, /* ms1280(15) */ - 9, /* ms160(9) */ - 1, /* ms20(1) */ - 16, /* ms2048(16) */ - 10, /* ms256(10) */ - 17, /* ms2560(17) */ - 2, /* ms32(2) */ - 11, /* ms320(11) */ - 3, /* ms40(3) */ - 12, /* ms512(12) */ - 18, /* ms5120(18) */ - 4, /* ms60(4) */ - 5, /* ms64(5) */ - 13, /* ms640(13) */ - 6, /* ms70(6) */ - 7 /* ms80(7) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_RT_Period_IE_specs_1 = { - asn_MAP_RT_Period_IE_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RT_Period_IE_enum2value_1, /* N => "tag"; sorted by N */ - 20, /* Number of elements in the maps */ - 21, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RT_Period_IE_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RT_Period_IE = { - "RT-Period-IE", - "RT-Period-IE", - &asn_OP_NativeEnumerated, - asn_DEF_RT_Period_IE_tags_1, - sizeof(asn_DEF_RT_Period_IE_tags_1) - /sizeof(asn_DEF_RT_Period_IE_tags_1[0]), /* 1 */ - asn_DEF_RT_Period_IE_tags_1, /* Same as above */ - sizeof(asn_DEF_RT_Period_IE_tags_1) - /sizeof(asn_DEF_RT_Period_IE_tags_1[0]), /* 1 */ - { &asn_OER_type_RT_Period_IE_constr_1, &asn_PER_type_RT_Period_IE_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RT_Period_IE_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RT-Period-IE.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RT-Period-IE.h deleted file mode 100644 index 30d2843..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RT-Period-IE.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RT_Period_IE_H_ -#define _RT_Period_IE_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RT_Period_IE { - RT_Period_IE_ms10 = 0, - RT_Period_IE_ms20 = 1, - RT_Period_IE_ms32 = 2, - RT_Period_IE_ms40 = 3, - RT_Period_IE_ms60 = 4, - RT_Period_IE_ms64 = 5, - RT_Period_IE_ms70 = 6, - RT_Period_IE_ms80 = 7, - RT_Period_IE_ms128 = 8, - RT_Period_IE_ms160 = 9, - RT_Period_IE_ms256 = 10, - RT_Period_IE_ms320 = 11, - RT_Period_IE_ms512 = 12, - RT_Period_IE_ms640 = 13, - RT_Period_IE_ms1024 = 14, - RT_Period_IE_ms1280 = 15, - RT_Period_IE_ms2048 = 16, - RT_Period_IE_ms2560 = 17, - RT_Period_IE_ms5120 = 18, - RT_Period_IE_ms10240 = 19 - /* - * Enumeration is extensible - */ -} e_RT_Period_IE; - -/* RT-Period-IE */ -typedef long RT_Period_IE_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RT_Period_IE_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RT_Period_IE; -extern const asn_INTEGER_specifics_t asn_SPC_RT_Period_IE_specs_1; -asn_struct_free_f RT_Period_IE_free; -asn_struct_print_f RT_Period_IE_print; -asn_constr_check_f RT_Period_IE_constraint; -ber_type_decoder_f RT_Period_IE_decode_ber; -der_type_encoder_f RT_Period_IE_encode_der; -xer_type_decoder_f RT_Period_IE_decode_xer; -xer_type_encoder_f RT_Period_IE_encode_xer; -oer_type_decoder_f RT_Period_IE_decode_oer; -oer_type_encoder_f RT_Period_IE_encode_oer; -per_type_decoder_f RT_Period_IE_decode_uper; -per_type_encoder_f RT_Period_IE_encode_uper; -per_type_decoder_f RT_Period_IE_decode_aper; -per_type_encoder_f RT_Period_IE_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RT_Period_IE_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ResetRequest.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ResetRequest.c deleted file mode 100644 index c5b85be..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ResetRequest.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "ResetRequest.h" - -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_Container_1917P21, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResetRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResetRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResetRequest_specs_1 = { - sizeof(struct ResetRequest), - offsetof(struct ResetRequest, _asn_ctx), - asn_MAP_ResetRequest_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_ResetRequest = { - "ResetRequest", - "ResetRequest", - &asn_OP_SEQUENCE, - asn_DEF_ResetRequest_tags_1, - sizeof(asn_DEF_ResetRequest_tags_1) - /sizeof(asn_DEF_ResetRequest_tags_1[0]), /* 1 */ - asn_DEF_ResetRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_ResetRequest_tags_1) - /sizeof(asn_DEF_ResetRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResetRequest_1, - 1, /* Elements count */ - &asn_SPC_ResetRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ResetRequest.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ResetRequest.h deleted file mode 100644 index 0299fa9..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ResetRequest.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _ResetRequest_H_ -#define _ResetRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ResetRequest */ -typedef struct ResetRequest { - ProtocolIE_Container_1917P21_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResetRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ResetRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_ResetRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_ResetRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ResetRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ResetResponse.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ResetResponse.c deleted file mode 100644 index a969a9c..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ResetResponse.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "ResetResponse.h" - -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_Container_1917P22, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResetResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResetResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResetResponse_specs_1 = { - sizeof(struct ResetResponse), - offsetof(struct ResetResponse, _asn_ctx), - asn_MAP_ResetResponse_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_ResetResponse = { - "ResetResponse", - "ResetResponse", - &asn_OP_SEQUENCE, - asn_DEF_ResetResponse_tags_1, - sizeof(asn_DEF_ResetResponse_tags_1) - /sizeof(asn_DEF_ResetResponse_tags_1[0]), /* 1 */ - asn_DEF_ResetResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_ResetResponse_tags_1) - /sizeof(asn_DEF_ResetResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResetResponse_1, - 1, /* Elements count */ - &asn_SPC_ResetResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ResetResponse.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ResetResponse.h deleted file mode 100644 index ed09c06..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ResetResponse.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _ResetResponse_H_ -#define _ResetResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ResetResponse */ -typedef struct ResetResponse { - ProtocolIE_Container_1917P22_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResetResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ResetResponse; -extern asn_SEQUENCE_specifics_t asn_SPC_ResetResponse_specs_1; -extern asn_TYPE_member_t asn_MBR_ResetResponse_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ResetResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/SNSSAI.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/SNSSAI.c deleted file mode 100644 index 39afcad..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/SNSSAI.c +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "SNSSAI.h" - -static int -memb_sST_constraint_1(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; - - 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)) { - /* 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_sD_constraint_1(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; - - 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 == 3)) { - /* 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_sST_constr_2 CC_NOTUSED = { - { 0, 0 }, - 1 /* (SIZE(1..1)) */}; -static asn_per_constraints_t asn_PER_memb_sST_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 1, 1 } /* (SIZE(1..1)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_sD_constr_3 CC_NOTUSED = { - { 0, 0 }, - 3 /* (SIZE(3..3)) */}; -static asn_per_constraints_t asn_PER_memb_sD_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_SNSSAI_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SNSSAI, sST), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { &asn_OER_memb_sST_constr_2, &asn_PER_memb_sST_constr_2, memb_sST_constraint_1 }, - 0, 0, /* No default value */ - "sST" - }, - { ATF_POINTER, 1, offsetof(struct SNSSAI, sD), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { &asn_OER_memb_sD_constr_3, &asn_PER_memb_sD_constr_3, memb_sD_constraint_1 }, - 0, 0, /* No default value */ - "sD" - }, -}; -static const int asn_MAP_SNSSAI_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_SNSSAI_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SNSSAI_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sST */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sD */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SNSSAI_specs_1 = { - sizeof(struct SNSSAI), - offsetof(struct SNSSAI, _asn_ctx), - asn_MAP_SNSSAI_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_SNSSAI_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SNSSAI = { - "SNSSAI", - "SNSSAI", - &asn_OP_SEQUENCE, - asn_DEF_SNSSAI_tags_1, - sizeof(asn_DEF_SNSSAI_tags_1) - /sizeof(asn_DEF_SNSSAI_tags_1[0]), /* 1 */ - asn_DEF_SNSSAI_tags_1, /* Same as above */ - sizeof(asn_DEF_SNSSAI_tags_1) - /sizeof(asn_DEF_SNSSAI_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SNSSAI_1, - 2, /* Elements count */ - &asn_SPC_SNSSAI_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/SNSSAI.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/SNSSAI.h deleted file mode 100644 index b854e6f..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/SNSSAI.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _SNSSAI_H_ -#define _SNSSAI_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* SNSSAI */ -typedef struct SNSSAI { - OCTET_STRING_t sST; - OCTET_STRING_t *sD; /* OPTIONAL */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SNSSAI_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SNSSAI; -extern asn_SEQUENCE_specifics_t asn_SPC_SNSSAI_specs_1; -extern asn_TYPE_member_t asn_MBR_SNSSAI_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _SNSSAI_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ServedPlmnPerCellListItem.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ServedPlmnPerCellListItem.c deleted file mode 100644 index 52fbaf5..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ServedPlmnPerCellListItem.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "ServedPlmnPerCellListItem.h" - -asn_TYPE_member_t asn_MBR_ServedPlmnPerCellListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ServedPlmnPerCellListItem, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_POINTER, 2, offsetof(struct ServedPlmnPerCellListItem, du_PM_5GC), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_FGC_DU_PM_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "du-PM-5GC" - }, - { ATF_POINTER, 1, offsetof(struct ServedPlmnPerCellListItem, du_PM_EPC), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_EPC_DU_PM_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "du-PM-EPC" - }, -}; -static const int asn_MAP_ServedPlmnPerCellListItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_ServedPlmnPerCellListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ServedPlmnPerCellListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* du-PM-5GC */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* du-PM-EPC */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ServedPlmnPerCellListItem_specs_1 = { - sizeof(struct ServedPlmnPerCellListItem), - offsetof(struct ServedPlmnPerCellListItem, _asn_ctx), - asn_MAP_ServedPlmnPerCellListItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_ServedPlmnPerCellListItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ServedPlmnPerCellListItem = { - "ServedPlmnPerCellListItem", - "ServedPlmnPerCellListItem", - &asn_OP_SEQUENCE, - asn_DEF_ServedPlmnPerCellListItem_tags_1, - sizeof(asn_DEF_ServedPlmnPerCellListItem_tags_1) - /sizeof(asn_DEF_ServedPlmnPerCellListItem_tags_1[0]), /* 1 */ - asn_DEF_ServedPlmnPerCellListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_ServedPlmnPerCellListItem_tags_1) - /sizeof(asn_DEF_ServedPlmnPerCellListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ServedPlmnPerCellListItem_1, - 3, /* Elements count */ - &asn_SPC_ServedPlmnPerCellListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ServedPlmnPerCellListItem.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ServedPlmnPerCellListItem.h deleted file mode 100644 index be5ecd6..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ServedPlmnPerCellListItem.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _ServedPlmnPerCellListItem_H_ -#define _ServedPlmnPerCellListItem_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct FGC_DU_PM_Container; -struct EPC_DU_PM_Container; - -/* ServedPlmnPerCellListItem */ -typedef struct ServedPlmnPerCellListItem { - PLMN_Identity_t pLMN_Identity; - struct FGC_DU_PM_Container *du_PM_5GC; /* OPTIONAL */ - struct EPC_DU_PM_Container *du_PM_EPC; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedPlmnPerCellListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ServedPlmnPerCellListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_ServedPlmnPerCellListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_ServedPlmnPerCellListItem_1[3]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "FGC-DU-PM-Container.h" -#include "EPC-DU-PM-Container.h" - -#endif /* _ServedPlmnPerCellListItem_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/SlicePerPlmnPerCellListItem.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/SlicePerPlmnPerCellListItem.c deleted file mode 100644 index a463803..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/SlicePerPlmnPerCellListItem.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "SlicePerPlmnPerCellListItem.h" - -static int -memb_fQIPERSlicesPerPlmnPerCellList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 64)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_fQIPERSlicesPerPlmnPerCellList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..64)) */}; -static asn_per_constraints_t asn_PER_type_fQIPERSlicesPerPlmnPerCellList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_fQIPERSlicesPerPlmnPerCellList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..64)) */}; -static asn_per_constraints_t asn_PER_memb_fQIPERSlicesPerPlmnPerCellList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_fQIPERSlicesPerPlmnPerCellList_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_FQIPERSlicesPerPlmnPerCellListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_fQIPERSlicesPerPlmnPerCellList_specs_3 = { - sizeof(struct SlicePerPlmnPerCellListItem__fQIPERSlicesPerPlmnPerCellList), - offsetof(struct SlicePerPlmnPerCellListItem__fQIPERSlicesPerPlmnPerCellList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_fQIPERSlicesPerPlmnPerCellList_3 = { - "fQIPERSlicesPerPlmnPerCellList", - "fQIPERSlicesPerPlmnPerCellList", - &asn_OP_SEQUENCE_OF, - asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3, - sizeof(asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3) - /sizeof(asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3[0]) - 1, /* 1 */ - asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3, /* Same as above */ - sizeof(asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3) - /sizeof(asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3[0]), /* 2 */ - { &asn_OER_type_fQIPERSlicesPerPlmnPerCellList_constr_3, &asn_PER_type_fQIPERSlicesPerPlmnPerCellList_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_fQIPERSlicesPerPlmnPerCellList_3, - 1, /* Single element */ - &asn_SPC_fQIPERSlicesPerPlmnPerCellList_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SlicePerPlmnPerCellListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SlicePerPlmnPerCellListItem, sliceID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SNSSAI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sliceID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SlicePerPlmnPerCellListItem, fQIPERSlicesPerPlmnPerCellList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_fQIPERSlicesPerPlmnPerCellList_3, - 0, - { &asn_OER_memb_fQIPERSlicesPerPlmnPerCellList_constr_3, &asn_PER_memb_fQIPERSlicesPerPlmnPerCellList_constr_3, memb_fQIPERSlicesPerPlmnPerCellList_constraint_1 }, - 0, 0, /* No default value */ - "fQIPERSlicesPerPlmnPerCellList" - }, -}; -static const ber_tlv_tag_t asn_DEF_SlicePerPlmnPerCellListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SlicePerPlmnPerCellListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sliceID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fQIPERSlicesPerPlmnPerCellList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SlicePerPlmnPerCellListItem_specs_1 = { - sizeof(struct SlicePerPlmnPerCellListItem), - offsetof(struct SlicePerPlmnPerCellListItem, _asn_ctx), - asn_MAP_SlicePerPlmnPerCellListItem_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_SlicePerPlmnPerCellListItem = { - "SlicePerPlmnPerCellListItem", - "SlicePerPlmnPerCellListItem", - &asn_OP_SEQUENCE, - asn_DEF_SlicePerPlmnPerCellListItem_tags_1, - sizeof(asn_DEF_SlicePerPlmnPerCellListItem_tags_1) - /sizeof(asn_DEF_SlicePerPlmnPerCellListItem_tags_1[0]), /* 1 */ - asn_DEF_SlicePerPlmnPerCellListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_SlicePerPlmnPerCellListItem_tags_1) - /sizeof(asn_DEF_SlicePerPlmnPerCellListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SlicePerPlmnPerCellListItem_1, - 2, /* Elements count */ - &asn_SPC_SlicePerPlmnPerCellListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/SlicePerPlmnPerCellListItem.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/SlicePerPlmnPerCellListItem.h deleted file mode 100644 index 1d704d5..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/SlicePerPlmnPerCellListItem.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _SlicePerPlmnPerCellListItem_H_ -#define _SlicePerPlmnPerCellListItem_H_ - - -#include - -/* Including external dependencies */ -#include "SNSSAI.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct FQIPERSlicesPerPlmnPerCellListItem; - -/* SlicePerPlmnPerCellListItem */ -typedef struct SlicePerPlmnPerCellListItem { - SNSSAI_t sliceID; - struct SlicePerPlmnPerCellListItem__fQIPERSlicesPerPlmnPerCellList { - A_SEQUENCE_OF(struct FQIPERSlicesPerPlmnPerCellListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } fQIPERSlicesPerPlmnPerCellList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SlicePerPlmnPerCellListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SlicePerPlmnPerCellListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_SlicePerPlmnPerCellListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_SlicePerPlmnPerCellListItem_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "FQIPERSlicesPerPlmnPerCellListItem.h" - -#endif /* _SlicePerPlmnPerCellListItem_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/SliceToReportListItem.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/SliceToReportListItem.c deleted file mode 100644 index ae32ba9..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/SliceToReportListItem.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "SliceToReportListItem.h" - -static int -memb_fQIPERSlicesPerPlmnList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 64)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } 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_type_fQIPERSlicesPerPlmnList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..64)) */}; -static asn_per_constraints_t asn_PER_type_fQIPERSlicesPerPlmnList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_fQIPERSlicesPerPlmnList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..64)) */}; -static asn_per_constraints_t asn_PER_memb_fQIPERSlicesPerPlmnList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_fQIPERSlicesPerPlmnList_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_FQIPERSlicesPerPlmnListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_fQIPERSlicesPerPlmnList_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_fQIPERSlicesPerPlmnList_specs_3 = { - sizeof(struct SliceToReportListItem__fQIPERSlicesPerPlmnList), - offsetof(struct SliceToReportListItem__fQIPERSlicesPerPlmnList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_fQIPERSlicesPerPlmnList_3 = { - "fQIPERSlicesPerPlmnList", - "fQIPERSlicesPerPlmnList", - &asn_OP_SEQUENCE_OF, - asn_DEF_fQIPERSlicesPerPlmnList_tags_3, - sizeof(asn_DEF_fQIPERSlicesPerPlmnList_tags_3) - /sizeof(asn_DEF_fQIPERSlicesPerPlmnList_tags_3[0]) - 1, /* 1 */ - asn_DEF_fQIPERSlicesPerPlmnList_tags_3, /* Same as above */ - sizeof(asn_DEF_fQIPERSlicesPerPlmnList_tags_3) - /sizeof(asn_DEF_fQIPERSlicesPerPlmnList_tags_3[0]), /* 2 */ - { &asn_OER_type_fQIPERSlicesPerPlmnList_constr_3, &asn_PER_type_fQIPERSlicesPerPlmnList_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_fQIPERSlicesPerPlmnList_3, - 1, /* Single element */ - &asn_SPC_fQIPERSlicesPerPlmnList_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SliceToReportListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SliceToReportListItem, sliceID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SNSSAI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sliceID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SliceToReportListItem, fQIPERSlicesPerPlmnList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_fQIPERSlicesPerPlmnList_3, - 0, - { &asn_OER_memb_fQIPERSlicesPerPlmnList_constr_3, &asn_PER_memb_fQIPERSlicesPerPlmnList_constr_3, memb_fQIPERSlicesPerPlmnList_constraint_1 }, - 0, 0, /* No default value */ - "fQIPERSlicesPerPlmnList" - }, -}; -static const ber_tlv_tag_t asn_DEF_SliceToReportListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SliceToReportListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sliceID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fQIPERSlicesPerPlmnList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SliceToReportListItem_specs_1 = { - sizeof(struct SliceToReportListItem), - offsetof(struct SliceToReportListItem, _asn_ctx), - asn_MAP_SliceToReportListItem_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_SliceToReportListItem = { - "SliceToReportListItem", - "SliceToReportListItem", - &asn_OP_SEQUENCE, - asn_DEF_SliceToReportListItem_tags_1, - sizeof(asn_DEF_SliceToReportListItem_tags_1) - /sizeof(asn_DEF_SliceToReportListItem_tags_1[0]), /* 1 */ - asn_DEF_SliceToReportListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_SliceToReportListItem_tags_1) - /sizeof(asn_DEF_SliceToReportListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SliceToReportListItem_1, - 2, /* Elements count */ - &asn_SPC_SliceToReportListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/SliceToReportListItem.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/SliceToReportListItem.h deleted file mode 100644 index c25b20a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/SliceToReportListItem.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _SliceToReportListItem_H_ -#define _SliceToReportListItem_H_ - - -#include - -/* Including external dependencies */ -#include "SNSSAI.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct FQIPERSlicesPerPlmnListItem; - -/* SliceToReportListItem */ -typedef struct SliceToReportListItem { - SNSSAI_t sliceID; - struct SliceToReportListItem__fQIPERSlicesPerPlmnList { - A_SEQUENCE_OF(struct FQIPERSlicesPerPlmnListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } fQIPERSlicesPerPlmnList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SliceToReportListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SliceToReportListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_SliceToReportListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_SliceToReportListItem_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "FQIPERSlicesPerPlmnListItem.h" - -#endif /* _SliceToReportListItem_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/SuccessfulOutcome.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/SuccessfulOutcome.c deleted file mode 100644 index 2992230..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/SuccessfulOutcome.c +++ /dev/null @@ -1,409 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "SuccessfulOutcome.h" - -static const long asn_VAL_1_id_RICsubscription = 8; -static const long asn_VAL_1_reject = 0; -static const long asn_VAL_2_id_RICsubscriptionDelete = 9; -static const long asn_VAL_2_reject = 0; -static const long asn_VAL_3_id_RICserviceUpdate = 7; -static const long asn_VAL_3_reject = 0; -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_E2nodeConfigurationUpdate = 10; -static const long asn_VAL_6_reject = 0; -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_ErrorIndication = 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[] = { - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_RICsubscription }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_RICsubscriptionDelete }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_RICserviceUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICcontrolRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_RICcontrol }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_E2setupRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2setupResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2setupFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_E2setup }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_E2nodeConfigurationUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2nodeConfigurationUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2nodeConfigurationUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_E2nodeConfigurationUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_E2connectionUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2connectionUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2connectionUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_E2connectionUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ResetRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_Reset }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICindication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_RICindication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceQuery }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_10_id_RICserviceQuery }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_11_id_ErrorIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequired }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_12_id_RICsubscriptionDeleteRequired }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_ignore } -}; -static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { - { 12, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } -}; -static int -memb_procedureCode_constraint_1(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; - } -} - -static asn_type_selector_result_t -select_SuccessfulOutcome_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_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 4; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SuccessfulOutcome, procedureCode)); - - 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_1(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_SuccessfulOutcome_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_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 1; /* &SuccessfulOutcome */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SuccessfulOutcome, procedureCode)); - - 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_1(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_procedureCode_constr_2 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { 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_TYPE_member_t asn_MBR_value_4[] = { - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICsubscriptionResponse), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionResponse, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionResponse" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICsubscriptionDeleteResponse), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteResponse, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionDeleteResponse" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICserviceUpdateAcknowledge), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdateAcknowledge, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICserviceUpdateAcknowledge" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICcontrolAcknowledge), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolAcknowledge, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolAcknowledge" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.E2setupResponse), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupResponse, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2setupResponse" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__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 SuccessfulOutcome__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 SuccessfulOutcome__value, choice.ResetResponse), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResetResponse, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ResetResponse" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { - { (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 SuccessfulOutcome__value), - offsetof(struct SuccessfulOutcome__value, _asn_ctx), - offsetof(struct SuccessfulOutcome__value, present), - sizeof(((struct SuccessfulOutcome__value *)0)->present), - asn_MAP_value_tag2el_4, - 8, /* 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, - 8, /* Elements count */ - &asn_SPC_value_specs_4 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SuccessfulOutcome_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome, procedureCode), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProcedureCode, - 0, - { &asn_OER_memb_procedureCode_constr_2, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, - 0, 0, /* No default value */ - "procedureCode" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SuccessfulOutcome_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 SuccessfulOutcome, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_4, - select_SuccessfulOutcome_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_SuccessfulOutcome_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SuccessfulOutcome_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ - { (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_SuccessfulOutcome_specs_1 = { - sizeof(struct SuccessfulOutcome), - offsetof(struct SuccessfulOutcome, _asn_ctx), - asn_MAP_SuccessfulOutcome_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_SuccessfulOutcome = { - "SuccessfulOutcome", - "SuccessfulOutcome", - &asn_OP_SEQUENCE, - asn_DEF_SuccessfulOutcome_tags_1, - sizeof(asn_DEF_SuccessfulOutcome_tags_1) - /sizeof(asn_DEF_SuccessfulOutcome_tags_1[0]), /* 1 */ - asn_DEF_SuccessfulOutcome_tags_1, /* Same as above */ - sizeof(asn_DEF_SuccessfulOutcome_tags_1) - /sizeof(asn_DEF_SuccessfulOutcome_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SuccessfulOutcome_1, - 3, /* Elements count */ - &asn_SPC_SuccessfulOutcome_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/SuccessfulOutcome.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/SuccessfulOutcome.h deleted file mode 100644 index 4798fa0..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/SuccessfulOutcome.h +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _SuccessfulOutcome_H_ -#define _SuccessfulOutcome_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProcedureCode.h" -#include "Criticality.h" -#include "ANY.h" -#include "asn_ioc.h" -#include "RICsubscriptionRequest.h" -#include "RICsubscriptionResponse.h" -#include "RICsubscriptionFailure.h" -#include "RICsubscriptionDeleteRequest.h" -#include "RICsubscriptionDeleteResponse.h" -#include "RICsubscriptionDeleteFailure.h" -#include "RICserviceUpdate.h" -#include "RICserviceUpdateAcknowledge.h" -#include "RICserviceUpdateFailure.h" -#include "RICcontrolRequest.h" -#include "RICcontrolAcknowledge.h" -#include "RICcontrolFailure.h" -#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 "ErrorIndication.h" -#include "RICsubscriptionDeleteRequired.h" -#include "OPEN_TYPE.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum SuccessfulOutcome__value_PR { - SuccessfulOutcome__value_PR_NOTHING, /* No components present */ - SuccessfulOutcome__value_PR_RICsubscriptionResponse, - SuccessfulOutcome__value_PR_RICsubscriptionDeleteResponse, - SuccessfulOutcome__value_PR_RICserviceUpdateAcknowledge, - SuccessfulOutcome__value_PR_RICcontrolAcknowledge, - SuccessfulOutcome__value_PR_E2setupResponse, - SuccessfulOutcome__value_PR_E2nodeConfigurationUpdateAcknowledge, - SuccessfulOutcome__value_PR_E2connectionUpdateAcknowledge, - SuccessfulOutcome__value_PR_ResetResponse -} SuccessfulOutcome__value_PR; - -/* SuccessfulOutcome */ -typedef struct SuccessfulOutcome { - ProcedureCode_t procedureCode; - Criticality_t criticality; - struct SuccessfulOutcome__value { - SuccessfulOutcome__value_PR present; - union SuccessfulOutcome__value_u { - RICsubscriptionResponse_t RICsubscriptionResponse; - RICsubscriptionDeleteResponse_t RICsubscriptionDeleteResponse; - RICserviceUpdateAcknowledge_t RICserviceUpdateAcknowledge; - RICcontrolAcknowledge_t RICcontrolAcknowledge; - E2setupResponse_t E2setupResponse; - E2nodeConfigurationUpdateAcknowledge_t E2nodeConfigurationUpdateAcknowledge; - E2connectionUpdateAcknowledge_t E2connectionUpdateAcknowledge; - ResetResponse_t ResetResponse; - } 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; -} SuccessfulOutcome_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SuccessfulOutcome; -extern asn_SEQUENCE_specifics_t asn_SPC_SuccessfulOutcome_specs_1; -extern asn_TYPE_member_t asn_MBR_SuccessfulOutcome_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _SuccessfulOutcome_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TNLinformation.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TNLinformation.c deleted file mode 100644 index 0c37796..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TNLinformation.c +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TNLinformation.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TNLinformation.h deleted file mode 100644 index cbb3c46..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TNLinformation.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _TNLinformation_H_ -#define _TNLinformation_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TNLusage.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TNLusage.c deleted file mode 100644 index 8c0ce3a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TNLusage.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TNLusage.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TNLusage.h deleted file mode 100644 index 30b0aee..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TNLusage.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _TNLusage_H_ -#define _TNLusage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TimeToWait.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TimeToWait.c deleted file mode 100644 index 4c5ec81..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TimeToWait.c +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "TimeToWait.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_TimeToWait_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_TimeToWait_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_TimeToWait_value2enum_1[] = { - { 0, 3, "v1s" }, - { 1, 3, "v2s" }, - { 2, 3, "v5s" }, - { 3, 4, "v10s" }, - { 4, 4, "v20s" }, - { 5, 4, "v60s" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_TimeToWait_enum2value_1[] = { - 3, /* v10s(3) */ - 0, /* v1s(0) */ - 4, /* v20s(4) */ - 1, /* v2s(1) */ - 2, /* v5s(2) */ - 5 /* v60s(5) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_TimeToWait_specs_1 = { - asn_MAP_TimeToWait_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_TimeToWait_enum2value_1, /* N => "tag"; sorted by N */ - 6, /* Number of elements in the maps */ - 7, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_TimeToWait_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_TimeToWait = { - "TimeToWait", - "TimeToWait", - &asn_OP_NativeEnumerated, - asn_DEF_TimeToWait_tags_1, - sizeof(asn_DEF_TimeToWait_tags_1) - /sizeof(asn_DEF_TimeToWait_tags_1[0]), /* 1 */ - asn_DEF_TimeToWait_tags_1, /* Same as above */ - sizeof(asn_DEF_TimeToWait_tags_1) - /sizeof(asn_DEF_TimeToWait_tags_1[0]), /* 1 */ - { &asn_OER_type_TimeToWait_constr_1, &asn_PER_type_TimeToWait_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_TimeToWait_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TimeToWait.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TimeToWait.h deleted file mode 100644 index 69793d7..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TimeToWait.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _TimeToWait_H_ -#define _TimeToWait_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum TimeToWait { - TimeToWait_v1s = 0, - TimeToWait_v2s = 1, - TimeToWait_v5s = 2, - TimeToWait_v10s = 3, - TimeToWait_v20s = 4, - TimeToWait_v60s = 5 - /* - * Enumeration is extensible - */ -} e_TimeToWait; - -/* TimeToWait */ -typedef long TimeToWait_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_TimeToWait; -asn_struct_free_f TimeToWait_free; -asn_struct_print_f TimeToWait_print; -asn_constr_check_f TimeToWait_constraint; -ber_type_decoder_f TimeToWait_decode_ber; -der_type_encoder_f TimeToWait_encode_der; -xer_type_decoder_f TimeToWait_decode_xer; -xer_type_encoder_f TimeToWait_encode_xer; -oer_type_decoder_f TimeToWait_decode_oer; -oer_type_encoder_f TimeToWait_encode_oer; -per_type_decoder_f TimeToWait_decode_uper; -per_type_encoder_f TimeToWait_encode_uper; -per_type_decoder_f TimeToWait_decode_aper; -per_type_encoder_f TimeToWait_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _TimeToWait_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Timestamp.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Timestamp.c deleted file mode 100644 index 4087751..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Timestamp.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "Timestamp.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_Timestamp_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Timestamp = { - "Timestamp", - "Timestamp", - &asn_OP_OCTET_STRING, - asn_DEF_Timestamp_tags_1, - sizeof(asn_DEF_Timestamp_tags_1) - /sizeof(asn_DEF_Timestamp_tags_1[0]), /* 1 */ - asn_DEF_Timestamp_tags_1, /* Same as above */ - sizeof(asn_DEF_Timestamp_tags_1) - /sizeof(asn_DEF_Timestamp_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Timestamp.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Timestamp.h deleted file mode 100644 index f77ac4a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Timestamp.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _Timestamp_H_ -#define _Timestamp_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Timestamp */ -typedef OCTET_STRING_t Timestamp_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_Timestamp; -asn_struct_free_f Timestamp_free; -asn_struct_print_f Timestamp_print; -asn_constr_check_f Timestamp_constraint; -ber_type_decoder_f Timestamp_decode_ber; -der_type_encoder_f Timestamp_encode_der; -xer_type_decoder_f Timestamp_decode_xer; -xer_type_encoder_f Timestamp_encode_xer; -oer_type_decoder_f Timestamp_decode_oer; -oer_type_encoder_f Timestamp_encode_oer; -per_type_decoder_f Timestamp_decode_uper; -per_type_encoder_f Timestamp_encode_uper; -per_type_decoder_f Timestamp_decode_aper; -per_type_encoder_f Timestamp_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Timestamp_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TransactionID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TransactionID.c deleted file mode 100644 index b6c2c44..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TransactionID.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -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/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TransactionID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TransactionID.h deleted file mode 100644 index bcfd5b8..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TransactionID.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _TransactionID_H_ -#define _TransactionID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#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 "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Trigger-ConditionIE-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Trigger-ConditionIE-Item.c deleted file mode 100644 index 069fd1d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Trigger-ConditionIE-Item.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "Trigger-ConditionIE-Item.h" - -asn_TYPE_member_t asn_MBR_Trigger_ConditionIE_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct Trigger_ConditionIE_Item, report_Period_IE), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RT_Period_IE, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "report-Period-IE" - }, -}; -static const ber_tlv_tag_t asn_DEF_Trigger_ConditionIE_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_Trigger_ConditionIE_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* report-Period-IE */ -}; -asn_SEQUENCE_specifics_t asn_SPC_Trigger_ConditionIE_Item_specs_1 = { - sizeof(struct Trigger_ConditionIE_Item), - offsetof(struct Trigger_ConditionIE_Item, _asn_ctx), - asn_MAP_Trigger_ConditionIE_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_Trigger_ConditionIE_Item = { - "Trigger-ConditionIE-Item", - "Trigger-ConditionIE-Item", - &asn_OP_SEQUENCE, - asn_DEF_Trigger_ConditionIE_Item_tags_1, - sizeof(asn_DEF_Trigger_ConditionIE_Item_tags_1) - /sizeof(asn_DEF_Trigger_ConditionIE_Item_tags_1[0]), /* 1 */ - asn_DEF_Trigger_ConditionIE_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_Trigger_ConditionIE_Item_tags_1) - /sizeof(asn_DEF_Trigger_ConditionIE_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_Trigger_ConditionIE_Item_1, - 1, /* Elements count */ - &asn_SPC_Trigger_ConditionIE_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Trigger-ConditionIE-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Trigger-ConditionIE-Item.h deleted file mode 100644 index 173b46a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Trigger-ConditionIE-Item.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _Trigger_ConditionIE_Item_H_ -#define _Trigger_ConditionIE_Item_H_ - - -#include - -/* Including external dependencies */ -#include "RT-Period-IE.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Trigger-ConditionIE-Item */ -typedef struct Trigger_ConditionIE_Item { - RT_Period_IE_t report_Period_IE; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} Trigger_ConditionIE_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_Trigger_ConditionIE_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_Trigger_ConditionIE_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_Trigger_ConditionIE_Item_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _Trigger_ConditionIE_Item_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TriggeringMessage.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TriggeringMessage.c deleted file mode 100644 index 9f286d1..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TriggeringMessage.c +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "TriggeringMessage.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_TriggeringMessage_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_TriggeringMessage_constr_1 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_INTEGER_enum_map_t asn_MAP_TriggeringMessage_value2enum_1[] = { - { 0, 18, "initiating-message" }, - { 1, 18, "successful-outcome" }, - { 2, 21, "unsuccessfull-outcome" } -}; -static const unsigned int asn_MAP_TriggeringMessage_enum2value_1[] = { - 0, /* initiating-message(0) */ - 1, /* successful-outcome(1) */ - 2 /* unsuccessfull-outcome(2) */ -}; -const asn_INTEGER_specifics_t asn_SPC_TriggeringMessage_specs_1 = { - asn_MAP_TriggeringMessage_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_TriggeringMessage_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 0, /* Enumeration is not extensible */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_TriggeringMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_TriggeringMessage = { - "TriggeringMessage", - "TriggeringMessage", - &asn_OP_NativeEnumerated, - asn_DEF_TriggeringMessage_tags_1, - sizeof(asn_DEF_TriggeringMessage_tags_1) - /sizeof(asn_DEF_TriggeringMessage_tags_1[0]), /* 1 */ - asn_DEF_TriggeringMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_TriggeringMessage_tags_1) - /sizeof(asn_DEF_TriggeringMessage_tags_1[0]), /* 1 */ - { &asn_OER_type_TriggeringMessage_constr_1, &asn_PER_type_TriggeringMessage_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_TriggeringMessage_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TriggeringMessage.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TriggeringMessage.h deleted file mode 100644 index b614674..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TriggeringMessage.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _TriggeringMessage_H_ -#define _TriggeringMessage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum TriggeringMessage { - TriggeringMessage_initiating_message = 0, - TriggeringMessage_successful_outcome = 1, - TriggeringMessage_unsuccessfull_outcome = 2 -} e_TriggeringMessage; - -/* TriggeringMessage */ -typedef long TriggeringMessage_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_TriggeringMessage_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_TriggeringMessage; -extern const asn_INTEGER_specifics_t asn_SPC_TriggeringMessage_specs_1; -asn_struct_free_f TriggeringMessage_free; -asn_struct_print_f TriggeringMessage_print; -asn_constr_check_f TriggeringMessage_constraint; -ber_type_decoder_f TriggeringMessage_decode_ber; -der_type_encoder_f TriggeringMessage_encode_der; -xer_type_decoder_f TriggeringMessage_decode_xer; -xer_type_encoder_f TriggeringMessage_encode_xer; -oer_type_decoder_f TriggeringMessage_decode_oer; -oer_type_encoder_f TriggeringMessage_encode_oer; -per_type_decoder_f TriggeringMessage_decode_uper; -per_type_encoder_f TriggeringMessage_encode_uper; -per_type_decoder_f TriggeringMessage_decode_aper; -per_type_encoder_f TriggeringMessage_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _TriggeringMessage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TypeOfError.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TypeOfError.c deleted file mode 100644 index ea504c9..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TypeOfError.c +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "TypeOfError.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_TypeOfError_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_TypeOfError_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 */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_TypeOfError_value2enum_1[] = { - { 0, 14, "not-understood" }, - { 1, 7, "missing" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_TypeOfError_enum2value_1[] = { - 1, /* missing(1) */ - 0 /* not-understood(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_TypeOfError_specs_1 = { - asn_MAP_TypeOfError_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_TypeOfError_enum2value_1, /* 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_TypeOfError_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_TypeOfError = { - "TypeOfError", - "TypeOfError", - &asn_OP_NativeEnumerated, - asn_DEF_TypeOfError_tags_1, - sizeof(asn_DEF_TypeOfError_tags_1) - /sizeof(asn_DEF_TypeOfError_tags_1[0]), /* 1 */ - asn_DEF_TypeOfError_tags_1, /* Same as above */ - sizeof(asn_DEF_TypeOfError_tags_1) - /sizeof(asn_DEF_TypeOfError_tags_1[0]), /* 1 */ - { &asn_OER_type_TypeOfError_constr_1, &asn_PER_type_TypeOfError_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_TypeOfError_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TypeOfError.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TypeOfError.h deleted file mode 100644 index 51c08b9..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TypeOfError.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _TypeOfError_H_ -#define _TypeOfError_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum TypeOfError { - TypeOfError_not_understood = 0, - TypeOfError_missing = 1 - /* - * Enumeration is extensible - */ -} e_TypeOfError; - -/* TypeOfError */ -typedef long TypeOfError_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_TypeOfError_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_TypeOfError; -extern const asn_INTEGER_specifics_t asn_SPC_TypeOfError_specs_1; -asn_struct_free_f TypeOfError_free; -asn_struct_print_f TypeOfError_print; -asn_constr_check_f TypeOfError_constraint; -ber_type_decoder_f TypeOfError_decode_ber; -der_type_encoder_f TypeOfError_encode_der; -xer_type_decoder_f TypeOfError_decode_xer; -xer_type_encoder_f TypeOfError_encode_xer; -oer_type_decoder_f TypeOfError_decode_oer; -oer_type_encoder_f TypeOfError_encode_oer; -per_type_decoder_f TypeOfError_decode_uper; -per_type_encoder_f TypeOfError_encode_uper; -per_type_decoder_f TypeOfError_decode_aper; -per_type_encoder_f TypeOfError_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _TypeOfError_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/UE-Report-Type.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/UE-Report-Type.c deleted file mode 100644 index 1966c27..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/UE-Report-Type.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "UE-Report-Type.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_UE_Report_Type_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_UE_Report_Type_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_UE_Report_Type_value2enum_1[] = { - { 0, 17, "oDU-Report-Per-UE" }, - { 1, 20, "oCU-CP-Report-Per-UE" }, - { 2, 20, "oCU-UP-Report-Per-UE" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_UE_Report_Type_enum2value_1[] = { - 1, /* oCU-CP-Report-Per-UE(1) */ - 2, /* oCU-UP-Report-Per-UE(2) */ - 0 /* oDU-Report-Per-UE(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_UE_Report_Type_specs_1 = { - asn_MAP_UE_Report_Type_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_UE_Report_Type_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_UE_Report_Type_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_UE_Report_Type = { - "UE-Report-Type", - "UE-Report-Type", - &asn_OP_NativeEnumerated, - asn_DEF_UE_Report_Type_tags_1, - sizeof(asn_DEF_UE_Report_Type_tags_1) - /sizeof(asn_DEF_UE_Report_Type_tags_1[0]), /* 1 */ - asn_DEF_UE_Report_Type_tags_1, /* Same as above */ - sizeof(asn_DEF_UE_Report_Type_tags_1) - /sizeof(asn_DEF_UE_Report_Type_tags_1[0]), /* 1 */ - { &asn_OER_type_UE_Report_Type_constr_1, &asn_PER_type_UE_Report_Type_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_UE_Report_Type_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/UE-Report-Type.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/UE-Report-Type.h deleted file mode 100644 index 02e7cb5..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/UE-Report-Type.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _UE_Report_Type_H_ -#define _UE_Report_Type_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum UE_Report_Type { - UE_Report_Type_oDU_Report_Per_UE = 0, - UE_Report_Type_oCU_CP_Report_Per_UE = 1, - UE_Report_Type_oCU_UP_Report_Per_UE = 2 - /* - * Enumeration is extensible - */ -} e_UE_Report_Type; - -/* UE-Report-Type */ -typedef long UE_Report_Type_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_UE_Report_Type_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_UE_Report_Type; -extern const asn_INTEGER_specifics_t asn_SPC_UE_Report_Type_specs_1; -asn_struct_free_f UE_Report_Type_free; -asn_struct_print_f UE_Report_Type_print; -asn_constr_check_f UE_Report_Type_constraint; -ber_type_decoder_f UE_Report_Type_decode_ber; -der_type_encoder_f UE_Report_Type_encode_der; -xer_type_decoder_f UE_Report_Type_decode_xer; -xer_type_encoder_f UE_Report_Type_encode_xer; -oer_type_decoder_f UE_Report_Type_decode_oer; -oer_type_encoder_f UE_Report_Type_encode_oer; -per_type_decoder_f UE_Report_Type_decode_uper; -per_type_encoder_f UE_Report_Type_encode_uper; -per_type_decoder_f UE_Report_Type_decode_aper; -per_type_encoder_f UE_Report_Type_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _UE_Report_Type_H_ */ -#include diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/UnsuccessfulOutcome.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/UnsuccessfulOutcome.c deleted file mode 100644 index 1a41540..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/UnsuccessfulOutcome.c +++ /dev/null @@ -1,399 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#include "UnsuccessfulOutcome.h" - -static const long asn_VAL_1_id_RICsubscription = 8; -static const long asn_VAL_1_reject = 0; -static const long asn_VAL_2_id_RICsubscriptionDelete = 9; -static const long asn_VAL_2_reject = 0; -static const long asn_VAL_3_id_RICserviceUpdate = 7; -static const long asn_VAL_3_reject = 0; -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_E2nodeConfigurationUpdate = 10; -static const long asn_VAL_6_reject = 0; -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_ErrorIndication = 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[] = { - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_RICsubscription }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_RICsubscriptionDelete }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_RICserviceUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICcontrolRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_RICcontrol }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_E2setupRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2setupResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2setupFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_E2setup }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_E2nodeConfigurationUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2nodeConfigurationUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2nodeConfigurationUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_E2nodeConfigurationUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_E2connectionUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2connectionUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2connectionUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_E2connectionUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ResetRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_Reset }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICindication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_RICindication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceQuery }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_10_id_RICserviceQuery }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_11_id_ErrorIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequired }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_12_id_RICsubscriptionDeleteRequired }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_ignore } -}; -static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { - { 12, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } -}; -static int -memb_procedureCode_constraint_1(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; - } -} - -static asn_type_selector_result_t -select_UnsuccessfulOutcome_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_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 4; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UnsuccessfulOutcome, procedureCode)); - - 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_1(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_UnsuccessfulOutcome_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_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 2; /* &UnsuccessfulOutcome */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UnsuccessfulOutcome, procedureCode)); - - 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_1(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_procedureCode_constr_2 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { 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_TYPE_member_t asn_MBR_value_4[] = { - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICsubscriptionFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICsubscriptionDeleteFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionDeleteFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICserviceUpdateFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdateFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICserviceUpdateFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICcontrolFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.E2setupFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2setupFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__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 UnsuccessfulOutcome__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, 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 UnsuccessfulOutcome__value), - offsetof(struct UnsuccessfulOutcome__value, _asn_ctx), - offsetof(struct UnsuccessfulOutcome__value, present), - sizeof(((struct UnsuccessfulOutcome__value *)0)->present), - asn_MAP_value_tag2el_4, - 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_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, - 7, /* Elements count */ - &asn_SPC_value_specs_4 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_UnsuccessfulOutcome_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome, procedureCode), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProcedureCode, - 0, - { &asn_OER_memb_procedureCode_constr_2, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, - 0, 0, /* No default value */ - "procedureCode" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_UnsuccessfulOutcome_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 UnsuccessfulOutcome, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_4, - select_UnsuccessfulOutcome_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_UnsuccessfulOutcome_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UnsuccessfulOutcome_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ - { (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_UnsuccessfulOutcome_specs_1 = { - sizeof(struct UnsuccessfulOutcome), - offsetof(struct UnsuccessfulOutcome, _asn_ctx), - asn_MAP_UnsuccessfulOutcome_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_UnsuccessfulOutcome = { - "UnsuccessfulOutcome", - "UnsuccessfulOutcome", - &asn_OP_SEQUENCE, - asn_DEF_UnsuccessfulOutcome_tags_1, - sizeof(asn_DEF_UnsuccessfulOutcome_tags_1) - /sizeof(asn_DEF_UnsuccessfulOutcome_tags_1[0]), /* 1 */ - asn_DEF_UnsuccessfulOutcome_tags_1, /* Same as above */ - sizeof(asn_DEF_UnsuccessfulOutcome_tags_1) - /sizeof(asn_DEF_UnsuccessfulOutcome_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UnsuccessfulOutcome_1, - 3, /* Elements count */ - &asn_SPC_UnsuccessfulOutcome_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/UnsuccessfulOutcome.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/UnsuccessfulOutcome.h deleted file mode 100644 index 2001573..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/UnsuccessfulOutcome.h +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` - */ - -#ifndef _UnsuccessfulOutcome_H_ -#define _UnsuccessfulOutcome_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProcedureCode.h" -#include "Criticality.h" -#include "ANY.h" -#include "asn_ioc.h" -#include "RICsubscriptionRequest.h" -#include "RICsubscriptionResponse.h" -#include "RICsubscriptionFailure.h" -#include "RICsubscriptionDeleteRequest.h" -#include "RICsubscriptionDeleteResponse.h" -#include "RICsubscriptionDeleteFailure.h" -#include "RICserviceUpdate.h" -#include "RICserviceUpdateAcknowledge.h" -#include "RICserviceUpdateFailure.h" -#include "RICcontrolRequest.h" -#include "RICcontrolAcknowledge.h" -#include "RICcontrolFailure.h" -#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 "ErrorIndication.h" -#include "RICsubscriptionDeleteRequired.h" -#include "OPEN_TYPE.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum UnsuccessfulOutcome__value_PR { - UnsuccessfulOutcome__value_PR_NOTHING, /* No components present */ - UnsuccessfulOutcome__value_PR_RICsubscriptionFailure, - UnsuccessfulOutcome__value_PR_RICsubscriptionDeleteFailure, - UnsuccessfulOutcome__value_PR_RICserviceUpdateFailure, - UnsuccessfulOutcome__value_PR_RICcontrolFailure, - UnsuccessfulOutcome__value_PR_E2setupFailure, - UnsuccessfulOutcome__value_PR_E2nodeConfigurationUpdateFailure, - UnsuccessfulOutcome__value_PR_E2connectionUpdateFailure -} UnsuccessfulOutcome__value_PR; - -/* UnsuccessfulOutcome */ -typedef struct UnsuccessfulOutcome { - ProcedureCode_t procedureCode; - Criticality_t criticality; - struct UnsuccessfulOutcome__value { - UnsuccessfulOutcome__value_PR present; - union UnsuccessfulOutcome__value_u { - RICsubscriptionFailure_t RICsubscriptionFailure; - RICsubscriptionDeleteFailure_t RICsubscriptionDeleteFailure; - RICserviceUpdateFailure_t RICserviceUpdateFailure; - RICcontrolFailure_t RICcontrolFailure; - E2setupFailure_t E2setupFailure; - E2nodeConfigurationUpdateFailure_t E2nodeConfigurationUpdateFailure; - E2connectionUpdateFailure_t E2connectionUpdateFailure; - } 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; -} UnsuccessfulOutcome_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UnsuccessfulOutcome; -extern asn_SEQUENCE_specifics_t asn_SPC_UnsuccessfulOutcome_specs_1; -extern asn_TYPE_member_t asn_MBR_UnsuccessfulOutcome_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _UnsuccessfulOutcome_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_SEQUENCE_OF.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_SEQUENCE_OF.c deleted file mode 100644 index ec952fc..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_SEQUENCE_OF.c +++ /dev/null @@ -1,41 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -typedef A_SEQUENCE_OF(void) asn_sequence; - -void -asn_sequence_del(void *asn_sequence_of_x, int number, int _do_free) { - asn_sequence *as = (asn_sequence *)asn_sequence_of_x; - - if(as) { - void *ptr; - int n; - - if(number < 0 || number >= as->count) - return; /* Nothing to delete */ - - if(_do_free && as->free) { - ptr = as->array[number]; - } else { - ptr = 0; - } - - /* - * Shift all elements to the left to hide the gap. - */ - --as->count; - for(n = number; n < as->count; n++) - as->array[n] = as->array[n+1]; - - /* - * Invoke the third-party function only when the state - * of the parent structure is consistent. - */ - if(ptr) as->free(ptr); - } -} - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_SEQUENCE_OF.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_SEQUENCE_OF.h deleted file mode 100644 index e35bc44..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_SEQUENCE_OF.h +++ /dev/null @@ -1,52 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_SEQUENCE_OF_H -#define ASN_SEQUENCE_OF_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * SEQUENCE OF is the same as SET OF with a tiny difference: - * the delete operation preserves the initial order of elements - * and thus MAY operate in non-constant time. - */ -#define A_SEQUENCE_OF(type) A_SET_OF(type) - -#define ASN_SEQUENCE_ADD(headptr, ptr) \ - asn_sequence_add((headptr), (ptr)) - -/*********************************************** - * Implementation of the SEQUENCE OF structure. - */ - -#define asn_sequence_add asn_set_add -#define asn_sequence_empty asn_set_empty - -/* - * Delete the element from the set by its number (base 0). - * This is NOT a constant-time operation. - * The order of elements is preserved. - * If _do_free is given AND the (*free) is initialized, the element - * will be freed using the custom (*free) function as well. - */ -void asn_sequence_del(void *asn_sequence_of_x, int number, int _do_free); - -/* - * Cope with different conversions requirements to/from void in C and C++. - * This is mostly useful for support library. - */ -typedef A_SEQUENCE_OF(void) asn_anonymous_sequence_; -#define _A_SEQUENCE_FROM_VOID(ptr) ((asn_anonymous_sequence_ *)(ptr)) -#define _A_CSEQUENCE_FROM_VOID(ptr) ((const asn_anonymous_sequence_ *)(ptr)) - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_SEQUENCE_OF_H */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_SET_OF.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_SET_OF.c deleted file mode 100644 index 944f2cb..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_SET_OF.c +++ /dev/null @@ -1,88 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Add another element into the set. - */ -int -asn_set_add(void *asn_set_of_x, void *ptr) { - asn_anonymous_set_ *as = _A_SET_FROM_VOID(asn_set_of_x); - - if(as == 0 || ptr == 0) { - errno = EINVAL; /* Invalid arguments */ - return -1; - } - - /* - * Make sure there's enough space to insert an element. - */ - if(as->count == as->size) { - int _newsize = as->size ? (as->size << 1) : 4; - void *_new_arr; - _new_arr = REALLOC(as->array, _newsize * sizeof(as->array[0])); - if(_new_arr) { - as->array = (void **)_new_arr; - as->size = _newsize; - } else { - /* ENOMEM */ - return -1; - } - } - - as->array[as->count++] = ptr; - - return 0; -} - -void -asn_set_del(void *asn_set_of_x, int number, int _do_free) { - asn_anonymous_set_ *as = _A_SET_FROM_VOID(asn_set_of_x); - - if(as) { - void *ptr; - if(number < 0 || number >= as->count) - return; - - if(_do_free && as->free) { - ptr = as->array[number]; - } else { - ptr = 0; - } - - as->array[number] = as->array[--as->count]; - - /* - * Invoke the third-party function only when the state - * of the parent structure is consistent. - */ - if(ptr) as->free(ptr); - } -} - -/* - * Free the contents of the set, do not free the set itself. - */ -void -asn_set_empty(void *asn_set_of_x) { - asn_anonymous_set_ *as = _A_SET_FROM_VOID(asn_set_of_x); - - if(as) { - if(as->array) { - if(as->free) { - while(as->count--) - as->free(as->array[as->count]); - } - FREEMEM(as->array); - as->array = 0; - } - as->count = 0; - as->size = 0; - } - -} - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_SET_OF.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_SET_OF.h deleted file mode 100644 index 882e1a4..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_SET_OF.h +++ /dev/null @@ -1,72 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_SET_OF_H -#define ASN_SET_OF_H - -#ifdef __cplusplus -#define A_SET_OF(type) \ - struct { \ - type **array; \ - int count; /* Meaningful size */ \ - int size; /* Allocated size */ \ - void (*free)(decltype(*array)); \ - } -#else /* C */ -#define A_SET_OF(type) \ - struct { \ - type **array; \ - int count; /* Meaningful size */ \ - int size; /* Allocated size */ \ - void (*free)(type *); \ - } -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#define ASN_SET_ADD(headptr, ptr) \ - asn_set_add((headptr), (ptr)) - -/******************************************* - * Implementation of the SET OF structure. - */ - -/* - * Add another structure into the set by its pointer. - * RETURN VALUES: - * 0 for success and -1/errno for failure. - */ -int asn_set_add(void *asn_set_of_x, void *ptr); - -/* - * Delete the element from the set by its number (base 0). - * This is a constant-time operation. The order of elements before the - * deleted ones is guaranteed, the order of elements after the deleted - * one is NOT guaranteed. - * If _do_free is given AND the (*free) is initialized, the element - * will be freed using the custom (*free) function as well. - */ -void asn_set_del(void *asn_set_of_x, int number, int _do_free); - -/* - * Empty the contents of the set. Will free the elements, if (*free) is given. - * Will NOT free the set itself. - */ -void asn_set_empty(void *asn_set_of_x); - -/* - * Cope with different conversions requirements to/from void in C and C++. - * This is mostly useful for support library. - */ -typedef A_SET_OF(void) asn_anonymous_set_; -#define _A_SET_FROM_VOID(ptr) ((asn_anonymous_set_ *)(ptr)) -#define _A_CSET_FROM_VOID(ptr) ((const asn_anonymous_set_ *)(ptr)) - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_SET_OF_H */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_application.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_application.c deleted file mode 100644 index 2bff460..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_application.c +++ /dev/null @@ -1,481 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -static asn_enc_rval_t asn_encode_internal(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, - const asn_TYPE_descriptor_t *td, - const void *sptr, - asn_app_consume_bytes_f *callback, - void *callback_key); - - -struct callback_count_bytes_key { - asn_app_consume_bytes_f *callback; - void *callback_key; - size_t computed_size; -}; - -/* - * Encoder which just counts bytes that come through it. - */ -static int -callback_count_bytes_cb(const void *data, size_t size, void *keyp) { - struct callback_count_bytes_key *key = keyp; - int ret; - - ret = key->callback(data, size, key->callback_key); - if(ret >= 0) { - key->computed_size += size; - } - - return ret; -} - -struct overrun_encoder_key { - void *buffer; - size_t buffer_size; - size_t computed_size; -}; - -struct dynamic_encoder_key { - void *buffer; - size_t buffer_size; - size_t computed_size; -}; - -struct callback_failure_catch_key { - asn_app_consume_bytes_f *callback; - void *callback_key; - int callback_failed; -}; - -/* - * Encoder which doesn't stop counting bytes - * even if it reaches the end of the buffer. - */ -static int -overrun_encoder_cb(const void *data, size_t size, void *keyp) { - struct overrun_encoder_key *key = keyp; - - if(key->computed_size + size > key->buffer_size) { - /* - * Avoid accident on the next call: - * stop adding bytes to the buffer. - */ - key->buffer_size = 0; - } else { - memcpy((char *)key->buffer + key->computed_size, data, size); - } - key->computed_size += size; - - return 0; -} - -/* - * Encoder which dynamically allocates output, and continues - * to count even if allocation failed. - */ -static int -dynamic_encoder_cb(const void *data, size_t size, void *keyp) { - struct dynamic_encoder_key *key = keyp; - - if(key->buffer) { - if(key->computed_size + size >= key->buffer_size) { - void *p; - size_t new_size = key->buffer_size; - - do { - new_size *= 2; - } while(new_size <= key->computed_size + size); - - p = REALLOC(key->buffer, new_size); - if(p) { - key->buffer = p; - key->buffer_size = new_size; - } else { - FREEMEM(key->buffer); - key->buffer = 0; - key->buffer_size = 0; - key->computed_size += size; - return 0; - } - } - memcpy((char *)key->buffer + key->computed_size, data, size); - } - - key->computed_size += size; - - return 0; -} - -/* - * Encoder which help convert the application level encoder failure into EIO. - */ -static int -callback_failure_catch_cb(const void *data, size_t size, void *keyp) { - struct callback_failure_catch_key *key = keyp; - int ret; - - ret = key->callback(data, size, key->callback_key); - if(ret < 0) { - key->callback_failed = 1; - } - - return ret; -} - -asn_enc_rval_t -asn_encode(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, const asn_TYPE_descriptor_t *td, - const void *sptr, asn_app_consume_bytes_f *callback, void *callback_key) { - struct callback_failure_catch_key cb_key; - asn_enc_rval_t er = {0,0,0}; - - if(!callback) { - errno = EINVAL; - ASN__ENCODE_FAILED; - } - - cb_key.callback = callback; - cb_key.callback_key = callback_key; - cb_key.callback_failed = 0; - - er = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, - callback_failure_catch_cb, &cb_key); - if(cb_key.callback_failed) { - assert(er.encoded == -1); - assert(errno == EBADF); - errno = EIO; - } - - return er; -} - -asn_enc_rval_t -asn_encode_to_buffer(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, - const asn_TYPE_descriptor_t *td, const void *sptr, - void *buffer, size_t buffer_size) { - struct overrun_encoder_key buf_key; - asn_enc_rval_t er = {0,0,0}; - - if(buffer_size > 0 && !buffer) { - errno = EINVAL; - ASN__ENCODE_FAILED; - } - - buf_key.buffer = buffer; - buf_key.buffer_size = buffer_size; - buf_key.computed_size = 0; - - er = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, - overrun_encoder_cb, &buf_key); - - if(er.encoded >= 0 && (size_t)er.encoded != buf_key.computed_size) { - ASN_DEBUG("asn_encode() returned %" ASN_PRI_SSIZE - " yet produced %" ASN_PRI_SIZE " bytes", - er.encoded, buf_key.computed_size); - assert(er.encoded < 0 || (size_t)er.encoded == buf_key.computed_size); - } - - return er; -} - -asn_encode_to_new_buffer_result_t -asn_encode_to_new_buffer(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, - const asn_TYPE_descriptor_t *td, const void *sptr) { - struct dynamic_encoder_key buf_key; - asn_encode_to_new_buffer_result_t res; - - buf_key.buffer_size = 16; - buf_key.buffer = MALLOC(buf_key.buffer_size); - buf_key.computed_size = 0; - - res.result = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, - dynamic_encoder_cb, &buf_key); - - if(res.result.encoded >= 0 - && (size_t)res.result.encoded != buf_key.computed_size) { - ASN_DEBUG("asn_encode() returned %" ASN_PRI_SSIZE - " yet produced %" ASN_PRI_SIZE " bytes", - res.result.encoded, buf_key.computed_size); - assert(res.result.encoded < 0 - || (size_t)res.result.encoded == buf_key.computed_size); - } - - res.buffer = buf_key.buffer; - - /* 0-terminate just in case. */ - if(res.buffer) { - assert(buf_key.computed_size < buf_key.buffer_size); - ((char *)res.buffer)[buf_key.computed_size] = '\0'; - } - - return res; -} - -static asn_enc_rval_t -asn_encode_internal(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, - const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_consume_bytes_f *callback, void *callback_key) { - asn_enc_rval_t er = {0,0,0}; - enum xer_encoder_flags_e xer_flags = XER_F_CANONICAL; - - (void)opt_codec_ctx; /* Parameters are not checked on encode yet. */ - - if(!td || !sptr) { - errno = EINVAL; - ASN__ENCODE_FAILED; - } - - switch(syntax) { - case ATS_NONSTANDARD_PLAINTEXT: - if(td->op->print_struct) { - struct callback_count_bytes_key cb_key; - cb_key.callback = callback; - cb_key.callback_key = callback_key; - cb_key.computed_size = 0; - if(td->op->print_struct(td, sptr, 1, callback_count_bytes_cb, - &cb_key) - < 0 - || callback_count_bytes_cb("\n", 1, &cb_key) < 0) { - errno = EBADF; /* Structure has incorrect form. */ - er.encoded = -1; - er.failed_type = td; - er.structure_ptr = sptr; - } else { - er.encoded = cb_key.computed_size; - er.failed_type = 0; - er.structure_ptr = 0; - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; - - case ATS_RANDOM: - errno = ENOENT; /* Randomization doesn't make sense on output. */ - ASN__ENCODE_FAILED; - - case ATS_BER: - /* BER is a superset of DER. */ - /* Fall through. */ - case ATS_DER: - if(td->op->der_encoder) { - er = der_encode(td, sptr, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->der_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* DER is not defined for this type. */ - } - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; - case ATS_CER: - errno = ENOENT; /* Transfer syntax is not defined for any type. */ - ASN__ENCODE_FAILED; - -#ifdef ASN_DISABLE_OER_SUPPORT - case ATS_BASIC_OER: - case ATS_CANONICAL_OER: - errno = ENOENT; /* PER is not defined. */ - ASN__ENCODE_FAILED; - break; -#else /* ASN_DISABLE_OER_SUPPORT */ - case ATS_BASIC_OER: - /* CANONICAL-OER is a superset of BASIC-OER. */ - /* Fall through. */ - case ATS_CANONICAL_OER: - if(td->op->oer_encoder) { - er = oer_encode(td, sptr, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->oer_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* OER is not defined for this type. */ - } - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; -#endif /* ASN_DISABLE_OER_SUPPORT */ - -#ifdef ASN_DISABLE_PER_SUPPORT - case ATS_UNALIGNED_BASIC_PER: - case ATS_UNALIGNED_CANONICAL_PER: - case ATS_ALIGNED_BASIC_PER: - case ATS_ALIGNED_CANONICAL_PER: - errno = ENOENT; /* PER is not defined. */ - ASN__ENCODE_FAILED; - break; -#else /* ASN_DISABLE_PER_SUPPORT */ - case ATS_UNALIGNED_BASIC_PER: - /* CANONICAL-UPER is a superset of BASIC-UPER. */ - /* Fall through. */ - case ATS_UNALIGNED_CANONICAL_PER: - if(td->op->uper_encoder) { - er = uper_encode(td, 0, sptr, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->uper_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* UPER is not defined for this type. */ - } - } else { - ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); - if(er.encoded == 0) { - /* Enforce "Complete Encoding" of X.691 #11.1 */ - if(callback("\0", 1, callback_key) < 0) { - errno = EBADF; - ASN__ENCODE_FAILED; - } - er.encoded = 8; /* Exactly 8 zero bits is added. */ - } - /* Convert bits into bytes */ - er.encoded = (er.encoded + 7) >> 3; - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; - case ATS_ALIGNED_BASIC_PER: - /* CANONICAL-APER is a superset of BASIC-APER. */ - /* Fall through. */ - case ATS_ALIGNED_CANONICAL_PER: - if(td->op->aper_encoder) { - er = aper_encode(td, 0, sptr, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->aper_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* APER is not defined for this type. */ - } - } else { - ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); - if(er.encoded == 0) { - /* Enforce "Complete Encoding" of X.691 #11.1 */ - if(callback("\0", 1, callback_key) < 0) { - errno = EBADF; - ASN__ENCODE_FAILED; - } - er.encoded = 8; /* Exactly 8 zero bits is added. */ - } - /* Convert bits into bytes */ - er.encoded = (er.encoded + 7) >> 3; - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; -#endif /* ASN_DISABLE_PER_SUPPORT */ - - case ATS_BASIC_XER: - /* CANONICAL-XER is a superset of BASIC-XER. */ - xer_flags &= ~XER_F_CANONICAL; - xer_flags |= XER_F_BASIC; - /* Fall through. */ - case ATS_CANONICAL_XER: - if(td->op->xer_encoder) { - er = xer_encode(td, sptr, xer_flags, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->xer_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* XER is not defined for this type. */ - } - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; - - default: - errno = ENOENT; - ASN__ENCODE_FAILED; - } - - return er; -} - -asn_dec_rval_t -asn_decode(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, const asn_TYPE_descriptor_t *td, - void **sptr, const void *buffer, size_t size) { - if(!td || !td->op || !sptr || (size && !buffer)) { - ASN__DECODE_FAILED; - } - - switch(syntax) { - case ATS_CER: - case ATS_NONSTANDARD_PLAINTEXT: - default: - errno = ENOENT; - ASN__DECODE_FAILED; - - case ATS_RANDOM: - if(!td->op->random_fill) { - ASN__DECODE_FAILED; - } else { - if(asn_random_fill(td, sptr, 16000) == 0) { - asn_dec_rval_t ret = {RC_OK, 0}; - return ret; - } else { - ASN__DECODE_FAILED; - } - } - break; - - case ATS_DER: - case ATS_BER: - return ber_decode(opt_codec_ctx, td, sptr, buffer, size); - - case ATS_BASIC_OER: - case ATS_CANONICAL_OER: -#ifdef ASN_DISABLE_OER_SUPPORT - errno = ENOENT; - ASN__DECODE_FAILED; -#else - return oer_decode(opt_codec_ctx, td, sptr, buffer, size); -#endif - - case ATS_UNALIGNED_BASIC_PER: - case ATS_UNALIGNED_CANONICAL_PER: -#ifdef ASN_DISABLE_PER_SUPPORT - errno = ENOENT; - ASN__DECODE_FAILED; -#else - return uper_decode_complete(opt_codec_ctx, td, sptr, buffer, size); -#endif - - case ATS_ALIGNED_BASIC_PER: - case ATS_ALIGNED_CANONICAL_PER: -#ifdef ASN_DISABLE_PER_SUPPORT - errno = ENOENT; - ASN__DECODE_FAILED; -#else - return aper_decode_complete(opt_codec_ctx, td, sptr, buffer, size); -#endif - - case ATS_BASIC_XER: - case ATS_CANONICAL_XER: - return xer_decode(opt_codec_ctx, td, sptr, buffer, size); - } -} - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_application.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_application.h deleted file mode 100644 index 034f646..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_application.h +++ /dev/null @@ -1,171 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Application-level ASN.1 callbacks. - */ -#ifndef ASN_APPLICATION_H -#define ASN_APPLICATION_H - -#include "asn_system.h" /* for platform-dependent types */ -#include "asn_codecs.h" /* for ASN.1 codecs specifics */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * A selection of ASN.1 Transfer Syntaxes to use with generalized - * encoders and decoders declared further in this .h file. - */ -enum asn_transfer_syntax { - /* Avoid appearance of a default transfer syntax. */ - ATS_INVALID = 0, - /* Plaintext output (not conforming to any standard), for debugging. */ - ATS_NONSTANDARD_PLAINTEXT, - /* Returns a randomly generated structure. */ - ATS_RANDOM, - /* - * X.690: - * BER: Basic Encoding Rules. - * DER: Distinguished Encoding Rules. - * CER: Canonical Encoding Rules. - * DER and CER are more strict variants of BER. - */ - ATS_BER, - ATS_DER, - ATS_CER, /* Only decoding is supported */ - /* - * X.696: - * OER: Octet Encoding Rules. - * CANONICAL-OER is a more strict variant of BASIC-OER. - */ - ATS_BASIC_OER, - ATS_CANONICAL_OER, - /* - * X.691: - * PER: Packed Encoding Rules. - * CANONICAL-PER is a more strict variant of BASIC-PER. - * NOTE: Produces or consumes a complete encoding (X.691 (08/2015) #11.1). - */ - ATS_UNALIGNED_BASIC_PER, - ATS_UNALIGNED_CANONICAL_PER, - ATS_ALIGNED_BASIC_PER, - ATS_ALIGNED_CANONICAL_PER, - /* - * X.693: - * XER: XML Encoding Rules. - * CANONICAL-XER is a more strict variant of BASIC-XER. - */ - ATS_BASIC_XER, - ATS_CANONICAL_XER -}; - -/* - * A generic encoder for any supported transfer syntax. - * RETURN VALUES: - * The (.encoded) field of the return value is REDEFINED to mean the following: - * >=0: The computed size of the encoded data. Can exceed the (buffer_size). - * -1: Error encoding the structure. See the error code in (errno): - * EINVAL: Incorrect parameters to the function, such as NULLs. - * ENOENT: Encoding transfer syntax is not defined (for this type). - * EBADF: The structure has invalid form or content constraint failed. - * The (.failed_type) and (.structure_ptr) MIGHT be set to the appropriate - * values at the place of failure, if at all possible. - * WARNING: The (.encoded) field of the return value can exceed the buffer_size. - * This is similar to snprintf(3) contract which might return values - * greater than the buffer size. - */ -asn_enc_rval_t asn_encode_to_buffer( - const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ - enum asn_transfer_syntax, - const struct asn_TYPE_descriptor_s *type_to_encode, - const void *structure_to_encode, void *buffer, size_t buffer_size); - -/* - * A variant of asn_encode_to_buffer() with automatically allocated buffer. - * RETURN VALUES: - * On success, returns a newly allocated (.buffer) containing the whole message. - * The message size is returned in (.result.encoded). - * On failure: - * (.buffer) is NULL, - * (.result.encoded) as in asn_encode_to_buffer(), - * The errno codes as in asn_encode_to_buffer(), plus the following: - * ENOMEM: Memory allocation failed due to system or internal limits. - * The user is responsible for freeing the (.buffer). - */ -typedef struct asn_encode_to_new_buffer_result_s { - void *buffer; /* NULL if failed to encode. */ - asn_enc_rval_t result; -} asn_encode_to_new_buffer_result_t; -asn_encode_to_new_buffer_result_t asn_encode_to_new_buffer( - const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ - enum asn_transfer_syntax, - const struct asn_TYPE_descriptor_s *type_to_encode, - const void *structure_to_encode); - - -/* - * Generic type of an application-defined callback to return various - * types of data to the application. - * EXPECTED RETURN VALUES: - * -1: Failed to consume bytes. Abort the mission. - * Non-negative return values indicate success, and ignored. - */ -typedef int(asn_app_consume_bytes_f)(const void *buffer, size_t size, - void *application_specific_key); - - -/* - * A generic encoder for any supported transfer syntax. - * Returns the comprehensive encoding result descriptor (see asn_codecs.h). - * RETURN VALUES: - * The negative (.encoded) field of the return values is accompanied with the - * following error codes (errno): - * EINVAL: Incorrect parameters to the function, such as NULLs. - * ENOENT: Encoding transfer syntax is not defined (for this type). - * EBADF: The structure has invalid form or content constraint failed. - * EIO: The (callback) has returned negative value during encoding. - */ -asn_enc_rval_t asn_encode( - const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ - enum asn_transfer_syntax, - const struct asn_TYPE_descriptor_s *type_to_encode, - const void *structure_to_encode, - asn_app_consume_bytes_f *callback, void *callback_key); - - -/* - * A generic decoder for any supported transfer syntax. - */ -asn_dec_rval_t asn_decode( - const asn_codec_ctx_t *opt_codec_parameters, enum asn_transfer_syntax, - const struct asn_TYPE_descriptor_s *type_to_decode, - void **structure_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of that buffer */ -); - - -/* - * A callback of this type is called whenever constraint validation fails - * on some ASN.1 type. See "constraints.h" for more details on constraint - * validation. - * This callback specifies a descriptor of the ASN.1 type which failed - * the constraint check, as well as human readable message on what - * particular constraint has failed. - */ -typedef void (asn_app_constraint_failed_f)(void *application_specific_key, - const struct asn_TYPE_descriptor_s *type_descriptor_which_failed, - const void *structure_which_failed_ptr, - const char *error_message_format, ...) CC_PRINTFLIKE(4, 5); - - -#ifdef __cplusplus -} -#endif - -#include "constr_TYPE.h" /* for asn_TYPE_descriptor_t */ - -#endif /* ASN_APPLICATION_H */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_bit_data.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_bit_data.c deleted file mode 100644 index fe4b89b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_bit_data.c +++ /dev/null @@ -1,333 +0,0 @@ -/* - * Copyright (c) 2005-2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Create a contiguous non-refillable bit data structure. - * Can be freed by FREEMEM(). - */ -asn_bit_data_t * -asn_bit_data_new_contiguous(const void *data, size_t size_bits) { - size_t size_bytes = (size_bits + 7) / 8; - asn_bit_data_t *pd; - uint8_t *bytes; - - /* Get the extensions map */ - pd = CALLOC(1, sizeof(*pd) + size_bytes + 1); - if(!pd) { - return NULL; - } - bytes = (void *)(((char *)pd) + sizeof(*pd)); - memcpy(bytes, data, size_bytes); - bytes[size_bytes] = 0; - pd->buffer = bytes; - pd->nboff = 0; - pd->nbits = size_bits; - - return pd; -} - - -char * -asn_bit_data_string(asn_bit_data_t *pd) { - static char buf[2][32]; - static int n; - n = (n+1) % 2; - snprintf(buf[n], sizeof(buf[n]), - "{m=%" ASN_PRI_SIZE " span %" ASN_PRI_SIZE "[%" ASN_PRI_SIZE - "..%" ASN_PRI_SIZE "] (%" ASN_PRI_SIZE ")}", - pd->moved, ((uintptr_t)(pd->buffer) & 0xf), pd->nboff, pd->nbits, - pd->nbits - pd->nboff); - return buf[n]; -} - -void -asn_get_undo(asn_bit_data_t *pd, int nbits) { - if((ssize_t)pd->nboff < nbits) { - assert((ssize_t)pd->nboff < nbits); - } else { - pd->nboff -= nbits; - pd->moved -= nbits; - } -} - -/* - * Extract a small number of bits (<= 31) from the specified PER data pointer. - */ -int32_t -asn_get_few_bits(asn_bit_data_t *pd, int nbits) { - size_t off; /* Next after last bit offset */ - ssize_t nleft; /* Number of bits left in this stream */ - uint32_t accum; - const uint8_t *buf; - - if(nbits < 0) - return -1; - - nleft = pd->nbits - pd->nboff; - if(nbits > nleft) { - int32_t tailv, vhead; - if(!pd->refill || nbits > 31) return -1; - /* Accumulate unused bytes before refill */ - ASN_DEBUG("Obtain the rest %d bits (want %d)", - (int)nleft, (int)nbits); - tailv = asn_get_few_bits(pd, nleft); - if(tailv < 0) return -1; - /* Refill (replace pd contents with new data) */ - if(pd->refill(pd)) - return -1; - nbits -= nleft; - vhead = asn_get_few_bits(pd, nbits); - /* Combine the rest of previous pd with the head of new one */ - tailv = (tailv << nbits) | vhead; /* Could == -1 */ - return tailv; - } - - /* - * Normalize position indicator. - */ - if(pd->nboff >= 8) { - pd->buffer += (pd->nboff >> 3); - pd->nbits -= (pd->nboff & ~0x07); - pd->nboff &= 0x07; - } - pd->moved += nbits; - pd->nboff += nbits; - off = pd->nboff; - buf = pd->buffer; - - /* - * Extract specified number of bits. - */ - if(off <= 8) - accum = nbits ? (buf[0]) >> (8 - off) : 0; - else if(off <= 16) - accum = ((buf[0] << 8) + buf[1]) >> (16 - off); - else if(off <= 24) - accum = ((buf[0] << 16) + (buf[1] << 8) + buf[2]) >> (24 - off); - else if(off <= 31) - accum = (((uint32_t)buf[0] << 24) + (buf[1] << 16) - + (buf[2] << 8) + (buf[3])) >> (32 - off); - else if(nbits <= 31) { - asn_bit_data_t tpd = *pd; - /* Here are we with our 31-bits limit plus 1..7 bits offset. */ - asn_get_undo(&tpd, nbits); - /* The number of available bits in the stream allow - * for the following operations to take place without - * invoking the ->refill() function */ - accum = asn_get_few_bits(&tpd, nbits - 24) << 24; - accum |= asn_get_few_bits(&tpd, 24); - } else { - asn_get_undo(pd, nbits); - return -1; - } - - accum &= (((uint32_t)1 << nbits) - 1); - - ASN_DEBUG(" [PER got %2d<=%2d bits => span %d %+ld[%d..%d]:%02x (%d) => 0x%x]", - (int)nbits, (int)nleft, - (int)pd->moved, - (((long)pd->buffer) & 0xf), - (int)pd->nboff, (int)pd->nbits, - ((pd->buffer != NULL)?pd->buffer[0]:0), - (int)(pd->nbits - pd->nboff), - (int)accum); - - return accum; -} - -/* - * Extract a large number of bits from the specified PER data pointer. - */ -int -asn_get_many_bits(asn_bit_data_t *pd, uint8_t *dst, int alright, int nbits) { - int32_t value; - - if(alright && (nbits & 7)) { - /* Perform right alignment of a first few bits */ - value = asn_get_few_bits(pd, nbits & 0x07); - if(value < 0) return -1; - *dst++ = value; /* value is already right-aligned */ - nbits &= ~7; - } - - while(nbits) { - if(nbits >= 24) { - value = asn_get_few_bits(pd, 24); - if(value < 0) return -1; - *(dst++) = value >> 16; - *(dst++) = value >> 8; - *(dst++) = value; - nbits -= 24; - } else { - value = asn_get_few_bits(pd, nbits); - if(value < 0) return -1; - if(nbits & 7) { /* implies left alignment */ - value <<= 8 - (nbits & 7), - nbits += 8 - (nbits & 7); - if(nbits > 24) - *dst++ = value >> 24; - } - if(nbits > 16) - *dst++ = value >> 16; - if(nbits > 8) - *dst++ = value >> 8; - *dst++ = value; - break; - } - } - - return 0; -} - -/* - * Put a small number of bits (<= 31). - */ -int -asn_put_few_bits(asn_bit_outp_t *po, uint32_t bits, int obits) { - size_t off; /* Next after last bit offset */ - size_t omsk; /* Existing last byte meaningful bits mask */ - uint8_t *buf; - - if(obits <= 0 || obits >= 32) return obits ? -1 : 0; - - ASN_DEBUG("[PER put %d bits %x to %p+%d bits]", - obits, (int)bits, (void *)po->buffer, (int)po->nboff); - - /* - * Normalize position indicator. - */ - if(po->nboff >= 8) { - po->buffer += (po->nboff >> 3); - po->nbits -= (po->nboff & ~0x07); - po->nboff &= 0x07; - } - - /* - * Flush whole-bytes output, if necessary. - */ - if(po->nboff + obits > po->nbits) { - size_t complete_bytes; - if(!po->buffer) po->buffer = po->tmpspace; - complete_bytes = (po->buffer - po->tmpspace); - ASN_DEBUG("[PER output %ld complete + %ld]", - (long)complete_bytes, (long)po->flushed_bytes); - if(po->output(po->tmpspace, complete_bytes, po->op_key) < 0) - return -1; - if(po->nboff) - po->tmpspace[0] = po->buffer[0]; - po->buffer = po->tmpspace; - po->nbits = 8 * sizeof(po->tmpspace); - po->flushed_bytes += complete_bytes; - } - - /* - * Now, due to sizeof(tmpspace), we are guaranteed large enough space. - */ - buf = po->buffer; - omsk = ~((1 << (8 - po->nboff)) - 1); - off = (po->nboff + obits); - - /* Clear data of debris before meaningful bits */ - bits &= (((uint32_t)1 << obits) - 1); - - ASN_DEBUG("[PER out %d %u/%x (t=%d,o=%d) %x&%x=%x]", obits, - (int)bits, (int)bits, - (int)po->nboff, (int)off, - buf[0], (int)(omsk&0xff), - (int)(buf[0] & omsk)); - - if(off <= 8) /* Completely within 1 byte */ - po->nboff = off, - bits <<= (8 - off), - buf[0] = (buf[0] & omsk) | bits; - else if(off <= 16) - po->nboff = off, - bits <<= (16 - off), - buf[0] = (buf[0] & omsk) | (bits >> 8), - buf[1] = bits; - else if(off <= 24) - po->nboff = off, - bits <<= (24 - off), - buf[0] = (buf[0] & omsk) | (bits >> 16), - buf[1] = bits >> 8, - buf[2] = bits; - else if(off <= 31) - po->nboff = off, - bits <<= (32 - off), - buf[0] = (buf[0] & omsk) | (bits >> 24), - buf[1] = bits >> 16, - buf[2] = bits >> 8, - buf[3] = bits; - else { - if(asn_put_few_bits(po, bits >> (obits - 24), 24)) return -1; - if(asn_put_few_bits(po, bits, obits - 24)) return -1; - } - - ASN_DEBUG("[PER out %u/%x => %02x buf+%ld]", - (int)bits, (int)bits, buf[0], - (long)(po->buffer - po->tmpspace)); - - return 0; -} - - -/* - * Output a large number of bits. - */ -int -asn_put_many_bits(asn_bit_outp_t *po, const uint8_t *src, int nbits) { - - while(nbits) { - uint32_t value; - - if(nbits >= 24) { - value = (src[0] << 16) | (src[1] << 8) | src[2]; - src += 3; - nbits -= 24; - if(asn_put_few_bits(po, value, 24)) - return -1; - } else { - value = src[0]; - if(nbits > 8) - value = (value << 8) | src[1]; - if(nbits > 16) - value = (value << 8) | src[2]; - if(nbits & 0x07) - value >>= (8 - (nbits & 0x07)); - if(asn_put_few_bits(po, value, nbits)) - return -1; - break; - } - } - - return 0; -} - - -int -asn_put_aligned_flush(asn_bit_outp_t *po) { - uint32_t unused_bits = (0x7 & (8 - (po->nboff & 0x07))); - size_t complete_bytes = - (po->buffer ? po->buffer - po->tmpspace : 0) + ((po->nboff + 7) >> 3); - - if(unused_bits) { - po->buffer[po->nboff >> 3] &= ~0u << unused_bits; - } - - if(po->output(po->tmpspace, complete_bytes, po->op_key) < 0) { - return -1; - } else { - po->buffer = po->tmpspace; - po->nboff = 0; - po->nbits = 8 * sizeof(po->tmpspace); - po->flushed_bytes += complete_bytes; - return 0; - } -} - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_bit_data.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_bit_data.h deleted file mode 100644 index 59de7af..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_bit_data.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_BIT_DATA -#define ASN_BIT_DATA - -#include /* Platform-specific types */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * This structure describes a position inside an incoming PER bit stream. - */ -typedef struct asn_bit_data_s { - const uint8_t *buffer; /* Pointer to the octet stream */ - size_t nboff; /* Bit offset to the meaningful bit */ - size_t nbits; /* Number of bits in the stream */ - size_t moved; /* Number of bits moved through this bit stream */ - int (*refill)(struct asn_bit_data_s *); - void *refill_key; -} asn_bit_data_t; - -/* - * Create a contiguous non-refillable bit data structure. - * Can be freed by FREEMEM(). - */ -asn_bit_data_t *asn_bit_data_new_contiguous(const void *data, size_t size_bits); - -/* - * Extract a small number of bits (<= 31) from the specified PER data pointer. - * This function returns -1 if the specified number of bits could not be - * extracted due to EOD or other conditions. - */ -int32_t asn_get_few_bits(asn_bit_data_t *, int get_nbits); - -/* Undo the immediately preceeding "get_few_bits" operation */ -void asn_get_undo(asn_bit_data_t *, int get_nbits); - -/* - * Extract a large number of bits from the specified PER data pointer. - * This function returns -1 if the specified number of bits could not be - * extracted due to EOD or other conditions. - */ -int asn_get_many_bits(asn_bit_data_t *, uint8_t *dst, int right_align, - int get_nbits); - -/* Non-thread-safe debugging function, don't use it */ -char *asn_bit_data_string(asn_bit_data_t *); - -/* - * This structure supports forming bit output. - */ -typedef struct asn_bit_outp_s { - uint8_t *buffer; /* Pointer into the (tmpspace) */ - size_t nboff; /* Bit offset to the meaningful bit */ - size_t nbits; /* Number of bits left in (tmpspace) */ - uint8_t tmpspace[32]; /* Preliminary storage to hold data */ - int (*output)(const void *data, size_t size, void *op_key); - void *op_key; /* Key for (output) data callback */ - size_t flushed_bytes; /* Bytes already flushed through (output) */ -} asn_bit_outp_t; - -/* Output a small number of bits (<= 31) */ -int asn_put_few_bits(asn_bit_outp_t *, uint32_t bits, int obits); - -/* Output a large number of bits */ -int asn_put_many_bits(asn_bit_outp_t *, const uint8_t *src, int put_nbits); - -/* - * Flush whole bytes (0 or more) through (outper) member. - * The least significant bits which are not used are guaranteed to be set to 0. - * Returns -1 if callback returns -1. Otherwise, 0. - */ -int asn_put_aligned_flush(asn_bit_outp_t *); - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_BIT_DATA */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_codecs.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_codecs.h deleted file mode 100644 index e75c270..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_codecs.h +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_CODECS_H -#define ASN_CODECS_H - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * This structure defines a set of parameters that may be passed - * to every ASN.1 encoder or decoder function. - * WARNING: if max_stack_size member is set, and you are calling the - * function pointers of the asn_TYPE_descriptor_t directly, - * this structure must be ALLOCATED ON THE STACK! - * If you can't always satisfy this requirement, use ber_decode(), - * xer_decode() and uper_decode() functions instead. - */ -typedef struct asn_codec_ctx_s { - /* - * Limit the decoder routines to use no (much) more stack than a given - * number of bytes. Most of decoders are stack-based, and this - * would protect against stack overflows if the number of nested - * encodings is high. - * The OCTET STRING, BIT STRING and ANY BER decoders are heap-based, - * and are safe from this kind of overflow. - * A value from getrlimit(RLIMIT_STACK) may be used to initialize - * this variable. Be careful in multithreaded environments, as the - * stack size is rather limited. - */ - size_t max_stack_size; /* 0 disables stack bounds checking */ -} asn_codec_ctx_t; - -/* - * Type of the return value of the encoding functions (der_encode, xer_encode). - */ -typedef struct asn_enc_rval_s { - /* - * Number of bytes encoded. - * -1 indicates failure to encode the structure. - * In this case, the members below this one are meaningful. - */ - ssize_t encoded; - - /* - * Members meaningful when (encoded == -1), for post mortem analysis. - */ - - /* Type which cannot be encoded */ - const struct asn_TYPE_descriptor_s *failed_type; - - /* Pointer to the structure of that type */ - const void *structure_ptr; -} asn_enc_rval_t; -#define ASN__ENCODE_FAILED do { \ - asn_enc_rval_t tmp_error; \ - tmp_error.encoded = -1; \ - tmp_error.failed_type = td; \ - tmp_error.structure_ptr = sptr; \ - ASN_DEBUG("Failed to encode element %s", td ? td->name : ""); \ - return tmp_error; \ -} while(0) -#define ASN__ENCODED_OK(rval) do { \ - rval.structure_ptr = 0; \ - rval.failed_type = 0; \ - return rval; \ -} while(0) - -/* - * Type of the return value of the decoding functions (ber_decode, xer_decode) - * - * Please note that the number of consumed bytes is ALWAYS meaningful, - * even if code==RC_FAIL. This is to indicate the number of successfully - * decoded bytes, hence providing a possibility to fail with more diagnostics - * (i.e., print the offending remainder of the buffer). - */ -enum asn_dec_rval_code_e { - RC_OK, /* Decoded successfully */ - RC_WMORE, /* More data expected, call again */ - RC_FAIL /* Failure to decode data */ -}; -typedef struct asn_dec_rval_s { - enum asn_dec_rval_code_e code; /* Result code */ - size_t consumed; /* Number of bytes consumed */ -} asn_dec_rval_t; -#define ASN__DECODE_FAILED do { \ - asn_dec_rval_t tmp_error; \ - tmp_error.code = RC_FAIL; \ - tmp_error.consumed = 0; \ - ASN_DEBUG("Failed to decode element %s", td ? td->name : ""); \ - return tmp_error; \ -} while(0) -#define ASN__DECODE_STARVED do { \ - asn_dec_rval_t tmp_error; \ - tmp_error.code = RC_WMORE; \ - tmp_error.consumed = 0; \ - return tmp_error; \ -} while(0) - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_CODECS_H */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_codecs_prim.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_codecs_prim.c deleted file mode 100644 index fc24247..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_codecs_prim.c +++ /dev/null @@ -1,317 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Decode an always-primitive type. - */ -asn_dec_rval_t -ber_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const void *buf_ptr, size_t size, int tag_mode) { - ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)*sptr; - asn_dec_rval_t rval; - ber_tlv_len_t length = 0; /* =0 to avoid [incorrect] warning. */ - - /* - * If the structure is not there, allocate it. - */ - if(st == NULL) { - st = (ASN__PRIMITIVE_TYPE_t *)CALLOC(1, sizeof(*st)); - if(st == NULL) ASN__DECODE_FAILED; - *sptr = (void *)st; - } - - ASN_DEBUG("Decoding %s as plain primitive (tm=%d)", - td->name, tag_mode); - - /* - * Check tags and extract value length. - */ - rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size, - tag_mode, 0, &length, 0); - if(rval.code != RC_OK) - return rval; - - ASN_DEBUG("%s length is %d bytes", td->name, (int)length); - - /* - * Make sure we have this length. - */ - buf_ptr = ((const char *)buf_ptr) + rval.consumed; - size -= rval.consumed; - if(length > (ber_tlv_len_t)size) { - rval.code = RC_WMORE; - rval.consumed = 0; - return rval; - } - - st->size = (int)length; - /* The following better be optimized away. */ - if(sizeof(st->size) != sizeof(length) - && (ber_tlv_len_t)st->size != length) { - st->size = 0; - ASN__DECODE_FAILED; - } - - st->buf = (uint8_t *)MALLOC(length + 1); - if(!st->buf) { - st->size = 0; - ASN__DECODE_FAILED; - } - - memcpy(st->buf, buf_ptr, length); - st->buf[length] = '\0'; /* Just in case */ - - rval.code = RC_OK; - rval.consumed += length; - - ASN_DEBUG("Took %ld/%ld bytes to encode %s", - (long)rval.consumed, - (long)length, td->name); - - return rval; -} - -/* - * Encode an always-primitive type using DER. - */ -asn_enc_rval_t -der_encode_primitive(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t erval = {0,0,0}; - const ASN__PRIMITIVE_TYPE_t *st = (const ASN__PRIMITIVE_TYPE_t *)sptr; - - ASN_DEBUG("%s %s as a primitive type (tm=%d)", - cb?"Encoding":"Estimating", td->name, tag_mode); - - erval.encoded = der_write_tags(td, st->size, tag_mode, 0, tag, - cb, app_key); - ASN_DEBUG("%s wrote tags %d", td->name, (int)erval.encoded); - if(erval.encoded == -1) { - erval.failed_type = td; - erval.structure_ptr = sptr; - return erval; - } - - if(cb && st->buf) { - if(cb(st->buf, st->size, app_key) < 0) { - erval.encoded = -1; - erval.failed_type = td; - erval.structure_ptr = sptr; - return erval; - } - } else { - assert(st->buf || st->size == 0); - } - - erval.encoded += st->size; - ASN__ENCODED_OK(erval); -} - -void -ASN__PRIMITIVE_TYPE_free(const asn_TYPE_descriptor_t *td, void *sptr, - enum asn_struct_free_method method) { - ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)sptr; - - if(!td || !sptr) - return; - - ASN_DEBUG("Freeing %s as a primitive type", td->name); - - if(st->buf) - FREEMEM(st->buf); - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(sptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(sptr, 0, sizeof(ASN__PRIMITIVE_TYPE_t)); - break; - } -} - - -/* - * Local internal type passed around as an argument. - */ -struct xdp_arg_s { - const asn_TYPE_descriptor_t *type_descriptor; - void *struct_key; - xer_primitive_body_decoder_f *prim_body_decoder; - int decoded_something; - int want_more; -}; - -/* - * Since some kinds of primitive values can be encoded using value-specific - * tags (, , etc), the primitive decoder must - * be supplied with such tags to parse them as needed. - */ -static int -xer_decode__unexpected_tag(void *key, const void *chunk_buf, size_t chunk_size) { - struct xdp_arg_s *arg = (struct xdp_arg_s *)key; - enum xer_pbd_rval bret; - - /* - * The chunk_buf is guaranteed to start at '<'. - */ - assert(chunk_size && ((const char *)chunk_buf)[0] == 0x3c); - - /* - * Decoding was performed once already. Prohibit doing it again. - */ - if(arg->decoded_something) - return -1; - - bret = arg->prim_body_decoder(arg->type_descriptor, - arg->struct_key, chunk_buf, chunk_size); - switch(bret) { - case XPBD_SYSTEM_FAILURE: - case XPBD_DECODER_LIMIT: - case XPBD_BROKEN_ENCODING: - break; - case XPBD_BODY_CONSUMED: - /* Tag decoded successfully */ - arg->decoded_something = 1; - /* Fall through */ - case XPBD_NOT_BODY_IGNORE: /* Safe to proceed further */ - return 0; - } - - return -1; -} - -static ssize_t -xer_decode__primitive_body(void *key, const void *chunk_buf, size_t chunk_size, int have_more) { - struct xdp_arg_s *arg = (struct xdp_arg_s *)key; - enum xer_pbd_rval bret; - size_t lead_wsp_size; - - if(arg->decoded_something) { - if(xer_whitespace_span(chunk_buf, chunk_size) == chunk_size) { - /* - * Example: - * "123 " - * ^- chunk_buf position. - */ - return chunk_size; - } - /* - * Decoding was done once already. Prohibit doing it again. - */ - return -1; - } - - if(!have_more) { - /* - * If we've received something like "1", we can't really - * tell whether it is really `1` or `123`, until we know - * that there is no more data coming. - * The have_more argument will be set to 1 once something - * like this is available to the caller of this callback: - * "1want_more = 1; - return -1; - } - - lead_wsp_size = xer_whitespace_span(chunk_buf, chunk_size); - chunk_buf = (const char *)chunk_buf + lead_wsp_size; - chunk_size -= lead_wsp_size; - - bret = arg->prim_body_decoder(arg->type_descriptor, - arg->struct_key, chunk_buf, chunk_size); - switch(bret) { - case XPBD_SYSTEM_FAILURE: - case XPBD_DECODER_LIMIT: - case XPBD_BROKEN_ENCODING: - break; - case XPBD_BODY_CONSUMED: - /* Tag decoded successfully */ - arg->decoded_something = 1; - /* Fall through */ - case XPBD_NOT_BODY_IGNORE: /* Safe to proceed further */ - return lead_wsp_size + chunk_size; - } - - return -1; -} - - -asn_dec_rval_t -xer_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - size_t struct_size, const char *opt_mname, - const void *buf_ptr, size_t size, - xer_primitive_body_decoder_f *prim_body_decoder) { - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - asn_struct_ctx_t s_ctx; - struct xdp_arg_s s_arg; - asn_dec_rval_t rc; - - /* - * Create the structure if does not exist. - */ - if(!*sptr) { - *sptr = CALLOC(1, struct_size); - if(!*sptr) ASN__DECODE_FAILED; - } - - memset(&s_ctx, 0, sizeof(s_ctx)); - s_arg.type_descriptor = td; - s_arg.struct_key = *sptr; - s_arg.prim_body_decoder = prim_body_decoder; - s_arg.decoded_something = 0; - s_arg.want_more = 0; - - rc = xer_decode_general(opt_codec_ctx, &s_ctx, &s_arg, - xml_tag, buf_ptr, size, - xer_decode__unexpected_tag, xer_decode__primitive_body); - switch(rc.code) { - case RC_OK: - if(!s_arg.decoded_something) { - char ch; - ASN_DEBUG("Primitive body is not recognized, " - "supplying empty one"); - /* - * Decoding opportunity has come and gone. - * Where's the result? - * Try to feed with empty body, see if it eats it. - */ - if(prim_body_decoder(s_arg.type_descriptor, - s_arg.struct_key, &ch, 0) - != XPBD_BODY_CONSUMED) { - /* - * This decoder does not like empty stuff. - */ - ASN__DECODE_FAILED; - } - } - break; - case RC_WMORE: - /* - * Redo the whole thing later. - * We don't have a context to save intermediate parsing state. - */ - rc.consumed = 0; - break; - case RC_FAIL: - rc.consumed = 0; - if(s_arg.want_more) - rc.code = RC_WMORE; - else - ASN__DECODE_FAILED; - break; - } - return rc; -} - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_codecs_prim.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_codecs_prim.h deleted file mode 100644 index fbc5576..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_codecs_prim.h +++ /dev/null @@ -1,51 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_CODECS_PRIM_H -#define ASN_CODECS_PRIM_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct ASN__PRIMITIVE_TYPE_s { - uint8_t *buf; /* Buffer with consecutive primitive encoding bytes */ - size_t size; /* Size of the buffer */ -} ASN__PRIMITIVE_TYPE_t; /* Do not use this type directly! */ - -asn_struct_free_f ASN__PRIMITIVE_TYPE_free; -ber_type_decoder_f ber_decode_primitive; -der_type_encoder_f der_encode_primitive; - -/* - * A callback specification for the xer_decode_primitive() function below. - */ -enum xer_pbd_rval { - XPBD_SYSTEM_FAILURE, /* System failure (memory shortage, etc) */ - XPBD_DECODER_LIMIT, /* Hit some decoder limitation or deficiency */ - XPBD_BROKEN_ENCODING, /* Encoding of a primitive body is broken */ - XPBD_NOT_BODY_IGNORE, /* Not a body format, but safe to ignore */ - XPBD_BODY_CONSUMED /* Body is recognized and consumed */ -}; -typedef enum xer_pbd_rval(xer_primitive_body_decoder_f)( - const asn_TYPE_descriptor_t *td, void *struct_ptr, const void *chunk_buf, - size_t chunk_size); - -/* - * Specific function to decode simple primitive types. - * Also see xer_decode_general() in xer_decoder.h - */ -asn_dec_rval_t xer_decode_primitive( - const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, - size_t struct_size, const char *opt_mname, const void *buf_ptr, size_t size, - xer_primitive_body_decoder_f *prim_body_decoder); - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_CODECS_PRIM_H */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_constant.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_constant.h deleted file mode 100644 index b850c56..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_constant.h +++ /dev/null @@ -1,25 +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 maxofE2nodeComponents (1024) -#define maxofRANfunctionID (256) -#define maxofRICactionID (16) -#define maxofTNLA (32) -#define maxofRICrequestID (4294967295) - - -#ifdef __cplusplus -} -#endif - -#endif /* _ASN_CONSTANT_H */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_internal.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_internal.c deleted file mode 100644 index 004660b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_internal.c +++ /dev/null @@ -1,49 +0,0 @@ -#include - -ssize_t -asn__format_to_callback(int (*cb)(const void *, size_t, void *key), void *key, - const char *fmt, ...) { - char scratch[64]; - char *buf = scratch; - size_t buf_size = sizeof(scratch); - int wrote; - int cb_ret; - - do { - va_list args; - va_start(args, fmt); - - wrote = vsnprintf(buf, buf_size, fmt, args); - if(wrote < (ssize_t)buf_size) { - if(wrote < 0) { - if(buf != scratch) FREEMEM(buf); - va_end(args); - return -1; - } - break; - } - - buf_size <<= 1; - if(buf == scratch) { - buf = MALLOC(buf_size); - if(!buf) { va_end(args); return -1; } - } else { - void *p = REALLOC(buf, buf_size); - if(!p) { - FREEMEM(buf); - va_end(args); - return -1; - } - buf = p; - } - } while(1); - - cb_ret = cb(buf, wrote, key); - if(buf != scratch) FREEMEM(buf); - if(cb_ret < 0) { - return -1; - } - - return wrote; -} - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_internal.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_internal.h deleted file mode 100644 index c4105ad..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_internal.h +++ /dev/null @@ -1,159 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Declarations internally useful for the ASN.1 support code. - */ -#ifndef ASN_INTERNAL_H -#define ASN_INTERNAL_H -#define __EXTENSIONS__ /* for Sun */ - -#include "asn_application.h" /* Application-visible API */ - -#ifndef __NO_ASSERT_H__ /* Include assert.h only for internal use. */ -#include /* for assert() macro */ -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* Environment version might be used to avoid running with the old library */ -#define ASN1C_ENVIRONMENT_VERSION 923 /* Compile-time version */ -int get_asn1c_environment_version(void); /* Run-time version */ - -#define CALLOC(nmemb, size) calloc(nmemb, size) -#define MALLOC(size) malloc(size) -#define REALLOC(oldptr, size) realloc(oldptr, size) -#define FREEMEM(ptr) free(ptr) - -#define asn_debug_indent 0 -#define ASN_DEBUG_INDENT_ADD(i) do{}while(0) - -#ifdef EMIT_ASN_DEBUG -#warning "Use ASN_EMIT_DEBUG instead of EMIT_ASN_DEBUG" -#define ASN_EMIT_DEBUG EMIT_ASN_DEBUG -#endif - -/* - * A macro for debugging the ASN.1 internals. - * You may enable or override it. - */ -#ifndef ASN_DEBUG /* If debugging code is not defined elsewhere... */ -#if ASN_EMIT_DEBUG == 1 /* And it was asked to emit this code... */ -#if !defined(BELL_LABS) /* Bell Labs */ - //#if __STDC_VERSION__ >= 199901L -#ifdef ASN_THREAD_SAFE -/* Thread safety requires sacrifice in output indentation: - * Retain empty definition of ASN_DEBUG_INDENT_ADD. */ -#else /* !ASN_THREAD_SAFE */ -#undef ASN_DEBUG_INDENT_ADD -#undef asn_debug_indent -int asn_debug_indent; -#define ASN_DEBUG_INDENT_ADD(i) do { asn_debug_indent += i; } while(0) -#endif /* ASN_THREAD_SAFE */ -#if defined(BELL_LABS) /* Bell Labs version */ -extern int logAsn1c(const char *filename, int linenumber, const char *format, ...); -#define ASN_DEBUG(fmt, args...) do { \ - (void) logAsn1c(__FILE__, __LINE__, fmt, ##args); \ - } while(0) -#else -#define ASN_DEBUG(fmt, args...) do { \ - int adi = asn_debug_indent; \ - while(adi--) fprintf(stderr, " "); \ - fprintf(stderr, fmt, ##args); \ - fprintf(stderr, " (%s:%d)\n", \ - __FILE__, __LINE__); \ - } while(0) -#endif /* BELL_LABS */ -#else /* !C99 */ -void CC_PRINTFLIKE(1, 2) ASN_DEBUG_f(const char *fmt, ...); -#define ASN_DEBUG ASN_DEBUG_f -#endif /* C99 */ -#else /* ASN_EMIT_DEBUG != 1 */ -#if __STDC_VERSION__ >= 199901L -#define ASN_DEBUG(...) do{}while(0) -#else /* not C99 */ -static void CC_PRINTFLIKE(1, 2) ASN_DEBUG(const char *fmt, ...) { (void)fmt; } -#endif /* C99 or better */ -#endif /* ASN_EMIT_DEBUG */ -#endif /* ASN_DEBUG */ - -/* - * Print to a callback. - * The callback is expected to return negative values on error. - * 0 and positive values are treated as success. - * RETURN VALUES: - * -1: Failed to format or invoke the callback. - * >0: Size of the data that got delivered to the callback. - */ -ssize_t CC_PRINTFLIKE(3, 4) -asn__format_to_callback( - int (*callback)(const void *, size_t, void *key), void *key, - const char *fmt, ...); - -/* - * Invoke the application-supplied callback and fail, if something is wrong. - */ -#define ASN__E_cbc(buf, size) (cb((buf), (size), app_key) < 0) -#define ASN__E_CALLBACK(size, foo) \ - do { \ - if(foo) goto cb_failed; \ - er.encoded += (size); \ - } while(0) -#define ASN__CALLBACK(buf, size) ASN__E_CALLBACK(size, ASN__E_cbc(buf, size)) -#define ASN__CALLBACK2(buf1, size1, buf2, size2) \ - ASN__E_CALLBACK((size1) + (size2), \ - ASN__E_cbc(buf1, size1) || ASN__E_cbc(buf2, size2)) -#define ASN__CALLBACK3(buf1, size1, buf2, size2, buf3, size3) \ - ASN__E_CALLBACK((size1) + (size2) + (size3), \ - ASN__E_cbc(buf1, size1) || ASN__E_cbc(buf2, size2) \ - || ASN__E_cbc(buf3, size3)) - -#define ASN__TEXT_INDENT(nl, level) \ - do { \ - int tmp_level = (level); \ - int tmp_nl = ((nl) != 0); \ - int tmp_i; \ - if(tmp_nl) ASN__CALLBACK("\n", 1); \ - if(tmp_level < 0) tmp_level = 0; \ - for(tmp_i = 0; tmp_i < tmp_level; tmp_i++) ASN__CALLBACK(" ", 4); \ - } while(0) - -#define _i_INDENT(nl) do { \ - int tmp_i; \ - if((nl) && cb("\n", 1, app_key) < 0) \ - return -1; \ - for(tmp_i = 0; tmp_i < ilevel; tmp_i++) \ - if(cb(" ", 4, app_key) < 0) \ - return -1; \ - } while(0) - -/* - * Check stack against overflow, if limit is set. - */ -#define ASN__DEFAULT_STACK_MAX (30000) -static int CC_NOTUSED -ASN__STACK_OVERFLOW_CHECK(const asn_codec_ctx_t *ctx) { - if(ctx && ctx->max_stack_size) { - - /* ctx MUST be allocated on the stack */ - ptrdiff_t usedstack = ((const char *)ctx - (const char *)&ctx); - if(usedstack > 0) usedstack = -usedstack; /* grows up! */ - - /* double negative required to avoid int wrap-around */ - if(usedstack < -(ptrdiff_t)ctx->max_stack_size) { - ASN_DEBUG("Stack limit %ld reached", - (long)ctx->max_stack_size); - return -1; - } - } - return 0; -} - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_INTERNAL_H */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_ioc.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_ioc.h deleted file mode 100644 index 7de210e..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_ioc.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Run-time support for Information Object Classes. - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_IOC_H -#define ASN_IOC_H - -#include /* Platform-specific types */ - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; -struct asn_ioc_cell_s; - -/* - * X.681, #13 - */ -typedef struct asn_ioc_set_s { - size_t rows_count; - size_t columns_count; - const struct asn_ioc_cell_s *rows; -} asn_ioc_set_t; - - -typedef struct asn_ioc_cell_s { - const char *field_name; /* Is equal to corresponding column_name */ - enum { - aioc__undefined = 0, - aioc__value, - aioc__type, - aioc__open_type, - } cell_kind; - struct asn_TYPE_descriptor_s *type_descriptor; - const void *value_sptr; - struct { - size_t types_count; - struct { - unsigned choice_position; - } *types; - } open_type; -} asn_ioc_cell_t; - - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_IOC_H */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_random_fill.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_random_fill.c deleted file mode 100644 index 819cf70..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_random_fill.c +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -int -asn_random_fill(const struct asn_TYPE_descriptor_s *td, void **struct_ptr, - size_t length) { - - if(td && td->op->random_fill) { - asn_random_fill_result_t res = - td->op->random_fill(td, struct_ptr, 0, length); - return (res.code == ARFILL_OK) ? 0 : -1; - } else { - return -1; - } -} - -static uintmax_t -asn__intmax_range(intmax_t lb, intmax_t ub) { - assert(lb <= ub); - if((ub < 0) == (lb < 0)) { - return ub - lb; - } else if(lb < 0) { - return 1 + ((uintmax_t)ub + (uintmax_t)-(lb + 1)); - } else { - assert(!"Unreachable"); - return 0; - } -} - -intmax_t -asn_random_between(intmax_t lb, intmax_t rb) { - if(lb == rb) { - return lb; - } else { - const uintmax_t intmax_max = ((~(uintmax_t)0) >> 1); - uintmax_t range = asn__intmax_range(lb, rb); - uintmax_t value = 0; - uintmax_t got_entropy = 0; - - assert(RAND_MAX > 0xffffff); /* Seen 7ffffffd! */ - assert(range < intmax_max); - - for(; got_entropy < range;) { - got_entropy = (got_entropy << 24) | 0xffffff; - value = (value << 24) | (random() % 0xffffff); - } - - return lb + (intmax_t)(value % (range + 1)); - } -} diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_random_fill.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_random_fill.h deleted file mode 100644 index 47f9b8a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_random_fill.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_RANDOM_FILL -#define ASN_RANDOM_FILL - -/* Forward declarations */ -struct asn_TYPE_descriptor_s; -struct asn_encoding_constraints_s; - -/* - * Initialize a structure with random data according to the type specification - * and optional member constraints. - * ARGUMENTS: - * (max_length) - See (approx_max_length_limit). - * (memb_constraints) - Member constraints, if exist. - * The type can be constrained differently according - * to PER and OER specifications, so we find a value - * at the intersection of these constraints. - * In case the return differs from ARFILL_OK, the (struct_ptr) contents - * and (current_length) value remain in their original state. - */ -typedef struct asn_random_fill_result_s { - enum { - ARFILL_FAILED = -1, /* System error (memory?) */ - ARFILL_OK = 0, /* Initialization succeeded */ - ARFILL_SKIPPED = 1 /* Not done due to (length?) constraint */ - } code; - size_t length; /* Approximate number of bytes created. */ -} asn_random_fill_result_t; -typedef asn_random_fill_result_t(asn_random_fill_f)( - const struct asn_TYPE_descriptor_s *td, void **struct_ptr, - const struct asn_encoding_constraints_s *memb_constraints, - size_t max_length); - -/* - * Returns 0 if the structure was properly initialized, -1 otherwise. - * The (approx_max_length_limit) specifies the approximate limit of the - * resulting structure in units closely resembling bytes. The actual result - * might be several times larger or smaller than the length limit. - */ -int asn_random_fill(const struct asn_TYPE_descriptor_s *td, void **struct_ptr, - size_t approx_max_length_limit); - -/* - * Returns a random number between min and max. - */ -intmax_t asn_random_between(intmax_t min, intmax_t max); - -#endif /* ASN_RANDOM_FILL */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_system.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_system.h deleted file mode 100644 index fa8cf11..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_system.h +++ /dev/null @@ -1,150 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Miscellaneous system-dependent types. - */ -#ifndef ASN_SYSTEM_H -#define ASN_SYSTEM_H - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#ifndef _DEFAULT_SOURCE -#define _DEFAULT_SOURCE 1 -#endif - -#ifndef _BSD_SOURCE -#define _BSD_SOURCE /* for snprintf() on some linux systems */ -#endif - -#include /* For snprintf(3) */ -#include /* For *alloc(3) */ -#include /* For memcpy(3) */ -#include /* For size_t */ -#include /* For LONG_MAX */ -#include /* For va_start */ -#include /* for offsetof and ptrdiff_t */ - -#ifdef _WIN32 - -#include -#define snprintf _snprintf -#define vsnprintf _vsnprintf - -/* To avoid linking with ws2_32.lib, here's the definition of ntohl() */ -#define sys_ntohl(l) ((((l) << 24) & 0xff000000) \ - | (((l) << 8) & 0xff0000) \ - | (((l) >> 8) & 0xff00) \ - | ((l >> 24) & 0xff)) - -#ifdef _MSC_VER /* MSVS.Net */ -#ifndef __cplusplus -#define inline __inline -#endif -#ifndef ASSUMESTDTYPES /* Standard types have been defined elsewhere */ -#define ssize_t SSIZE_T -#if _MSC_VER < 1600 -typedef char int8_t; -typedef short int16_t; -typedef int int32_t; -typedef unsigned char uint8_t; -typedef unsigned short uint16_t; -typedef unsigned int uint32_t; -#else /* _MSC_VER >= 1600 */ -#include -#endif /* _MSC_VER < 1600 */ -#endif /* ASSUMESTDTYPES */ -#define WIN32_LEAN_AND_MEAN -#include -#include -#define isnan _isnan -#define finite _finite -#define copysign _copysign -#define ilogb _logb -#else /* !_MSC_VER */ -#include -#endif /* _MSC_VER */ - -#else /* !_WIN32 */ - -#if defined(__vxworks) -#include -#else /* !defined(__vxworks) */ - -#include /* C99 specifies this file */ -#include /* for ntohl() */ -#define sys_ntohl(foo) ntohl(foo) -#endif /* defined(__vxworks) */ - -#endif /* _WIN32 */ - -#if __GNUC__ >= 3 || defined(__clang__) -#define CC_ATTRIBUTE(attr) __attribute__((attr)) -#else -#define CC_ATTRIBUTE(attr) -#endif -#define CC_PRINTFLIKE(fmt, var) CC_ATTRIBUTE(format(printf, fmt, var)) -#define CC_NOTUSED CC_ATTRIBUTE(unused) -#ifndef CC_ATTR_NO_SANITIZE -#define CC_ATTR_NO_SANITIZE(what) CC_ATTRIBUTE(no_sanitize(what)) -#endif - -/* Figure out if thread safety is requested */ -#if !defined(ASN_THREAD_SAFE) && (defined(THREAD_SAFE) || defined(_REENTRANT)) -#define ASN_THREAD_SAFE -#endif /* Thread safety */ - -#ifndef offsetof /* If not defined by */ -#define offsetof(s, m) ((ptrdiff_t)&(((s *)0)->m) - (ptrdiff_t)((s *)0)) -#endif /* offsetof */ - -#ifndef MIN /* Suitable for comparing primitive types (integers) */ -#if defined(__GNUC__) -#define MIN(a,b) ({ __typeof a _a = a; __typeof b _b = b; \ - ((_a)<(_b)?(_a):(_b)); }) -#else /* !__GNUC__ */ -#define MIN(a,b) ((a)<(b)?(a):(b)) /* Unsafe variant */ -#endif /* __GNUC__ */ -#endif /* MIN */ - -#if __STDC_VERSION__ >= 199901L -#ifndef SIZE_MAX -#define SIZE_MAX ((~((size_t)0)) >> 1) -#endif - -#ifndef RSIZE_MAX /* C11, Annex K */ -#define RSIZE_MAX (SIZE_MAX >> 1) -#endif -#ifndef RSSIZE_MAX /* Halve signed size even further than unsigned */ -#define RSSIZE_MAX ((ssize_t)(RSIZE_MAX >> 1)) -#endif -#else /* Old compiler */ -#undef SIZE_MAX -#undef RSIZE_MAX -#undef RSSIZE_MAX -#define SIZE_MAX ((~((size_t)0)) >> 1) -#define RSIZE_MAX (SIZE_MAX >> 1) -#define RSSIZE_MAX ((ssize_t)(RSIZE_MAX >> 1)) -#endif - -#if __STDC_VERSION__ >= 199901L -#define ASN_PRI_SIZE "zu" -#define ASN_PRI_SSIZE "zd" -#define ASN_PRIuMAX PRIuMAX -#define ASN_PRIdMAX PRIdMAX -#else -#define ASN_PRI_SIZE "lu" -#define ASN_PRI_SSIZE "ld" -#if LLONG_MAX > LONG_MAX -#define ASN_PRIuMAX "llu" -#define ASN_PRIdMAX "lld" -#else -#define ASN_PRIuMAX "lu" -#define ASN_PRIdMAX "ld" -#endif -#endif - -#endif /* ASN_SYSTEM_H */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ber_decoder.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ber_decoder.c deleted file mode 100644 index 75d6016..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ber_decoder.c +++ /dev/null @@ -1,283 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include - -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) -#undef RETURN -#define RETURN(_code) do { \ - asn_dec_rval_t rval; \ - rval.code = _code; \ - if(opt_ctx) opt_ctx->step = step; /* Save context */ \ - if(_code == RC_OK || opt_ctx) \ - rval.consumed = consumed_myself; \ - else \ - rval.consumed = 0; /* Context-free */ \ - return rval; \ - } while(0) - -/* - * The BER decoder of any type. - */ -asn_dec_rval_t -ber_decode(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, - const void *ptr, size_t size) { - asn_codec_ctx_t s_codec_ctx; - - /* - * Stack checker requires that the codec context - * must be allocated on the stack. - */ - if(opt_codec_ctx) { - if(opt_codec_ctx->max_stack_size) { - s_codec_ctx = *opt_codec_ctx; - opt_codec_ctx = &s_codec_ctx; - } - } else { - /* If context is not given, be security-conscious anyway */ - memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); - s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; - opt_codec_ctx = &s_codec_ctx; - } - - /* - * Invoke type-specific decoder. - */ - return type_descriptor->op->ber_decoder(opt_codec_ctx, type_descriptor, - struct_ptr, /* Pointer to the destination structure */ - ptr, size, /* Buffer and its size */ - 0 /* Default tag mode is 0 */ - ); -} - -/* - * Check the set of >> tags matches the definition. - */ -asn_dec_rval_t -ber_check_tags(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, asn_struct_ctx_t *opt_ctx, - const void *ptr, size_t size, int tag_mode, int last_tag_form, - ber_tlv_len_t *last_length, int *opt_tlv_form) { - ssize_t consumed_myself = 0; - ssize_t tag_len; - ssize_t len_len; - ber_tlv_tag_t tlv_tag; - ber_tlv_len_t tlv_len; - ber_tlv_len_t limit_len = -1; - int expect_00_terminators = 0; - int tlv_constr = -1; /* If CHOICE, opt_tlv_form is not given */ - int step = opt_ctx ? opt_ctx->step : 0; /* Where we left previously */ - int tagno; - - /* - * Make sure we didn't exceed the maximum stack size. - */ - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - RETURN(RC_FAIL); - - /* - * So what does all this implicit skip stuff mean? - * Imagine two types, - * A ::= [5] IMPLICIT T - * B ::= [2] EXPLICIT T - * Where T is defined as - * T ::= [4] IMPLICIT SEQUENCE { ... } - * - * Let's say, we are starting to decode type A, given the - * following TLV stream: <5> <0>. What does this mean? - * It means that the type A contains type T which is, - * in turn, empty. - * Remember though, that we are still in A. We cannot - * just pass control to the type T decoder. Why? Because - * the type T decoder expects <4> <0>, not <5> <0>. - * So, we must make sure we are going to receive <5> while - * still in A, then pass control to the T decoder, indicating - * that the tag <4> was implicitly skipped. The decoder of T - * hence will be prepared to treat <4> as valid tag, and decode - * it appropriately. - */ - - tagno = step /* Continuing where left previously */ - + (tag_mode==1?-1:0) - ; - ASN_DEBUG("ber_check_tags(%s, size=%ld, tm=%d, step=%d, tagno=%d)", - td->name, (long)size, tag_mode, step, tagno); - /* assert(td->tags_count >= 1) May not be the case for CHOICE or ANY */ - - if(tag_mode == 0 && tagno == (int)td->tags_count) { - /* - * This must be the _untagged_ ANY type, - * which outermost tag isn't known in advance. - * Fetch the tag and length separately. - */ - tag_len = ber_fetch_tag(ptr, size, &tlv_tag); - switch(tag_len) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - tlv_constr = BER_TLV_CONSTRUCTED(ptr); - len_len = ber_fetch_length(tlv_constr, - (const char *)ptr + tag_len, size - tag_len, &tlv_len); - switch(len_len) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - ASN_DEBUG("Advancing %ld in ANY case", - (long)(tag_len + len_len)); - ADVANCE(tag_len + len_len); - } else { - assert(tagno < (int)td->tags_count); /* At least one loop */ - } - for((void)tagno; tagno < (int)td->tags_count; tagno++, step++) { - - /* - * Fetch and process T from TLV. - */ - tag_len = ber_fetch_tag(ptr, size, &tlv_tag); - ASN_DEBUG("Fetching tag from {%p,%ld}: " - "len %ld, step %d, tagno %d got %s", - ptr, (long)size, - (long)tag_len, step, tagno, - ber_tlv_tag_string(tlv_tag)); - switch(tag_len) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - - tlv_constr = BER_TLV_CONSTRUCTED(ptr); - - /* - * If {I}, don't check anything. - * If {I,B,C}, check B and C unless we're at I. - */ - if(tag_mode != 0 && step == 0) { - /* - * We don't expect tag to match here. - * It's just because we don't know how the tag - * is supposed to look like. - */ - } else { - assert(tagno >= 0); /* Guaranteed by the code above */ - if(tlv_tag != td->tags[tagno]) { - /* - * Unexpected tag. Too bad. - */ - ASN_DEBUG("Expected: %s, " - "expectation failed (tn=%d, tm=%d)", - ber_tlv_tag_string(td->tags[tagno]), - tagno, tag_mode - ); - RETURN(RC_FAIL); - } - } - - /* - * Attention: if there are more tags expected, - * ensure that the current tag is presented - * in constructed form (it contains other tags!). - * If this one is the last one, check that the tag form - * matches the one given in descriptor. - */ - if(tagno < ((int)td->tags_count - 1)) { - if(tlv_constr == 0) { - ASN_DEBUG("tlv_constr = %d, expfail", - tlv_constr); - RETURN(RC_FAIL); - } - } else { - if(last_tag_form != tlv_constr - && last_tag_form != -1) { - ASN_DEBUG("last_tag_form %d != %d", - last_tag_form, tlv_constr); - RETURN(RC_FAIL); - } - } - - /* - * Fetch and process L from TLV. - */ - len_len = ber_fetch_length(tlv_constr, - (const char *)ptr + tag_len, size - tag_len, &tlv_len); - ASN_DEBUG("Fetching len = %ld", (long)len_len); - switch(len_len) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - - /* - * FIXME - * As of today, the chain of tags - * must either contain several indefinite length TLVs, - * or several definite length ones. - * No mixing is allowed. - */ - if(tlv_len == -1) { - /* - * Indefinite length. - */ - if(limit_len == -1) { - expect_00_terminators++; - } else { - ASN_DEBUG("Unexpected indefinite length " - "in a chain of definite lengths"); - RETURN(RC_FAIL); - } - ADVANCE(tag_len + len_len); - continue; - } else { - if(expect_00_terminators) { - ASN_DEBUG("Unexpected definite length " - "in a chain of indefinite lengths"); - RETURN(RC_FAIL); - } - } - - /* - * Check that multiple TLVs specify ever decreasing length, - * which is consistent. - */ - if(limit_len == -1) { - limit_len = tlv_len + tag_len + len_len; - if(limit_len < 0) { - /* Too great tlv_len value? */ - RETURN(RC_FAIL); - } - } else if(limit_len != tlv_len + tag_len + len_len) { - /* - * Inner TLV specifies length which is inconsistent - * with the outer TLV's length value. - */ - ASN_DEBUG("Outer TLV is %ld and inner is %ld", - (long)limit_len, (long)tlv_len); - RETURN(RC_FAIL); - } - - ADVANCE(tag_len + len_len); - - limit_len -= (tag_len + len_len); - if((ssize_t)size > limit_len) { - /* - * Make sure that we won't consume more bytes - * from the parent frame than the inferred limit. - */ - size = limit_len; - } - } - - if(opt_tlv_form) - *opt_tlv_form = tlv_constr; - if(expect_00_terminators) - *last_length = -expect_00_terminators; - else - *last_length = tlv_len; - - RETURN(RC_OK); -} diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ber_decoder.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ber_decoder.h deleted file mode 100644 index 1ac2a5e..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ber_decoder.h +++ /dev/null @@ -1,66 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _BER_DECODER_H_ -#define _BER_DECODER_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ -struct asn_codec_ctx_s; /* Forward declaration */ - -/* - * The BER decoder of any type. - * This function may be invoked directly from the application. - * Decodes BER, DER and CER data (DER and CER are different subsets of BER). - * - * NOTE: Use the der_encode() function (der_encoder.h) to produce encoding - * which is compliant with ber_decode(). - */ -asn_dec_rval_t ber_decode( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of that buffer */ -); - -/* - * Type of generic function which decodes the byte stream into the structure. - */ -typedef asn_dec_rval_t(ber_type_decoder_f)( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, void **struct_ptr, - const void *buf_ptr, size_t size, int tag_mode); - -/******************************* - * INTERNALLY USEFUL FUNCTIONS * - *******************************/ - -/* - * Check that all tags correspond to the type definition (as given in head). - * On return, last_length would contain either a non-negative length of the - * value part of the last TLV, or the negative number of expected - * "end of content" sequences. The number may only be negative if the - * head->last_tag_form is non-zero. - */ -asn_dec_rval_t ber_check_tags( - const struct asn_codec_ctx_s *opt_codec_ctx, /* codec options */ - const struct asn_TYPE_descriptor_s *type_descriptor, - asn_struct_ctx_t *opt_ctx, /* saved decoding context */ - const void *ptr, size_t size, - int tag_mode, /* {-1,0,1}: IMPLICIT, no, EXPLICIT */ - int last_tag_form, /* {-1,0:1}: any, primitive, constr */ - ber_tlv_len_t *last_length, int *opt_tlv_form /* optional tag form */ -); - -#ifdef __cplusplus -} -#endif - -#endif /* _BER_DECODER_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ber_tlv_length.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ber_tlv_length.c deleted file mode 100644 index 0a0deec..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ber_tlv_length.c +++ /dev/null @@ -1,168 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -ssize_t -ber_fetch_length(int _is_constructed, const void *bufptr, size_t size, - ber_tlv_len_t *len_r) { - const uint8_t *buf = (const uint8_t *)bufptr; - unsigned oct; - - if(size == 0) - return 0; /* Want more */ - - oct = *(const uint8_t *)buf; - if((oct & 0x80) == 0) { - /* - * Short definite length. - */ - *len_r = oct; /* & 0x7F */ - return 1; - } else { - ber_tlv_len_t len; - size_t skipped; - - if(_is_constructed && oct == 0x80) { - *len_r = -1; /* Indefinite length */ - return 1; - } - - if(oct == 0xff) { - /* Reserved in standard for future use. */ - return -1; - } - - oct &= 0x7F; /* Leave only the 7 LS bits */ - for(len = 0, buf++, skipped = 1; - oct && (++skipped <= size); buf++, oct--) { - - /* Verify that we won't overflow. */ - if(!(len >> ((8 * sizeof(len)) - (8+1)))) { - len = (len << 8) | *buf; - } else { - /* Too large length value. */ - return -1; - } - } - - if(oct == 0) { - if(len < 0 || len > RSSIZE_MAX) { - /* Length value out of sane range. */ - return -1; - } - - *len_r = len; - return skipped; - } - - return 0; /* Want more */ - } - -} - -ssize_t -ber_skip_length(const asn_codec_ctx_t *opt_codec_ctx, - int _is_constructed, const void *ptr, size_t size) { - ber_tlv_len_t vlen; /* Length of V in TLV */ - ssize_t tl; /* Length of L in TLV */ - ssize_t ll; /* Length of L in TLV */ - size_t skip; - - /* - * Make sure we didn't exceed the maximum stack size. - */ - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - return -1; - - /* - * Determine the size of L in TLV. - */ - ll = ber_fetch_length(_is_constructed, ptr, size, &vlen); - if(ll <= 0) return ll; - - /* - * Definite length. - */ - if(vlen >= 0) { - skip = ll + vlen; - if(skip > size) - return 0; /* Want more */ - return skip; - } - - /* - * Indefinite length! - */ - ASN_DEBUG("Skipping indefinite length"); - for(skip = ll, ptr = ((const char *)ptr) + ll, size -= ll;;) { - ber_tlv_tag_t tag; - - /* Fetch the tag */ - tl = ber_fetch_tag(ptr, size, &tag); - if(tl <= 0) return tl; - - ll = ber_skip_length(opt_codec_ctx, - BER_TLV_CONSTRUCTED(ptr), - ((const char *)ptr) + tl, size - tl); - if(ll <= 0) return ll; - - skip += tl + ll; - - /* - * This may be the end of the indefinite length structure, - * two consecutive 0 octets. - * Check if it is true. - */ - if(((const uint8_t *)ptr)[0] == 0 - && ((const uint8_t *)ptr)[1] == 0) - return skip; - - ptr = ((const char *)ptr) + tl + ll; - size -= tl + ll; - } - - /* UNREACHABLE */ -} - -size_t -der_tlv_length_serialize(ber_tlv_len_t len, void *bufp, size_t size) { - size_t required_size; /* Size of len encoding */ - uint8_t *buf = (uint8_t *)bufp; - uint8_t *end; - int i; - - if(len <= 127) { - /* Encoded in 1 octet */ - if(size) *buf = (uint8_t)len; - return 1; - } - - /* - * Compute the size of the subsequent bytes. - */ - for(required_size = 1, i = 8; i < 8 * (int)sizeof(len); i += 8) { - if(len >> i) - required_size++; - else - break; - } - - if(size <= required_size) - return required_size + 1; - - *buf++ = (uint8_t)(0x80 | required_size); /* Length of the encoding */ - - /* - * Produce the len encoding, space permitting. - */ - end = buf + required_size; - for(i -= 8; buf < end; i -= 8, buf++) - *buf = (uint8_t)(len >> i); - - return required_size + 1; -} - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ber_tlv_length.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ber_tlv_length.h deleted file mode 100644 index d1e4d48..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ber_tlv_length.h +++ /dev/null @@ -1,50 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _BER_TLV_LENGTH_H_ -#define _BER_TLV_LENGTH_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef ssize_t ber_tlv_len_t; - -/* - * This function tries to fetch the length of the BER TLV value and place it - * in *len_r. - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering length. - * >0: Number of bytes used from bufptr. - * On return with >0, len_r is constrained as -1..MAX, where -1 mean - * that the value is of indefinite length. - */ -ssize_t ber_fetch_length(int _is_constructed, const void *bufptr, size_t size, - ber_tlv_len_t *len_r); - -/* - * This function expects bufptr to be positioned over L in TLV. - * It returns number of bytes occupied by L and V together, suitable - * for skipping. The function properly handles indefinite length. - * RETURN VALUES: - * Standard {-1,0,>0} convention. - */ -ssize_t ber_skip_length( - const struct asn_codec_ctx_s *opt_codec_ctx, /* optional context */ - int _is_constructed, const void *bufptr, size_t size); - -/* - * This function serializes the length (L from TLV) in DER format. - * It always returns number of bytes necessary to represent the length, - * it is a caller's responsibility to check the return value - * against the supplied buffer's size. - */ -size_t der_tlv_length_serialize(ber_tlv_len_t len, void *bufptr, size_t size); - -#ifdef __cplusplus -} -#endif - -#endif /* _BER_TLV_LENGTH_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ber_tlv_tag.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ber_tlv_tag.c deleted file mode 100644 index 4a7d732..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ber_tlv_tag.c +++ /dev/null @@ -1,144 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -ssize_t -ber_fetch_tag(const void *ptr, size_t size, ber_tlv_tag_t *tag_r) { - ber_tlv_tag_t val; - ber_tlv_tag_t tclass; - size_t skipped; - - if(size == 0) - return 0; - - val = *(const uint8_t *)ptr; - tclass = (val >> 6); - if((val &= 0x1F) != 0x1F) { - /* - * Simple form: everything encoded in a single octet. - * Tag Class is encoded using two least significant bits. - */ - *tag_r = (val << 2) | tclass; - return 1; - } - - /* - * Each octet contains 7 bits of useful information. - * The MSB is 0 if it is the last octet of the tag. - */ - for(val = 0, ptr = ((const char *)ptr) + 1, skipped = 2; - skipped <= size; - ptr = ((const char *)ptr) + 1, skipped++) { - unsigned int oct = *(const uint8_t *)ptr; - if(oct & 0x80) { - val = (val << 7) | (oct & 0x7F); - /* - * Make sure there are at least 9 bits spare - * at the MS side of a value. - */ - if(val >> ((8 * sizeof(val)) - 9)) { - /* - * We would not be able to accomodate - * any more tag bits. - */ - return -1; - } - } else { - val = (val << 7) | oct; - *tag_r = (val << 2) | tclass; - return skipped; - } - } - - return 0; /* Want more */ -} - - -ssize_t -ber_tlv_tag_fwrite(ber_tlv_tag_t tag, FILE *f) { - char buf[sizeof("[APPLICATION ]") + 32]; - ssize_t ret; - - ret = ber_tlv_tag_snprint(tag, buf, sizeof(buf)); - if(ret >= (ssize_t)sizeof(buf) || ret < 2) { - errno = EPERM; - return -1; - } - - return fwrite(buf, 1, ret, f); -} - -ssize_t -ber_tlv_tag_snprint(ber_tlv_tag_t tag, char *buf, size_t size) { - const char *type = 0; - int ret; - - switch(tag & 0x3) { - case ASN_TAG_CLASS_UNIVERSAL: type = "UNIVERSAL "; break; - case ASN_TAG_CLASS_APPLICATION: type = "APPLICATION "; break; - case ASN_TAG_CLASS_CONTEXT: type = ""; break; - case ASN_TAG_CLASS_PRIVATE: type = "PRIVATE "; break; - } - - ret = snprintf(buf, size, "[%s%u]", type, ((unsigned)tag) >> 2); - if(ret <= 0 && size) buf[0] = '\0'; /* against broken libc's */ - - return ret; -} - -char * -ber_tlv_tag_string(ber_tlv_tag_t tag) { - static char buf[sizeof("[APPLICATION ]") + 32]; - - (void)ber_tlv_tag_snprint(tag, buf, sizeof(buf)); - - return buf; -} - - -size_t -ber_tlv_tag_serialize(ber_tlv_tag_t tag, void *bufp, size_t size) { - int tclass = BER_TAG_CLASS(tag); - ber_tlv_tag_t tval = BER_TAG_VALUE(tag); - uint8_t *buf = (uint8_t *)bufp; - uint8_t *end; - size_t required_size; - size_t i; - - if(tval <= 30) { - /* Encoded in 1 octet */ - if(size) buf[0] = (tclass << 6) | tval; - return 1; - } else if(size) { - *buf++ = (tclass << 6) | 0x1F; - size--; - } - - /* - * Compute the size of the subsequent bytes. - */ - for(required_size = 1, i = 7; i < 8 * sizeof(tval); i += 7) { - if(tval >> i) - required_size++; - else - break; - } - - if(size < required_size) - return required_size + 1; - - /* - * Fill in the buffer, space permitting. - */ - end = buf + required_size - 1; - for(i -= 7; buf < end; i -= 7, buf++) - *buf = 0x80 | ((tval >> i) & 0x7F); - *buf = (tval & 0x7F); /* Last octet without high bit */ - - return required_size + 1; -} - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ber_tlv_tag.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ber_tlv_tag.h deleted file mode 100644 index ce227ad..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ber_tlv_tag.h +++ /dev/null @@ -1,60 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _BER_TLV_TAG_H_ -#define _BER_TLV_TAG_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -enum asn_tag_class { - ASN_TAG_CLASS_UNIVERSAL = 0, /* 0b00 */ - ASN_TAG_CLASS_APPLICATION = 1, /* 0b01 */ - ASN_TAG_CLASS_CONTEXT = 2, /* 0b10 */ - ASN_TAG_CLASS_PRIVATE = 3 /* 0b11 */ -}; -typedef unsigned ber_tlv_tag_t; /* BER TAG from Tag-Length-Value */ - -/* - * Tag class is encoded together with tag value for optimization purposes. - */ -#define BER_TAG_CLASS(tag) ((tag) & 0x3) -#define BER_TAG_VALUE(tag) ((tag) >> 2) -#define BER_TLV_CONSTRUCTED(tagptr) (((*(const uint8_t *)tagptr)&0x20)?1:0) - -#define BER_TAGS_EQUAL(tag1, tag2) ((tag1) == (tag2)) - -/* - * Several functions for printing the TAG in the canonical form - * (i.e. "[PRIVATE 0]"). - * Return values correspond to their libc counterparts (if any). - */ -ssize_t ber_tlv_tag_snprint(ber_tlv_tag_t tag, char *buf, size_t buflen); -ssize_t ber_tlv_tag_fwrite(ber_tlv_tag_t tag, FILE *); -char *ber_tlv_tag_string(ber_tlv_tag_t tag); - - -/* - * This function tries to fetch the tag from the input stream. - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering tag. - * >0: Number of bytes used from bufptr. tag_r will contain the tag. - */ -ssize_t ber_fetch_tag(const void *bufptr, size_t size, ber_tlv_tag_t *tag_r); - -/* - * This function serializes the tag (T from TLV) in BER format. - * It always returns number of bytes necessary to represent the tag, - * it is a caller's responsibility to check the return value - * against the supplied buffer's size. - */ -size_t ber_tlv_tag_serialize(ber_tlv_tag_t tag, void *bufptr, size_t size); - -#ifdef __cplusplus -} -#endif - -#endif /* _BER_TLV_TAG_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_CHOICE.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_CHOICE.c deleted file mode 100644 index 86dcbb0..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_CHOICE.c +++ /dev/null @@ -1,1533 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Number of bytes left for this structure. - * (ctx->left) indicates the number of bytes _transferred_ for the structure. - * (size) contains the number of bytes in the buffer passed. - */ -#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) - -/* - * If the subprocessor function returns with an indication that it wants - * more data, it may well be a fatal decoding problem, because the - * size is constrained by the 's L, even if the buffer size allows - * reading more data. - * For example, consider the buffer containing the following TLVs: - * ... - * The TLV length clearly indicates that one byte is expected in V, but - * if the V processor returns with "want more data" even if the buffer - * contains way more data than the V processor have seen. - */ -#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) - -/* - * This macro "eats" the part of the buffer which is definitely "consumed", - * i.e. was correctly converted into local representation or rightfully skipped. - */ -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num;\ - size -= num; \ - if(ctx->left >= 0) \ - ctx->left -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#define NEXT_PHASE(ctx) do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself;\ - return rval; \ - } while(0) - -/* - * See the definitions. - */ -static unsigned _fetch_present_idx(const void *struct_ptr, unsigned off, - unsigned size); -static void _set_present_idx(void *sptr, unsigned offset, unsigned size, - unsigned pres); -static const void *_get_member_ptr(const asn_TYPE_descriptor_t *, - const void *sptr, asn_TYPE_member_t **elm, - unsigned *present); - -/* - * Tags are canonically sorted in the tag to member table. - */ -static int -_search4tag(const void *ap, const void *bp) { - const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap; - const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp; - - int a_class = BER_TAG_CLASS(a->el_tag); - int b_class = BER_TAG_CLASS(b->el_tag); - - if(a_class == b_class) { - ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag); - ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag); - - if(a_value == b_value) - return 0; - else if(a_value < b_value) - return -1; - else - return 1; - } else if(a_class < b_class) { - return -1; - } else { - return 1; - } -} - -/* - * The decoder of the CHOICE type. - */ -asn_dec_rval_t -CHOICE_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const void *ptr, size_t size, int tag_mode) { - /* - * Bring closer parts of structure description. - */ - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_TYPE_member_t *elements = td->elements; - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - ber_tlv_tag_t tlv_tag; /* T from TLV */ - ssize_t tag_len; /* Length of TLV's T */ - asn_dec_rval_t rval; /* Return code from subparsers */ - - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - - ASN_DEBUG("Decoding %s as CHOICE", td->name); - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Start to parse where left previously - */ - switch(ctx->phase) { - case 0: - /* - * PHASE 0. - * Check that the set of tags associated with given structure - * perfectly fits our expectations. - */ - - if(tag_mode || td->tags_count) { - rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, - tag_mode, -1, &ctx->left, 0); - if(rval.code != RC_OK) { - ASN_DEBUG("%s tagging check failed: %d", - td->name, rval.code); - return rval; - } - - if(ctx->left >= 0) { - /* ?Substracted below! */ - ctx->left += rval.consumed; - } - ADVANCE(rval.consumed); - } else { - ctx->left = -1; - } - - NEXT_PHASE(ctx); - - ASN_DEBUG("Structure consumes %ld bytes, buffer %ld", - (long)ctx->left, (long)size); - - /* Fall through */ - case 1: - /* - * Fetch the T from TLV. - */ - tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); - ASN_DEBUG("In %s CHOICE tag length %d", td->name, (int)tag_len); - switch(tag_len) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - do { - const asn_TYPE_tag2member_t *t2m; - asn_TYPE_tag2member_t key; - - key.el_tag = tlv_tag; - t2m = (const asn_TYPE_tag2member_t *)bsearch(&key, - specs->tag2el, specs->tag2el_count, - sizeof(specs->tag2el[0]), _search4tag); - if(t2m) { - /* - * Found the element corresponding to the tag. - */ - NEXT_PHASE(ctx); - ctx->step = t2m->el_no; - break; - } else if(specs->ext_start == -1) { - ASN_DEBUG("Unexpected tag %s " - "in non-extensible CHOICE %s", - ber_tlv_tag_string(tlv_tag), td->name); - RETURN(RC_FAIL); - } else { - /* Skip this tag */ - ssize_t skip; - - ASN_DEBUG("Skipping unknown tag %s", - ber_tlv_tag_string(tlv_tag)); - - skip = ber_skip_length(opt_codec_ctx, - BER_TLV_CONSTRUCTED(ptr), - (const char *)ptr + tag_len, - LEFT - tag_len); - - switch(skip) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - ADVANCE(skip + tag_len); - RETURN(RC_OK); - } - } while(0); - - case 2: - /* - * PHASE 2. - * Read in the element. - */ - do { - asn_TYPE_member_t *elm;/* CHOICE's element */ - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - - elm = &elements[ctx->step]; - - /* - * Compute the position of the member inside a structure, - * and also a type of containment (it may be contained - * as pointer or using inline inclusion). - */ - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - /* - * A pointer to a pointer - * holding the start of the structure - */ - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - /* Set presence to be able to free it properly at any time */ - _set_present_idx(st, specs->pres_offset, - specs->pres_size, ctx->step + 1); - /* - * Invoke the member fetch routine according to member's type - */ - rval = elm->type->op->ber_decoder(opt_codec_ctx, elm->type, - memb_ptr2, ptr, LEFT, elm->tag_mode); - switch(rval.code) { - case RC_OK: - break; - case RC_WMORE: /* More data expected */ - if(!SIZE_VIOLATION) { - ADVANCE(rval.consumed); - RETURN(RC_WMORE); - } - RETURN(RC_FAIL); - case RC_FAIL: /* Fatal error */ - RETURN(rval.code); - } /* switch(rval) */ - - ADVANCE(rval.consumed); - } while(0); - - NEXT_PHASE(ctx); - - /* Fall through */ - case 3: - ASN_DEBUG("CHOICE %s Leftover: %ld, size = %ld, tm=%d, tc=%d", - td->name, (long)ctx->left, (long)size, - tag_mode, td->tags_count); - - if(ctx->left > 0) { - /* - * The type must be fully decoded - * by the CHOICE member-specific decoder. - */ - RETURN(RC_FAIL); - } - - if(ctx->left == -1 - && !(tag_mode || td->tags_count)) { - /* - * This is an untagged CHOICE. - * It doesn't contain nothing - * except for the member itself, including all its tags. - * The decoding is completed. - */ - NEXT_PHASE(ctx); - break; - } - - /* - * Read in the "end of data chunks"'s. - */ - while(ctx->left < 0) { - ssize_t tl; - - tl = ber_fetch_tag(ptr, LEFT, &tlv_tag); - switch(tl) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - /* - * Expected <0><0>... - */ - if(((const uint8_t *)ptr)[0] == 0) { - if(LEFT < 2) { - if(SIZE_VIOLATION) - RETURN(RC_FAIL); - else - RETURN(RC_WMORE); - } else if(((const uint8_t *)ptr)[1] == 0) { - /* - * Correctly finished with <0><0>. - */ - ADVANCE(2); - ctx->left++; - continue; - } - } else { - ASN_DEBUG("Unexpected continuation in %s", - td->name); - RETURN(RC_FAIL); - } - - /* UNREACHABLE */ - } - - NEXT_PHASE(ctx); - case 4: - /* No meaningful work here */ - break; - } - - RETURN(RC_OK); -} - -asn_enc_rval_t -CHOICE_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, - void *app_key) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - asn_TYPE_member_t *elm; /* CHOICE element */ - asn_enc_rval_t erval = {0,0,0}; - const void *memb_ptr; - size_t computed_size = 0; - unsigned present; - - if(!sptr) ASN__ENCODE_FAILED; - - ASN_DEBUG("%s %s as CHOICE", - cb?"Encoding":"Estimating", td->name); - - present = _fetch_present_idx(sptr, - specs->pres_offset, specs->pres_size); - - /* - * If the structure was not initialized, it cannot be encoded: - * can't deduce what to encode in the choice type. - */ - if(present == 0 || present > td->elements_count) { - if(present == 0 && td->elements_count == 0) { - /* The CHOICE is empty?! */ - erval.encoded = 0; - ASN__ENCODED_OK(erval); - } - ASN__ENCODE_FAILED; - } - - /* - * Seek over the present member of the structure. - */ - elm = &td->elements[present-1]; - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(memb_ptr == 0) { - if(elm->optional) { - erval.encoded = 0; - ASN__ENCODED_OK(erval); - } - /* Mandatory element absent */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - /* - * If the CHOICE itself is tagged EXPLICIT: - * T ::= [2] EXPLICIT CHOICE { ... } - * Then emit the appropriate tags. - */ - if(tag_mode == 1 || td->tags_count) { - /* - * For this, we need to pre-compute the member. - */ - ssize_t ret; - - /* Encode member with its tag */ - erval = elm->type->op->der_encoder(elm->type, memb_ptr, - elm->tag_mode, elm->tag, 0, 0); - if(erval.encoded == -1) - return erval; - - /* Encode CHOICE with parent or my own tag */ - ret = der_write_tags(td, erval.encoded, tag_mode, 1, tag, - cb, app_key); - if(ret == -1) - ASN__ENCODE_FAILED; - computed_size += ret; - } - - /* - * Encode the single underlying member. - */ - erval = elm->type->op->der_encoder(elm->type, memb_ptr, - elm->tag_mode, elm->tag, cb, app_key); - if(erval.encoded == -1) - return erval; - - ASN_DEBUG("Encoded CHOICE member in %ld bytes (+%ld)", - (long)erval.encoded, (long)computed_size); - - erval.encoded += computed_size; - - return erval; -} - -ber_tlv_tag_t -CHOICE_outmost_tag(const asn_TYPE_descriptor_t *td, const void *ptr, int tag_mode, ber_tlv_tag_t tag) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - assert(tag_mode == 0); (void)tag_mode; - assert(tag == 0); (void)tag; - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(ptr, specs->pres_offset, specs->pres_size); - - if(present > 0 && present <= td->elements_count) { - const asn_TYPE_member_t *elm = &td->elements[present-1]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *) - ((const char *)ptr + elm->memb_offset); - } else { - memb_ptr = (const void *) - ((const char *)ptr + elm->memb_offset); - } - - return asn_TYPE_outmost_tag(elm->type, memb_ptr, - elm->tag_mode, elm->tag); - } else { - return (ber_tlv_tag_t)-1; - } -} - -int -CHOICE_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); - if(present > 0 && present <= td->elements_count) { - asn_TYPE_member_t *elm = &td->elements[present-1]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) { - if(elm->optional) - return 0; - ASN__CTFAIL(app_key, td, sptr, - "%s: mandatory CHOICE element %s absent (%s:%d)", - td->name, elm->name, __FILE__, __LINE__); - return -1; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - if(elm->encoding_constraints.general_constraints) { - return elm->encoding_constraints.general_constraints(elm->type, memb_ptr, - ctfailcb, app_key); - } else { - return elm->type->encoding_constraints.general_constraints(elm->type, - memb_ptr, ctfailcb, app_key); - } - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: no CHOICE element given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -#undef XER_ADVANCE -#define XER_ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - buf_ptr = (const void *)(((const char *)buf_ptr) + num); \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Decode the XER (XML) data. - */ -asn_dec_rval_t -CHOICE_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const char *opt_mname, const void *buf_ptr, size_t size) { - /* - * Bring closer parts of structure description. - */ - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - asn_dec_rval_t rval; /* Return value of a decoder */ - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - size_t edx; /* Element index */ - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) RETURN(RC_FAIL); - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - if(ctx->phase == 0 && !*xml_tag) - ctx->phase = 1; /* Skip the outer tag checking phase */ - - /* - * Phases of XER/XML processing: - * Phase 0: Check that the opening tag matches our expectations. - * Phase 1: Processing body and reacting on closing tag. - * Phase 2: Processing inner type. - * Phase 3: Only waiting for closing tag. - * Phase 4: Skipping unknown extensions. - * Phase 5: PHASED OUT - */ - for(edx = ctx->step; ctx->phase <= 4;) { - pxer_chunk_type_e ch_type; /* XER chunk type */ - ssize_t ch_size; /* Chunk size */ - xer_check_tag_e tcv; /* Tag check value */ - asn_TYPE_member_t *elm; - - /* - * Go inside the member. - */ - if(ctx->phase == 2) { - asn_dec_rval_t tmprval; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - unsigned old_present; - - elm = &td->elements[edx]; - - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st - + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - /* Start/Continue decoding the inner member */ - tmprval = elm->type->op->xer_decoder(opt_codec_ctx, - elm->type, memb_ptr2, elm->name, - buf_ptr, size); - XER_ADVANCE(tmprval.consumed); - ASN_DEBUG("XER/CHOICE: itdf: [%s] code=%d", - elm->type->name, tmprval.code); - old_present = _fetch_present_idx(st, - specs->pres_offset, specs->pres_size); - assert(old_present == 0 || old_present == edx + 1); - /* Record what we've got */ - _set_present_idx(st, - specs->pres_offset, specs->pres_size, edx + 1); - if(tmprval.code != RC_OK) - RETURN(tmprval.code); - ctx->phase = 3; - /* Fall through */ - } - - /* No need to wait for closing tag; special mode. */ - if(ctx->phase == 3 && !*xml_tag) { - ctx->phase = 5; /* Phase out */ - RETURN(RC_OK); - } - - /* - * Get the next part of the XML stream. - */ - ch_size = xer_next_token(&ctx->context, buf_ptr, size, &ch_type); - if(ch_size == -1) { - RETURN(RC_FAIL); - } else { - switch(ch_type) { - case PXER_WMORE: - RETURN(RC_WMORE); - case PXER_COMMENT: /* Got XML comment */ - case PXER_TEXT: /* Ignore free-standing text */ - XER_ADVANCE(ch_size); /* Skip silently */ - continue; - case PXER_TAG: - break; /* Check the rest down there */ - } - } - - tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); - ASN_DEBUG("XER/CHOICE checked [%c%c%c%c] vs [%s], tcv=%d", - ch_size>0?((const uint8_t *)buf_ptr)[0]:'?', - ch_size>1?((const uint8_t *)buf_ptr)[1]:'?', - ch_size>2?((const uint8_t *)buf_ptr)[2]:'?', - ch_size>3?((const uint8_t *)buf_ptr)[3]:'?', - xml_tag, tcv); - - /* Skip the extensions section */ - if(ctx->phase == 4) { - ASN_DEBUG("skip_unknown(%d, %ld)", - tcv, (long)ctx->left); - switch(xer_skip_unknown(tcv, &ctx->left)) { - case -1: - ctx->phase = 5; - RETURN(RC_FAIL); - case 1: - ctx->phase = 3; - /* Fall through */ - case 0: - XER_ADVANCE(ch_size); - continue; - case 2: - ctx->phase = 3; - break; - } - } - - switch(tcv) { - case XCT_BOTH: - break; /* No CHOICE? */ - case XCT_CLOSING: - if(ctx->phase != 3) - break; - XER_ADVANCE(ch_size); - ctx->phase = 5; /* Phase out */ - RETURN(RC_OK); - case XCT_OPENING: - if(ctx->phase == 0) { - XER_ADVANCE(ch_size); - ctx->phase = 1; /* Processing body phase */ - continue; - } - /* Fall through */ - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - - if(ctx->phase != 1) - break; /* Really unexpected */ - - /* - * Search which inner member corresponds to this tag. - */ - for(edx = 0; edx < td->elements_count; edx++) { - elm = &td->elements[edx]; - tcv = xer_check_tag(buf_ptr,ch_size,elm->name); - switch(tcv) { - case XCT_BOTH: - case XCT_OPENING: - /* - * Process this member. - */ - ctx->step = edx; - ctx->phase = 2; - break; - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - continue; - default: - edx = td->elements_count; - break; /* Phase out */ - } - break; - } - if(edx != td->elements_count) - continue; - - /* It is expected extension */ - if(specs->ext_start != -1) { - ASN_DEBUG("Got anticipated extension"); - /* - * Check for (XCT_BOTH or XCT_UNKNOWN_BO) - * By using a mask. Only record a pure - * tags. - */ - if(tcv & XCT_CLOSING) { - /* Found without body */ - ctx->phase = 3; /* Terminating */ - } else { - ctx->left = 1; - ctx->phase = 4; /* Skip ...'s */ - } - XER_ADVANCE(ch_size); - continue; - } - - /* Fall through */ - default: - break; - } - - ASN_DEBUG("Unexpected XML tag [%c%c%c%c] in CHOICE [%s]" - " (ph=%d, tag=%s)", - ch_size>0?((const uint8_t *)buf_ptr)[0]:'?', - ch_size>1?((const uint8_t *)buf_ptr)[1]:'?', - ch_size>2?((const uint8_t *)buf_ptr)[2]:'?', - ch_size>3?((const uint8_t *)buf_ptr)[3]:'?', - td->name, ctx->phase, xml_tag); - break; - } - - ctx->phase = 5; /* Phase out, just in case */ - RETURN(RC_FAIL); -} - - -asn_enc_rval_t -CHOICE_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, - void *app_key) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - unsigned present = 0; - - if(!sptr) - ASN__ENCODE_FAILED; - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); - - if(present == 0 || present > td->elements_count) { - ASN__ENCODE_FAILED; - } else { - asn_enc_rval_t tmper = {0,0,0}; - asn_TYPE_member_t *elm = &td->elements[present-1]; - const void *memb_ptr = NULL; - const char *mname = elm->name; - unsigned int mlen = strlen(mname); - - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - er.encoded = 0; - - if(!(flags & XER_F_CANONICAL)) ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - - tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, - ilevel + 1, flags, cb, app_key); - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - - ASN__CALLBACK3("", 1); - } - - if(!(flags & XER_F_CANONICAL)) ASN__TEXT_INDENT(1, ilevel - 1); - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -asn_dec_rval_t -CHOICE_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_dec_rval_t rv; - const asn_per_constraint_t *ct; - asn_TYPE_member_t *elm; /* CHOICE's element */ - void *memb_ptr; - void **memb_ptr2; - void *st = *sptr; - int value; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) ct = &td->encoding_constraints.per_constraints->value; - else ct = 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - value = per_get_few_bits(pd, 1); - if(value < 0) ASN__DECODE_STARVED; - if(value) ct = 0; /* Not restricted */ - } - - if(ct && ct->range_bits >= 0) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - ASN_DEBUG("CHOICE %s got index %d in range %d", - td->name, value, ct->range_bits); - if(value > ct->upper_bound) - ASN__DECODE_FAILED; - } else { - if(specs->ext_start == -1) - ASN__DECODE_FAILED; - value = uper_get_nsnnwn(pd); - if(value < 0) ASN__DECODE_STARVED; - value += specs->ext_start; - if((unsigned)value >= td->elements_count) - ASN__DECODE_FAILED; - } - - /* Adjust if canonical order is different from natural order */ - if(specs->from_canonical_order) { - ASN_DEBUG("CHOICE presence from wire %d", value); - value = specs->from_canonical_order[value]; - ASN_DEBUG("CHOICE presence index effective %d", value); - } - - /* Set presence to be able to free it later */ - _set_present_idx(st, specs->pres_offset, specs->pres_size, value + 1); - - elm = &td->elements[value]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - ASN_DEBUG("Discovered CHOICE %s encodes %s", td->name, elm->name); - - if(ct && ct->range_bits >= 0) { - rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } else { - rv = uper_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } - - if(rv.code != RC_OK) - ASN_DEBUG("Failed to decode %s in %s (CHOICE) %d", - elm->name, td->name, rv.code); - return rv; -} - -asn_enc_rval_t -CHOICE_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - asn_TYPE_member_t *elm; /* CHOICE's element */ - const asn_per_constraint_t *ct; - const void *memb_ptr; - unsigned present; - int present_enc; - - if(!sptr) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %s as CHOICE", td->name); - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ct = 0; - - present = _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); - - /* - * If the structure was not initialized properly, it cannot be encoded: - * can't deduce what to encode in the choice type. - */ - if(present == 0 || present > td->elements_count) - ASN__ENCODE_FAILED; - else - present--; - - ASN_DEBUG("Encoding %s CHOICE element %d", td->name, present); - - /* Adjust if canonical order is different from natural order */ - if(specs->to_canonical_order) - present_enc = specs->to_canonical_order[present]; - else - present_enc = present; - - if(ct && ct->range_bits >= 0) { - if(present_enc < ct->lower_bound - || present_enc > ct->upper_bound) { - if(ct->flags & APC_EXTENSIBLE) { - ASN_DEBUG( - "CHOICE member %d (enc %d) is an extension (%ld..%ld)", - present, present_enc, ct->lower_bound, ct->upper_bound); - if(per_put_few_bits(po, 1, 1)) - ASN__ENCODE_FAILED; - } else { - ASN__ENCODE_FAILED; - } - ct = 0; - } - } - if(ct && ct->flags & APC_EXTENSIBLE) { - ASN_DEBUG("CHOICE member %d (enc %d) is not an extension (%ld..%ld)", - present, present_enc, ct->lower_bound, ct->upper_bound); - if(per_put_few_bits(po, 0, 1)) - ASN__ENCODE_FAILED; - } - - - elm = &td->elements[present]; - ASN_DEBUG("CHOICE member \"%s\" %d (as %d)", elm->name, present, - present_enc); - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const char *)sptr + elm->memb_offset; - } - - if(ct && ct->range_bits >= 0) { - if(per_put_few_bits(po, present_enc, ct->range_bits)) - ASN__ENCODE_FAILED; - - return elm->type->op->uper_encoder( - elm->type, elm->encoding_constraints.per_constraints, memb_ptr, po); - } else { - asn_enc_rval_t rval = {0,0,0}; - if(specs->ext_start == -1) ASN__ENCODE_FAILED; - if(uper_put_nsnnwn(po, present_enc - specs->ext_start)) - ASN__ENCODE_FAILED; - if(uper_open_type_put(elm->type, - elm->encoding_constraints.per_constraints, - memb_ptr, po)) - ASN__ENCODE_FAILED; - rval.encoded = 0; - ASN__ENCODED_OK(rval); - } -} - -asn_dec_rval_t -CHOICE_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - asn_dec_rval_t rv; - const asn_per_constraint_t *ct; - const asn_per_constraint_t *ext_ct = NULL; - asn_TYPE_member_t *elm; /* CHOICE's element */ - void *memb_ptr; - void **memb_ptr2; - void *st = *sptr; - int value; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ct = 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - value = per_get_few_bits(pd, 1); - if(value < 0) ASN__DECODE_STARVED; - if(value) { - ext_ct = ct; - ct = 0; /* Not restricted */ - } - } - - - if(ct && ct->range_bits >= 0) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - ASN_DEBUG("CHOICE %s got index %d in range %d", - td->name, value, ct->range_bits); - if(value > ct->upper_bound) - ASN__DECODE_FAILED; - } else { - if(specs->ext_start == -1) - ASN__DECODE_FAILED; - value = aper_get_nsnnwn(pd, ext_ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - value += specs->ext_start; - if((unsigned)value >= td->elements_count) - ASN__DECODE_FAILED; - } - - /* Adjust if canonical order is different from natural order */ - if(specs->from_canonical_order) - value = specs->from_canonical_order[value]; - - /* Set presence to be able to free it later */ - _set_present_idx(st, specs->pres_offset, specs->pres_size, value + 1); - - elm = &td->elements[value]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - ASN_DEBUG("Discovered CHOICE %s encodes %s", td->name, elm->name); - - if(ct && ct->range_bits >= 0) { - rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } else { - rv = aper_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } - - if(rv.code != RC_OK) - ASN_DEBUG("Failed to decode %s in %s (CHOICE) %d", - elm->name, td->name, rv.code); - return rv; -} - -asn_enc_rval_t -CHOICE_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm; /* CHOICE's element */ - const asn_per_constraint_t *ct = NULL; - const asn_per_constraint_t *ext_ct = NULL; - const void *memb_ptr; - unsigned present; - int present_enc; - - if(!sptr) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %s as CHOICE using ALIGNED PER", td->name); - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ct = NULL; - - present = _fetch_present_idx(sptr, - specs->pres_offset, specs->pres_size); - - /* - * If the structure was not initialized properly, it cannot be encoded: - * can't deduce what to encode in the choice type. - */ - if(present <= 0 || (unsigned)present > td->elements_count) - ASN__ENCODE_FAILED; - else - present--; - - /* Adjust if canonical order is different from natural order */ - if(specs->to_canonical_order) - present_enc = specs->to_canonical_order[present]; - else - present_enc = present; - - ASN_DEBUG("Encoding %s CHOICE element %d", td->name, present); - - if(ct && (ct->range_bits >= 0)) { - // Value is not within the range of the primary values ? - if(present < ct->lower_bound || present > ct->upper_bound) { - if(ct->flags & APC_EXTENSIBLE) { - ASN_DEBUG("CHOICE member %d (enc %d) is an extension (%ld..%ld)", - present, present_enc, ct->lower_bound, ct->upper_bound); - // X691/23.5 Extension marker = 1 - if(per_put_few_bits(po, 1, 1)) { - ASN__ENCODE_FAILED; - } - } else { - ASN__ENCODE_FAILED; - } - // no more need of constraint. - ext_ct = ct; - ct = NULL; - } - } - - if(ct && (ct->flags & APC_EXTENSIBLE)) { - ASN_DEBUG("CHOICE member %d (enc %d) is not an extension (%ld..%ld)", - present, present, ct->lower_bound, ct->upper_bound); - // X691.23.5 Extension marker = 0 - if(per_put_few_bits(po, 0, 1)) { - ASN__ENCODE_FAILED; - } - } - - elm = &td->elements[present]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr = *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const char *)sptr + elm->memb_offset; - } - - if(ct && (ct->range_bits >= 0)) { - // By construction (ct != 0), the alternative value is a non extended one. - // X691/23.7 X691/23.6 alternative value encoded as a range_bits bits value. - if(per_put_few_bits(po, present_enc, ct->range_bits)) - ASN__ENCODE_FAILED; - - return elm->type->op->aper_encoder(elm->type, elm->encoding_constraints.per_constraints, - memb_ptr, po); - } else { - asn_enc_rval_t rval = {0,0,0}; - if(specs->ext_start == -1) - ASN__ENCODE_FAILED; - // X691/23.8 normally encoded as a small non negative whole number - - if(ext_ct && aper_put_nsnnwn(po, ext_ct->range_bits, present_enc - specs->ext_start)) - ASN__ENCODE_FAILED; - if(aper_open_type_put(elm->type, elm->encoding_constraints.per_constraints, - memb_ptr, po)) - ASN__ENCODE_FAILED; - rval.encoded = 0; - ASN__ENCODED_OK(rval); - } -} - -int -CHOICE_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); - - /* - * Print that element. - */ - if(present > 0 && present <= td->elements_count) { - asn_TYPE_member_t *elm = &td->elements[present-1]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) return (cb("", 8, app_key) < 0) ? -1 : 0; - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - /* Print member's name and stuff */ - if(0) { - if(cb(elm->name, strlen(elm->name), app_key) < 0 - || cb(": ", 2, app_key) < 0) - return -1; - } - - return elm->type->op->print_struct(elm->type, memb_ptr, ilevel, - cb, app_key); - } else { - return (cb("", 8, app_key) < 0) ? -1 : 0; - } -} - -void -CHOICE_free(const asn_TYPE_descriptor_t *td, void *ptr, - enum asn_struct_free_method method) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - if(!td || !ptr) - return; - - ASN_DEBUG("Freeing %s as CHOICE", td->name); - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(ptr, specs->pres_offset, specs->pres_size); - - /* - * Free that element. - */ - if(present > 0 && present <= td->elements_count) { - asn_TYPE_member_t *elm = &td->elements[present-1]; - void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(void **)((char *)ptr + elm->memb_offset); - if(memb_ptr) - ASN_STRUCT_FREE(*elm->type, memb_ptr); - } else { - memb_ptr = (void *)((char *)ptr + elm->memb_offset); - ASN_STRUCT_FREE_CONTENTS_ONLY(*elm->type, memb_ptr); - } - } - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(ptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(ptr, 0, specs->struct_size); - break; - } -} - - -/* - * The following functions functions offer protection against -fshort-enums, - * compatible with little- and big-endian machines. - * If assertion is triggered, either disable -fshort-enums, or add an entry - * here with the ->pres_size of your target stracture. - * Unless the target structure is packed, the ".present" member - * is guaranteed to be aligned properly. ASN.1 compiler itself does not - * produce packed code. - */ -static unsigned -_fetch_present_idx(const void *struct_ptr, unsigned pres_offset, - unsigned pres_size) { - const void *present_ptr; - unsigned present; - - present_ptr = ((const char *)struct_ptr) + pres_offset; - - switch(pres_size) { - case sizeof(int): present = *(const unsigned int *)present_ptr; break; - case sizeof(short): present = *(const unsigned short *)present_ptr; break; - case sizeof(char): present = *(const unsigned char *)present_ptr; break; - default: - /* ANSI C mandates enum to be equivalent to integer */ - assert(pres_size != sizeof(int)); - return 0; /* If not aborted, pass back safe value */ - } - - return present; -} - -static void -_set_present_idx(void *struct_ptr, unsigned pres_offset, unsigned pres_size, - unsigned present) { - void *present_ptr; - present_ptr = ((char *)struct_ptr) + pres_offset; - - switch(pres_size) { - case sizeof(int): *(unsigned int *)present_ptr = present; break; - case sizeof(short): *(unsigned short *)present_ptr = present; break; - case sizeof(char): *(unsigned char *)present_ptr = present; break; - default: - /* ANSI C mandates enum to be equivalent to integer */ - assert(pres_size != sizeof(int)); - } -} - -static const void * -_get_member_ptr(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_TYPE_member_t **elm_ptr, unsigned *present_out) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - if(!sptr) { - *elm_ptr = NULL; - *present_out = 0; - return NULL; - } - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); - *present_out = present; - - /* - * The presence index is intentionally 1-based to avoid - * treating zeroed structure as a valid one. - */ - if(present > 0 && present <= td->elements_count) { - asn_TYPE_member_t *const elm = &td->elements[present - 1]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - *elm_ptr = elm; - return memb_ptr; - } else { - *elm_ptr = NULL; - return NULL; - } - -} - -int -CHOICE_compare(const asn_TYPE_descriptor_t *td, const void *aptr, const void *bptr) { - asn_TYPE_member_t *aelm; - asn_TYPE_member_t *belm; - unsigned apresent = 0; - unsigned bpresent = 0; - const void *amember = _get_member_ptr(td, aptr, &aelm, &apresent); - const void *bmember = _get_member_ptr(td, bptr, &belm, &bpresent); - - if(amember && bmember) { - if(apresent == bpresent) { - assert(aelm == belm); - return aelm->type->op->compare_struct(aelm->type, amember, bmember); - } else if(apresent < bpresent) { - return -1; - } else { - return 1; - } - } else if(!amember) { - return -1; - } else { - return 1; - } -} - -/* - * Return the 1-based choice variant presence index. - * Returns 0 in case of error. - */ -unsigned -CHOICE_variant_get_presence(const asn_TYPE_descriptor_t *td, const void *sptr) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - return _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); -} - -/* - * Sets or resets the 1-based choice variant presence index. - * In case a previous index is not zero, the currently selected structure - * member is freed and zeroed-out first. - * Returns 0 on success and -1 on error. - */ -int -CHOICE_variant_set_presence(const asn_TYPE_descriptor_t *td, void *sptr, - unsigned present) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - unsigned old_present; - - if(!sptr) { - return -1; - } - - if(present > td->elements_count) - return -1; - - old_present = - _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); - if(present == old_present) - return 0; - - if(old_present != 0) { - assert(old_present <= td->elements_count); - ASN_STRUCT_RESET(*td, sptr); - } - - _set_present_idx(sptr, specs->pres_offset, specs->pres_size, present); - - return 0; -} - - -asn_random_fill_result_t -CHOICE_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constr, - size_t max_length) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_random_fill_result_t res; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - const asn_TYPE_member_t *elm; - unsigned present; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *st = *sptr; - - if(max_length == 0) return result_skipped; - - (void)constr; - - if(st == NULL) { - st = CALLOC(1, specs->struct_size); - if(st == NULL) { - return result_failed; - } - } - - present = asn_random_between(1, td->elements_count); - elm = &td->elements[present - 1]; - - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - res = elm->type->op->random_fill(elm->type, memb_ptr2, - &elm->encoding_constraints, max_length); - _set_present_idx(st, specs->pres_offset, specs->pres_size, present); - if(res.code == ARFILL_OK) { - *sptr = st; - } else { - if(st == *sptr) { - ASN_STRUCT_RESET(*td, st); - } else { - ASN_STRUCT_FREE(*td, st); - } - } - - return res; -} - - -asn_TYPE_operation_t asn_OP_CHOICE = { - CHOICE_free, - CHOICE_print, - CHOICE_compare, - CHOICE_decode_ber, - CHOICE_encode_der, - CHOICE_decode_xer, - CHOICE_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - CHOICE_decode_oer, - CHOICE_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - CHOICE_decode_uper, - CHOICE_encode_uper, - CHOICE_decode_aper, - CHOICE_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - CHOICE_random_fill, - CHOICE_outmost_tag -}; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_CHOICE.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_CHOICE.h deleted file mode 100644 index a1999ed..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_CHOICE.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _CONSTR_CHOICE_H_ -#define _CONSTR_CHOICE_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct asn_CHOICE_specifics_s { - /* - * Target structure description. - */ - unsigned struct_size; /* Size of the target structure. */ - unsigned ctx_offset; /* Offset of the asn_codec_ctx_t member */ - unsigned pres_offset; /* Identifier of the present member */ - unsigned pres_size; /* Size of the identifier (enum) */ - - /* - * Tags to members mapping table. - */ - const asn_TYPE_tag2member_t *tag2el; - unsigned tag2el_count; - - /* Canonical ordering of CHOICE elements, for PER */ - const unsigned *to_canonical_order; - const unsigned *from_canonical_order; - - /* - * Extensions-related stuff. - */ - signed ext_start; /* First member of extensions, or -1 */ -} asn_CHOICE_specifics_t; - -/* - * A set specialized functions dealing with the CHOICE type. - */ -asn_struct_free_f CHOICE_free; -asn_struct_print_f CHOICE_print; -asn_struct_compare_f CHOICE_compare; -asn_constr_check_f CHOICE_constraint; -ber_type_decoder_f CHOICE_decode_ber; -der_type_encoder_f CHOICE_encode_der; -xer_type_decoder_f CHOICE_decode_xer; -xer_type_encoder_f CHOICE_encode_xer; -oer_type_decoder_f CHOICE_decode_oer; -oer_type_encoder_f CHOICE_encode_oer; -per_type_decoder_f CHOICE_decode_uper; -per_type_encoder_f CHOICE_encode_uper; -per_type_decoder_f CHOICE_decode_aper; -per_type_encoder_f CHOICE_encode_aper; -asn_outmost_tag_f CHOICE_outmost_tag; -asn_random_fill_f CHOICE_random_fill; -extern asn_TYPE_operation_t asn_OP_CHOICE; - -/* - * Return the 1-based choice variant presence index. - * Returns 0 in case of error. - */ -unsigned CHOICE_variant_get_presence(const asn_TYPE_descriptor_t *td, - const void *structure_ptr); - -/* - * Sets or resets the 1-based choice variant presence index. - * In case a previous index is not zero, the currently selected structure - * member is freed and zeroed-out first. - * Returns 0 on success and -1 on error. - */ -int CHOICE_variant_set_presence(const asn_TYPE_descriptor_t *td, - void *structure_ptr, unsigned present); - -#ifdef __cplusplus -} -#endif - -#endif /* _CONSTR_CHOICE_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_CHOICE_oer.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_CHOICE_oer.c deleted file mode 100644 index a4c591c..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_CHOICE_oer.c +++ /dev/null @@ -1,380 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) \ - do { \ - asn_dec_rval_t rval; \ - rval.code = _code; \ - rval.consumed = consumed_myself; \ - return rval; \ - } while(0) - -#undef ADVANCE -#define ADVANCE(num_bytes) \ - do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#define NEXT_PHASE(ctx) \ - do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) -#undef SET_PHASE -#define SET_PHASE(ctx, value) \ - do { \ - ctx->phase = value; \ - ctx->step = 0; \ - } while(0) - -/* - * Tags are canonically sorted in the tag to member table. - */ -static int -_search4tag(const void *ap, const void *bp) { - const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap; - const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp; - - int a_class = BER_TAG_CLASS(a->el_tag); - int b_class = BER_TAG_CLASS(b->el_tag); - - if(a_class == b_class) { - ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag); - ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag); - - if(a_value == b_value) - return 0; - else if(a_value < b_value) - return -1; - else - return 1; - } else if(a_class < b_class) { - return -1; - } else { - return 1; - } -} - -/* - * X.696 (08/2015) #8.7 Encoding of tags - */ -static ssize_t -oer_fetch_tag(const void *ptr, size_t size, ber_tlv_tag_t *tag_r) { - ber_tlv_tag_t val; - ber_tlv_tag_t tclass; - size_t skipped; - - if(size == 0) - return 0; - - val = *(const uint8_t *)ptr; - tclass = (val >> 6); - if((val & 0x3F) != 0x3F) { - /* #8.7.1 */ - *tag_r = ((val & 0x3F) << 2) | tclass; - return 1; - } - - /* - * Each octet contains 7 bits of useful information. - * The MSB is 0 if it is the last octet of the tag. - */ - for(val = 0, ptr = ((const char *)ptr) + 1, skipped = 2; skipped <= size; - ptr = ((const char *)ptr) + 1, skipped++) { - unsigned int oct = *(const uint8_t *)ptr; - if(oct & 0x80) { - val = (val << 7) | (oct & 0x7F); - /* - * Make sure there are at least 9 bits spare - * at the MS side of a value. - */ - if(val >> ((8 * sizeof(val)) - 9)) { - /* - * We would not be able to accomodate - * any more tag bits. - */ - return -1; - } - } else { - val = (val << 7) | oct; - *tag_r = (val << 2) | tclass; - return skipped; - } - } - - return 0; /* Want more */ -} - -asn_dec_rval_t -CHOICE_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **struct_ptr, - const void *ptr, size_t size) { - /* - * Bring closer parts of structure description. - */ - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_TYPE_member_t *elements = td->elements; - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - - (void)constraints; - - ASN_DEBUG("Decoding %s as CHOICE", td->name); - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - switch(ctx->phase) { - case 0: { - /* - * Discover the tag. - */ - ber_tlv_tag_t tlv_tag; /* T from TLV */ - ssize_t tag_len; /* Length of TLV's T */ - - tag_len = oer_fetch_tag(ptr, size, &tlv_tag); - switch(tag_len) { - case 0: - ASN__DECODE_STARVED; - case -1: - ASN__DECODE_FAILED; - } - - do { - const asn_TYPE_tag2member_t *t2m; - asn_TYPE_tag2member_t key = {0, 0, 0, 0}; - key.el_tag = tlv_tag; - - t2m = (const asn_TYPE_tag2member_t *)bsearch( - &key, specs->tag2el, specs->tag2el_count, - sizeof(specs->tag2el[0]), _search4tag); - if(t2m) { - /* - * Found the element corresponding to the tag. - */ - NEXT_PHASE(ctx); - ctx->step = t2m->el_no; - break; - } else if(specs->ext_start == -1) { - ASN_DEBUG( - "Unexpected tag %s " - "in non-extensible CHOICE %s", - ber_tlv_tag_string(tlv_tag), td->name); - RETURN(RC_FAIL); - } else { - /* Skip open type extension */ - ASN_DEBUG( - "Not implemented skipping open type extension for tag %s", - ber_tlv_tag_string(tlv_tag)); - RETURN(RC_FAIL); - } - } while(0); - - - ADVANCE(tag_len); - } - /* Fall through */ - case 1: { - asn_TYPE_member_t *elm = &elements[ctx->step]; /* CHOICE's element */ - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - asn_dec_rval_t rval = {0,0}; - - /* - * Compute the position of the member inside a structure, - * and also a type of containment (it may be contained - * as pointer or using inline inclusion). - */ - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - /* - * A pointer to a pointer - * holding the start of the structure - */ - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - /* Set presence to be able to free it properly at any time */ - (void)CHOICE_variant_set_presence(td, st, ctx->step + 1); - - if(specs->ext_start >= 0 && specs->ext_start <= ctx->step) { - ssize_t got = - oer_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.oer_constraints, - memb_ptr2, ptr, size); - if(got < 0) ASN__DECODE_FAILED; - if(got == 0) ASN__DECODE_STARVED; - rval.code = RC_OK; - rval.consumed = got; - } else { - rval = elm->type->op->oer_decoder( - opt_codec_ctx, elm->type, - elm->encoding_constraints.oer_constraints, memb_ptr2, ptr, - size); - } - rval.consumed += consumed_myself; - switch(rval.code) { - case RC_OK: - NEXT_PHASE(ctx); - case RC_WMORE: - break; - case RC_FAIL: - SET_PHASE(ctx, 3); /* => 3 */ - } - return rval; - } - case 2: - /* Already decoded everything */ - RETURN(RC_OK); - case 3: - /* Failed to decode, after all */ - RETURN(RC_FAIL); - } - - RETURN(RC_FAIL); -} - -/* - * X.696 (08/2015) #8.7 Encoding of tags - */ -static ssize_t -oer_put_tag(ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, void *app_key) { - uint8_t tclass = BER_TAG_CLASS(tag); - ber_tlv_tag_t tval = BER_TAG_VALUE(tag); - - if(tval < 0x3F) { - uint8_t b = (uint8_t)((tclass << 6) | tval); - if(cb(&b, 1, app_key) < 0) { - return -1; - } - return 1; - } else { - uint8_t buf[1 + 2 * sizeof(tval)]; - uint8_t *b = &buf[sizeof(buf)-1]; /* Last addressable */ - size_t encoded; - for(; ; tval >>= 7) { - if(tval >> 7) { - *b-- = 0x80 | (tval & 0x7f); - } else { - *b-- = tval & 0x7f; - break; - } - } - *b = (uint8_t)((tclass << 6) | 0x3F); - encoded = sizeof(buf) - (b - buf); - if(cb(b, encoded, app_key) < 0) { - return -1; - } - return encoded; - } - -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -CHOICE_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_TYPE_member_t *elm; /* CHOICE element */ - unsigned present; - const void *memb_ptr; - ber_tlv_tag_t tag; - ssize_t tag_len; - asn_enc_rval_t er = {0, 0, 0}; - - (void)constraints; - - if(!sptr) ASN__ENCODE_FAILED; - - ASN_DEBUG("OER %s encoding as CHOICE", td->name); - - present = CHOICE_variant_get_presence(td, sptr); - if(present == 0 || present > td->elements_count) { - ASN_DEBUG("CHOICE %s member is not selected", td->name); - ASN__ENCODE_FAILED; - } - - elm = &td->elements[present-1]; - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(memb_ptr == 0) { - /* Mandatory element absent */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - tag = asn_TYPE_outmost_tag(elm->type, memb_ptr, elm->tag_mode, elm->tag); - if(tag == 0) { - ASN__ENCODE_FAILED; - } - - tag_len = oer_put_tag(tag, cb, app_key); - if(tag_len < 0) { - ASN__ENCODE_FAILED; - } - - if(specs->ext_start >= 0 && (unsigned)specs->ext_start <= (present-1)) { - ssize_t encoded = oer_open_type_put(elm->type, - elm->encoding_constraints.oer_constraints, - memb_ptr, cb, app_key); - if(encoded < 0) ASN__ENCODE_FAILED; - er.encoded = tag_len + encoded; - } else { - er = elm->type->op->oer_encoder( - elm->type, elm->encoding_constraints.oer_constraints, memb_ptr, cb, - app_key); - if(er.encoded >= 0) er.encoded += tag_len; - } - - return er; -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_SEQUENCE.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_SEQUENCE.c deleted file mode 100644 index 43dcac7..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_SEQUENCE.c +++ /dev/null @@ -1,2059 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include -#include - -/* - * Number of bytes left for this structure. - * (ctx->left) indicates the number of bytes _transferred_ for the structure. - * (size) contains the number of bytes in the buffer passed. - */ -#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) - -/* - * If the subprocessor function returns with an indication that it wants - * more data, it may well be a fatal decoding problem, because the - * size is constrained by the 's L, even if the buffer size allows - * reading more data. - * For example, consider the buffer containing the following TLVs: - * ... - * The TLV length clearly indicates that one byte is expected in V, but - * if the V processor returns with "want more data" even if the buffer - * contains way more data than the V processor have seen. - */ -#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) - -/* - * This macro "eats" the part of the buffer which is definitely "consumed", - * i.e. was correctly converted into local representation or rightfully skipped. - */ -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - if(ctx->left >= 0) \ - ctx->left -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#undef PHASE_OUT -#define NEXT_PHASE(ctx) do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) -#define PHASE_OUT(ctx) do { ctx->phase = 10; } while(0) - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself;\ - return rval; \ - } while(0) - -/* - * Check whether we are inside the extensions group. - */ -#define IN_EXTENSION_GROUP(specs, memb_idx) \ - ((specs)->first_extension >= 0 \ - && (unsigned)(specs)->first_extension <= (memb_idx)) - -/* - * Tags are canonically sorted in the tag2element map. - */ -static int -_t2e_cmp(const void *ap, const void *bp) { - const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap; - const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp; - - int a_class = BER_TAG_CLASS(a->el_tag); - int b_class = BER_TAG_CLASS(b->el_tag); - - if(a_class == b_class) { - ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag); - ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag); - - if(a_value == b_value) { - if(a->el_no > b->el_no) - return 1; - /* - * Important: we do not check - * for a->el_no <= b->el_no! - */ - return 0; - } else if(a_value < b_value) - return -1; - else - return 1; - } else if(a_class < b_class) { - return -1; - } else { - return 1; - } -} - - -/* - * The decoder of the SEQUENCE type. - */ -asn_dec_rval_t -SEQUENCE_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const void *ptr, size_t size, int tag_mode) { - /* - * Bring closer parts of structure description. - */ - const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; - const asn_TYPE_member_t *elements = td->elements; - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - ber_tlv_tag_t tlv_tag; /* T from TLV */ - asn_dec_rval_t rval; /* Return code from subparsers */ - - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - size_t edx; /* SEQUENCE element's index */ - - ASN_DEBUG("Decoding %s as SEQUENCE", td->name); - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Start to parse where left previously - */ - switch(ctx->phase) { - case 0: - /* - * PHASE 0. - * Check that the set of tags associated with given structure - * perfectly fits our expectations. - */ - - rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, - tag_mode, 1, &ctx->left, 0); - if(rval.code != RC_OK) { - ASN_DEBUG("%s tagging check failed: %d", - td->name, rval.code); - return rval; - } - - if(ctx->left >= 0) - ctx->left += rval.consumed; /* ?Substracted below! */ - ADVANCE(rval.consumed); - - NEXT_PHASE(ctx); - - ASN_DEBUG("Structure consumes %ld bytes, buffer %ld", - (long)ctx->left, (long)size); - - /* Fall through */ - case 1: - /* - * PHASE 1. - * From the place where we've left it previously, - * try to decode the next member from the list of - * this structure's elements. - * (ctx->step) stores the member being processed - * between invocations and the microphase {0,1} of parsing - * that member: - * step = ( * 2 + ). - */ - for(edx = ((size_t)ctx->step >> 1); edx < td->elements_count; - edx++, ctx->step = (ctx->step & ~1) + 2) { - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - ssize_t tag_len; /* Length of TLV's T */ - size_t opt_edx_end; /* Next non-optional element */ - size_t n; - int use_bsearch; - - if(ctx->step & 1) - goto microphase2; - - /* - * MICROPHASE 1: Synchronize decoding. - */ - ASN_DEBUG("In %s SEQUENCE left %d, edx=%" ASN_PRI_SIZE " flags=%d" - " opt=%d ec=%d", - td->name, (int)ctx->left, edx, - elements[edx].flags, elements[edx].optional, - td->elements_count); - - if(ctx->left == 0 /* No more stuff is expected */ - && ( - /* Explicit OPTIONAL specification reaches the end */ - (edx + elements[edx].optional == td->elements_count) || - /* All extensions are optional */ - IN_EXTENSION_GROUP(specs, edx))) { - ASN_DEBUG("End of SEQUENCE %s", td->name); - /* - * Found the legitimate end of the structure. - */ - PHASE_OUT(ctx); - RETURN(RC_OK); - } - - /* - * Fetch the T from TLV. - */ - tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); - ASN_DEBUG("Current tag in %s SEQUENCE for element %" ASN_PRI_SIZE " " - "(%s) is %s encoded in %d bytes, of frame %ld", - td->name, edx, elements[edx].name, - ber_tlv_tag_string(tlv_tag), (int)tag_len, (long)LEFT); - switch(tag_len) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - if(ctx->left < 0 && ((const uint8_t *)ptr)[0] == 0) { - if(LEFT < 2) { - if(SIZE_VIOLATION) { - RETURN(RC_FAIL); - } else { - RETURN(RC_WMORE); - } - } else if(((const uint8_t *)ptr)[1] == 0) { - ASN_DEBUG("edx = %" ASN_PRI_SIZE ", opt = %d, ec=%d", edx, - elements[edx].optional, td->elements_count); - if((edx + elements[edx].optional == td->elements_count) - || IN_EXTENSION_GROUP(specs, edx)) { - /* - * Yeah, baby! Found the terminator - * of the indefinite length structure. - */ - /* - * Proceed to the canonical - * finalization function. - * No advancing is necessary. - */ - goto phase3; - } - } - } - - /* - * Find the next available type with this tag. - */ - use_bsearch = 0; - opt_edx_end = edx + elements[edx].optional + 1; - if(opt_edx_end > td->elements_count) - opt_edx_end = td->elements_count; /* Cap */ - else if(opt_edx_end - edx > 8) { - /* Limit the scope of linear search... */ - opt_edx_end = edx + 8; - use_bsearch = 1; - /* ... and resort to bsearch() */ - } - for(n = edx; n < opt_edx_end; n++) { - if(BER_TAGS_EQUAL(tlv_tag, elements[n].tag)) { - /* - * Found element corresponding to the tag - * being looked at. - * Reposition over the right element. - */ - edx = n; - ctx->step = 1 + 2 * edx; /* Remember! */ - goto microphase2; - } else if(elements[n].flags & ATF_ANY_TYPE) { - /* - * This is the ANY type, which may bear - * any flag whatsoever. - */ - edx = n; - ctx->step = 1 + 2 * edx; /* Remember! */ - goto microphase2; - } else if(elements[n].tag == (ber_tlv_tag_t)-1) { - use_bsearch = 1; - break; - } - } - if(use_bsearch) { - /* - * Resort to a binary search over - * sorted array of tags. - */ - const asn_TYPE_tag2member_t *t2m; - asn_TYPE_tag2member_t key = {0, 0, 0, 0}; - key.el_tag = tlv_tag; - key.el_no = edx; - t2m = (const asn_TYPE_tag2member_t *)bsearch(&key, - specs->tag2el, specs->tag2el_count, - sizeof(specs->tag2el[0]), _t2e_cmp); - if(t2m) { - const asn_TYPE_tag2member_t *best = 0; - const asn_TYPE_tag2member_t *t2m_f, *t2m_l; - size_t edx_max = edx + elements[edx].optional; - /* - * Rewind to the first element with that tag, - * `cause bsearch() does not guarantee order. - */ - t2m_f = t2m + t2m->toff_first; - t2m_l = t2m + t2m->toff_last; - for(t2m = t2m_f; t2m <= t2m_l; t2m++) { - if(t2m->el_no > edx_max) break; - if(t2m->el_no < edx) continue; - best = t2m; - } - if(best) { - edx = best->el_no; - ctx->step = 1 + 2 * edx; - goto microphase2; - } - } - n = opt_edx_end; - } - if(n == opt_edx_end) { - /* - * If tag is unknown, it may be either - * an unknown (thus, incorrect) tag, - * or an extension (...), - * or an end of the indefinite-length structure. - */ - if(!IN_EXTENSION_GROUP(specs, - edx + elements[edx].optional)) { - ASN_DEBUG("Unexpected tag %s (at %" ASN_PRI_SIZE ")", - ber_tlv_tag_string(tlv_tag), edx); - ASN_DEBUG("Expected tag %s (%s)%s", - ber_tlv_tag_string(elements[edx].tag), - elements[edx].name, - elements[edx].optional - ?" or alternatives":""); - RETURN(RC_FAIL); - } else { - /* Skip this tag */ - ssize_t skip; - edx += elements[edx].optional; - - ASN_DEBUG("Skipping unexpected %s (at %" ASN_PRI_SIZE ")", - ber_tlv_tag_string(tlv_tag), edx); - skip = ber_skip_length(opt_codec_ctx, - BER_TLV_CONSTRUCTED(ptr), - (const char *)ptr + tag_len, - LEFT - tag_len); - ASN_DEBUG("Skip length %d in %s", - (int)skip, td->name); - switch(skip) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - ADVANCE(skip + tag_len); - ctx->step -= 2; - edx--; - continue; /* Try again with the next tag */ - } - } - - /* - * MICROPHASE 2: Invoke the member-specific decoder. - */ - ctx->step |= 1; /* Confirm entering next microphase */ - microphase2: - ASN_DEBUG("Inside SEQUENCE %s MF2", td->name); - - /* - * Compute the position of the member inside a structure, - * and also a type of containment (it may be contained - * as pointer or using inline inclusion). - */ - if(elements[edx].flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elements[edx].memb_offset); - } else { - /* - * A pointer to a pointer - * holding the start of the structure - */ - memb_ptr = (char *)st + elements[edx].memb_offset; - memb_ptr2 = &memb_ptr; - } - /* - * Invoke the member fetch routine according to member's type - */ - if(elements[edx].flags & ATF_OPEN_TYPE) { - rval = OPEN_TYPE_ber_get(opt_codec_ctx, td, st, &elements[edx], ptr, LEFT); - } else { - rval = elements[edx].type->op->ber_decoder(opt_codec_ctx, - elements[edx].type, - memb_ptr2, ptr, LEFT, - elements[edx].tag_mode); - } - ASN_DEBUG("In %s SEQUENCE decoded %" ASN_PRI_SIZE " %s of %d " - "in %d bytes rval.code %d, size=%d", - td->name, edx, elements[edx].type->name, - (int)LEFT, (int)rval.consumed, rval.code, (int)size); - switch(rval.code) { - case RC_OK: - break; - case RC_WMORE: /* More data expected */ - if(!SIZE_VIOLATION) { - ADVANCE(rval.consumed); - RETURN(RC_WMORE); - } - ASN_DEBUG("Size violation (c->l=%ld <= s=%ld)", - (long)ctx->left, (long)size); - /* Fall through */ - case RC_FAIL: /* Fatal error */ - RETURN(RC_FAIL); - } /* switch(rval) */ - - ADVANCE(rval.consumed); - } /* for(all structure members) */ - - phase3: - ctx->phase = 3; - /* Fall through */ - case 3: /* 00 and other tags expected */ - case 4: /* only 00's expected */ - - ASN_DEBUG("SEQUENCE %s Leftover: %ld, size = %ld", - td->name, (long)ctx->left, (long)size); - - /* - * Skip everything until the end of the SEQUENCE. - */ - while(ctx->left) { - ssize_t tl, ll; - - tl = ber_fetch_tag(ptr, LEFT, &tlv_tag); - switch(tl) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - /* - * If expected <0><0>... - */ - if(ctx->left < 0 - && ((const uint8_t *)ptr)[0] == 0) { - if(LEFT < 2) { - if(SIZE_VIOLATION) - RETURN(RC_FAIL); - else - RETURN(RC_WMORE); - } else if(((const uint8_t *)ptr)[1] == 0) { - /* - * Correctly finished with <0><0>. - */ - ADVANCE(2); - ctx->left++; - ctx->phase = 4; - continue; - } - } - - if(!IN_EXTENSION_GROUP(specs, td->elements_count) - || ctx->phase == 4) { - ASN_DEBUG("Unexpected continuation " - "of a non-extensible type " - "%s (SEQUENCE): %s", - td->name, - ber_tlv_tag_string(tlv_tag)); - RETURN(RC_FAIL); - } - - ll = ber_skip_length(opt_codec_ctx, - BER_TLV_CONSTRUCTED(ptr), - (const char *)ptr + tl, LEFT - tl); - switch(ll) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - ADVANCE(tl + ll); - } - - PHASE_OUT(ctx); - } - - RETURN(RC_OK); -} - - -/* - * The DER encoder of the SEQUENCE type. - */ -asn_enc_rval_t -SEQUENCE_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - size_t computed_size = 0; - asn_enc_rval_t erval = {0,0,0}; - ssize_t ret; - size_t edx; - - ASN_DEBUG("%s %s as SEQUENCE", - cb?"Encoding":"Estimating", td->name); - - /* - * Gather the length of the underlying members sequence. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - if(!*memb_ptr2) { - ASN_DEBUG("Element %s %" ASN_PRI_SIZE " not present", - elm->name, edx); - if(elm->optional) - continue; - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - /* Eliminate default values */ - if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) - continue; - - erval = elm->type->op->der_encoder(elm->type, *memb_ptr2, - elm->tag_mode, elm->tag, - 0, 0); - if(erval.encoded == -1) - return erval; - computed_size += erval.encoded; - ASN_DEBUG("Member %" ASN_PRI_SIZE " %s estimated %ld bytes", - edx, elm->name, (long)erval.encoded); - } - - /* - * Encode the TLV for the sequence itself. - */ - ret = der_write_tags(td, computed_size, tag_mode, 1, tag, cb, app_key); - ASN_DEBUG("Wrote tags: %ld (+%ld)", (long)ret, (long)computed_size); - if(ret == -1) - ASN__ENCODE_FAILED; - erval.encoded = computed_size + ret; - - if(!cb) ASN__ENCODED_OK(erval); - - /* - * Encode all members. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - asn_enc_rval_t tmperval = {0,0,0}; - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - if(!*memb_ptr2) continue; - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - /* Eliminate default values */ - if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) - continue; - - tmperval = elm->type->op->der_encoder(elm->type, *memb_ptr2, - elm->tag_mode, elm->tag, cb, app_key); - if(tmperval.encoded == -1) - return tmperval; - computed_size -= tmperval.encoded; - ASN_DEBUG("Member %" ASN_PRI_SIZE " %s of SEQUENCE %s encoded in %ld bytes", - edx, elm->name, td->name, (long)tmperval.encoded); - } - - if(computed_size != 0) - /* - * Encoded size is not equal to the computed size. - */ - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(erval); -} - - -#undef XER_ADVANCE -#define XER_ADVANCE(num_bytes) \ - do { \ - size_t num = (num_bytes); \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Decode the XER (XML) data. - */ -asn_dec_rval_t -SEQUENCE_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const char *opt_mname, const void *ptr, size_t size) { - /* - * Bring closer parts of structure description. - */ - const asn_SEQUENCE_specifics_t *specs - = (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_TYPE_member_t *elements = td->elements; - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - - /* - * ... and parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - asn_dec_rval_t rval; /* Return value from a decoder */ - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - size_t edx; /* Element index */ - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) RETURN(RC_FAIL); - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - - /* - * Phases of XER/XML processing: - * Phase 0: Check that the opening tag matches our expectations. - * Phase 1: Processing body and reacting on closing tag. - * Phase 2: Processing inner type. - * Phase 3: Skipping unknown extensions. - * Phase 4: PHASED OUT - */ - for(edx = ctx->step; ctx->phase <= 3;) { - pxer_chunk_type_e ch_type; /* XER chunk type */ - ssize_t ch_size; /* Chunk size */ - xer_check_tag_e tcv; /* Tag check value */ - asn_TYPE_member_t *elm; - - /* - * Go inside the inner member of a sequence. - */ - if(ctx->phase == 2) { - asn_dec_rval_t tmprval; - void *memb_ptr_dontuse; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - - elm = &td->elements[edx]; - - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr_dontuse = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr_dontuse; /* Only use of memb_ptr_dontuse */ - } - - if(elm->flags & ATF_OPEN_TYPE) { - tmprval = OPEN_TYPE_xer_get(opt_codec_ctx, td, st, elm, ptr, size); - } else { - /* Invoke the inner type decoder, m.b. multiple times */ - tmprval = elm->type->op->xer_decoder(opt_codec_ctx, - elm->type, memb_ptr2, elm->name, - ptr, size); - } - XER_ADVANCE(tmprval.consumed); - if(tmprval.code != RC_OK) - RETURN(tmprval.code); - ctx->phase = 1; /* Back to body processing */ - ctx->step = ++edx; - ASN_DEBUG("XER/SEQUENCE phase => %d, step => %d", - ctx->phase, ctx->step); - /* Fall through */ - } - - /* - * Get the next part of the XML stream. - */ - ch_size = xer_next_token(&ctx->context, ptr, size, - &ch_type); - if(ch_size == -1) { - RETURN(RC_FAIL); - } else { - switch(ch_type) { - case PXER_WMORE: - RETURN(RC_WMORE); - case PXER_COMMENT: /* Got XML comment */ - case PXER_TEXT: /* Ignore free-standing text */ - XER_ADVANCE(ch_size); /* Skip silently */ - continue; - case PXER_TAG: - break; /* Check the rest down there */ - } - } - - tcv = xer_check_tag(ptr, ch_size, xml_tag); - ASN_DEBUG("XER/SEQUENCE: tcv = %d, ph=%d [%s]", - tcv, ctx->phase, xml_tag); - - /* Skip the extensions section */ - if(ctx->phase == 3) { - switch(xer_skip_unknown(tcv, &ctx->left)) { - case -1: - ctx->phase = 4; - RETURN(RC_FAIL); - case 0: - XER_ADVANCE(ch_size); - continue; - case 1: - XER_ADVANCE(ch_size); - ctx->phase = 1; - continue; - case 2: - ctx->phase = 1; - break; - } - } - - switch(tcv) { - case XCT_CLOSING: - if(ctx->phase == 0) break; - ctx->phase = 0; - /* Fall through */ - case XCT_BOTH: - if(ctx->phase == 0) { - if(edx >= td->elements_count || - /* Explicit OPTIONAL specs reaches the end */ - (edx + elements[edx].optional == td->elements_count) || - /* All extensions are optional */ - IN_EXTENSION_GROUP(specs, edx)) { - XER_ADVANCE(ch_size); - ctx->phase = 4; /* Phase out */ - RETURN(RC_OK); - } else { - ASN_DEBUG("Premature end of XER SEQUENCE"); - RETURN(RC_FAIL); - } - } - /* Fall through */ - case XCT_OPENING: - if(ctx->phase == 0) { - XER_ADVANCE(ch_size); - ctx->phase = 1; /* Processing body phase */ - continue; - } - /* Fall through */ - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - - ASN_DEBUG("XER/SEQUENCE: tcv=%d, ph=%d, edx=%" ASN_PRI_SIZE "", - tcv, ctx->phase, edx); - if(ctx->phase != 1) { - break; /* Really unexpected */ - } - - if(edx < td->elements_count) { - /* - * Search which member corresponds to this tag. - */ - size_t n; - size_t edx_end = edx + elements[edx].optional + 1; - if(edx_end > td->elements_count) - edx_end = td->elements_count; - for(n = edx; n < edx_end; n++) { - elm = &td->elements[n]; - tcv = xer_check_tag(ptr, ch_size, elm->name); - switch(tcv) { - case XCT_BOTH: - case XCT_OPENING: - /* - * Process this member. - */ - ctx->step = edx = n; - ctx->phase = 2; - break; - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - continue; - default: - n = edx_end; - break; /* Phase out */ - } - break; - } - if(n != edx_end) - continue; - } else { - ASN_DEBUG("Out of defined members: %" ASN_PRI_SIZE "/%u", - edx, td->elements_count); - } - - /* It is expected extension */ - if(IN_EXTENSION_GROUP(specs, - edx + (edx < td->elements_count - ? elements[edx].optional : 0))) { - ASN_DEBUG("Got anticipated extension at %" ASN_PRI_SIZE "", - edx); - /* - * Check for (XCT_BOTH or XCT_UNKNOWN_BO) - * By using a mask. Only record a pure - * tags. - */ - if(tcv & XCT_CLOSING) { - /* Found without body */ - } else { - ctx->left = 1; - ctx->phase = 3; /* Skip ...'s */ - } - XER_ADVANCE(ch_size); - continue; - } - - /* Fall through */ - default: - break; - } - - ASN_DEBUG("Unexpected XML tag in SEQUENCE [%c%c%c%c%c%c]", - size>0?((const char *)ptr)[0]:'.', - size>1?((const char *)ptr)[1]:'.', - size>2?((const char *)ptr)[2]:'.', - size>3?((const char *)ptr)[3]:'.', - size>4?((const char *)ptr)[4]:'.', - size>5?((const char *)ptr)[5]:'.'); - break; - } - - ctx->phase = 4; /* "Phase out" on hard failure */ - RETURN(RC_FAIL); -} - -asn_enc_rval_t -SEQUENCE_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t er = {0,0,0}; - int xcan = (flags & XER_F_CANONICAL); - asn_TYPE_descriptor_t *tmp_def_val_td = 0; - void *tmp_def_val = 0; - size_t edx; - - if(!sptr) ASN__ENCODE_FAILED; - - er.encoded = 0; - - for(edx = 0; edx < td->elements_count; edx++) { - asn_enc_rval_t tmper = {0,0,0}; - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; - const char *mname = elm->name; - unsigned int mlen = strlen(mname); - - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) { - assert(tmp_def_val == 0); - if(elm->default_value_set) { - if(elm->default_value_set(&tmp_def_val)) { - ASN__ENCODE_FAILED; - } else { - memb_ptr = tmp_def_val; - tmp_def_val_td = elm->type; - } - } else if(elm->optional) { - continue; - } else { - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - - /* Print the member itself */ - tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, ilevel + 1, - flags, cb, app_key); - if(tmp_def_val) { - ASN_STRUCT_FREE(*tmp_def_val_td, tmp_def_val); - tmp_def_val = 0; - } - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - - ASN__CALLBACK3("", 1); - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); - - ASN__ENCODED_OK(er); -cb_failed: - if(tmp_def_val) ASN_STRUCT_FREE(*tmp_def_val_td, tmp_def_val); - ASN__ENCODE_FAILED; -} - -int -SEQUENCE_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - size_t edx; - int ret; - - if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; - - /* Dump preamble */ - if(cb(td->name, strlen(td->name), app_key) < 0 - || cb(" ::= {", 6, app_key) < 0) - return -1; - - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) { - if(elm->optional) continue; - /* Print line */ - /* Fall through */ - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - /* Indentation */ - _i_INDENT(1); - - /* Print the member's name and stuff */ - if(cb(elm->name, strlen(elm->name), app_key) < 0 - || cb(": ", 2, app_key) < 0) - return -1; - - /* Print the member itself */ - ret = elm->type->op->print_struct(elm->type, memb_ptr, ilevel + 1, - cb, app_key); - if(ret) return ret; - } - - ilevel--; - _i_INDENT(1); - - return (cb("}", 1, app_key) < 0) ? -1 : 0; -} - -void -SEQUENCE_free(const asn_TYPE_descriptor_t *td, void *sptr, - enum asn_struct_free_method method) { - size_t edx; - const asn_SEQUENCE_specifics_t *specs = - (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_struct_ctx_t *ctx; /* Decoder context */ - - if(!td || !sptr) - return; - - ASN_DEBUG("Freeing %s as SEQUENCE", td->name); - - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; - if(elm->flags & ATF_POINTER) { - memb_ptr = *(void **)((char *)sptr + elm->memb_offset); - if(memb_ptr) - ASN_STRUCT_FREE(*elm->type, memb_ptr); - } else { - memb_ptr = (void *)((char *)sptr + elm->memb_offset); - ASN_STRUCT_FREE_CONTENTS_ONLY(*elm->type, memb_ptr); - } - } - - /* Clean parsing context */ - ctx = (asn_struct_ctx_t *)((char *)sptr + specs->ctx_offset); - FREEMEM(ctx->ptr); - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(sptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset( - sptr, 0, - ((const asn_SEQUENCE_specifics_t *)(td->specifics))->struct_size); - break; - } -} - -int -SEQUENCE_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t edx; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* - * Iterate over structure members and check their validity. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) { - if(elm->optional) - continue; - ASN__CTFAIL(app_key, td, sptr, - "%s: mandatory element %s absent (%s:%d)", - td->name, elm->name, __FILE__, __LINE__); - return -1; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - if(elm->encoding_constraints.general_constraints) { - int ret = elm->encoding_constraints.general_constraints(elm->type, memb_ptr, - ctfailcb, app_key); - if(ret) return ret; - } else { - return elm->type->encoding_constraints.general_constraints(elm->type, - memb_ptr, ctfailcb, app_key); - } - } - - return 0; -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -SEQUENCE_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; - void *st = *sptr; /* Target structure. */ - int extpresent; /* Extension additions are present */ - uint8_t *opres; /* Presence of optional root members */ - asn_per_data_t opmd; - asn_dec_rval_t rv; - size_t edx; - - (void)constraints; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - - ASN_DEBUG("Decoding %s as SEQUENCE (UPER)", td->name); - - /* Handle extensions */ - if(specs->first_extension < 0) { - extpresent = 0; - } else { - extpresent = per_get_few_bits(pd, 1); - if(extpresent < 0) ASN__DECODE_STARVED; - } - - /* Prepare a place and read-in the presence bitmap */ - memset(&opmd, 0, sizeof(opmd)); - if(specs->roms_count) { - opres = (uint8_t *)MALLOC(((specs->roms_count + 7) >> 3) + 1); - if(!opres) ASN__DECODE_FAILED; - /* Get the presence map */ - if(per_get_many_bits(pd, opres, 0, specs->roms_count)) { - FREEMEM(opres); - ASN__DECODE_STARVED; - } - opmd.buffer = opres; - opmd.nbits = specs->roms_count; - ASN_DEBUG("Read in presence bitmap for %s of %d bits (%x..)", - td->name, specs->roms_count, *opres); - } else { - opres = 0; - } - - /* - * Get the sequence ROOT elements. - */ - for(edx = 0; - edx < (specs->first_extension < 0 ? td->elements_count - : (size_t)specs->first_extension); - edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - - assert(!IN_EXTENSION_GROUP(specs, edx)); - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - /* Deal with optionality */ - if(elm->optional) { - int present = per_get_few_bits(&opmd, 1); - ASN_DEBUG("Member %s->%s is optional, p=%d (%d->%d)", - td->name, elm->name, present, - (int)opmd.nboff, (int)opmd.nbits); - if(present == 0) { - /* This element is not present */ - if(elm->default_value_set) { - /* Fill-in DEFAULT */ - if(elm->default_value_set(memb_ptr2)) { - FREEMEM(opres); - ASN__DECODE_FAILED; - } - ASN_DEBUG("Filled-in default"); - } - /* The member is just not present */ - continue; - } - /* Fall through */ - } - - /* Fetch the member from the stream */ - ASN_DEBUG("Decoding member \"%s\" in %s", elm->name, td->name); - - if(elm->flags & ATF_OPEN_TYPE) { - rv = OPEN_TYPE_uper_get(opt_codec_ctx, td, st, elm, pd); - } else { - rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } - if(rv.code != RC_OK) { - ASN_DEBUG("Failed decode %s in %s", - elm->name, td->name); - FREEMEM(opres); - return rv; - } - } - - /* Optionality map is not needed anymore */ - FREEMEM(opres); - - /* - * Deal with extensions. - */ - if(extpresent) { - ssize_t bmlength; - uint8_t *epres; /* Presence of extension members */ - asn_per_data_t epmd; - - bmlength = uper_get_nslength(pd); - if(bmlength < 0) ASN__DECODE_STARVED; - - ASN_DEBUG("Extensions %" ASN_PRI_SSIZE " present in %s", bmlength, td->name); - - epres = (uint8_t *)MALLOC((bmlength + 15) >> 3); - if(!epres) ASN__DECODE_STARVED; - - /* Get the extensions map */ - if(per_get_many_bits(pd, epres, 0, bmlength)) { - FREEMEM(epres); - ASN__DECODE_STARVED; - } - - memset(&epmd, 0, sizeof(epmd)); - epmd.buffer = epres; - epmd.nbits = bmlength; - ASN_DEBUG("Read in extensions bitmap for %s of %ld bits (%x..)", - td->name, (long)bmlength, *epres); - - /* Go over extensions and read them in */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - int present; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (void *)((char *)st + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - present = per_get_few_bits(&epmd, 1); - if(present <= 0) { - if(present < 0) break; /* No more extensions */ - continue; - } - - ASN_DEBUG("Decoding member %s in %s %p", elm->name, td->name, - *memb_ptr2); - rv = uper_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, - memb_ptr2, pd); - if(rv.code != RC_OK) { - FREEMEM(epres); - return rv; - } - } - - /* Skip over overflow extensions which aren't present - * in this system's version of the protocol */ - for(;;) { - ASN_DEBUG("Getting overflow extensions"); - switch(per_get_few_bits(&epmd, 1)) { - case -1: break; - case 0: continue; - default: - if(uper_open_type_skip(opt_codec_ctx, pd)) { - FREEMEM(epres); - ASN__DECODE_STARVED; - } - ASN_DEBUG("Skipped overflow extension"); - continue; - } - break; - } - - FREEMEM(epres); - } - - if(specs->first_extension >= 0) { - unsigned i; - /* Fill DEFAULT members in extensions */ - for(i = specs->roms_count; i < specs->roms_count + specs->aoms_count; - i++) { - asn_TYPE_member_t *elm; - void **memb_ptr2; /* Pointer to member pointer */ - - edx = specs->oms[i]; - elm = &td->elements[edx]; - - if(!elm->default_value_set) continue; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - if(*memb_ptr2) continue; - } else { - continue; /* Extensions are all optionals */ - } - - /* Set default value */ - if(elm->default_value_set(memb_ptr2)) { - ASN__DECODE_FAILED; - } - } - } - - rv.consumed = 0; - rv.code = RC_OK; - return rv; -} - -static int -SEQUENCE__handle_extensions(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_per_outp_t *po1, asn_per_outp_t *po2) { - const asn_SEQUENCE_specifics_t *specs = - (const asn_SEQUENCE_specifics_t *)td->specifics; - int exts_present = 0; - int exts_count = 0; - size_t edx; - - if(specs->first_extension < 0) { - return 0; - } - - /* Find out which extensions are present */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - int present; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - present = (*memb_ptr2 != 0); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - present = 1; - } - - ASN_DEBUG("checking %s:%s (@%" ASN_PRI_SIZE ") present => %d", elm->name, - elm->type->name, edx, present); - exts_count++; - exts_present += present; - - /* Encode as presence marker */ - if(po1 && per_put_few_bits(po1, present, 1)) { - return -1; - } - /* Encode as open type field */ - if(po2 && present - && uper_open_type_put(elm->type, - elm->encoding_constraints.per_constraints, - *memb_ptr2, po2)) - return -1; - } - - return exts_present ? exts_count : 0; -} - -asn_enc_rval_t -SEQUENCE_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const asn_SEQUENCE_specifics_t *specs - = (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - int n_extensions; - size_t edx; - size_t i; - - (void)constraints; - - if(!sptr) - ASN__ENCODE_FAILED; - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE (UPER)", td->name); - - /* - * X.691#18.1 Whether structure is extensible - * and whether to encode extensions - */ - if(specs->first_extension < 0) { - n_extensions = 0; /* There are no extensions to encode */ - } else { - n_extensions = SEQUENCE__handle_extensions(td, sptr, 0, 0); - if(n_extensions < 0) ASN__ENCODE_FAILED; - if(per_put_few_bits(po, n_extensions ? 1 : 0, 1)) { - ASN__ENCODE_FAILED; - } - } - - /* Encode a presence bitmap */ - for(i = 0; i < specs->roms_count; i++) { - asn_TYPE_member_t *elm; - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - int present; - - edx = specs->oms[i]; - elm = &td->elements[edx]; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - present = (*memb_ptr2 != 0); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - present = 1; - } - - /* Eliminate default values */ - if(present && elm->default_value_cmp - && elm->default_value_cmp(*memb_ptr2) == 0) - present = 0; - - ASN_DEBUG("Element %s %s %s->%s is %s", - elm->flags & ATF_POINTER ? "ptr" : "inline", - elm->default_value_cmp ? "def" : "wtv", - td->name, elm->name, present ? "present" : "absent"); - if(per_put_few_bits(po, present, 1)) - ASN__ENCODE_FAILED; - } - - /* - * Encode the sequence ROOT elements. - */ - ASN_DEBUG("first_extension = %d, elements = %d", specs->first_extension, - td->elements_count); - for(edx = 0; - edx < ((specs->first_extension < 0) ? td->elements_count - : (size_t)specs->first_extension); - edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - - ASN_DEBUG("About to encode %s", elm->type->name); - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - if(!*memb_ptr2) { - ASN_DEBUG("Element %s %" ASN_PRI_SIZE " not present", - elm->name, edx); - if(elm->optional) - continue; - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - /* Eliminate default values */ - if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) - continue; - - ASN_DEBUG("Encoding %s->%s:%s", td->name, elm->name, elm->type->name); - er = elm->type->op->uper_encoder( - elm->type, elm->encoding_constraints.per_constraints, *memb_ptr2, - po); - if(er.encoded == -1) return er; - } - - /* No extensions to encode */ - if(!n_extensions) ASN__ENCODED_OK(er); - - ASN_DEBUG("Length of extensions %d bit-map", n_extensions); - /* #18.8. Write down the presence bit-map length. */ - if(uper_put_nslength(po, n_extensions)) - ASN__ENCODE_FAILED; - - ASN_DEBUG("Bit-map of %d elements", n_extensions); - /* #18.7. Encoding the extensions presence bit-map. */ - /* TODO: act upon NOTE in #18.7 for canonical PER */ - if(SEQUENCE__handle_extensions(td, sptr, po, 0) != n_extensions) - ASN__ENCODE_FAILED; - - ASN_DEBUG("Writing %d extensions", n_extensions); - /* #18.9. Encode extensions as open type fields. */ - if(SEQUENCE__handle_extensions(td, sptr, 0, po) != n_extensions) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -SEQUENCE_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; - void *st = *sptr; /* Target structure. */ - int extpresent; /* Extension additions are present */ - uint8_t *opres; /* Presence of optional root members */ - asn_per_data_t opmd; - asn_dec_rval_t rv; - size_t edx; - - (void)constraints; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - - ASN_DEBUG("Decoding %s as SEQUENCE (APER)", td->name); - - /* Handle extensions */ - if(specs->first_extension < 0) { - extpresent = 0; - } else { - extpresent = per_get_few_bits(pd, 1); - if(extpresent < 0) ASN__DECODE_STARVED; - } - - /* Prepare a place and read-in the presence bitmap */ - memset(&opmd, 0, sizeof(opmd)); - if(specs->roms_count) { - opres = (uint8_t *)MALLOC(((specs->roms_count + 7) >> 3) + 1); - if(!opres) ASN__DECODE_FAILED; - /* Get the presence map */ - if(per_get_many_bits(pd, opres, 0, specs->roms_count)) { - FREEMEM(opres); - ASN__DECODE_STARVED; - } - opmd.buffer = opres; - opmd.nbits = specs->roms_count; - ASN_DEBUG("Read in presence bitmap for %s of %d bits (%x..)", - td->name, specs->roms_count, *opres); - } else { - opres = 0; - } - - /* - * Get the sequence ROOT elements. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ -#if 0 - int padding; -#endif - - if(IN_EXTENSION_GROUP(specs, edx)) - continue; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } -#if 0 - /* Get Padding */ - padding = (8 - (pd->moved % 8)) % 8; - if(padding > 0) - ASN_DEBUG("For element %s,offset= %ld Padding bits = %d", td->name, pd->moved, padding); -#if 0 /* old way of removing padding */ - per_get_few_bits(pd, padding); -#else /* Experimental fix proposed by @mhanna123 */ - if(edx != (td->elements_count-1)) - per_get_few_bits(pd, padding); - else { - if(specs->roms_count && (padding > 0)) - ASN_DEBUG(">>>>> not skipping padding of %d bits for element:%ld out of %d", padding, edx, td->elements_count); - else - per_get_few_bits(pd, padding); - } -#endif /* dealing with padding */ -#endif - /* Deal with optionality */ - if(elm->optional) { - int present = per_get_few_bits(&opmd, 1); - ASN_DEBUG("Member %s->%s is optional, p=%d (%d->%d)", - td->name, elm->name, present, - (int)opmd.nboff, (int)opmd.nbits); - if(present == 0) { - /* This element is not present */ - if(elm->default_value_set) { - /* Fill-in DEFAULT */ - if(elm->default_value_set(memb_ptr2)) { - FREEMEM(opres); - ASN__DECODE_FAILED; - } - ASN_DEBUG("Filled-in default"); - } - /* The member is just not present */ - continue; - } - /* Fall through */ - } - - /* Fetch the member from the stream */ - ASN_DEBUG("Decoding member \"%s\" in %s", elm->name, td->name); - - if(elm->flags & ATF_OPEN_TYPE) { - rv = OPEN_TYPE_aper_get(opt_codec_ctx, td, st, elm, pd); - } else { - rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } - if(rv.code != RC_OK) { - ASN_DEBUG("Failed decode %s in %s", - elm->name, td->name); - FREEMEM(opres); - return rv; - } - } - - /* Optionality map is not needed anymore */ - FREEMEM(opres); - - /* - * Deal with extensions. - */ - if(extpresent) { - ssize_t bmlength; - uint8_t *epres; /* Presence of extension members */ - asn_per_data_t epmd; - - bmlength = aper_get_nslength(pd); - if(bmlength < 0) ASN__DECODE_STARVED; - - ASN_DEBUG("Extensions %" ASN_PRI_SSIZE " present in %s", bmlength, td->name); - - epres = (uint8_t *)MALLOC((bmlength + 15) >> 3); - if(!epres) ASN__DECODE_STARVED; - - /* Get the extensions map */ - if(per_get_many_bits(pd, epres, 0, bmlength)) - ASN__DECODE_STARVED; - - memset(&epmd, 0, sizeof(epmd)); - epmd.buffer = epres; - epmd.nbits = bmlength; - ASN_DEBUG("Read in extensions bitmap for %s of %ld bits (%x..)", - td->name, bmlength, *epres); - - /* Go over extensions and read them in */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - int present; - - if(!IN_EXTENSION_GROUP(specs, edx)) { - ASN_DEBUG("%ld is not extension", edx); - continue; - } - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (void *)((char *)st + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - present = per_get_few_bits(&epmd, 1); - if(present <= 0) { - if(present < 0) break; /* No more extensions */ - continue; - } - - ASN_DEBUG("Decoding member %s in %s %p", elm->name, td->name, *memb_ptr2); - rv = aper_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - if(rv.code != RC_OK) { - FREEMEM(epres); - return rv; - } - } - - /* Skip over overflow extensions which aren't present - * in this system's version of the protocol */ - for(;;) { - ASN_DEBUG("Getting overflow extensions"); - switch(per_get_few_bits(&epmd, 1)) { - case -1: - break; - case 0: - continue; - default: - if(aper_open_type_skip(opt_codec_ctx, pd)) { - FREEMEM(epres); - ASN__DECODE_STARVED; - } - } - break; - } - - FREEMEM(epres); - } - - /* Fill DEFAULT members in extensions */ - for(edx = specs->roms_count; edx < specs->roms_count - + specs->aoms_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void **memb_ptr2; /* Pointer to member pointer */ - - if(!elm->default_value_set) continue; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st - + elm->memb_offset); - if(*memb_ptr2) continue; - } else { - continue; /* Extensions are all optionals */ - } - - /* Set default value */ - if(elm->default_value_set(memb_ptr2)) { - ASN__DECODE_FAILED; - } - } - - rv.consumed = 0; - rv.code = RC_OK; - return rv; -} - -static int -SEQUENCE_handle_extensions_aper(const asn_TYPE_descriptor_t *td, - const void *sptr, - asn_per_outp_t *po1, asn_per_outp_t *po2) { - const asn_SEQUENCE_specifics_t *specs - = (const asn_SEQUENCE_specifics_t *)td->specifics; - int exts_present = 0; - int exts_count = 0; - size_t edx; - - if(specs->first_extension < 0) { - return 0; - } - - /* Find out which extensions are present */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; /* Pointer to the member */ - const void * const *memb_ptr2; /* Pointer to that pointer */ - int present; - - if(!IN_EXTENSION_GROUP(specs, edx)) { - ASN_DEBUG("%s (@%ld) is not extension", elm->type->name, edx); - continue; - } - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); - present = (*memb_ptr2 != 0); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - present = 1; - } - - ASN_DEBUG("checking %s (@%ld) present => %d", - elm->type->name, edx, present); - exts_count++; - exts_present += present; - - /* Encode as presence marker */ - if(po1 && per_put_few_bits(po1, present, 1)) - return -1; - /* Encode as open type field */ - if(po2 && present && aper_open_type_put(elm->type, - elm->encoding_constraints.per_constraints, *memb_ptr2, po2)) - return -1; - - } - - return exts_present ? exts_count : 0; -} - -asn_enc_rval_t -SEQUENCE_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_SEQUENCE_specifics_t *specs - = (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - int n_extensions; - size_t edx; - size_t i; - - (void)constraints; - - if(!sptr) - ASN__ENCODE_FAILED; - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE (APER)", td->name); - - /* - * X.691#18.1 Whether structure is extensible - * and whether to encode extensions - */ - if(specs->first_extension < 0) { - n_extensions = 0; /* There are no extensions to encode */ - } else { - n_extensions = SEQUENCE_handle_extensions_aper(td, sptr, 0, 0); - if(n_extensions < 0) ASN__ENCODE_FAILED; - if(per_put_few_bits(po, n_extensions ? 1 : 0, 1)) { - ASN__ENCODE_FAILED; - } - } - - /* Encode a presence bitmap */ - for(i = 0; i < specs->roms_count; i++) { - asn_TYPE_member_t *elm; - const void *memb_ptr; /* Pointer to the member */ - const void * const *memb_ptr2; /* Pointer to that pointer */ - int present; - - edx = specs->oms[i]; - elm = &td->elements[edx]; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); - present = (*memb_ptr2 != 0); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - present = 1; - } - - /* Eliminate default values */ - if(present && elm->default_value_cmp - && elm->default_value_cmp(memb_ptr2) == 1) - present = 0; - - ASN_DEBUG("Element %s %s %s->%s is %s", - elm->flags & ATF_POINTER ? "ptr" : "inline", - elm->default_value_cmp ? "def" : "wtv", - td->name, elm->name, present ? "present" : "absent"); - if(per_put_few_bits(po, present, 1)) - ASN__ENCODE_FAILED; - } - - /* - * Encode the sequence ROOT elements. - */ - ASN_DEBUG("first_extension = %d, elements = %d", specs->first_extension, - td->elements_count); - for(edx = 0; - edx < ((specs->first_extension < 0) ? td->elements_count - : (size_t)specs->first_extension); - edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; /* Pointer to the member */ - const void * const *memb_ptr2; /* Pointer to that pointer */ - - if(IN_EXTENSION_GROUP(specs, edx)) - continue; - - ASN_DEBUG("About to encode %s", elm->type->name); - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); - if(!*memb_ptr2) { - ASN_DEBUG("Element %s %ld not present", - elm->name, edx); - if(elm->optional) - continue; - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - /* Eliminate default values */ - if(elm->default_value_cmp && elm->default_value_cmp(memb_ptr2) == 1) - continue; - - ASN_DEBUG("Encoding %s->%s", td->name, elm->name); - er = elm->type->op->aper_encoder(elm->type, elm->encoding_constraints.per_constraints, - *memb_ptr2, po); - if(er.encoded == -1) - return er; - } - - /* No extensions to encode */ - if(!n_extensions) ASN__ENCODED_OK(er); - - ASN_DEBUG("Length of %d bit-map", n_extensions); - /* #18.8. Write down the presence bit-map length. */ - if(aper_put_nslength(po, n_extensions)) - ASN__ENCODE_FAILED; - - ASN_DEBUG("Bit-map of %d elements", n_extensions); - /* #18.7. Encoding the extensions presence bit-map. */ - /* TODO: act upon NOTE in #18.7 for canonical PER */ - if(SEQUENCE_handle_extensions_aper(td, sptr, po, 0) != n_extensions) - ASN__ENCODE_FAILED; - - ASN_DEBUG("Writing %d extensions", n_extensions); - /* #18.9. Encode extensions as open type fields. */ - if(SEQUENCE_handle_extensions_aper(td, sptr, 0, po) != n_extensions) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -int -SEQUENCE_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - size_t edx; - - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *amemb; - const void *bmemb; - int ret; - - if(elm->flags & ATF_POINTER) { - amemb = - *(const void *const *)((const char *)aptr + elm->memb_offset); - bmemb = - *(const void *const *)((const char *)bptr + elm->memb_offset); - if(!amemb) { - if(!bmemb) continue; - if(elm->default_value_cmp - && elm->default_value_cmp(bmemb) == 0) { - /* A is absent, but B is present and equal to DEFAULT */ - continue; - } - return -1; - } else if(!bmemb) { - if(elm->default_value_cmp - && elm->default_value_cmp(amemb) == 0) { - /* B is absent, but A is present and equal to DEFAULT */ - continue; - } - return 1; - } - } else { - amemb = (const void *)((const char *)aptr + elm->memb_offset); - bmemb = (const void *)((const char *)bptr + elm->memb_offset); - } - - ret = elm->type->op->compare_struct(elm->type, amemb, bmemb); - if(ret != 0) return ret; - } - - return 0; -} - -asn_TYPE_operation_t asn_OP_SEQUENCE = { - SEQUENCE_free, - SEQUENCE_print, - SEQUENCE_compare, - SEQUENCE_decode_ber, - SEQUENCE_encode_der, - SEQUENCE_decode_xer, - SEQUENCE_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - SEQUENCE_decode_oer, - SEQUENCE_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - SEQUENCE_decode_uper, - SEQUENCE_encode_uper, - SEQUENCE_decode_aper, - SEQUENCE_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - SEQUENCE_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; - - -asn_random_fill_result_t -SEQUENCE_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constr, - size_t max_length) { - const asn_SEQUENCE_specifics_t *specs = - (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_random_fill_result_t result_ok = {ARFILL_OK, 0}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - void *st = *sptr; - size_t edx; - - if(max_length == 0) return result_skipped; - - (void)constr; - - if(st == NULL) { - st = CALLOC(1, specs->struct_size); - if(st == NULL) { - return result_failed; - } - } - - for(edx = 0; edx < td->elements_count; edx++) { - const asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - asn_random_fill_result_t tmpres; - - if(elm->optional && asn_random_between(0, 4) == 2) { - /* Sometimes decide not to fill the optional value */ - continue; - } - - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - tmpres = elm->type->op->random_fill( - elm->type, memb_ptr2, &elm->encoding_constraints, - max_length > result_ok.length ? max_length - result_ok.length : 0); - switch(tmpres.code) { - case ARFILL_OK: - result_ok.length += tmpres.length; - continue; - case ARFILL_SKIPPED: - assert(!(elm->flags & ATF_POINTER) || *memb_ptr2 == NULL); - continue; - case ARFILL_FAILED: - if(st == *sptr) { - ASN_STRUCT_RESET(*td, st); - } else { - ASN_STRUCT_FREE(*td, st); - } - return tmpres; - } - } - - *sptr = st; - - return result_ok; -} - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_SEQUENCE.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_SEQUENCE.h deleted file mode 100644 index a22ed3a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_SEQUENCE.h +++ /dev/null @@ -1,68 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _CONSTR_SEQUENCE_H_ -#define _CONSTR_SEQUENCE_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct asn_SEQUENCE_specifics_s { - /* - * Target structure description. - */ - unsigned struct_size; /* Size of the target structure. */ - unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ - - /* - * Tags to members mapping table (sorted). - */ - const asn_TYPE_tag2member_t *tag2el; - unsigned tag2el_count; - - /* - * Optional members of the extensions root (roms) or additions (aoms). - * Meaningful for PER. - */ - const int *oms; /* Optional MemberS */ - unsigned roms_count; /* Root optional members count */ - unsigned aoms_count; /* Additions optional members count */ - - /* - * Description of an extensions group. - * Root components are clustered at the beginning of the structure, - * whereas extensions are clustered at the end. -1 means not extensible. - */ - signed first_extension; /* First extension addition */ -} asn_SEQUENCE_specifics_t; - - -/* - * A set specialized functions dealing with the SEQUENCE type. - */ -asn_struct_free_f SEQUENCE_free; -asn_struct_print_f SEQUENCE_print; -asn_struct_compare_f SEQUENCE_compare; -asn_constr_check_f SEQUENCE_constraint; -ber_type_decoder_f SEQUENCE_decode_ber; -der_type_encoder_f SEQUENCE_encode_der; -xer_type_decoder_f SEQUENCE_decode_xer; -xer_type_encoder_f SEQUENCE_encode_xer; -oer_type_decoder_f SEQUENCE_decode_oer; -oer_type_encoder_f SEQUENCE_encode_oer; -per_type_decoder_f SEQUENCE_decode_uper; -per_type_encoder_f SEQUENCE_encode_uper; -per_type_decoder_f SEQUENCE_decode_aper; -per_type_encoder_f SEQUENCE_encode_aper; -asn_random_fill_f SEQUENCE_random_fill; -extern asn_TYPE_operation_t asn_OP_SEQUENCE; - -#ifdef __cplusplus -} -#endif - -#endif /* _CONSTR_SEQUENCE_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_SEQUENCE_OF.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_SEQUENCE_OF.c deleted file mode 100644 index 10f18cf..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_SEQUENCE_OF.c +++ /dev/null @@ -1,358 +0,0 @@ -/*- - * Copyright (c) 2003, 2004, 2006 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * The DER encoder of the SEQUENCE OF type. - */ -asn_enc_rval_t -SEQUENCE_OF_encode_der(const asn_TYPE_descriptor_t *td, const void *ptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_sequence_ *list = _A_CSEQUENCE_FROM_VOID(ptr); - size_t computed_size = 0; - ssize_t encoding_size = 0; - asn_enc_rval_t erval = {0,0,0}; - int edx; - - ASN_DEBUG("Estimating size of SEQUENCE OF %s", td->name); - - /* - * Gather the length of the underlying members sequence. - */ - for(edx = 0; edx < list->count; edx++) { - void *memb_ptr = list->array[edx]; - if(!memb_ptr) continue; - erval = elm->type->op->der_encoder(elm->type, memb_ptr, - 0, elm->tag, - 0, 0); - if(erval.encoded == -1) - return erval; - computed_size += erval.encoded; - } - - /* - * Encode the TLV for the sequence itself. - */ - encoding_size = der_write_tags(td, computed_size, tag_mode, 1, tag, - cb, app_key); - if(encoding_size == -1) { - erval.encoded = -1; - erval.failed_type = td; - erval.structure_ptr = ptr; - return erval; - } - - computed_size += encoding_size; - if(!cb) { - erval.encoded = computed_size; - ASN__ENCODED_OK(erval); - } - - ASN_DEBUG("Encoding members of SEQUENCE OF %s", td->name); - - /* - * Encode all members. - */ - for(edx = 0; edx < list->count; edx++) { - void *memb_ptr = list->array[edx]; - if(!memb_ptr) continue; - erval = elm->type->op->der_encoder(elm->type, memb_ptr, - 0, elm->tag, - cb, app_key); - if(erval.encoded == -1) - return erval; - encoding_size += erval.encoded; - } - - if(computed_size != (size_t)encoding_size) { - /* - * Encoded size is not equal to the computed size. - */ - erval.encoded = -1; - erval.failed_type = td; - erval.structure_ptr = ptr; - } else { - erval.encoded = computed_size; - erval.structure_ptr = 0; - erval.failed_type = 0; - } - - return erval; -} - -asn_enc_rval_t -SEQUENCE_OF_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t er = {0,0,0}; - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_sequence_ *list = _A_CSEQUENCE_FROM_VOID(sptr); - const char *mname = specs->as_XMLValueList - ? 0 - : ((*elm->name) ? elm->name : elm->type->xml_tag); - size_t mlen = mname ? strlen(mname) : 0; - int xcan = (flags & XER_F_CANONICAL); - int i; - - if(!sptr) ASN__ENCODE_FAILED; - - er.encoded = 0; - - for(i = 0; i < list->count; i++) { - asn_enc_rval_t tmper = {0,0,0}; - void *memb_ptr = list->array[i]; - if(!memb_ptr) continue; - - if(mname) { - if(!xcan) ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - } - - tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, ilevel + 1, - flags, cb, app_key); - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - if(tmper.encoded == 0 && specs->as_XMLValueList) { - const char *name = elm->type->xml_tag; - size_t len = strlen(name); - if(!xcan) ASN__TEXT_INDENT(1, ilevel + 1); - ASN__CALLBACK3("<", 1, name, len, "/>", 2); - } - - if(mname) { - ASN__CALLBACK3("", 1); - } - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_enc_rval_t -SEQUENCE_OF_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_anonymous_sequence_ *list; - const asn_per_constraint_t *ct; - asn_enc_rval_t er = {0,0,0}; - const asn_TYPE_member_t *elm = td->elements; - size_t encoded_edx; - - if(!sptr) ASN__ENCODE_FAILED; - list = _A_CSEQUENCE_FROM_VOID(sptr); - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE OF (%d)", td->name, list->count); - - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - /* If extensible constraint, check if size is in root */ - if(ct) { - int not_in_root = - (list->count < ct->lower_bound || list->count > ct->upper_bound); - ASN_DEBUG("lb %ld ub %ld %s", ct->lower_bound, ct->upper_bound, - ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); - if(ct->flags & APC_EXTENSIBLE) { - /* Declare whether size is in extension root */ - if(per_put_few_bits(po, not_in_root, 1)) ASN__ENCODE_FAILED; - if(not_in_root) ct = 0; - } else if(not_in_root && ct->effective_bits >= 0) { - ASN__ENCODE_FAILED; - } - - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ - if(per_put_few_bits(po, list->count - ct->lower_bound, - ct->effective_bits)) - ASN__ENCODE_FAILED; - } else if(list->count == 0) { - /* When the list is empty add only the length determinant - * X.691, #20.6 and #11.9.4.1 - */ - if (uper_put_length(po, 0, 0)) { - ASN__ENCODE_FAILED; - } - ASN__ENCODED_OK(er); - } - - for(encoded_edx = 0; (ssize_t)encoded_edx < list->count;) { - ssize_t may_encode; - size_t edx; - int need_eom = 0; - - if(ct && ct->effective_bits >= 0) { - may_encode = list->count; - } else { - may_encode = - uper_put_length(po, list->count - encoded_edx, &need_eom); - if(may_encode < 0) ASN__ENCODE_FAILED; - } - - for(edx = encoded_edx; edx < encoded_edx + may_encode; edx++) { - void *memb_ptr = list->array[edx]; - if(!memb_ptr) ASN__ENCODE_FAILED; - er = elm->type->op->uper_encoder( - elm->type, elm->encoding_constraints.per_constraints, memb_ptr, - po); - if(er.encoded == -1) ASN__ENCODE_FAILED; - } - - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - - encoded_edx += may_encode; - } - - ASN__ENCODED_OK(er); -} - -asn_enc_rval_t -SEQUENCE_OF_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_anonymous_sequence_ *list; - const asn_per_constraint_t *ct; - asn_enc_rval_t er = {0,0,0}; - asn_TYPE_member_t *elm = td->elements; - int seq; - - if(!sptr) ASN__ENCODE_FAILED; - list = _A_CSEQUENCE_FROM_VOID(sptr); - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE OF size (%d) using ALIGNED PER", td->name, list->count); - - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - /* If extensible constraint, check if size is in root */ - if(ct) { - int not_in_root = (list->count < ct->lower_bound - || list->count > ct->upper_bound); - ASN_DEBUG("lb %ld ub %ld %s", - ct->lower_bound, ct->upper_bound, - ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); - if(ct->flags & APC_EXTENSIBLE) { - /* Declare whether size is in extension root */ - if(per_put_few_bits(po, not_in_root, 1)) - ASN__ENCODE_FAILED; - if(not_in_root) ct = 0; - } else if(not_in_root && ct->effective_bits >= 0) - ASN__ENCODE_FAILED; - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ -/* if(per_put_few_bits(po, list->count - ct->lower_bound, - ct->effective_bits)) - ASN__ENCODE_FAILED; -*/ - if (aper_put_length(po, ct->upper_bound - ct->lower_bound + 1, list->count - ct->lower_bound) < 0) - ASN__ENCODE_FAILED; - } - - for(seq = -1; seq < list->count;) { - ssize_t mayEncode; - if(seq < 0) seq = 0; - if(ct && ct->effective_bits >= 0) { - mayEncode = list->count; - } else { - mayEncode = aper_put_length(po, -1, list->count - seq); - if(mayEncode < 0) ASN__ENCODE_FAILED; - } - - while(mayEncode--) { - void *memb_ptr = list->array[seq++]; - if(!memb_ptr) ASN__ENCODE_FAILED; - er = elm->type->op->aper_encoder(elm->type, - elm->encoding_constraints.per_constraints, memb_ptr, po); - if(er.encoded == -1) - ASN__ENCODE_FAILED; - } - } - - ASN__ENCODED_OK(er); -} -#endif /* ASN_DISABLE_PER_SUPPORT */ - -int -SEQUENCE_OF_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - const asn_anonymous_sequence_ *a = _A_CSEQUENCE_FROM_VOID(aptr); - const asn_anonymous_sequence_ *b = _A_CSEQUENCE_FROM_VOID(bptr); - ssize_t idx; - - if(a && b) { - ssize_t common_length = (a->count < b->count ? a->count : b->count); - for(idx = 0; idx < common_length; idx++) { - int ret = td->elements->type->op->compare_struct( - td->elements->type, a->array[idx], b->array[idx]); - if(ret) return ret; - } - - if(idx < b->count) /* more elements in b */ - return -1; /* a is shorter, so put it first */ - if(idx < a->count) return 1; - - } else if(!a) { - return -1; - } else if(!b) { - return 1; - } - - return 0; -} - - -asn_TYPE_operation_t asn_OP_SEQUENCE_OF = { - SEQUENCE_OF_free, - SEQUENCE_OF_print, - SEQUENCE_OF_compare, - SEQUENCE_OF_decode_ber, - SEQUENCE_OF_encode_der, - SEQUENCE_OF_decode_xer, - SEQUENCE_OF_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - SEQUENCE_OF_decode_oer, /* Same as SET OF decoder. */ - SEQUENCE_OF_encode_oer, /* Same as SET OF encoder */ -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - SEQUENCE_OF_decode_uper, /* Same as SET OF decoder */ - SEQUENCE_OF_encode_uper, - SEQUENCE_OF_decode_aper, - SEQUENCE_OF_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - SEQUENCE_OF_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_SEQUENCE_OF.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_SEQUENCE_OF.h deleted file mode 100644 index 6857f0f..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_SEQUENCE_OF.h +++ /dev/null @@ -1,41 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _CONSTR_SEQUENCE_OF_H_ -#define _CONSTR_SEQUENCE_OF_H_ - -#include -#include /* Implemented using SET OF */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * A set specialized functions dealing with the SEQUENCE OF type. - * Generally implemented using SET OF. - */ -asn_struct_compare_f SEQUENCE_OF_compare; -der_type_encoder_f SEQUENCE_OF_encode_der; -xer_type_encoder_f SEQUENCE_OF_encode_xer; -per_type_encoder_f SEQUENCE_OF_encode_uper; -per_type_encoder_f SEQUENCE_OF_encode_aper; -extern asn_TYPE_operation_t asn_OP_SEQUENCE_OF; - -#define SEQUENCE_OF_free SET_OF_free -#define SEQUENCE_OF_print SET_OF_print -#define SEQUENCE_OF_constraint SET_OF_constraint -#define SEQUENCE_OF_decode_ber SET_OF_decode_ber -#define SEQUENCE_OF_decode_xer SET_OF_decode_xer -#define SEQUENCE_OF_decode_oer SET_OF_decode_oer -#define SEQUENCE_OF_encode_oer SET_OF_encode_oer -#define SEQUENCE_OF_decode_uper SET_OF_decode_uper -#define SEQUENCE_OF_decode_aper SET_OF_decode_aper -#define SEQUENCE_OF_random_fill SET_OF_random_fill - -#ifdef __cplusplus -} -#endif - -#endif /* _CONSTR_SET_OF_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_SEQUENCE_oer.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_SEQUENCE_oer.c deleted file mode 100644 index ecb589c..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_SEQUENCE_oer.c +++ /dev/null @@ -1,561 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include -#include - -/* - * This macro "eats" the part of the buffer which is definitely "consumed", - * i.e. was correctly converted into local representation or rightfully skipped. - */ -#undef ADVANCE -#define ADVANCE(num_bytes) \ - do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#undef PHASE_OUT -#define NEXT_PHASE(ctx) \ - do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) - -/* - * Check whether we are inside the extensions group. - */ -#define IN_EXTENSION_GROUP(specs, memb_idx) \ - ((specs)->first_extension >= 0 \ - && (unsigned)(specs)->first_extension <= (memb_idx)) - -#define IN_ROOT_GROUP_PRED(edx) \ - edx < (specs->first_extension < 0 ? td->elements_count \ - : (size_t)specs->first_extension) - -#define FOR_IN_ROOT_GROUP(edx) for(edx = 0; IN_ROOT_GROUP_PRED(edx); edx++) - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself;\ - return rval; \ - } while(0) - -/* - * Return pointer to a member. - */ -static void ** -element_ptrptr(void *struct_ptr, asn_TYPE_member_t *elm, void **tmp_save_ptr) { - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - return (void **)((char *)struct_ptr + elm->memb_offset); - } else { - assert(tmp_save_ptr); - *tmp_save_ptr = (void *)((char *)struct_ptr + elm->memb_offset); - return tmp_save_ptr; - } -} - -static const void * -element_ptr(const void *struct_ptr, const asn_TYPE_member_t *elm) { - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - return *(const void *const *)((const char *)struct_ptr - + elm->memb_offset); - } else { - return (const void *)((const char *)struct_ptr + elm->memb_offset); - } -} - -asn_dec_rval_t -SEQUENCE_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **struct_ptr, - const void *ptr, size_t size) { - const asn_SEQUENCE_specifics_t *specs = - (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_dec_rval_t rval = {RC_OK, 0}; - void *st = *struct_ptr; /* Target structure */ - asn_struct_ctx_t *ctx; /* Decoder context */ - size_t consumed_myself = 0; /* Consumed bytes from ptr. */ - - (void)constraints; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Start to parse where left previously. - */ - switch(ctx->phase) { - case 0: { - /* - * Fetch preamble. - */ - asn_bit_data_t *preamble; - int has_extensions_bit = (specs->first_extension >= 0); - size_t preamble_bits = (has_extensions_bit + specs->roms_count); - size_t preamble_bytes = ((7 + preamble_bits) >> 3); - - ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 0", td->name); - - ASN_DEBUG( - "Expecting preamble bits %" ASN_PRI_SIZE " for %s (including %d extension bits)", - preamble_bits, td->name, has_extensions_bit); - - if(preamble_bytes > size) { - ASN__DECODE_STARVED; - } - - preamble = asn_bit_data_new_contiguous(ptr, preamble_bits); - if(!preamble) { - RETURN(RC_FAIL); - } - preamble->nboff = has_extensions_bit; - ctx->ptr = preamble; - ADVANCE(preamble_bytes); - } - NEXT_PHASE(ctx); - /* FALL THROUGH */ - case 1: { - /* Decode components of the extension root */ - asn_bit_data_t *preamble = ctx->ptr; - size_t edx; - - ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 1 (Root)", td->name); - - assert(preamble); - - for(edx = (ctx->step >> 1); IN_ROOT_GROUP_PRED(edx); - edx++, ctx->step = (ctx->step & ~1) + 2) { - asn_TYPE_member_t *elm = &td->elements[edx]; - - ASN_DEBUG("Decoding %s->%s", td->name, elm->name); - - assert(!IN_EXTENSION_GROUP(specs, edx)); - - if(ctx->step & 1) { - goto microphase2_decode_continues; - } - - - if(elm->optional) { - int32_t present = asn_get_few_bits(preamble, 1); - if(present < 0) { - ASN_DEBUG("Presence map ended prematurely: %d", present); - RETURN(RC_FAIL); - } else if(present == 0) { - if(elm->default_value_set) { - /* Fill-in DEFAULT */ - void *tmp; - if(elm->default_value_set( - element_ptrptr(st, elm, &tmp))) { - RETURN(RC_FAIL); - } - } - /* The member is not present. */ - continue; - } - /* Present OPTIONAL or DEFAULT component. */ - } - - /* - * MICROPHASE 2: Invoke the member-specific decoder. - */ - ctx->step |= 1; /* Confirm entering next microphase */ - microphase2_decode_continues: - if(elm->flags & ATF_OPEN_TYPE) { - rval = OPEN_TYPE_oer_get(opt_codec_ctx, td, st, elm, ptr, size); - } else { - void *save_memb_ptr; /* Temporary reference. */ - void **memb_ptr2; /* Pointer to a pointer to a memmber */ - - memb_ptr2 = element_ptrptr(st, elm, &save_memb_ptr); - - rval = elm->type->op->oer_decoder( - opt_codec_ctx, elm->type, - elm->encoding_constraints.oer_constraints, memb_ptr2, ptr, - size); - } - switch(rval.code) { - case RC_OK: - ADVANCE(rval.consumed); - break; - case RC_WMORE: - ASN_DEBUG("More bytes needed at element %s \"%s\"", td->name, - elm->name); - ADVANCE(rval.consumed); - RETURN(RC_WMORE); - case RC_FAIL: - ASN_DEBUG("Decoding failed at element %s \"%s\"", td->name, - elm->name); - RETURN(RC_FAIL); - } - } /* for(all root members) */ - - } - NEXT_PHASE(ctx); - /* FALL THROUGH */ - case 2: - assert(ctx->ptr); - { - /* Cleanup preamble. */ - asn_bit_data_t *preamble = ctx->ptr; - asn_bit_data_t *extadds; - int has_extensions_bit = (specs->first_extension >= 0); - int extensions_present = - has_extensions_bit - && (preamble->buffer == NULL - || (((const uint8_t *)preamble->buffer)[0] & 0x80)); - uint8_t unused_bits; - size_t len = 0; - ssize_t len_len; - - ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 2", td->name); - - preamble->buffer = 0; /* Will do extensions_present==1 next time. */ - - if(!extensions_present) { - ctx->phase = 10; - RETURN(RC_OK); - } - - /* - * X.696 (08/2015) #16.1 (c), #16.4 - * Read in the extension addition presence bitmap. - */ - - len_len = oer_fetch_length(ptr, size, &len); - if(len_len > 0) { - ADVANCE(len_len); - } else if(len_len < 0) { - RETURN(RC_FAIL); - } else { - RETURN(RC_WMORE); - } - - if(len == 0) { - /* 16.4.1-2 */ - RETURN(RC_FAIL); - } else if(len > size) { - RETURN(RC_WMORE); - } - - /* Account for unused bits */ - unused_bits = 0x7 & *(const uint8_t *)ptr; - ADVANCE(1); - len--; - if(unused_bits && len == 0) { - RETURN(RC_FAIL); - } - - /* Get the extensions map */ - extadds = asn_bit_data_new_contiguous(ptr, len * 8 - unused_bits); - if(!extadds) { - RETURN(RC_FAIL); - } - FREEMEM(preamble); - ctx->ptr = extadds; - ADVANCE(len); - } - NEXT_PHASE(ctx); - ctx->step = - (specs->first_extension < 0 ? td->elements_count - : (size_t)specs->first_extension); - /* Fall through */ - case 3: - ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 3 (Extensions)", td->name); - for(; ctx->step < (signed)td->elements_count; ctx->step++) { - asn_bit_data_t *extadds = ctx->ptr; - size_t edx = ctx->step; - asn_TYPE_member_t *elm = &td->elements[edx]; - void *tmp_memb_ptr; - void **memb_ptr2 = element_ptrptr(st, elm, &tmp_memb_ptr); - - switch(asn_get_few_bits(extadds, 1)) { - case -1: - /* - * Not every one of our extensions is known to the remote side. - * Continue filling in their defaults though. - */ - /* Fall through */ - case 0: - /* Fill-in DEFAULT */ - if(elm->default_value_set - && elm->default_value_set(memb_ptr2)) { - RETURN(RC_FAIL); - } - continue; - case 1: { - /* Read OER open type */ - ssize_t ot_size = - oer_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.oer_constraints, - memb_ptr2, ptr, size); - assert(ot_size <= (ssize_t)size); - if(ot_size > 0) { - ADVANCE(ot_size); - } else if(ot_size < 0) { - RETURN(RC_FAIL); - } else { - /* Roll back open type parsing */ - asn_get_undo(extadds, 1); - RETURN(RC_WMORE); - } - break; - } - default: - RETURN(RC_FAIL); - } - } - - NEXT_PHASE(ctx); - /* Fall through */ - case 4: - ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 4", td->name); - /* Read in the rest of Open Types while ignoring them */ - for(;;) { - asn_bit_data_t *extadds = ctx->ptr; - switch(asn_get_few_bits(extadds, 1)) { - case 0: - continue; - case 1: { - ssize_t skipped = oer_open_type_skip(ptr, size); - if(skipped > 0) { - ADVANCE(skipped); - } else if(skipped < 0) { - RETURN(RC_FAIL); - } else { - asn_get_undo(extadds, 1); - RETURN(RC_WMORE); - } - continue; - } - case -1: - /* No more Open Type encoded components */ - break; - default: - RETURN(RC_FAIL); - } - break; - } - } - - RETURN(RC_OK); -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -SEQUENCE_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; - size_t computed_size = 0; - int has_extensions_bit = (specs->first_extension >= 0); - size_t preamble_bits = (has_extensions_bit + specs->roms_count); - uint32_t has_extensions = 0; - size_t edx; - int ret; - - (void)constraints; - - if(preamble_bits) { - asn_bit_outp_t preamble; - - memset(&preamble, 0, sizeof(preamble)); - preamble.output = cb; - preamble.op_key = app_key; - - if(has_extensions_bit) { - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr = element_ptr(sptr, elm); - if(memb_ptr) { - if(elm->default_value_cmp - && elm->default_value_cmp(memb_ptr) == 0) { - /* Do not encode default values in extensions */ - } else { - has_extensions = 1; - break; - } - } - } - ret = asn_put_few_bits(&preamble, has_extensions, 1); - assert(ret == 0); - if(ret < 0) { - ASN__ENCODE_FAILED; - } - } - - /* - * Encode optional components bitmap. - */ - if(specs->roms_count) { - FOR_IN_ROOT_GROUP(edx) { - asn_TYPE_member_t *elm = &td->elements[edx]; - - if(IN_EXTENSION_GROUP(specs, edx)) break; - - if(elm->optional) { - const void *memb_ptr = element_ptr(sptr, elm); - uint32_t has_component = memb_ptr != NULL; - if(has_component && elm->default_value_cmp - && elm->default_value_cmp(memb_ptr) == 0) { - has_component = 0; - } - ret = asn_put_few_bits(&preamble, has_component, 1); - if(ret < 0) { - ASN__ENCODE_FAILED; - } - } - } - } - - asn_put_aligned_flush(&preamble); - computed_size += preamble.flushed_bytes; - } /* if(preamble_bits) */ - - /* - * Put root components and extensions root. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - asn_enc_rval_t er = {0,0,0}; - const void *memb_ptr; - - if(IN_EXTENSION_GROUP(specs, edx)) break; - - memb_ptr = element_ptr(sptr, elm); - if(memb_ptr) { - if(elm->default_value_cmp - && elm->default_value_cmp(memb_ptr) == 0) { - /* Skip default values in encoding */ - continue; - } - } else { - if(elm->optional) continue; - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - if(!elm->type->op->oer_encoder) { - ASN_DEBUG("OER encoder is not defined for type %s", elm->type->name); - ASN__ENCODE_FAILED; - } - er = elm->type->op->oer_encoder( - elm->type, elm->encoding_constraints.oer_constraints, memb_ptr, cb, - app_key); - if(er.encoded == -1) { - ASN_DEBUG("... while encoding %s member \"%s\"\n", td->name, - elm->name); - return er; - } - computed_size += er.encoded; - } - - /* - * Before encode extensions, encode extensions additions presense bitmap - # X.696 (08/2015) #16.4. - */ - if(has_extensions) { - asn_bit_outp_t extadds; - - /* Special case allowing us to use exactly one byte for #8.6 */ - size_t aoms_length_bits = specs->aoms_count; - size_t aoms_length_bytes = (7 + aoms_length_bits) >> 3; - uint8_t unused_bits = 0x07 & (8 - (aoms_length_bits & 0x07)); - - assert(1 + aoms_length_bytes <= 127); - - memset(&extadds, 0, sizeof(extadds)); - extadds.output = cb; - extadds.op_key = app_key; - - /* #8.6 length determinant */ - ret = asn_put_few_bits(&extadds, (1 + aoms_length_bytes), 8); - if(ret < 0) ASN__ENCODE_FAILED; - - /* Number of unused bytes, #16.4.2 */ - ret = asn_put_few_bits(&extadds, unused_bits, 8); - if(ret < 0) ASN__ENCODE_FAILED; - - /* Encode presence bitmap #16.4.3 */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr = element_ptr(sptr, elm); - if(memb_ptr && elm->default_value_cmp - && elm->default_value_cmp(memb_ptr) == 0) { - memb_ptr = 0; /* Do not encode default value. */ - } - ret |= asn_put_few_bits(&extadds, memb_ptr ? 1 : 0, 1); - } - if(ret < 0) ASN__ENCODE_FAILED; - - asn_put_aligned_flush(&extadds); - computed_size += extadds.flushed_bytes; - - /* Now, encode extensions */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr = element_ptr(sptr, elm); - - if(memb_ptr) { - if(elm->default_value_cmp - && elm->default_value_cmp(memb_ptr) == 0) { - /* Do not encode default value. */ - } else { - ssize_t wrote = oer_open_type_put( - elm->type, elm->encoding_constraints.oer_constraints, - memb_ptr, cb, app_key); - if(wrote == -1) { - ASN__ENCODE_FAILED; - } - computed_size += wrote; - } - } else if(!elm->optional) { - ASN__ENCODE_FAILED; - } - } - } /* if(has_extensions) */ - - - { - asn_enc_rval_t er = {0, 0, 0}; - er.encoded = computed_size; - ASN__ENCODED_OK(er); - } -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_SET_OF.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_SET_OF.c deleted file mode 100644 index bf1dc27..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_SET_OF.c +++ /dev/null @@ -1,1441 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Number of bytes left for this structure. - * (ctx->left) indicates the number of bytes _transferred_ for the structure. - * (size) contains the number of bytes in the buffer passed. - */ -#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) - -/* - * If the subprocessor function returns with an indication that it wants - * more data, it may well be a fatal decoding problem, because the - * size is constrained by the 's L, even if the buffer size allows - * reading more data. - * For example, consider the buffer containing the following TLVs: - * ... - * The TLV length clearly indicates that one byte is expected in V, but - * if the V processor returns with "want more data" even if the buffer - * contains way more data than the V processor have seen. - */ -#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) - -/* - * This macro "eats" the part of the buffer which is definitely "consumed", - * i.e. was correctly converted into local representation or rightfully skipped. - */ -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num;\ - size -= num; \ - if(ctx->left >= 0) \ - ctx->left -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#undef PHASE_OUT -#define NEXT_PHASE(ctx) do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) -#define PHASE_OUT(ctx) do { ctx->phase = 10; } while(0) - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself;\ - return rval; \ - } while(0) - -/* - * The decoder of the SET OF type. - */ -asn_dec_rval_t -SET_OF_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const void *ptr, size_t size, int tag_mode) { - /* - * Bring closer parts of structure description. - */ - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; /* Single one */ - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - ber_tlv_tag_t tlv_tag; /* T from TLV */ - asn_dec_rval_t rval; /* Return code from subparsers */ - - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - - ASN_DEBUG("Decoding %s as SET OF", td->name); - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Start to parse where left previously - */ - switch(ctx->phase) { - case 0: - /* - * PHASE 0. - * Check that the set of tags associated with given structure - * perfectly fits our expectations. - */ - - rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, - tag_mode, 1, &ctx->left, 0); - if(rval.code != RC_OK) { - ASN_DEBUG("%s tagging check failed: %d", - td->name, rval.code); - return rval; - } - - if(ctx->left >= 0) - ctx->left += rval.consumed; /* ?Substracted below! */ - ADVANCE(rval.consumed); - - ASN_DEBUG("Structure consumes %ld bytes, " - "buffer %ld", (long)ctx->left, (long)size); - - NEXT_PHASE(ctx); - /* Fall through */ - case 1: - /* - * PHASE 1. - * From the place where we've left it previously, - * try to decode the next item. - */ - for(;; ctx->step = 0) { - ssize_t tag_len; /* Length of TLV's T */ - - if(ctx->step & 1) - goto microphase2; - - /* - * MICROPHASE 1: Synchronize decoding. - */ - - if(ctx->left == 0) { - ASN_DEBUG("End of SET OF %s", td->name); - /* - * No more things to decode. - * Exit out of here. - */ - PHASE_OUT(ctx); - RETURN(RC_OK); - } - - /* - * Fetch the T from TLV. - */ - tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); - switch(tag_len) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - if(ctx->left < 0 && ((const uint8_t *)ptr)[0] == 0) { - if(LEFT < 2) { - if(SIZE_VIOLATION) - RETURN(RC_FAIL); - else - RETURN(RC_WMORE); - } else if(((const uint8_t *)ptr)[1] == 0) { - /* - * Found the terminator of the - * indefinite length structure. - */ - break; - } - } - - /* Outmost tag may be unknown and cannot be fetched/compared */ - if(elm->tag != (ber_tlv_tag_t)-1) { - if(BER_TAGS_EQUAL(tlv_tag, elm->tag)) { - /* - * The new list member of expected type has arrived. - */ - } else { - ASN_DEBUG("Unexpected tag %s fixed SET OF %s", - ber_tlv_tag_string(tlv_tag), td->name); - ASN_DEBUG("%s SET OF has tag %s", - td->name, ber_tlv_tag_string(elm->tag)); - RETURN(RC_FAIL); - } - } - - /* - * MICROPHASE 2: Invoke the member-specific decoder. - */ - ctx->step |= 1; /* Confirm entering next microphase */ - microphase2: - - /* - * Invoke the member fetch routine according to member's type - */ - rval = elm->type->op->ber_decoder(opt_codec_ctx, - elm->type, &ctx->ptr, ptr, LEFT, 0); - ASN_DEBUG("In %s SET OF %s code %d consumed %d", - td->name, elm->type->name, - rval.code, (int)rval.consumed); - switch(rval.code) { - case RC_OK: - { - asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); - if(ASN_SET_ADD(list, ctx->ptr) != 0) - RETURN(RC_FAIL); - else - ctx->ptr = 0; - } - break; - case RC_WMORE: /* More data expected */ - if(!SIZE_VIOLATION) { - ADVANCE(rval.consumed); - RETURN(RC_WMORE); - } - /* Fall through */ - case RC_FAIL: /* Fatal error */ - ASN_STRUCT_FREE(*elm->type, ctx->ptr); - ctx->ptr = 0; - RETURN(RC_FAIL); - } /* switch(rval) */ - - ADVANCE(rval.consumed); - } /* for(all list members) */ - - NEXT_PHASE(ctx); - case 2: - /* - * Read in all "end of content" TLVs. - */ - while(ctx->left < 0) { - if(LEFT < 2) { - if(LEFT > 0 && ((const char *)ptr)[0] != 0) { - /* Unexpected tag */ - RETURN(RC_FAIL); - } else { - RETURN(RC_WMORE); - } - } - if(((const char *)ptr)[0] == 0 - && ((const char *)ptr)[1] == 0) { - ADVANCE(2); - ctx->left++; - } else { - RETURN(RC_FAIL); - } - } - - PHASE_OUT(ctx); - } - - RETURN(RC_OK); -} - -/* - * Internally visible buffer holding a single encoded element. - */ -struct _el_buffer { - uint8_t *buf; - size_t length; - size_t allocated_size; - unsigned bits_unused; -}; -/* Append bytes to the above structure */ -static int _el_addbytes(const void *buffer, size_t size, void *el_buf_ptr) { - struct _el_buffer *el_buf = (struct _el_buffer *)el_buf_ptr; - - if(el_buf->length + size > el_buf->allocated_size) { - size_t new_size = el_buf->allocated_size ? el_buf->allocated_size : 8; - void *p; - - do { - new_size <<= 2; - } while(el_buf->length + size > new_size); - - p = REALLOC(el_buf->buf, new_size); - if(p) { - el_buf->buf = p; - el_buf->allocated_size = new_size; - } else { - return -1; - } - } - - memcpy(el_buf->buf + el_buf->length, buffer, size); - - el_buf->length += size; - return 0; -} - -static void assert_unused_bits(const struct _el_buffer* p) { - if(p->length) { - assert((p->buf[p->length-1] & ~(0xff << p->bits_unused)) == 0); - } else { - assert(p->bits_unused == 0); - } -} - -static int _el_buf_cmp(const void *ap, const void *bp) { - const struct _el_buffer *a = (const struct _el_buffer *)ap; - const struct _el_buffer *b = (const struct _el_buffer *)bp; - size_t common_len; - int ret = 0; - - if(a->length < b->length) - common_len = a->length; - else - common_len = b->length; - - if (a->buf && b->buf) { - ret = memcmp(a->buf, b->buf, common_len); - } - if(ret == 0) { - if(a->length < b->length) - ret = -1; - else if(a->length > b->length) - ret = 1; - /* Ignore unused bits. */ - assert_unused_bits(a); - assert_unused_bits(b); - } - - return ret; -} - -static void -SET_OF__encode_sorted_free(struct _el_buffer *el_buf, size_t count) { - size_t i; - - for(i = 0; i < count; i++) { - FREEMEM(el_buf[i].buf); - } - - FREEMEM(el_buf); -} - -enum SET_OF__encode_method { - SOES_DER, /* Distinguished Encoding Rules */ - SOES_CUPER /* Canonical Unaligned Packed Encoding Rules */ -}; - -static struct _el_buffer * -SET_OF__encode_sorted(const asn_TYPE_member_t *elm, - const asn_anonymous_set_ *list, - enum SET_OF__encode_method method) { - struct _el_buffer *encoded_els; - int edx; - - encoded_els = - (struct _el_buffer *)CALLOC(list->count, sizeof(encoded_els[0])); - if(encoded_els == NULL) { - return NULL; - } - - /* - * Encode all members. - */ - for(edx = 0; edx < list->count; edx++) { - const void *memb_ptr = list->array[edx]; - struct _el_buffer *encoding_el = &encoded_els[edx]; - asn_enc_rval_t erval = {0,0,0}; - - if(!memb_ptr) break; - - /* - * Encode the member into the prepared space. - */ - switch(method) { - case SOES_DER: - erval = elm->type->op->der_encoder(elm->type, memb_ptr, 0, elm->tag, - _el_addbytes, encoding_el); - break; - case SOES_CUPER: - erval = uper_encode(elm->type, - elm->encoding_constraints.per_constraints, - memb_ptr, _el_addbytes, encoding_el); - if(erval.encoded != -1) { - size_t extra_bits = erval.encoded % 8; - assert(encoding_el->length == (size_t)(erval.encoded + 7) / 8); - encoding_el->bits_unused = (8 - extra_bits) & 0x7; - } - break; - default: - assert(!"Unreachable"); - break; - } - if(erval.encoded < 0) break; - } - - if(edx == list->count) { - /* - * Sort the encoded elements according to their encoding. - */ - qsort(encoded_els, list->count, sizeof(encoded_els[0]), _el_buf_cmp); - - return encoded_els; - } else { - SET_OF__encode_sorted_free(encoded_els, edx); - return NULL; - } -} - - -/* - * The DER encoder of the SET OF type. - */ -asn_enc_rval_t -SET_OF_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, - void *app_key) { - const asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); - size_t computed_size = 0; - ssize_t encoding_size = 0; - struct _el_buffer *encoded_els; - int edx; - - ASN_DEBUG("Estimating size for SET OF %s", td->name); - - /* - * Gather the length of the underlying members sequence. - */ - for(edx = 0; edx < list->count; edx++) { - void *memb_ptr = list->array[edx]; - asn_enc_rval_t erval = {0,0,0}; - - if(!memb_ptr) ASN__ENCODE_FAILED; - - erval = - elm->type->op->der_encoder(elm->type, memb_ptr, 0, elm->tag, 0, 0); - if(erval.encoded == -1) return erval; - computed_size += erval.encoded; - } - - - /* - * Encode the TLV for the sequence itself. - */ - encoding_size = - der_write_tags(td, computed_size, tag_mode, 1, tag, cb, app_key); - if(encoding_size < 0) { - ASN__ENCODE_FAILED; - } - computed_size += encoding_size; - - if(!cb || list->count == 0) { - asn_enc_rval_t erval = {0,0,0}; - erval.encoded = computed_size; - ASN__ENCODED_OK(erval); - } - - ASN_DEBUG("Encoding members of %s SET OF", td->name); - - /* - * DER mandates dynamic sorting of the SET OF elements - * according to their encodings. Build an array of the - * encoded elements. - */ - encoded_els = SET_OF__encode_sorted(elm, list, SOES_DER); - - /* - * Report encoded elements to the application. - * Dispose of temporary sorted members table. - */ - for(edx = 0; edx < list->count; edx++) { - struct _el_buffer *encoded_el = &encoded_els[edx]; - /* Report encoded chunks to the application */ - if(cb(encoded_el->buf, encoded_el->length, app_key) < 0) { - break; - } else { - encoding_size += encoded_el->length; - } - } - - SET_OF__encode_sorted_free(encoded_els, list->count); - - if(edx == list->count) { - asn_enc_rval_t erval = {0,0,0}; - assert(computed_size == (size_t)encoding_size); - erval.encoded = computed_size; - ASN__ENCODED_OK(erval); - } else { - ASN__ENCODE_FAILED; - } -} - -#undef XER_ADVANCE -#define XER_ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - buf_ptr = ((const char *)buf_ptr) + num;\ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Decode the XER (XML) data. - */ -asn_dec_rval_t -SET_OF_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const char *opt_mname, const void *buf_ptr, size_t size) { - /* - * Bring closer parts of structure description. - */ - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *element = td->elements; - const char *elm_tag; - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - - /* - * ... and parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - asn_dec_rval_t rval = {RC_OK, 0};/* Return value from a decoder */ - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) RETURN(RC_FAIL); - } - - /* Which tag is expected for the downstream */ - if(specs->as_XMLValueList) { - elm_tag = (specs->as_XMLValueList == 1) ? 0 : ""; - } else { - elm_tag = (*element->name) - ? element->name : element->type->xml_tag; - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Phases of XER/XML processing: - * Phase 0: Check that the opening tag matches our expectations. - * Phase 1: Processing body and reacting on closing tag. - * Phase 2: Processing inner type. - */ - for(; ctx->phase <= 2;) { - pxer_chunk_type_e ch_type; /* XER chunk type */ - ssize_t ch_size; /* Chunk size */ - xer_check_tag_e tcv; /* Tag check value */ - - /* - * Go inside the inner member of a set. - */ - if(ctx->phase == 2) { - asn_dec_rval_t tmprval = {RC_OK, 0}; - - /* Invoke the inner type decoder, m.b. multiple times */ - ASN_DEBUG("XER/SET OF element [%s]", elm_tag); - tmprval = element->type->op->xer_decoder(opt_codec_ctx, - element->type, &ctx->ptr, elm_tag, - buf_ptr, size); - if(tmprval.code == RC_OK) { - asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); - if(ASN_SET_ADD(list, ctx->ptr) != 0) - RETURN(RC_FAIL); - ctx->ptr = 0; - XER_ADVANCE(tmprval.consumed); - } else { - XER_ADVANCE(tmprval.consumed); - RETURN(tmprval.code); - } - ctx->phase = 1; /* Back to body processing */ - ASN_DEBUG("XER/SET OF phase => %d", ctx->phase); - /* Fall through */ - } - - /* - * Get the next part of the XML stream. - */ - ch_size = xer_next_token(&ctx->context, - buf_ptr, size, &ch_type); - if(ch_size == -1) { - RETURN(RC_FAIL); - } else { - switch(ch_type) { - case PXER_WMORE: - RETURN(RC_WMORE); - case PXER_COMMENT: /* Got XML comment */ - case PXER_TEXT: /* Ignore free-standing text */ - XER_ADVANCE(ch_size); /* Skip silently */ - continue; - case PXER_TAG: - break; /* Check the rest down there */ - } - } - - tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); - ASN_DEBUG("XER/SET OF: tcv = %d, ph=%d t=%s", - tcv, ctx->phase, xml_tag); - switch(tcv) { - case XCT_CLOSING: - if(ctx->phase == 0) break; - ctx->phase = 0; - /* Fall through */ - case XCT_BOTH: - if(ctx->phase == 0) { - /* No more things to decode */ - XER_ADVANCE(ch_size); - ctx->phase = 3; /* Phase out */ - RETURN(RC_OK); - } - /* Fall through */ - case XCT_OPENING: - if(ctx->phase == 0) { - XER_ADVANCE(ch_size); - ctx->phase = 1; /* Processing body phase */ - continue; - } - /* Fall through */ - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - - ASN_DEBUG("XER/SET OF: tcv=%d, ph=%d", tcv, ctx->phase); - if(ctx->phase == 1) { - /* - * Process a single possible member. - */ - ctx->phase = 2; - continue; - } - /* Fall through */ - default: - break; - } - - ASN_DEBUG("Unexpected XML tag in SET OF"); - break; - } - - ctx->phase = 3; /* "Phase out" on hard failure */ - RETURN(RC_FAIL); -} - - - -typedef struct xer_tmp_enc_s { - void *buffer; - size_t offset; - size_t size; -} xer_tmp_enc_t; -static int -SET_OF_encode_xer_callback(const void *buffer, size_t size, void *key) { - xer_tmp_enc_t *t = (xer_tmp_enc_t *)key; - if(t->offset + size >= t->size) { - size_t newsize = (t->size << 2) + size; - void *p = REALLOC(t->buffer, newsize); - if(!p) return -1; - t->buffer = p; - t->size = newsize; - } - memcpy((char *)t->buffer + t->offset, buffer, size); - t->offset += size; - return 0; -} -static int -SET_OF_xer_order(const void *aptr, const void *bptr) { - const xer_tmp_enc_t *a = (const xer_tmp_enc_t *)aptr; - const xer_tmp_enc_t *b = (const xer_tmp_enc_t *)bptr; - size_t minlen = a->offset; - int ret; - if(b->offset < minlen) minlen = b->offset; - /* Well-formed UTF-8 has this nice lexicographical property... */ - ret = memcmp(a->buffer, b->buffer, minlen); - if(ret != 0) return ret; - if(a->offset == b->offset) - return 0; - if(a->offset == minlen) - return -1; - return 1; -} - - -asn_enc_rval_t -SET_OF_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, - void *app_key) { - asn_enc_rval_t er = {0,0,0}; - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); - const char *mname = specs->as_XMLValueList - ? 0 : ((*elm->name) ? elm->name : elm->type->xml_tag); - size_t mlen = mname ? strlen(mname) : 0; - int xcan = (flags & XER_F_CANONICAL); - xer_tmp_enc_t *encs = 0; - size_t encs_count = 0; - void *original_app_key = app_key; - asn_app_consume_bytes_f *original_cb = cb; - int i; - - if(!sptr) ASN__ENCODE_FAILED; - - if(xcan) { - encs = (xer_tmp_enc_t *)MALLOC(list->count * sizeof(encs[0])); - if(!encs) ASN__ENCODE_FAILED; - cb = SET_OF_encode_xer_callback; - } - - er.encoded = 0; - - for(i = 0; i < list->count; i++) { - asn_enc_rval_t tmper = {0,0,0}; - - void *memb_ptr = list->array[i]; - if(!memb_ptr) continue; - - if(encs) { - memset(&encs[encs_count], 0, sizeof(encs[0])); - app_key = &encs[encs_count]; - encs_count++; - } - - if(mname) { - if(!xcan) ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - } - - if(!xcan && specs->as_XMLValueList == 1) - ASN__TEXT_INDENT(1, ilevel + 1); - tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, - ilevel + (specs->as_XMLValueList != 2), - flags, cb, app_key); - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - if(tmper.encoded == 0 && specs->as_XMLValueList) { - const char *name = elm->type->xml_tag; - size_t len = strlen(name); - ASN__CALLBACK3("<", 1, name, len, "/>", 2); - } - - if(mname) { - ASN__CALLBACK3("", 1); - } - - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); - - if(encs) { - xer_tmp_enc_t *enc = encs; - xer_tmp_enc_t *end = encs + encs_count; - ssize_t control_size = 0; - - er.encoded = 0; - cb = original_cb; - app_key = original_app_key; - qsort(encs, encs_count, sizeof(encs[0]), SET_OF_xer_order); - - for(; enc < end; enc++) { - ASN__CALLBACK(enc->buffer, enc->offset); - FREEMEM(enc->buffer); - enc->buffer = 0; - control_size += enc->offset; - } - assert(control_size == er.encoded); - } - - goto cleanup; -cb_failed: - ASN__ENCODE_FAILED; -cleanup: - if(encs) { - size_t n; - for(n = 0; n < encs_count; n++) { - FREEMEM(encs[n].buffer); - } - FREEMEM(encs); - } - ASN__ENCODED_OK(er); -} - -int -SET_OF_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); - int ret; - int i; - - if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; - - /* Dump preamble */ - if(cb(td->name, strlen(td->name), app_key) < 0 - || cb(" ::= {", 6, app_key) < 0) - return -1; - - for(i = 0; i < list->count; i++) { - const void *memb_ptr = list->array[i]; - if(!memb_ptr) continue; - - _i_INDENT(1); - - ret = elm->type->op->print_struct(elm->type, memb_ptr, - ilevel + 1, cb, app_key); - if(ret) return ret; - } - - ilevel--; - _i_INDENT(1); - - return (cb("}", 1, app_key) < 0) ? -1 : 0; -} - -void -SET_OF_free(const asn_TYPE_descriptor_t *td, void *ptr, - enum asn_struct_free_method method) { - if(td && ptr) { - const asn_SET_OF_specifics_t *specs; - asn_TYPE_member_t *elm = td->elements; - asn_anonymous_set_ *list = _A_SET_FROM_VOID(ptr); - asn_struct_ctx_t *ctx; /* Decoder context */ - int i; - - /* - * Could not use set_of_empty() because of (*free) - * incompatibility. - */ - for(i = 0; i < list->count; i++) { - void *memb_ptr = list->array[i]; - if(memb_ptr) - ASN_STRUCT_FREE(*elm->type, memb_ptr); - } - list->count = 0; /* No meaningful elements left */ - - asn_set_empty(list); /* Remove (list->array) */ - - specs = (const asn_SET_OF_specifics_t *)td->specifics; - ctx = (asn_struct_ctx_t *)((char *)ptr + specs->ctx_offset); - if(ctx->ptr) { - ASN_STRUCT_FREE(*elm->type, ctx->ptr); - ctx->ptr = 0; - } - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(ptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(ptr, 0, specs->struct_size); - break; - } - } -} - -int -SET_OF_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const asn_TYPE_member_t *elm = td->elements; - asn_constr_check_f *constr; - const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); - int i; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - constr = elm->encoding_constraints.general_constraints; - if(!constr) constr = elm->type->encoding_constraints.general_constraints; - - /* - * Iterate over the members of an array. - * Validate each in turn, until one fails. - */ - for(i = 0; i < list->count; i++) { - const void *memb_ptr = list->array[i]; - int ret; - - if(!memb_ptr) continue; - - ret = constr(elm->type, memb_ptr, ctfailcb, app_key); - if(ret) return ret; - } - - return 0; -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -SET_OF_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - asn_dec_rval_t rv = {RC_OK, 0}; - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; /* Single one */ - void *st = *sptr; - asn_anonymous_set_ *list; - const asn_per_constraint_t *ct; - int repeat = 0; - ssize_t nelems; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - list = _A_SET_FROM_VOID(st); - - /* Figure out which constraints to use */ - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - int value = per_get_few_bits(pd, 1); - if(value < 0) ASN__DECODE_STARVED; - if(value) ct = 0; /* Not restricted! */ - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ - nelems = per_get_few_bits(pd, ct->effective_bits); - ASN_DEBUG("Preparing to fetch %ld+%ld elements from %s", - (long)nelems, ct->lower_bound, td->name); - if(nelems < 0) ASN__DECODE_STARVED; - nelems += ct->lower_bound; - } else { - nelems = -1; - } - - do { - int i; - if(nelems < 0) { - nelems = uper_get_length(pd, -1, 0, &repeat); - ASN_DEBUG("Got to decode %" ASN_PRI_SSIZE " elements (eff %d)", - nelems, (int)(ct ? ct->effective_bits : -1)); - if(nelems < 0) ASN__DECODE_STARVED; - } - - for(i = 0; i < nelems; i++) { - void *ptr = 0; - ASN_DEBUG("SET OF %s decoding", elm->type->name); - rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, &ptr, pd); - ASN_DEBUG("%s SET OF %s decoded %d, %p", - td->name, elm->type->name, rv.code, ptr); - if(rv.code == RC_OK) { - if(ASN_SET_ADD(list, ptr) == 0) { - if(rv.consumed == 0 && nelems > 200) { - /* Protect from SET OF NULL compression bombs. */ - ASN__DECODE_FAILED; - } - continue; - } - ASN_DEBUG("Failed to add element into %s", - td->name); - /* Fall through */ - rv.code = RC_FAIL; - } else { - ASN_DEBUG("Failed decoding %s of %s (SET OF)", - elm->type->name, td->name); - } - if(ptr) ASN_STRUCT_FREE(*elm->type, ptr); - return rv; - } - - nelems = -1; /* Allow uper_get_length() */ - } while(repeat); - - ASN_DEBUG("Decoded %s as SET OF", td->name); - - rv.code = RC_OK; - rv.consumed = 0; - return rv; -} - -asn_enc_rval_t -SET_OF_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const asn_anonymous_set_ *list; - const asn_per_constraint_t *ct; - const asn_TYPE_member_t *elm = td->elements; - struct _el_buffer *encoded_els; - asn_enc_rval_t er = {0,0,0}; - size_t encoded_edx; - - if(!sptr) ASN__ENCODE_FAILED; - - list = _A_CSET_FROM_VOID(sptr); - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE OF (%d)", td->name, list->count); - - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - /* If extensible constraint, check if size is in root */ - if(ct) { - int not_in_root = - (list->count < ct->lower_bound || list->count > ct->upper_bound); - ASN_DEBUG("lb %ld ub %ld %s", ct->lower_bound, ct->upper_bound, - ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); - if(ct->flags & APC_EXTENSIBLE) { - /* Declare whether size is in extension root */ - if(per_put_few_bits(po, not_in_root, 1)) ASN__ENCODE_FAILED; - if(not_in_root) ct = 0; - } else if(not_in_root && ct->effective_bits >= 0) { - ASN__ENCODE_FAILED; - } - - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ - if(per_put_few_bits(po, list->count - ct->lower_bound, - ct->effective_bits)) - ASN__ENCODE_FAILED; - } else if(list->count == 0) { - /* When the list is empty add only the length determinant - * X.691, #20.6 and #11.9.4.1 - */ - if (uper_put_length(po, 0, 0)) { - ASN__ENCODE_FAILED; - } - ASN__ENCODED_OK(er); - } - - - /* - * Canonical UPER #22.1 mandates dynamic sorting of the SET OF elements - * according to their encodings. Build an array of the encoded elements. - */ - encoded_els = SET_OF__encode_sorted(elm, list, SOES_CUPER); - - for(encoded_edx = 0; (ssize_t)encoded_edx < list->count;) { - ssize_t may_encode; - size_t edx; - int need_eom = 0; - - if(ct && ct->effective_bits >= 0) { - may_encode = list->count; - } else { - may_encode = - uper_put_length(po, list->count - encoded_edx, &need_eom); - if(may_encode < 0) ASN__ENCODE_FAILED; - } - - for(edx = encoded_edx; edx < encoded_edx + may_encode; edx++) { - const struct _el_buffer *el = &encoded_els[edx]; - if(asn_put_many_bits(po, el->buf, - (8 * el->length) - el->bits_unused) < 0) { - break; - } - } - - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - - encoded_edx += may_encode; - } - - SET_OF__encode_sorted_free(encoded_els, list->count); - - if((ssize_t)encoded_edx == list->count) { - ASN__ENCODED_OK(er); - } else { - ASN__ENCODE_FAILED; - } -} - -asn_dec_rval_t -SET_OF_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - asn_dec_rval_t rv = {RC_OK, 0}; - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; /* Single one */ - void *st = *sptr; - asn_anonymous_set_ *list; - const asn_per_constraint_t *ct; - int repeat = 0; - ssize_t nelems; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - list = _A_SET_FROM_VOID(st); - - /* Figure out which constraints to use */ - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - int value = per_get_few_bits(pd, 1); - if(value < 0) ASN__DECODE_STARVED; - if(value) ct = 0; /* Not restricted! */ - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ - nelems = aper_get_nsnnwn(pd, ct->upper_bound - ct->lower_bound + 1); - ASN_DEBUG("Preparing to fetch %ld+%ld elements from %s", - (long)nelems, ct->lower_bound, td->name); - if(nelems < 0) ASN__DECODE_STARVED; - nelems += ct->lower_bound; - } else { - nelems = -1; - } - - do { - int i; - if(nelems < 0) { - nelems = aper_get_length(pd, ct ? ct->upper_bound - ct->lower_bound + 1 : -1, - ct ? ct->effective_bits : -1, &repeat); - ASN_DEBUG("Got to decode %d elements (eff %d)", - (int)nelems, (int)(ct ? ct->effective_bits : -1)); - if(nelems < 0) ASN__DECODE_STARVED; - } - - for(i = 0; i < nelems; i++) { - void *ptr = 0; - ASN_DEBUG("SET OF %s decoding", elm->type->name); - rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, &ptr, pd); - ASN_DEBUG("%s SET OF %s decoded %d, %p", - td->name, elm->type->name, rv.code, ptr); - if(rv.code == RC_OK) { - if(ASN_SET_ADD(list, ptr) == 0) - continue; - ASN_DEBUG("Failed to add element into %s", - td->name); - /* Fall through */ - rv.code = RC_FAIL; - } else { - ASN_DEBUG("Failed decoding %s of %s (SET OF)", - elm->type->name, td->name); - } - if(ptr) ASN_STRUCT_FREE(*elm->type, ptr); - return rv; - } - - nelems = -1; /* Allow uper_get_length() */ - } while(repeat); - - ASN_DEBUG("Decoded %s as SET OF", td->name); - - rv.code = RC_OK; - rv.consumed = 0; - return rv; -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -struct comparable_ptr { - const asn_TYPE_descriptor_t *td; - const void *sptr; -}; - -static int -SET_OF__compare_cb(const void *aptr, const void *bptr) { - const struct comparable_ptr *a = aptr; - const struct comparable_ptr *b = bptr; - assert(a->td == b->td); - return a->td->op->compare_struct(a->td, a->sptr, b->sptr); -} - -int -SET_OF_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - const asn_anonymous_set_ *a = _A_CSET_FROM_VOID(aptr); - const asn_anonymous_set_ *b = _A_CSET_FROM_VOID(bptr); - - if(a && b) { - struct comparable_ptr *asorted; - struct comparable_ptr *bsorted; - ssize_t common_length; - ssize_t idx; - - if(a->count == 0) { - if(b->count) return -1; - return 0; - } else if(b->count == 0) { - return 1; - } - - asorted = MALLOC(a->count * sizeof(asorted[0])); - bsorted = MALLOC(b->count * sizeof(bsorted[0])); - if(!asorted || !bsorted) { - FREEMEM(asorted); - FREEMEM(bsorted); - return -1; - } - - for(idx = 0; idx < a->count; idx++) { - asorted[idx].td = td->elements->type; - asorted[idx].sptr = a->array[idx]; - } - - for(idx = 0; idx < b->count; idx++) { - bsorted[idx].td = td->elements->type; - bsorted[idx].sptr = b->array[idx]; - } - - qsort(asorted, a->count, sizeof(asorted[0]), SET_OF__compare_cb); - qsort(bsorted, b->count, sizeof(bsorted[0]), SET_OF__compare_cb); - - common_length = (a->count < b->count ? a->count : b->count); - for(idx = 0; idx < common_length; idx++) { - int ret = td->elements->type->op->compare_struct( - td->elements->type, asorted[idx].sptr, bsorted[idx].sptr); - if(ret) { - FREEMEM(asorted); - FREEMEM(bsorted); - return ret; - } - } - - FREEMEM(asorted); - FREEMEM(bsorted); - - if(idx < b->count) /* more elements in b */ - return -1; /* a is shorter, so put it first */ - if(idx < a->count) return 1; - } else if(!a) { - return -1; - } else if(!b) { - return 1; - } - - return 0; -} - - -asn_TYPE_operation_t asn_OP_SET_OF = { - SET_OF_free, - SET_OF_print, - SET_OF_compare, - SET_OF_decode_ber, - SET_OF_encode_der, - SET_OF_decode_xer, - SET_OF_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - SET_OF_decode_oer, - SET_OF_encode_oer, -#endif -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - SET_OF_decode_uper, - SET_OF_encode_uper, - SET_OF_decode_aper, - 0, /* SET_OF_encode_aper */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - SET_OF_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; - - -asn_random_fill_result_t -SET_OF_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_SET_OF_specifics_t *specs = - (const asn_SET_OF_specifics_t *)td->specifics; - asn_random_fill_result_t res_ok = {ARFILL_OK, 0}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - const asn_TYPE_member_t *elm = td->elements; - void *st = *sptr; - long max_elements = 5; - long slb = 0; /* Lower size bound */ - long sub = 0; /* Upper size bound */ - size_t rnd_len; - - if(max_length == 0) return result_skipped; - - if(st == NULL) { - st = (*sptr = CALLOC(1, specs->struct_size)); - if(st == NULL) { - return result_failed; - } - } - - switch(asn_random_between(0, 6)) { - case 0: max_elements = 0; break; - case 1: max_elements = 1; break; - case 2: max_elements = 5; break; - case 3: max_elements = max_length; break; - case 4: max_elements = max_length / 2; break; - case 5: max_elements = max_length / 4; break; - default: break; - } - sub = slb + max_elements; - - if(!constraints || !constraints->per_constraints) - constraints = &td->encoding_constraints; - if(constraints->per_constraints) { - const asn_per_constraint_t *pc = &constraints->per_constraints->size; - if(pc->flags & APC_SEMI_CONSTRAINED) { - slb = pc->lower_bound; - sub = pc->lower_bound + max_elements; - } else if(pc->flags & APC_CONSTRAINED) { - slb = pc->lower_bound; - sub = pc->upper_bound; - if(sub - slb > max_elements) sub = slb + max_elements; - } - } - - /* Bias towards edges of allowed space */ - switch(asn_random_between(-1, 4)) { - default: - case -1: - /* Prepare lengths somewhat outside of constrained range. */ - if(constraints->per_constraints - && (constraints->per_constraints->size.flags & APC_EXTENSIBLE)) { - switch(asn_random_between(0, 5)) { - default: - case 0: - rnd_len = 0; - break; - case 1: - if(slb > 0) { - rnd_len = slb - 1; - } else { - rnd_len = 0; - } - break; - case 2: - rnd_len = asn_random_between(0, slb); - break; - case 3: - if(sub < (ssize_t)max_length) { - rnd_len = sub + 1; - } else { - rnd_len = max_length; - } - break; - case 4: - if(sub < (ssize_t)max_length) { - rnd_len = asn_random_between(sub + 1, max_length); - } else { - rnd_len = max_length; - } - break; - case 5: - rnd_len = max_length; - break; - } - break; - } - /* Fall through */ - case 0: - rnd_len = asn_random_between(slb, sub); - break; - case 1: - if(slb < sub) { - rnd_len = asn_random_between(slb + 1, sub); - break; - } - /* Fall through */ - case 2: - rnd_len = asn_random_between(slb, slb); - break; - case 3: - if(slb < sub) { - rnd_len = asn_random_between(slb, sub - 1); - break; - } - /* Fall through */ - case 4: - rnd_len = asn_random_between(sub, sub); - break; - } - - for(; rnd_len > 0; rnd_len--) { - asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); - void *ptr = 0; - asn_random_fill_result_t tmpres = elm->type->op->random_fill( - elm->type, &ptr, &elm->encoding_constraints, - (max_length > res_ok.length ? max_length - res_ok.length : 0) - / rnd_len); - switch(tmpres.code) { - case ARFILL_OK: - ASN_SET_ADD(list, ptr); - res_ok.length += tmpres.length; - break; - case ARFILL_SKIPPED: - break; - case ARFILL_FAILED: - assert(ptr == 0); - return tmpres; - } - } - - return res_ok; -} - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_SET_OF.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_SET_OF.h deleted file mode 100644 index 7681062..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_SET_OF.h +++ /dev/null @@ -1,49 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef CONSTR_SET_OF_H -#define CONSTR_SET_OF_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct asn_SET_OF_specifics_s { - /* - * Target structure description. - */ - unsigned struct_size; /* Size of the target structure. */ - unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ - - /* XER-specific stuff */ - int as_XMLValueList; /* The member type must be encoded like this */ -} asn_SET_OF_specifics_t; - -/* - * A set specialized functions dealing with the SET OF type. - */ -asn_struct_free_f SET_OF_free; -asn_struct_print_f SET_OF_print; -asn_struct_compare_f SET_OF_compare; -asn_constr_check_f SET_OF_constraint; -ber_type_decoder_f SET_OF_decode_ber; -der_type_encoder_f SET_OF_encode_der; -xer_type_decoder_f SET_OF_decode_xer; -xer_type_encoder_f SET_OF_encode_xer; -oer_type_decoder_f SET_OF_decode_oer; -oer_type_encoder_f SET_OF_encode_oer; -per_type_decoder_f SET_OF_decode_uper; -per_type_encoder_f SET_OF_encode_uper; -per_type_decoder_f SET_OF_decode_aper; -per_type_encoder_f SET_OF_encode_aper; -asn_random_fill_f SET_OF_random_fill; -extern asn_TYPE_operation_t asn_OP_SET_OF; - -#ifdef __cplusplus -} -#endif - -#endif /* CONSTR_SET_OF_H */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_SET_OF_oer.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_SET_OF_oer.c deleted file mode 100644 index 5200518..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_SET_OF_oer.c +++ /dev/null @@ -1,285 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include -#include - -/* - * This macro "eats" the part of the buffer which is definitely "consumed", - * i.e. was correctly converted into local representation or rightfully skipped. - */ -#undef ADVANCE -#define ADVANCE(num_bytes) \ - do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#define NEXT_PHASE(ctx) \ - do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) -#undef SET_PHASE -#define SET_PHASE(ctx, value) \ - do { \ - ctx->phase = value; \ - ctx->step = 0; \ - } while(0) - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) \ - do { \ - asn_dec_rval_t rval; \ - rval.code = _code; \ - rval.consumed = consumed_myself; \ - return rval; \ - } while(0) - -/* - * The SEQUENCE OF and SET OF values utilize a "quantity field". - * It is is a pointless combination of #8.6 (length determinant, capable - * of encoding tiny and huge numbers in the shortest possible number of octets) - * and the variable sized integer. What could have been encoded by #8.6 alone - * is required to be encoded by #8.6 followed by that number of unsigned octets. - * This doesn't make too much sense. It seems that the original version of OER - * standard have been using the unconstrained unsigned integer as a quantity - * field, and this legacy have gone through ISO/ITU-T standardization process. - */ -static ssize_t -oer_fetch_quantity(const void *ptr, size_t size, size_t *qty_r) { - const uint8_t *b; - const uint8_t *bend; - size_t len = 0; - size_t qty; - - ssize_t len_len = oer_fetch_length(ptr, size, &len); - if(len_len <= 0) { - *qty_r = 0; - return len_len; - } - - if((len_len + len) > size) { - *qty_r = 0; - return 0; - } - - b = (const uint8_t *)ptr + len_len; - bend = b + len; - - /* Skip the leading 0-bytes */ - for(; b < bend && *b == 0; b++) { - } - - if((bend - b) > (ssize_t)sizeof(size_t)) { - /* Length is not representable by the native size_t type */ - *qty_r = 0; - return -1; - } - - for(qty = 0; b < bend; b++) { - qty = (qty << 8) + *b; - } - - if(qty > RSIZE_MAX) { /* A bit of C11 validation */ - *qty_r = 0; - return -1; - } - - *qty_r = qty; - assert((size_t)len_len + len == (size_t)(bend - (const uint8_t *)ptr)); - return len_len + len; -} - -asn_dec_rval_t -SET_OF_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **struct_ptr, - const void *ptr, size_t size) { - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - asn_dec_rval_t rval = {RC_OK, 0}; - void *st = *struct_ptr; /* Target structure */ - asn_struct_ctx_t *ctx; /* Decoder context */ - size_t consumed_myself = 0; /* Consumed bytes from ptr. */ - - (void)constraints; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Start to parse where left previously. - */ - switch(ctx->phase) { - case 0: { - /* - * Fetch number of elements to decode. - */ - size_t length = 0; - size_t len_size = oer_fetch_quantity(ptr, size, &length); - switch(len_size) { - case 0: - RETURN(RC_WMORE); - case -1: - RETURN(RC_FAIL); - default: - ADVANCE(len_size); - ctx->left = length; - } - } - NEXT_PHASE(ctx); - /* FALL THROUGH */ - case 1: { - /* Decode components of the extension root */ - asn_TYPE_member_t *elm = td->elements; - asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); - const void *base_ptr = ptr; - ber_tlv_len_t base_ctx_left = ctx->left; - - assert(td->elements_count == 1); - - ASN_DEBUG("OER SET OF %s Decoding PHASE 1", td->name); - - for(; ctx->left > 0; ctx->left--) { - asn_dec_rval_t rv = elm->type->op->oer_decoder( - opt_codec_ctx, elm->type, - elm->encoding_constraints.oer_constraints, &ctx->ptr, ptr, - size); - ADVANCE(rv.consumed); - switch(rv.code) { - case RC_OK: - if(ASN_SET_ADD(list, ctx->ptr) != 0) { - RETURN(RC_FAIL); - } else { - ctx->ptr = 0; - /* - * This check is to avoid compression bomb with - * specs like SEQUENCE/SET OF NULL which don't - * consume data at all. - */ - if(rv.consumed == 0 && base_ptr == ptr - && (base_ctx_left - ctx->left) > 200) { - ASN__DECODE_FAILED; - } - break; - } - case RC_WMORE: - RETURN(RC_WMORE); - case RC_FAIL: - ASN_STRUCT_FREE(*elm->type, ctx->ptr); - ctx->ptr = 0; - SET_PHASE(ctx, 3); - RETURN(RC_FAIL); - } - } - /* Decoded decently. */ - NEXT_PHASE(ctx); - } - /* Fall through */ - case 2: - /* Ignore fully decoded */ - assert(ctx->left == 0); - RETURN(RC_OK); - case 3: - /* Failed to decode. */ - RETURN(RC_FAIL); - } - - return rval; -} - -static ssize_t -oer_put_quantity(size_t qty, asn_app_consume_bytes_f *cb, void *app_key) { - uint8_t buf[1 + sizeof(size_t)]; - uint8_t *b = &buf[sizeof(size_t)]; /* Last addressable */ - size_t encoded; - - do { - *b-- = qty; - qty >>= 8; - } while(qty); - - *b = sizeof(buf) - (b-buf) - 1; - encoded = sizeof(buf) - (b-buf); - if(cb(b, encoded, app_key) < 0) - return -1; - return encoded; -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -SET_OF_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_TYPE_member_t *elm; - const asn_anonymous_set_ *list; - size_t computed_size = 0; - ssize_t qty_len; - int n; - - (void)constraints; - - if(!sptr) ASN__ENCODE_FAILED; - - elm = td->elements; - list = _A_CSET_FROM_VOID(sptr); - - qty_len = oer_put_quantity(list->count, cb, app_key); - if(qty_len < 0) { - ASN__ENCODE_FAILED; - } - computed_size += qty_len; - - for(n = 0; n < list->count; n++) { - void *memb_ptr = list->array[n]; - asn_enc_rval_t er = {0,0,0}; - er = elm->type->op->oer_encoder( - elm->type, elm->encoding_constraints.oer_constraints, memb_ptr, cb, - app_key); - if(er.encoded < 0) { - return er; - } else { - computed_size += er.encoded; - } - } - - { - asn_enc_rval_t erval = {0,0,0}; - erval.encoded = computed_size; - ASN__ENCODED_OK(erval); - } -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_TYPE.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_TYPE.c deleted file mode 100644 index aefaefd..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_TYPE.c +++ /dev/null @@ -1,80 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Version of the ASN.1 infrastructure shipped with compiler. - */ -int get_asn1c_environment_version() { return ASN1C_ENVIRONMENT_VERSION; } - -static asn_app_consume_bytes_f _print2fp; - -/* - * Return the outmost tag of the type. - */ -ber_tlv_tag_t -asn_TYPE_outmost_tag(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, int tag_mode, ber_tlv_tag_t tag) { - - if(tag_mode) - return tag; - - if(type_descriptor->tags_count) - return type_descriptor->tags[0]; - - return type_descriptor->op->outmost_tag(type_descriptor, struct_ptr, 0, 0); -} - -/* - * Print the target language's structure in human readable form. - */ -int -asn_fprint(FILE *stream, const asn_TYPE_descriptor_t *td, - const void *struct_ptr) { - if(!stream) stream = stdout; - if(!td || !struct_ptr) { - errno = EINVAL; - return -1; - } - - /* Invoke type-specific printer */ - if(td->op->print_struct(td, struct_ptr, 1, _print2fp, stream)) { - return -1; - } - - /* Terminate the output */ - if(_print2fp("\n", 1, stream)) { - return -1; - } - - return fflush(stream); -} - -/* Dump the data into the specified stdio stream */ -static int -_print2fp(const void *buffer, size_t size, void *app_key) { - FILE *stream = (FILE *)app_key; - - if(fwrite(buffer, 1, size, stream) != size) - return -1; - - return 0; -} - - -/* - * Some compilers do not support variable args macros. - * This function is a replacement of ASN_DEBUG() macro. - */ -void ASN_DEBUG_f(const char *fmt, ...); -void ASN_DEBUG_f(const char *fmt, ...) { - va_list ap; - va_start(ap, fmt); - vfprintf(stderr, fmt, ap); - fprintf(stderr, "\n"); - va_end(ap); -} diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_TYPE.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_TYPE.h deleted file mode 100644 index d80dea5..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constr_TYPE.h +++ /dev/null @@ -1,262 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * This file contains the declaration structure called "ASN.1 Type Definition", - * which holds all information necessary for encoding and decoding routines. - * This structure even contains pointer to these encoding and decoding routines - * for each defined ASN.1 type. - */ -#ifndef _CONSTR_TYPE_H_ -#define _CONSTR_TYPE_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ -struct asn_TYPE_member_s; /* Forward declaration */ - -/* - * This type provides the context information for various ASN.1 routines, - * primarily ones doing decoding. A member _asn_ctx of this type must be - * included into certain target language's structures, such as compound types. - */ -typedef struct asn_struct_ctx_s { - short phase; /* Decoding phase */ - short step; /* Elementary step of a phase */ - int context; /* Other context information */ - void *ptr; /* Decoder-specific stuff (stack elements) */ - ber_tlv_len_t left; /* Number of bytes left, -1 for indefinite */ -} asn_struct_ctx_t; - -#include /* Basic Encoding Rules decoder */ -#include /* Distinguished Encoding Rules encoder */ -#include /* Decoder of XER (XML, text) */ -#include /* Encoder into XER (XML, text) */ -#include /* Packet Encoding Rules decoder */ -#include /* Packet Encoding Rules encoder */ -#include /* Subtype constraints support */ -#include /* Random structures support */ - -#ifdef ASN_DISABLE_OER_SUPPORT -typedef void (oer_type_decoder_f)(void); -typedef void (oer_type_encoder_f)(void); -typedef void asn_oer_constraints_t; -#else -#include /* Octet Encoding Rules encoder */ -#include /* Octet Encoding Rules encoder */ -#endif - -/* - * Free the structure according to its specification. - * Use one of ASN_STRUCT_{FREE,RESET,CONTENTS_ONLY} macros instead. - * Do not use directly. - */ -enum asn_struct_free_method { - ASFM_FREE_EVERYTHING, /* free(struct_ptr) and underlying members */ - ASFM_FREE_UNDERLYING, /* free underlying members */ - ASFM_FREE_UNDERLYING_AND_RESET /* FREE_UNDERLYING + memset(0) */ -}; -typedef void (asn_struct_free_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - void *struct_ptr, enum asn_struct_free_method); - -/* - * Free the structure including freeing the memory pointed to by ptr itself. - */ -#define ASN_STRUCT_FREE(asn_DEF, ptr) \ - (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_EVERYTHING) - -/* - * Free the memory used by the members of the structure without freeing the - * the structure pointer itself. - * ZERO-OUT the structure to the safe clean state. - * (Retaining the pointer may be useful in case the structure is allocated - * statically or arranged on the stack, yet its elements are dynamic.) - */ -#define ASN_STRUCT_RESET(asn_DEF, ptr) \ - (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_UNDERLYING_AND_RESET) - -/* - * Free memory used by the members of the structure without freeing - * the structure pointer itself. - * (Retaining the pointer may be useful in case the structure is allocated - * statically or arranged on the stack, yet its elements are dynamic.) - * AVOID using it in the application code; - * Use a safer ASN_STRUCT_RESET() instead. - */ -#define ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF, ptr) \ - (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_UNDERLYING) - -/* - * Print the structure according to its specification. - */ -typedef int(asn_struct_print_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, - int level, /* Indentation level */ - asn_app_consume_bytes_f *callback, void *app_key); - -/* - * Compare two structs between each other. - * Returns <0 if struct_A is "smaller" than struct_B, >0 if "greater", - * and =0 if "equal to", for some type-specific, stable definition of - * "smaller", "greater" and "equal to". - */ -typedef int (asn_struct_compare_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_A, - const void *struct_B); - -/* - * Return the outmost tag of the type. - * If the type is untagged CHOICE, the dynamic operation is performed. - * NOTE: This function pointer type is only useful internally. - * Do not use it in your application. - */ -typedef ber_tlv_tag_t (asn_outmost_tag_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, int tag_mode, ber_tlv_tag_t tag); -/* The instance of the above function type; used internally. */ -asn_outmost_tag_f asn_TYPE_outmost_tag; - -/* - * Fetch the desired type of the Open Type based on the - * Information Object Set driven constraints. - */ -typedef struct asn_type_selector_result_s { - const struct asn_TYPE_descriptor_s *type_descriptor; /* Type encoded. */ - unsigned presence_index; /* Associated choice variant. */ -} asn_type_selector_result_t; -typedef asn_type_selector_result_t(asn_type_selector_f)( - const struct asn_TYPE_descriptor_s *parent_type_descriptor, - const void *parent_structure_ptr); - -/* - * Generalized functions for dealing with the speciic type. - * May be directly invoked by applications. - */ -typedef struct asn_TYPE_operation_s { - asn_struct_free_f *free_struct; /* Free the structure */ - asn_struct_print_f *print_struct; /* Human readable output */ - asn_struct_compare_f *compare_struct; /* Compare two structures */ - ber_type_decoder_f *ber_decoder; /* Generic BER decoder */ - der_type_encoder_f *der_encoder; /* Canonical DER encoder */ - xer_type_decoder_f *xer_decoder; /* Generic XER decoder */ - xer_type_encoder_f *xer_encoder; /* [Canonical] XER encoder */ - oer_type_decoder_f *oer_decoder; /* Generic OER decoder */ - oer_type_encoder_f *oer_encoder; /* Canonical OER encoder */ - per_type_decoder_f *uper_decoder; /* Unaligned PER decoder */ - per_type_encoder_f *uper_encoder; /* Unaligned PER encoder */ - per_type_decoder_f *aper_decoder; /* Aligned PER decoder */ - per_type_encoder_f *aper_encoder; /* Aligned PER encoder */ - asn_random_fill_f *random_fill; /* Initialize with a random value */ - asn_outmost_tag_f *outmost_tag; /* */ -} asn_TYPE_operation_t; - -/* - * A constraints tuple specifying both the OER and PER constraints. - */ -typedef struct asn_encoding_constraints_s { - const struct asn_oer_constraints_s *oer_constraints; - const struct asn_per_constraints_s *per_constraints; - asn_constr_check_f *general_constraints; -} asn_encoding_constraints_t; - -/* - * The definitive description of the destination language's structure. - */ -typedef struct asn_TYPE_descriptor_s { - const char *name; /* A name of the ASN.1 type. "" in some cases. */ - const char *xml_tag; /* Name used in XML tag */ - - /* - * Generalized functions for dealing with the specific type. - * May be directly invoked by applications. - */ - asn_TYPE_operation_t *op; - - /*********************************************************************** - * Internally useful members. Not to be used by applications directly. * - **********************************************************************/ - - /* - * Tags that are expected to occur. - */ - const ber_tlv_tag_t *tags; /* Effective tags sequence for this type */ - unsigned tags_count; /* Number of tags which are expected */ - const ber_tlv_tag_t *all_tags; /* Every tag for BER/containment */ - unsigned all_tags_count; /* Number of tags */ - - /* OER, PER, and general constraints */ - asn_encoding_constraints_t encoding_constraints; - - /* - * An ASN.1 production type members (members of SEQUENCE, SET, CHOICE). - */ - struct asn_TYPE_member_s *elements; - unsigned elements_count; - - /* - * Additional information describing the type, used by appropriate - * functions above. - */ - const void *specifics; -} asn_TYPE_descriptor_t; - -/* - * This type describes an element of the constructed type, - * i.e. SEQUENCE, SET, CHOICE, etc. - */ - enum asn_TYPE_flags_e { - ATF_NOFLAGS, - ATF_POINTER = 0x01, /* Represented by the pointer */ - ATF_OPEN_TYPE = 0x02, /* Open Type */ - ATF_ANY_TYPE = 0x04 /* ANY type (deprecated!) */ - }; -typedef struct asn_TYPE_member_s { - enum asn_TYPE_flags_e flags; /* Element's presentation flags */ - unsigned optional; /* Following optional members, including current */ - unsigned memb_offset; /* Offset of the element */ - ber_tlv_tag_t tag; /* Outmost (most immediate) tag */ - int tag_mode; /* IMPLICIT/no/EXPLICIT tag at current level */ - asn_TYPE_descriptor_t *type; /* Member type descriptor */ - asn_type_selector_f *type_selector; /* IoS runtime type selector */ - asn_encoding_constraints_t encoding_constraints; - int (*default_value_cmp)(const void *sptr); /* Compare DEFAULT */ - int (*default_value_set)(void **sptr); /* Set DEFAULT */ - const char *name; /* ASN.1 identifier of the element */ -} asn_TYPE_member_t; - -/* - * BER tag to element number mapping. - */ -typedef struct asn_TYPE_tag2member_s { - ber_tlv_tag_t el_tag; /* Outmost tag of the member */ - unsigned el_no; /* Index of the associated member, base 0 */ - int toff_first; /* First occurence of the el_tag, relative */ - int toff_last; /* Last occurence of the el_tag, relative */ -} asn_TYPE_tag2member_t; - -/* - * This function prints out the contents of the target language's structure - * (struct_ptr) into the file pointer (stream) in human readable form. - * RETURN VALUES: - * 0: The structure is printed. - * -1: Problem dumping the structure. - * (See also xer_fprint() in xer_encoder.h) - */ -int asn_fprint(FILE *stream, /* Destination stream descriptor */ - const asn_TYPE_descriptor_t *td, /* ASN.1 type descriptor */ - const void *struct_ptr); /* Structure to be printed */ - -#ifdef __cplusplus -} -#endif - -#endif /* _CONSTR_TYPE_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constraints.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constraints.c deleted file mode 100644 index df3c6c1..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constraints.c +++ /dev/null @@ -1,93 +0,0 @@ -#include -#include - -int -asn_generic_no_constraint(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, - asn_app_constraint_failed_f *cb, void *key) { - (void)type_descriptor; /* Unused argument */ - (void)struct_ptr; /* Unused argument */ - (void)cb; /* Unused argument */ - (void)key; /* Unused argument */ - - /* Nothing to check */ - return 0; -} - -int -asn_generic_unknown_constraint(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, - asn_app_constraint_failed_f *cb, void *key) { - (void)type_descriptor; /* Unused argument */ - (void)struct_ptr; /* Unused argument */ - (void)cb; /* Unused argument */ - (void)key; /* Unused argument */ - - /* Unknown how to check */ - return 0; -} - -struct errbufDesc { - const asn_TYPE_descriptor_t *failed_type; - const void *failed_struct_ptr; - char *errbuf; - size_t errlen; -}; - -static void -_asn_i_ctfailcb(void *key, const asn_TYPE_descriptor_t *td, const void *sptr, - const char *fmt, ...) { - struct errbufDesc *arg = key; - va_list ap; - ssize_t vlen; - ssize_t maxlen; - - arg->failed_type = td; - arg->failed_struct_ptr = sptr; - - maxlen = arg->errlen; - if(maxlen <= 0) - return; - - va_start(ap, fmt); - vlen = vsnprintf(arg->errbuf, maxlen, fmt, ap); - va_end(ap); - if(vlen >= maxlen) { - arg->errbuf[maxlen-1] = '\0'; /* Ensuring libc correctness */ - arg->errlen = maxlen - 1; /* Not counting termination */ - return; - } else if(vlen >= 0) { - arg->errbuf[vlen] = '\0'; /* Ensuring libc correctness */ - arg->errlen = vlen; /* Not counting termination */ - } else { - /* - * The libc on this system is broken. - */ - vlen = sizeof("") - 1; - maxlen--; - arg->errlen = vlen < maxlen ? vlen : maxlen; - memcpy(arg->errbuf, "", arg->errlen); - arg->errbuf[arg->errlen] = 0; - } - - return; -} - -int -asn_check_constraints(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, char *errbuf, size_t *errlen) { - struct errbufDesc arg; - int ret; - - arg.failed_type = 0; - arg.failed_struct_ptr = 0; - arg.errbuf = errbuf; - arg.errlen = errlen ? *errlen : 0; - - ret = type_descriptor->encoding_constraints.general_constraints( - type_descriptor, struct_ptr, _asn_i_ctfailcb, &arg); - if(ret == -1 && errlen) *errlen = arg.errlen; - - return ret; -} - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constraints.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constraints.h deleted file mode 100644 index 0bd86a9..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/constraints.h +++ /dev/null @@ -1,62 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN1_CONSTRAINTS_VALIDATOR_H -#define ASN1_CONSTRAINTS_VALIDATOR_H - -#include /* Platform-dependent types */ - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * Validate the structure according to the ASN.1 constraints. - * If errbuf and errlen are given, they shall be pointing to the appropriate - * buffer space and its length before calling this function. Alternatively, - * they could be passed as NULL's. If constraints validation fails, - * errlen will contain the actual number of bytes taken from the errbuf - * to encode an error message (properly 0-terminated). - * - * RETURN VALUES: - * This function returns 0 in case all ASN.1 constraints are met - * and -1 if one or more constraints were failed. - */ -int asn_check_constraints( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Target language's structure */ - char *errbuf, /* Returned error description */ - size_t *errlen /* Length of the error description */ -); - - -/* - * Generic type for constraint checking callback, - * associated with every type descriptor. - */ -typedef int(asn_constr_check_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, const void *struct_ptr, - asn_app_constraint_failed_f *optional_callback, /* Log the error */ - void *optional_app_key /* Opaque key passed to a callback */ -); - -/******************************* - * INTERNALLY USEFUL FUNCTIONS * - *******************************/ - -asn_constr_check_f asn_generic_no_constraint; /* No constraint whatsoever */ -asn_constr_check_f asn_generic_unknown_constraint; /* Not fully supported */ - -/* - * Invoke the callback with a complete error message. - */ -#define ASN__CTFAIL if(ctfailcb) ctfailcb - -#ifdef __cplusplus -} -#endif - -#endif /* ASN1_CONSTRAINTS_VALIDATOR_H */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/converter-example.mk b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/converter-example.mk deleted file mode 100644 index ef02a5b..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/converter-example.mk +++ /dev/null @@ -1,33 +0,0 @@ -include ./Makefile.am.libasncodec - -LIBS += -lm -CFLAGS += $(ASN_MODULE_CFLAGS) -DASN_PDU_COLLECTION -I. -ASN_LIBRARY ?= libasncodec.a -ASN_PROGRAM ?= converter-example -ASN_PROGRAM_SRCS ?= \ - ./converter-example.c\ - ./pdu_collection.c - -all: $(ASN_PROGRAM) - -$(ASN_PROGRAM): $(ASN_LIBRARY) $(ASN_PROGRAM_SRCS:.c=.o) - $(CC) $(CFLAGS) $(CPPFLAGS) -o $(ASN_PROGRAM) $(ASN_PROGRAM_SRCS:.c=.o) $(LDFLAGS) $(ASN_LIBRARY) $(LIBS) - -$(ASN_LIBRARY): $(ASN_MODULE_SRCS:.c=.o) - $(AR) rcs $@ $(ASN_MODULE_SRCS:.c=.o) - -.SUFFIXES: -.SUFFIXES: .c .o - -.c.o: - $(CC) $(CFLAGS) -o $@ -c $< - -clean: - rm -f $(ASN_PROGRAM) $(ASN_LIBRARY) - rm -f $(ASN_MODULE_SRCS:.c=.o) $(ASN_PROGRAM_SRCS:.c=.o) - -regen: regenerate-from-asn1-source - -regenerate-from-asn1-source: - asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -D . /root/e2ap-v01.00.00.asn - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/der_encoder.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/der_encoder.c deleted file mode 100644 index 2c6a6f7..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/der_encoder.c +++ /dev/null @@ -1,194 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -static ssize_t der_write_TL(ber_tlv_tag_t tag, ber_tlv_len_t len, - asn_app_consume_bytes_f *cb, void *app_key, int constructed); - -/* - * The DER encoder of any type. - */ -asn_enc_rval_t -der_encode(const asn_TYPE_descriptor_t *type_descriptor, const void *struct_ptr, - asn_app_consume_bytes_f *consume_bytes, void *app_key) { - ASN_DEBUG("DER encoder invoked for %s", - type_descriptor->name); - - /* - * Invoke type-specific encoder. - */ - return type_descriptor->op->der_encoder( - type_descriptor, struct_ptr, /* Pointer to the destination structure */ - 0, 0, consume_bytes, app_key); -} - -/* - * Argument type and callback necessary for der_encode_to_buffer(). - */ -typedef struct enc_to_buf_arg { - void *buffer; - size_t left; -} enc_to_buf_arg; -static int encode_to_buffer_cb(const void *buffer, size_t size, void *key) { - enc_to_buf_arg *arg = (enc_to_buf_arg *)key; - - if(arg->left < size) - return -1; /* Data exceeds the available buffer size */ - - memcpy(arg->buffer, buffer, size); - arg->buffer = ((char *)arg->buffer) + size; - arg->left -= size; - - return 0; -} - -/* - * A variant of the der_encode() which encodes the data into the provided buffer - */ -asn_enc_rval_t -der_encode_to_buffer(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, void *buffer, size_t buffer_size) { - enc_to_buf_arg arg; - asn_enc_rval_t ec; - - arg.buffer = buffer; - arg.left = buffer_size; - - ec = type_descriptor->op->der_encoder(type_descriptor, - struct_ptr, /* Pointer to the destination structure */ - 0, 0, encode_to_buffer_cb, &arg); - if(ec.encoded != -1) { - assert(ec.encoded == (ssize_t)(buffer_size - arg.left)); - /* Return the encoded contents size */ - } - return ec; -} - - -/* - * Write out leading TL[v] sequence according to the type definition. - */ -ssize_t -der_write_tags(const asn_TYPE_descriptor_t *sd, size_t struct_length, - int tag_mode, int last_tag_form, - ber_tlv_tag_t tag, /* EXPLICIT or IMPLICIT tag */ - asn_app_consume_bytes_f *cb, void *app_key) { -#define ASN1_DER_MAX_TAGS_COUNT 4 - ber_tlv_tag_t - tags_buf_scratch[ASN1_DER_MAX_TAGS_COUNT * sizeof(ber_tlv_tag_t)]; - ssize_t lens[ASN1_DER_MAX_TAGS_COUNT * sizeof(ssize_t)]; - const ber_tlv_tag_t *tags; /* Copy of tags stream */ - int tags_count; /* Number of tags */ - size_t overall_length; - int i; - - ASN_DEBUG("Writing tags (%s, tm=%d, tc=%d, tag=%s, mtc=%d)", - sd->name, tag_mode, sd->tags_count, - ber_tlv_tag_string(tag), - tag_mode - ?(sd->tags_count+1 - -((tag_mode == -1) && sd->tags_count)) - :sd->tags_count - ); - - if(sd->tags_count + 1 > ASN1_DER_MAX_TAGS_COUNT) { - ASN_DEBUG("System limit %d on tags count", ASN1_DER_MAX_TAGS_COUNT); - return -1; - } - - if(tag_mode) { - /* - * Instead of doing shaman dance like we do in ber_check_tags(), - * allocate a small array on the stack - * and initialize it appropriately. - */ - int stag_offset; - ber_tlv_tag_t *tags_buf = tags_buf_scratch; - tags_count = sd->tags_count - + 1 /* EXPLICIT or IMPLICIT tag is given */ - - ((tag_mode == -1) && sd->tags_count); - /* Copy tags over */ - tags_buf[0] = tag; - stag_offset = -1 + ((tag_mode == -1) && sd->tags_count); - for(i = 1; i < tags_count; i++) - tags_buf[i] = sd->tags[i + stag_offset]; - tags = tags_buf; - } else { - tags = sd->tags; - tags_count = sd->tags_count; - } - - /* No tags to write */ - if(tags_count == 0) - return 0; - - /* - * Array of tags is initialized. - * Now, compute the size of the TLV pairs, from right to left. - */ - overall_length = struct_length; - for(i = tags_count - 1; i >= 0; --i) { - lens[i] = der_write_TL(tags[i], overall_length, 0, 0, 0); - if(lens[i] == -1) return -1; - overall_length += lens[i]; - lens[i] = overall_length - lens[i]; - } - - if(!cb) return overall_length - struct_length; - - ASN_DEBUG("Encoding %s TL sequence (%d elements)", sd->name, - tags_count); - - /* - * Encode the TL sequence for real. - */ - for(i = 0; i < tags_count; i++) { - ssize_t len; - int _constr; - - /* Check if this tag happens to be constructed */ - _constr = (last_tag_form || i < (tags_count - 1)); - - len = der_write_TL(tags[i], lens[i], cb, app_key, _constr); - if(len == -1) return -1; - } - - return overall_length - struct_length; -} - -static ssize_t -der_write_TL(ber_tlv_tag_t tag, ber_tlv_len_t len, - asn_app_consume_bytes_f *cb, void *app_key, - int constructed) { - uint8_t buf[32]; - size_t size = 0; - int buf_size = cb?sizeof(buf):0; - ssize_t tmp; - - /* Serialize tag (T from TLV) into possibly zero-length buffer */ - tmp = ber_tlv_tag_serialize(tag, buf, buf_size); - if(tmp == -1 || tmp > (ssize_t)sizeof(buf)) return -1; - size += tmp; - - /* Serialize length (L from TLV) into possibly zero-length buffer */ - tmp = der_tlv_length_serialize(len, buf+size, buf_size?buf_size-size:0); - if(tmp == -1) return -1; - size += tmp; - - if(size > sizeof(buf)) - return -1; - - /* - * If callback is specified, invoke it, and check its return value. - */ - if(cb) { - if(constructed) *buf |= 0x20; - if(cb(buf, size, app_key) < 0) - return -1; - } - - return size; -} diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/der_encoder.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/der_encoder.h deleted file mode 100644 index e93944e..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/der_encoder.h +++ /dev/null @@ -1,68 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _DER_ENCODER_H_ -#define _DER_ENCODER_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * The DER encoder of any type. May be invoked by the application. - * Produces DER- and BER-compliant encoding. (DER is a subset of BER). - * - * NOTE: Use the ber_decode() function (ber_decoder.h) to decode data - * produced by der_encode(). - */ -asn_enc_rval_t der_encode(const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - asn_app_consume_bytes_f *consume_bytes_cb, - void *app_key /* Arbitrary callback argument */ -); - -/* A variant of der_encode() which encodes data into the pre-allocated buffer */ -asn_enc_rval_t der_encode_to_buffer( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - void *buffer, /* Pre-allocated buffer */ - size_t buffer_size /* Initial buffer size (maximum) */ -); - -/* - * Type of the generic DER encoder. - */ -typedef asn_enc_rval_t(der_type_encoder_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - int tag_mode, /* {-1,0,1}: IMPLICIT, no, EXPLICIT */ - ber_tlv_tag_t tag, asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */ - void *app_key /* Arbitrary callback argument */ -); - - -/******************************* - * INTERNALLY USEFUL FUNCTIONS * - *******************************/ - -/* - * Write out leading TL[v] sequence according to the type definition. - */ -ssize_t der_write_tags(const struct asn_TYPE_descriptor_s *type_descriptor, - size_t struct_length, - int tag_mode, /* {-1,0,1}: IMPLICIT, no, EXPLICIT */ - int last_tag_form, /* {0,!0}: prim, constructed */ - ber_tlv_tag_t tag, - asn_app_consume_bytes_f *consume_bytes_cb, - void *app_key); - -#ifdef __cplusplus -} -#endif - -#endif /* _DER_ENCODER_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/oer_decoder.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/oer_decoder.c deleted file mode 100644 index 0701738..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/oer_decoder.c +++ /dev/null @@ -1,152 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -/* - * The OER decoder of any type. - */ -asn_dec_rval_t -oer_decode(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, - const void *ptr, size_t size) { - asn_codec_ctx_t s_codec_ctx; - - /* - * Stack checker requires that the codec context - * must be allocated on the stack. - */ - if(opt_codec_ctx) { - if(opt_codec_ctx->max_stack_size) { - s_codec_ctx = *opt_codec_ctx; - opt_codec_ctx = &s_codec_ctx; - } - } else { - /* If context is not given, be security-conscious anyway */ - memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); - s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; - opt_codec_ctx = &s_codec_ctx; - } - - /* - * Invoke type-specific decoder. - */ - return type_descriptor->op->oer_decoder(opt_codec_ctx, type_descriptor, 0, - struct_ptr, /* Pointer to the destination structure */ - ptr, size /* Buffer and its size */ - ); -} - -/* - * Open Type is encoded as a length (#8.6) followed by that number of bytes. - * Since we're just skipping, reading the length would be enough. - */ -ssize_t -oer_open_type_skip(const void *bufptr, size_t size) { - size_t len = 0; - return oer_fetch_length(bufptr, size, &len); -} - -/* - * Read the Open Type (X.696 (08/2015), #30). - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering length. - * >0: Number of bytes used from bufptr. - */ -ssize_t -oer_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *td, - const asn_oer_constraints_t *constraints, void **struct_ptr, - const void *bufptr, size_t size) { - asn_dec_rval_t dr; - size_t container_len = 0; - ssize_t len_len; - enum asn_struct_free_method dispose_method = - (*struct_ptr) ? ASFM_FREE_UNDERLYING_AND_RESET : ASFM_FREE_EVERYTHING; - - /* Get the size of a length determinant */ - len_len = oer_fetch_length(bufptr, size, &container_len); - if(len_len <= 0) { - return len_len; /* Error or more data expected */ - } - - /* - * len_len can't be bigger than size, but size without len_len - * should be bigger or equal to container length - */ - if(size - len_len < container_len) { - /* More data is expected */ - return 0; - } - - dr = td->op->oer_decoder(opt_codec_ctx, td, constraints, struct_ptr, - (const uint8_t *)bufptr + len_len, container_len); - if(dr.code == RC_OK) { - return len_len + container_len; - } else { - /* Even if RC_WMORE, we can't get more data into a closed container. */ - td->op->free_struct(td, *struct_ptr, dispose_method); - *struct_ptr = NULL; - return -1; - } -} - - -asn_dec_rval_t -oer_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **sptr, - const void *ptr, size_t size) { - ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)*sptr; - asn_dec_rval_t rval = {RC_OK, 0}; - size_t expected_length = 0; - ssize_t len_len; - - (void)td; - (void)opt_codec_ctx; - (void)constraints; - - if(!st) { - st = (ASN__PRIMITIVE_TYPE_t *)(*sptr = CALLOC( - 1, sizeof(ASN__PRIMITIVE_TYPE_t))); - if(!st) ASN__DECODE_FAILED; - } - - - /* - * X.696 (08/2015) #27.2 - * Encode length determinant as _number of octets_, but only - * if upper bound is not equal to lower bound. - */ - len_len = oer_fetch_length(ptr, size, &expected_length); - if(len_len > 0) { - rval.consumed = len_len; - ptr = (const char *)ptr + len_len; - size -= len_len; - } else if(len_len == 0) { - ASN__DECODE_STARVED; - } else if(len_len < 0) { - ASN__DECODE_FAILED; - } - - if(size < expected_length) { - ASN__DECODE_STARVED; - } else { - uint8_t *buf = MALLOC(expected_length + 1); - if(buf == NULL) { - ASN__DECODE_FAILED; - } else { - memcpy(buf, ptr, expected_length); - buf[expected_length] = '\0'; - } - FREEMEM(st->buf); - st->buf = buf; - st->size = expected_length; - - rval.consumed += expected_length; - return rval; - } -} diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/oer_decoder.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/oer_decoder.h deleted file mode 100644 index 40992e9..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/oer_decoder.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef OER_DECODER_H -#define OER_DECODER_H - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ -struct asn_codec_ctx_s; /* Forward declaration */ - -/* - * The Octet Encoding Rules (OER, X.696 08/2015) decoder for any given type. - * This function may be invoked directly by the application. - * Parses CANONICAL-OER and BASIC-OER. - */ -asn_dec_rval_t oer_decode(const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of that buffer */ - ); - -/* - * Type of generic function which decodes the byte stream into the structure. - */ -typedef asn_dec_rval_t(oer_type_decoder_f)( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_oer_constraints_t *constraints, - void **struct_ptr, - const void *buf_ptr, - size_t size); - -/* - * Swallow the Open Type (X.696 (08/2015), #30) into /dev/null. - * RETURN VALUES: - * -1: Fatal error deciphering length. - * 0: More data expected than bufptr contains. - * >0: Number of bytes used from bufptr. - */ -ssize_t oer_open_type_skip(const void *bufptr, size_t size); - -/* - * Read the Open Type (X.696 (08/2015), #30). - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering length. - * >0: Number of bytes used from bufptr. - */ -ssize_t oer_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *td, - const asn_oer_constraints_t *constraints, - void **struct_ptr, const void *bufptr, size_t size); - -/* - * Length-prefixed buffer decoding for primitive types. - */ -oer_type_decoder_f oer_decode_primitive; - - -#ifdef __cplusplus -} -#endif - -#endif /* OER_DECODER_H */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/oer_encoder.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/oer_encoder.c deleted file mode 100644 index a284cc2..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/oer_encoder.c +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -/* - * The OER encoder of any type. - */ -asn_enc_rval_t -oer_encode(const asn_TYPE_descriptor_t *type_descriptor, const void *struct_ptr, - asn_app_consume_bytes_f *consume_bytes, void *app_key) { - ASN_DEBUG("OER encoder invoked for %s", type_descriptor->name); - - /* - * Invoke type-specific encoder. - */ - return type_descriptor->op->oer_encoder( - type_descriptor, 0, - struct_ptr, /* Pointer to the destination structure */ - consume_bytes, app_key); -} - -/* - * Argument type and callback necessary for oer_encode_to_buffer(). - */ -typedef struct enc_to_buf_arg { - void *buffer; - size_t left; -} enc_to_buf_arg; -static int -encode_to_buffer_cb(const void *buffer, size_t size, void *key) { - enc_to_buf_arg *arg = (enc_to_buf_arg *)key; - - if(arg->left < size) return -1; /* Data exceeds the available buffer size */ - - memcpy(arg->buffer, buffer, size); - arg->buffer = ((char *)arg->buffer) + size; - arg->left -= size; - - return 0; -} - -/* - * A variant of the oer_encode() which encodes the data into the provided buffer - */ -asn_enc_rval_t -oer_encode_to_buffer(const asn_TYPE_descriptor_t *type_descriptor, - const asn_oer_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - void *buffer, /* Pre-allocated buffer */ - size_t buffer_size /* Initial buffer size (maximum) */ -) { - enc_to_buf_arg arg; - asn_enc_rval_t ec; - - arg.buffer = buffer; - arg.left = buffer_size; - - if(type_descriptor->op->oer_encoder == NULL) { - ec.encoded = -1; - ec.failed_type = type_descriptor; - ec.structure_ptr = struct_ptr; - ASN_DEBUG("OER encoder is not defined for %s", - type_descriptor->name); - } else { - ec = type_descriptor->op->oer_encoder( - type_descriptor, constraints, - struct_ptr, /* Pointer to the destination structure */ - encode_to_buffer_cb, &arg); - if(ec.encoded != -1) { - assert(ec.encoded == (ssize_t)(buffer_size - arg.left)); - /* Return the encoded contents size */ - } - } - return ec; -} - -asn_enc_rval_t -oer_encode_primitive(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - const ASN__PRIMITIVE_TYPE_t *st = (const ASN__PRIMITIVE_TYPE_t *)sptr; - asn_enc_rval_t er = {0, 0, 0}; - ssize_t ret; - - (void)constraints; - - if(!st) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %s (%" ASN_PRI_SIZE " bytes)", td ? td->name : "", st->size); - - /* - * X.696 (08/2015) #27.2 - */ - ret = oer_serialize_length(st->size, cb, app_key); - if(ret < 0) { - ASN__ENCODE_FAILED; - } - er.encoded += ret; - - er.encoded += st->size; - if(cb(st->buf, st->size, app_key) < 0) { - ASN__ENCODE_FAILED; - } else { - ASN__ENCODED_OK(er); - } -} - -static int -oer__count_bytes(const void *buffer, size_t size, void *bytes_ptr) { - size_t *bytes = bytes_ptr; - (void)buffer; - *bytes += size; - return 0; -} - -ssize_t -oer_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - size_t serialized_byte_count = 0; - asn_enc_rval_t er = {0,0,0}; - ssize_t len_len; - - er = td->op->oer_encoder(td, constraints, sptr, oer__count_bytes, - &serialized_byte_count); - if(er.encoded < 0) return -1; - assert(serialized_byte_count == (size_t)er.encoded); - - len_len = oer_serialize_length(serialized_byte_count, cb, app_key); - if(len_len == -1) return -1; - - er = td->op->oer_encoder(td, constraints, sptr, cb, app_key); - if(er.encoded < 0) return -1; - assert(serialized_byte_count == (size_t)er.encoded); - - return len_len + er.encoded; -} - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/oer_encoder.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/oer_encoder.h deleted file mode 100644 index 6a7b681..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/oer_encoder.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef OER_ENCODER_H -#define OER_ENCODER_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * The Octet Encoding Rules (OER, X.696 08/2015) encoder for any type. - * This function may be invoked directly by the application. - * Produces CANONICAL-OER output compatible with CANONICAL-OER - * and BASIC-OER decoders. - */ -asn_enc_rval_t oer_encode(const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - asn_app_consume_bytes_f *consume_bytes_cb, - void *app_key /* Arbitrary callback argument */ -); - -/* A variant of oer_encode() which encodes data into the pre-allocated buffer */ -asn_enc_rval_t oer_encode_to_buffer( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_oer_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - void *buffer, /* Pre-allocated buffer */ - size_t buffer_size /* Initial buffer size (maximum) */ -); - -/* - * Type of the generic OER encoder. - */ -typedef asn_enc_rval_t(oer_type_encoder_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_oer_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */ - void *app_key /* Arbitrary callback argument */ -); - -/* - * Write out the Open Type (X.696 (08/2015), #30). - * RETURN VALUES: - * -1: Fatal error encoding the type. - * >0: Number of bytes serialized. - */ -ssize_t oer_open_type_put(const struct asn_TYPE_descriptor_s *td, - const asn_oer_constraints_t *constraints, - const void *struct_ptr, - asn_app_consume_bytes_f *consume_bytes_cb, - void *app_key); - - -/* - * Length-prefixed buffer encoding for primitive types. - */ -oer_type_encoder_f oer_encode_primitive; - -#ifdef __cplusplus -} -#endif - -#endif /* OER_ENCODER_H */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/oer_support.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/oer_support.c deleted file mode 100644 index b15a3bc..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/oer_support.c +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -#include - -/* - * Fetch the length determinant (X.696 08/2015, #8.6) into *len_r. - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering length. - * >0: Number of bytes used from bufptr. - */ -ssize_t -oer_fetch_length(const void *bufptr, size_t size, size_t *len_r) { - uint8_t first_byte; - size_t len_len; /* Length of the length determinant */ - const uint8_t *b; - const uint8_t *bend; - size_t len; - - if(size == 0) { - *len_r = 0; - return 0; - } - - first_byte = *(const uint8_t *)bufptr; - if((first_byte & 0x80) == 0) { /* Short form */ - *len_r = first_byte; /* 0..127 */ - return 1; - } - - len_len = (first_byte & 0x7f); - if((1 + len_len) > size) { - *len_r = 0; - return 0; - } - - b = (const uint8_t *)bufptr + 1; - bend = b + len_len; - - for(; b < bend && *b == 0; b++) { - /* Skip the leading 0-bytes */ - } - - if((bend - b) > (ssize_t)sizeof(size_t)) { - /* Length is not representable by the native size_t type */ - *len_r = 0; - return -1; - } - - for(len = 0; b < bend; b++) { - len = (len << 8) + *b; - } - - if(len > RSIZE_MAX) { /* A bit of C11 validation */ - *len_r = 0; - return -1; - } - - *len_r = len; - assert(len_len + 1 == (size_t)(bend - (const uint8_t *)bufptr)); - return len_len + 1; -} - - -/* - * Serialize OER length. Returns the number of bytes serialized - * or -1 if a given callback returned with negative result. - */ -ssize_t -oer_serialize_length(size_t length, asn_app_consume_bytes_f *cb, - void *app_key) { - uint8_t scratch[1 + sizeof(length)]; - uint8_t *sp = scratch; - int littleEndian = 1; /* Run-time detection */ - const uint8_t *pstart; - const uint8_t *pend; - const uint8_t *p; - int add; - - if(length <= 127) { - uint8_t b = length; - if(cb(&b, 1, app_key) < 0) { - return -1; - } - return 1; - } - - if(*(char *)&littleEndian) { - pstart = (const uint8_t *)&length + sizeof(length) - 1; - pend = (const uint8_t *)&length; - add = -1; - } else { - pstart = (const uint8_t *)&length; - pend = pstart + sizeof(length); - add = 1; - } - - for(p = pstart; p != pend; p += add) { - /* Skip leading zeros. */ - if(*p) break; - } - - for(sp = scratch + 1; ; p += add) { - *sp++ = *p; - if(p == pend) break; - } - assert((sp - scratch) - 1 <= 0x7f); - scratch[0] = 0x80 + ((sp - scratch) - 1); - - if(cb(scratch, sp - scratch, app_key) < 0) { - return -1; - } - - return sp - scratch; -} - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/oer_support.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/oer_support.h deleted file mode 100644 index dbc9b5f..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/oer_support.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef OER_SUPPORT_H -#define OER_SUPPORT_H - -#include /* Platform-specific types */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Pre-computed OER constraints. - */ -typedef struct asn_oer_constraint_number_s { - unsigned width; /* ±8,4,2,1 fixed bytes */ - unsigned positive; /* 1 for unsigned number, 0 for signed */ -} asn_oer_constraint_number_t; -typedef struct asn_oer_constraints_s { - asn_oer_constraint_number_t value; - ssize_t size; /* -1 (no constraint) or >= 0 */ -} asn_oer_constraints_t; - - -/* - * Fetch the length determinant (X.696 (08/2015), #8.6) into *len_r. - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering length. - * >0: Number of bytes used from bufptr. - */ -ssize_t oer_fetch_length(const void *bufptr, size_t size, size_t *len_r); - -/* - * Serialize OER length. Returns the number of bytes serialized - * or -1 if a given callback returned with negative result. - */ -ssize_t oer_serialize_length(size_t length, asn_app_consume_bytes_f *cb, void *app_key); - - -#ifdef __cplusplus -} -#endif - -#endif /* OER_SUPPORT_H */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/pdu_collection.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/pdu_collection.c deleted file mode 100644 index ea8309c..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/pdu_collection.c +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - */ - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -extern struct asn_TYPE_descriptor_s asn_DEF_E2AP_PDU; - - -struct asn_TYPE_descriptor_s *asn_pdu_collection[] = { - /* From module E2AP-PDU-Descriptions in /root/e2ap-v01.00.00.asn */ - &asn_DEF_E2AP_PDU, - 0 -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/per_decoder.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/per_decoder.c deleted file mode 100644 index 8a3e39d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/per_decoder.c +++ /dev/null @@ -1,185 +0,0 @@ -#include -#include -#include - -/* - * Decode a "Production of a complete encoding", X.691#10.1. - * The complete encoding contains at least one byte, and is an integral - * multiple of 8 bytes. - */ -asn_dec_rval_t -uper_decode_complete(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const void *buffer, size_t size) { - asn_dec_rval_t rval; - - rval = uper_decode(opt_codec_ctx, td, sptr, buffer, size, 0, 0); - if(rval.consumed) { - /* - * We've always given 8-aligned data, - * so convert bits to integral bytes. - */ - rval.consumed += 7; - rval.consumed >>= 3; - } else if(rval.code == RC_OK) { - if(size) { - if(((const uint8_t *)buffer)[0] == 0) { - rval.consumed = 1; /* 1 byte */ - } else { - ASN_DEBUG("Expecting single zeroed byte"); - rval.code = RC_FAIL; - } - } else { - /* Must contain at least 8 bits. */ - rval.code = RC_WMORE; - } - } - - return rval; -} - -asn_dec_rval_t -uper_decode(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, const void *buffer, - size_t size, int skip_bits, int unused_bits) { - asn_codec_ctx_t s_codec_ctx; - asn_dec_rval_t rval; - asn_per_data_t pd; - - if(skip_bits < 0 || skip_bits > 7 - || unused_bits < 0 || unused_bits > 7 - || (unused_bits > 0 && !size)) - ASN__DECODE_FAILED; - - /* - * Stack checker requires that the codec context - * must be allocated on the stack. - */ - if(opt_codec_ctx) { - if(opt_codec_ctx->max_stack_size) { - s_codec_ctx = *opt_codec_ctx; - opt_codec_ctx = &s_codec_ctx; - } - } else { - /* If context is not given, be security-conscious anyway */ - memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); - s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; - opt_codec_ctx = &s_codec_ctx; - } - - /* Fill in the position indicator */ - memset(&pd, 0, sizeof(pd)); - pd.buffer = (const uint8_t *)buffer; - pd.nboff = skip_bits; - pd.nbits = 8 * size - unused_bits; /* 8 is CHAR_BIT from */ - if(pd.nboff > pd.nbits) - ASN__DECODE_FAILED; - - /* - * Invoke type-specific decoder. - */ - if(!td->op->uper_decoder) - ASN__DECODE_FAILED; /* PER is not compiled in */ - rval = td->op->uper_decoder(opt_codec_ctx, td, 0, sptr, &pd); - if(rval.code == RC_OK) { - /* Return the number of consumed bits */ - rval.consumed = ((pd.buffer - (const uint8_t *)buffer) << 3) - + pd.nboff - skip_bits; - ASN_DEBUG("PER decoding consumed %ld, counted %ld", - (long)rval.consumed, (long)pd.moved); - assert(rval.consumed == pd.moved); - } else { - /* PER codec is not a restartable */ - rval.consumed = 0; - } - return rval; -} - -asn_dec_rval_t -aper_decode_complete(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const void *buffer, size_t size) { - asn_dec_rval_t rval; - - rval = aper_decode(opt_codec_ctx, td, sptr, buffer, size, 0, 0); - if(rval.consumed) { - /* - * We've always given 8-aligned data, - * so convert bits to integral bytes. - */ - rval.consumed += 7; - rval.consumed >>= 3; - } else if(rval.code == RC_OK) { - if(size) { - if(((const uint8_t *)buffer)[0] == 0) { - rval.consumed = 1; /* 1 byte */ - } else { - ASN_DEBUG("Expecting single zeroed byte"); - rval.code = RC_FAIL; - } - } else { - /* Must contain at least 8 bits. */ - rval.code = RC_WMORE; - } - } - - return rval; -} - -asn_dec_rval_t -aper_decode(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, const void *buffer, - size_t size, int skip_bits, int unused_bits) { - asn_codec_ctx_t s_codec_ctx; - asn_dec_rval_t rval; - asn_per_data_t pd; - - if(skip_bits < 0 || skip_bits > 7 - || unused_bits < 0 || unused_bits > 7 - || (unused_bits > 0 && !size)) - ASN__DECODE_FAILED; - - /* - * Stack checker requires that the codec context - * must be allocated on the stack. - */ - if(opt_codec_ctx) { - if(opt_codec_ctx->max_stack_size) { - s_codec_ctx = *opt_codec_ctx; - opt_codec_ctx = &s_codec_ctx; - } - } else { - /* If context is not given, be security-conscious anyway */ - memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); - s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; - opt_codec_ctx = &s_codec_ctx; - } - - /* Fill in the position indicator */ - memset(&pd, 0, sizeof(pd)); - pd.buffer = (const uint8_t *)buffer; - pd.nboff = skip_bits; - pd.nbits = 8 * size - unused_bits; /* 8 is CHAR_BIT from */ - if(pd.nboff > pd.nbits) - ASN__DECODE_FAILED; - - /* - * Invoke type-specific decoder. - */ - if(!td->op->aper_decoder) - ASN__DECODE_FAILED; /* PER is not compiled in */ - rval = td->op->aper_decoder(opt_codec_ctx, td, 0, sptr, &pd); - if(rval.code == RC_OK) { - /* Return the number of consumed bits */ - rval.consumed = ((pd.buffer - (const uint8_t *)buffer) << 3) - + pd.nboff - skip_bits; - ASN_DEBUG("PER decoding consumed %zu, counted %zu", - rval.consumed, pd.moved); - assert(rval.consumed == pd.moved); - } else { - /* PER codec is not a restartable */ - rval.consumed = 0; - } - return rval; -} - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/per_decoder.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/per_decoder.h deleted file mode 100644 index eea474a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/per_decoder.h +++ /dev/null @@ -1,82 +0,0 @@ -/*- - * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _PER_DECODER_H_ -#define _PER_DECODER_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * Unaligned PER decoder of a "complete encoding" as per X.691 (08/2015) #11.1. - * On success, this call always returns (.consumed >= 1), as per #11.1.3. - */ -asn_dec_rval_t uper_decode_complete( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of data buffer */ -); - -/* - * Unaligned PER decoder of any ASN.1 type. May be invoked by the application. - * WARNING: This call returns the number of BITS read from the stream. Beware. - */ -asn_dec_rval_t uper_decode( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size, /* Size of the input data buffer, in bytes */ - int skip_bits, /* Number of unused leading bits, 0..7 */ - int unused_bits /* Number of unused tailing bits, 0..7 */ -); - -/* - * Aligned PER decoder of a "complete encoding" as per X.691#10.1. - * On success, this call always returns (.consumed >= 1), in BITS, as per X.691#10.1.3. - */ -asn_dec_rval_t aper_decode_complete( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of data buffer */ - ); - -/* - * Aligned PER decoder of any ASN.1 type. May be invoked by the application. - * WARNING: This call returns the number of BITS read from the stream. Beware. - */ -asn_dec_rval_t aper_decode( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size, /* Size of data buffer */ - int skip_bits, /* Number of unused leading bits, 0..7 */ - int unused_bits /* Number of unused tailing bits, 0..7 */ - ); - -/* - * Type of the type-specific PER decoder function. - */ -typedef asn_dec_rval_t(per_type_decoder_f)( - const asn_codec_ctx_t *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, void **struct_ptr, - asn_per_data_t *per_data); - -#ifdef __cplusplus -} -#endif - -#endif /* _PER_DECODER_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/per_encoder.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/per_encoder.c deleted file mode 100644 index a35e1f0..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/per_encoder.c +++ /dev/null @@ -1,265 +0,0 @@ -#include -#include -#include - -static int _uper_encode_flush_outp(asn_per_outp_t *po); - -static int -ignore_output(const void *data, size_t size, void *app_key) { - (void)data; - (void)size; - (void)app_key; - return 0; -} - -asn_enc_rval_t -uper_encode(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_per_outp_t po; - asn_enc_rval_t er = {0,0,0}; - - /* - * Invoke type-specific encoder. - */ - if(!td || !td->op->uper_encoder) - ASN__ENCODE_FAILED; /* PER is not compiled in */ - - po.buffer = po.tmpspace; - po.nboff = 0; - po.nbits = 8 * sizeof(po.tmpspace); - po.output = cb ? cb : ignore_output; - po.op_key = app_key; - po.flushed_bytes = 0; - - er = td->op->uper_encoder(td, constraints, sptr, &po); - if(er.encoded != -1) { - size_t bits_to_flush; - - bits_to_flush = ((po.buffer - po.tmpspace) << 3) + po.nboff; - - /* Set number of bits encoded to a firm value */ - er.encoded = (po.flushed_bytes << 3) + bits_to_flush; - - if(_uper_encode_flush_outp(&po)) ASN__ENCODE_FAILED; - } - - return er; -} - -/* - * Argument type and callback necessary for uper_encode_to_buffer(). - */ -typedef struct enc_to_buf_arg { - void *buffer; - size_t left; -} enc_to_buf_arg; -static int encode_to_buffer_cb(const void *buffer, size_t size, void *key) { - enc_to_buf_arg *arg = (enc_to_buf_arg *)key; - - if(arg->left < size) - return -1; /* Data exceeds the available buffer size */ - - memcpy(arg->buffer, buffer, size); - arg->buffer = ((char *)arg->buffer) + size; - arg->left -= size; - - return 0; -} - -asn_enc_rval_t -uper_encode_to_buffer(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, void *buffer, size_t buffer_size) { - enc_to_buf_arg key; - - key.buffer = buffer; - key.left = buffer_size; - - if(td) ASN_DEBUG("Encoding \"%s\" using UNALIGNED PER", td->name); - - return uper_encode(td, constraints, sptr, encode_to_buffer_cb, &key); -} - -typedef struct enc_dyn_arg { - void *buffer; - size_t length; - size_t allocated; -} enc_dyn_arg; -static int -encode_dyn_cb(const void *buffer, size_t size, void *key) { - enc_dyn_arg *arg = key; - if(arg->length + size >= arg->allocated) { - size_t new_size = arg->allocated ? arg->allocated : 8; - void *p; - - do { - new_size <<= 2; - } while(arg->length + size >= new_size); - - p = REALLOC(arg->buffer, new_size); - if(!p) { - FREEMEM(arg->buffer); - memset(arg, 0, sizeof(*arg)); - return -1; - } - arg->buffer = p; - arg->allocated = new_size; - } - memcpy(((char *)arg->buffer) + arg->length, buffer, size); - arg->length += size; - return 0; -} -ssize_t -uper_encode_to_new_buffer(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, void **buffer_r) { - asn_enc_rval_t er = {0,0,0}; - enc_dyn_arg key; - - memset(&key, 0, sizeof(key)); - - er = uper_encode(td, constraints, sptr, encode_dyn_cb, &key); - switch(er.encoded) { - case -1: - FREEMEM(key.buffer); - return -1; - case 0: - FREEMEM(key.buffer); - key.buffer = MALLOC(1); - if(key.buffer) { - *(char *)key.buffer = '\0'; - *buffer_r = key.buffer; - return 1; - } else { - return -1; - } - default: - *buffer_r = key.buffer; - ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); - return ((er.encoded + 7) >> 3); - } -} - -/* - * Internally useful functions. - */ - -/* Flush partially filled buffer */ -static int -_uper_encode_flush_outp(asn_per_outp_t *po) { - uint8_t *buf; - - if(po->nboff == 0 && po->buffer == po->tmpspace) - return 0; - - buf = po->buffer + (po->nboff >> 3); - /* Make sure we account for the last, partially filled */ - if(po->nboff & 0x07) { - buf[0] &= 0xff << (8 - (po->nboff & 0x07)); - buf++; - } - - return po->output(po->tmpspace, buf - po->tmpspace, po->op_key); -} - -asn_enc_rval_t -aper_encode_to_buffer(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, void *buffer, size_t buffer_size) { - enc_to_buf_arg key; - - key.buffer = buffer; - key.left = buffer_size; - - if(td) ASN_DEBUG("Encoding \"%s\" using ALIGNED PER", td->name); - - return aper_encode(td, constraints, sptr, encode_to_buffer_cb, &key); -} - -ssize_t -aper_encode_to_new_buffer(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, void **buffer_r) { - asn_enc_rval_t er = {0,0,0}; - enc_dyn_arg key; - - memset(&key, 0, sizeof(key)); - - er = aper_encode(td, constraints, sptr, encode_dyn_cb, &key); - switch(er.encoded) { - case -1: - FREEMEM(key.buffer); - return -1; - case 0: - FREEMEM(key.buffer); - key.buffer = MALLOC(1); - if(key.buffer) { - *(char *)key.buffer = '\0'; - *buffer_r = key.buffer; - return 1; - } else { - return -1; - } - default: - *buffer_r = key.buffer; - ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); - return ((er.encoded + 7) >> 3); - } -} - -static int -_aper_encode_flush_outp(asn_per_outp_t *po) { - uint8_t *buf; - - if(po->nboff == 0 && po->buffer == po->tmpspace) - return 0; - - buf = po->buffer + (po->nboff >> 3); - /* Make sure we account for the last, partially filled */ - if(po->nboff & 0x07) { - buf[0] &= 0xff << (8 - (po->nboff & 0x07)); - buf++; - } - - if (po->output) { - return po->output(po->tmpspace, buf - po->tmpspace, po->op_key); - } - return 0; -} - -asn_enc_rval_t -aper_encode(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_app_consume_bytes_f *cb, void *app_key) { - asn_per_outp_t po; - asn_enc_rval_t er = {0,0,0}; - - /* - * Invoke type-specific encoder. - */ - if(!td || !td->op->aper_encoder) - ASN__ENCODE_FAILED; /* PER is not compiled in */ - - po.buffer = po.tmpspace; - po.nboff = 0; - po.nbits = 8 * sizeof(po.tmpspace); - po.output = cb; - po.op_key = app_key; - po.flushed_bytes = 0; - - er = td->op->aper_encoder(td, constraints, sptr, &po); - if(er.encoded != -1) { - size_t bits_to_flush; - - bits_to_flush = ((po.buffer - po.tmpspace) << 3) + po.nboff; - - /* Set number of bits encoded to a firm value */ - er.encoded = (po.flushed_bytes << 3) + bits_to_flush; - - if(_aper_encode_flush_outp(&po)) - ASN__ENCODE_FAILED; - } - - return er; -} diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/per_encoder.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/per_encoder.h deleted file mode 100644 index b615ef0..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/per_encoder.h +++ /dev/null @@ -1,93 +0,0 @@ -/*- - * Copyright (c) 2006-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _PER_ENCODER_H_ -#define _PER_ENCODER_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * Unaligned PER encoder of any ASN.1 type. May be invoked by the application. - * WARNING: This function returns the number of encoded bits in the .encoded - * field of the return value. Use the following formula to convert to bytes: - * bytes = ((.encoded + 7) / 8) - */ -asn_enc_rval_t uper_encode( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - asn_app_consume_bytes_f *consume_bytes_cb, /* Data collector */ - void *app_key /* Arbitrary callback argument */ -); - -asn_enc_rval_t aper_encode( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - asn_app_consume_bytes_f *consume_bytes_cb, /* Data collector */ - void *app_key /* Arbitrary callback argument */ -); - -/* - * A variant of uper_encode() which encodes data into the existing buffer - * WARNING: This function returns the number of encoded bits in the .encoded - * field of the return value. - */ -asn_enc_rval_t uper_encode_to_buffer( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - void *buffer, /* Pre-allocated buffer */ - size_t buffer_size /* Initial buffer size (max) */ -); - -asn_enc_rval_t aper_encode_to_buffer( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - void *buffer, /* Pre-allocated buffer */ - size_t buffer_size /* Initial buffer size (max) */ -); -/* - * A variant of uper_encode_to_buffer() which allocates buffer itself. - * Returns the number of bytes in the buffer or -1 in case of failure. - * WARNING: This function produces a "Production of the complete encoding", - * with length of at least one octet. Contrast this to precise bit-packing - * encoding of uper_encode() and uper_encode_to_buffer(). - */ -ssize_t uper_encode_to_new_buffer( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - void **buffer_r /* Buffer allocated and returned */ -); - -ssize_t -aper_encode_to_new_buffer( - const struct asn_TYPE_descriptor_s *td, - const asn_per_constraints_t *constraints, - const void *sptr, - void **buffer_r -); - -/* - * Type of the generic PER encoder function. - */ -typedef asn_enc_rval_t(per_type_encoder_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, const void *struct_ptr, - asn_per_outp_t *per_output); - -#ifdef __cplusplus -} -#endif - -#endif /* _PER_ENCODER_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/per_opentype.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/per_opentype.c deleted file mode 100644 index 28f3cb6..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/per_opentype.c +++ /dev/null @@ -1,533 +0,0 @@ -/* - * Copyright (c) 2007 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include -#include - -typedef struct uper_ugot_key { - asn_per_data_t oldpd; /* Old per data source */ - size_t unclaimed; - size_t ot_moved; /* Number of bits moved by OT processing */ - int repeat; -} uper_ugot_key; - -static int uper_ugot_refill(asn_per_data_t *pd); -static int per_skip_bits(asn_per_data_t *pd, int skip_nbits); -static asn_dec_rval_t uper_sot_suck(const asn_codec_ctx_t *, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd); - -/* - * Encode an "open type field". - * #10.1, #10.2 - */ -int -uper_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - void *buf; - void *bptr; - ssize_t size; - - ASN_DEBUG("Open type put %s ...", td->name); - - size = uper_encode_to_new_buffer(td, constraints, sptr, &buf); - if(size <= 0) return -1; - - ASN_DEBUG("Open type put %s of length %" ASN_PRI_SSIZE " + overhead (1byte?)", td->name, - size); - - bptr = buf; - do { - int need_eom = 0; - ssize_t may_save = uper_put_length(po, size, &need_eom); - ASN_DEBUG("Prepending length %" ASN_PRI_SSIZE - " to %s and allowing to save %" ASN_PRI_SSIZE, - size, td->name, may_save); - if(may_save < 0) break; - if(per_put_many_bits(po, bptr, may_save * 8)) break; - bptr = (char *)bptr + may_save; - size -= may_save; - if(need_eom && uper_put_length(po, 0, 0)) { - FREEMEM(buf); - return -1; - } - } while(size); - - FREEMEM(buf); - if(size) return -1; - - return 0; -} - -static asn_dec_rval_t -uper_open_type_get_simple(const asn_codec_ctx_t *ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - asn_dec_rval_t rv; - ssize_t chunk_bytes; - int repeat; - uint8_t *buf = 0; - size_t bufLen = 0; - size_t bufSize = 0; - asn_per_data_t spd; - size_t padding; - - ASN__STACK_OVERFLOW_CHECK(ctx); - - ASN_DEBUG("Getting open type %s...", td->name); - - do { - chunk_bytes = uper_get_length(pd, -1, 0, &repeat); - if(chunk_bytes < 0) { - FREEMEM(buf); - ASN__DECODE_STARVED; - } - if(bufLen + chunk_bytes > bufSize) { - void *ptr; - bufSize = chunk_bytes + (bufSize << 2); - ptr = REALLOC(buf, bufSize); - if(!ptr) { - FREEMEM(buf); - ASN__DECODE_FAILED; - } - buf = ptr; - } - if(per_get_many_bits(pd, buf + bufLen, 0, chunk_bytes << 3)) { - FREEMEM(buf); - ASN__DECODE_STARVED; - } - bufLen += chunk_bytes; - } while(repeat); - - ASN_DEBUG("Getting open type %s encoded in %ld bytes", td->name, - (long)bufLen); - - memset(&spd, 0, sizeof(spd)); - spd.buffer = buf; - spd.nbits = bufLen << 3; - - ASN_DEBUG_INDENT_ADD(+4); - rv = td->op->uper_decoder(ctx, td, constraints, sptr, &spd); - ASN_DEBUG_INDENT_ADD(-4); - - if(rv.code == RC_OK) { - /* Check padding validity */ - padding = spd.nbits - spd.nboff; - if (((padding > 0 && padding < 8) || - /* X.691#10.1.3 */ - (spd.nboff == 0 && spd.nbits == 8 && spd.buffer == buf)) && - per_get_few_bits(&spd, padding) == 0) { - /* Everything is cool */ - FREEMEM(buf); - return rv; - } - FREEMEM(buf); - if(padding >= 8) { - ASN_DEBUG("Too large padding %d in open type", (int)padding); - ASN__DECODE_FAILED; - } else { - ASN_DEBUG("No padding"); - } - } else { - FREEMEM(buf); - /* rv.code could be RC_WMORE, nonsense in this context */ - rv.code = RC_FAIL; /* Noone would give us more */ - } - - return rv; -} - -static asn_dec_rval_t CC_NOTUSED -uper_open_type_get_complex(const asn_codec_ctx_t *ctx, - const asn_TYPE_descriptor_t *td, - asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - uper_ugot_key arg; - asn_dec_rval_t rv; - ssize_t padding; - - ASN__STACK_OVERFLOW_CHECK(ctx); - - ASN_DEBUG("Getting open type %s from %s", td->name, - asn_bit_data_string(pd)); - arg.oldpd = *pd; - arg.unclaimed = 0; - arg.ot_moved = 0; - arg.repeat = 1; - pd->refill = uper_ugot_refill; - pd->refill_key = &arg; - pd->nbits = pd->nboff; /* 0 good bits at this point, will refill */ - pd->moved = 0; /* This now counts the open type size in bits */ - - ASN_DEBUG_INDENT_ADD(+4); - rv = td->op->uper_decoder(ctx, td, constraints, sptr, pd); - ASN_DEBUG_INDENT_ADD(-4); - -#define UPDRESTOREPD do { \ - /* buffer and nboff are valid, preserve them. */ \ - pd->nbits = arg.oldpd.nbits - (pd->moved - arg.ot_moved); \ - pd->moved = arg.oldpd.moved + (pd->moved - arg.ot_moved); \ - pd->refill = arg.oldpd.refill; \ - pd->refill_key = arg.oldpd.refill_key; \ - } while(0) - - if(rv.code != RC_OK) { - UPDRESTOREPD; - return rv; - } - - ASN_DEBUG("OpenType %s pd%s old%s unclaimed=%d, repeat=%d", td->name, - asn_bit_data_string(pd), - asn_bit_data_string(&arg.oldpd), - (int)arg.unclaimed, (int)arg.repeat); - - padding = pd->moved % 8; - if(padding) { - int32_t pvalue; - if(padding > 7) { - ASN_DEBUG("Too large padding %d in open type", - (int)padding); - rv.code = RC_FAIL; - UPDRESTOREPD; - return rv; - } - padding = 8 - padding; - ASN_DEBUG("Getting padding of %d bits", (int)padding); - pvalue = per_get_few_bits(pd, padding); - switch(pvalue) { - case -1: - ASN_DEBUG("Padding skip failed"); - UPDRESTOREPD; - ASN__DECODE_STARVED; - case 0: break; - default: - ASN_DEBUG("Non-blank padding (%d bits 0x%02x)", - (int)padding, (int)pvalue); - UPDRESTOREPD; - ASN__DECODE_FAILED; - } - } - if(pd->nboff != pd->nbits) { - ASN_DEBUG("Open type %s overhead pd%s old%s", td->name, - asn_bit_data_string(pd), asn_bit_data_string(&arg.oldpd)); - if(1) { - UPDRESTOREPD; - ASN__DECODE_FAILED; - } else { - arg.unclaimed += pd->nbits - pd->nboff; - } - } - - /* Adjust pd back so it points to original data */ - UPDRESTOREPD; - - /* Skip data not consumed by the decoder */ - if(arg.unclaimed) { - ASN_DEBUG("Getting unclaimed %d", (int)arg.unclaimed); - switch(per_skip_bits(pd, arg.unclaimed)) { - case -1: - ASN_DEBUG("Claim of %d failed", (int)arg.unclaimed); - ASN__DECODE_STARVED; - case 0: - ASN_DEBUG("Got claim of %d", (int)arg.unclaimed); - break; - default: - /* Padding must be blank */ - ASN_DEBUG("Non-blank unconsumed padding"); - ASN__DECODE_FAILED; - } - arg.unclaimed = 0; - } - - if(arg.repeat) { - ASN_DEBUG("Not consumed the whole thing"); - rv.code = RC_FAIL; - return rv; - } - - return rv; -} - - -asn_dec_rval_t -uper_open_type_get(const asn_codec_ctx_t *ctx, const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - return uper_open_type_get_simple(ctx, td, constraints, sptr, pd); -} - -int -uper_open_type_skip(const asn_codec_ctx_t *ctx, asn_per_data_t *pd) { - asn_TYPE_descriptor_t s_td; - asn_TYPE_operation_t s_op; - asn_dec_rval_t rv; - - s_td.name = ""; - s_td.op = &s_op; - s_op.uper_decoder = uper_sot_suck; - - rv = uper_open_type_get(ctx, &s_td, 0, 0, pd); - if(rv.code != RC_OK) - return -1; - else - return 0; -} - -/* - * Internal functions. - */ - -static asn_dec_rval_t -uper_sot_suck(const asn_codec_ctx_t *ctx, const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - asn_dec_rval_t rv; - - (void)ctx; - (void)td; - (void)constraints; - (void)sptr; - - while(per_get_few_bits(pd, 1) >= 0); - - rv.code = RC_OK; - rv.consumed = pd->moved; - - return rv; -} - -static int -uper_ugot_refill(asn_per_data_t *pd) { - uper_ugot_key *arg = pd->refill_key; - ssize_t next_chunk_bytes, next_chunk_bits; - ssize_t avail; - - asn_per_data_t *oldpd = &arg->oldpd; - - ASN_DEBUG("REFILLING pd->moved=%ld, oldpd->moved=%ld", - (long)pd->moved, (long)oldpd->moved); - - /* Advance our position to where pd is */ - oldpd->buffer = pd->buffer; - oldpd->nboff = pd->nboff; - oldpd->nbits -= pd->moved - arg->ot_moved; - oldpd->moved += pd->moved - arg->ot_moved; - arg->ot_moved = pd->moved; - - if(arg->unclaimed) { - /* Refill the container */ - if(per_get_few_bits(oldpd, 1)) - return -1; - if(oldpd->nboff == 0) { - assert(0); - return -1; - } - pd->buffer = oldpd->buffer; - pd->nboff = oldpd->nboff - 1; - pd->nbits = oldpd->nbits; - ASN_DEBUG("UNCLAIMED <- return from (pd->moved=%ld)", - (long)pd->moved); - return 0; - } - - if(!arg->repeat) { - ASN_DEBUG("Want more but refill doesn't have it"); - return -1; - } - - next_chunk_bytes = uper_get_length(oldpd, -1, 0, &arg->repeat); - ASN_DEBUG("Open type LENGTH %ld bytes at off %ld, repeat %ld", - (long)next_chunk_bytes, (long)oldpd->moved, (long)arg->repeat); - if(next_chunk_bytes < 0) return -1; - if(next_chunk_bytes == 0) { - pd->refill = 0; /* No more refills, naturally */ - assert(!arg->repeat); /* Implementation guarantee */ - } - next_chunk_bits = next_chunk_bytes << 3; - avail = oldpd->nbits - oldpd->nboff; - if(avail >= next_chunk_bits) { - pd->nbits = oldpd->nboff + next_chunk_bits; - arg->unclaimed = 0; - ASN_DEBUG("!+Parent frame %ld bits, alloting %ld [%ld..%ld] (%ld)", - (long)next_chunk_bits, (long)oldpd->moved, - (long)oldpd->nboff, (long)oldpd->nbits, - (long)(oldpd->nbits - oldpd->nboff)); - } else { - pd->nbits = oldpd->nbits; - arg->unclaimed = next_chunk_bits - avail; - ASN_DEBUG("!-Parent frame %ld, require %ld, will claim %ld", - (long)avail, (long)next_chunk_bits, - (long)arg->unclaimed); - } - pd->buffer = oldpd->buffer; - pd->nboff = oldpd->nboff; - ASN_DEBUG("Refilled pd%s old%s", - asn_bit_data_string(pd), asn_bit_data_string(oldpd)); - return 0; -} - -static int -per_skip_bits(asn_per_data_t *pd, int skip_nbits) { - int hasNonZeroBits = 0; - while(skip_nbits > 0) { - int skip; - - /* per_get_few_bits() is more efficient when nbits <= 24 */ - if(skip_nbits < 24) - skip = skip_nbits; - else - skip = 24; - skip_nbits -= skip; - - switch(per_get_few_bits(pd, skip)) { - case -1: return -1; /* Starving */ - case 0: continue; /* Skipped empty space */ - default: hasNonZeroBits = 1; continue; - } - } - return hasNonZeroBits; -} - -static asn_dec_rval_t -aper_open_type_get_simple(const asn_codec_ctx_t *ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - asn_dec_rval_t rv; - ssize_t chunk_bytes; - int repeat; - uint8_t *buf = 0; - size_t bufLen = 0; - size_t bufSize = 0; - asn_per_data_t spd; - size_t padding; - - ASN__STACK_OVERFLOW_CHECK(ctx); - - ASN_DEBUG("Getting open type %s...", td->name); - - do { - chunk_bytes = aper_get_length(pd, -1, -1, &repeat); - if(chunk_bytes < 0) { - FREEMEM(buf); - ASN__DECODE_STARVED; - } - if(bufLen + chunk_bytes > bufSize) { - void *ptr; - bufSize = chunk_bytes + (bufSize << 2); - ptr = REALLOC(buf, bufSize); - if(!ptr) { - FREEMEM(buf); - ASN__DECODE_FAILED; - } - buf = ptr; - } - if(per_get_many_bits(pd, buf + bufLen, 0, chunk_bytes << 3)) { - FREEMEM(buf); - ASN__DECODE_STARVED; - } - bufLen += chunk_bytes; - } while(repeat); - - ASN_DEBUG("Getting open type %s encoded in %ld bytes", td->name, - (long)bufLen); - - memset(&spd, 0, sizeof(spd)); - spd.buffer = buf; - spd.nbits = bufLen << 3; - - ASN_DEBUG_INDENT_ADD(+4); - rv = td->op->aper_decoder(ctx, td, constraints, sptr, &spd); - ASN_DEBUG_INDENT_ADD(-4); - - if(rv.code == RC_OK) { - /* Check padding validity */ - padding = spd.nbits - spd.nboff; - if (((padding > 0 && padding < 8) || - /* X.691#10.1.3 */ - (spd.nboff == 0 && spd.nbits == 8 && spd.buffer == buf)) && - per_get_few_bits(&spd, padding) == 0) { - /* Everything is cool */ - FREEMEM(buf); - return rv; - } - FREEMEM(buf); - if(padding >= 8) { - ASN_DEBUG("Too large padding %d in open type", (int)padding); - ASN__DECODE_FAILED; - } else { - ASN_DEBUG("No padding"); - } - } else { - FREEMEM(buf); - /* rv.code could be RC_WMORE, nonsense in this context */ - rv.code = RC_FAIL; /* Noone would give us more */ - } - - return rv; -} - -int -aper_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - void *buf; - void *bptr; - ssize_t size; - size_t toGo; - - ASN_DEBUG("Open type put %s ...", td->name); - - size = aper_encode_to_new_buffer(td, constraints, sptr, &buf); - if(size <= 0) return -1; - - for(bptr = buf, toGo = size; toGo;) { - ssize_t maySave = aper_put_length(po, -1, toGo); - if(maySave < 0) break; - if(per_put_many_bits(po, bptr, maySave * 8)) break; - bptr = (char *)bptr + maySave; - toGo -= maySave; - } - - FREEMEM(buf); - if(toGo) return -1; - - ASN_DEBUG("Open type put %s of length %ld + overhead (1byte?)", - td->name, size); - - return 0; -} - -asn_dec_rval_t -aper_open_type_get(const asn_codec_ctx_t *ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd) { - - return aper_open_type_get_simple(ctx, td, constraints, sptr, pd); -} - -int -aper_open_type_skip(const asn_codec_ctx_t *ctx, asn_per_data_t *pd) { - asn_TYPE_descriptor_t s_td; - asn_dec_rval_t rv; - asn_TYPE_operation_t op_t; - - memset(&op_t, 0, sizeof(op_t)); - s_td.name = ""; - s_td.op = &op_t; - s_td.op->aper_decoder = uper_sot_suck; - - rv = aper_open_type_get(ctx, &s_td, 0, 0, pd); - if(rv.code != RC_OK) - return -1; - else - return 0; -} - - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/per_opentype.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/per_opentype.h deleted file mode 100644 index 1493b2d..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/per_opentype.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2007-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _PER_OPENTYPE_H_ -#define _PER_OPENTYPE_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -asn_dec_rval_t uper_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd); - -int uper_open_type_skip(const asn_codec_ctx_t *opt_codec_ctx, - asn_per_data_t *pd); - -/* - * X.691 (2015/08), #11.2 - * Returns -1 if error is encountered. 0 if all OK. - */ -int uper_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po); - -asn_dec_rval_t aper_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd); - - -int aper_open_type_skip(const asn_codec_ctx_t *opt_codec_ctx, asn_per_data_t *pd); - -int aper_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po); - -#ifdef __cplusplus -} -#endif - -#endif /* _PER_OPENTYPE_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/per_support.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/per_support.c deleted file mode 100644 index 2c87a76..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/per_support.c +++ /dev/null @@ -1,492 +0,0 @@ -/* - * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * X.691-201508 #10.9 General rules for encoding a length determinant. - * Get the optionally constrained length "n" from the stream. - */ -ssize_t -uper_get_length(asn_per_data_t *pd, int ebits, size_t lower_bound, - int *repeat) { - ssize_t value; - - *repeat = 0; - - /* #11.9.4.1 Encoding if constrained (according to effective bits) */ - if(ebits >= 0 && ebits <= 16) { - value = per_get_few_bits(pd, ebits); - if(value >= 0) value += lower_bound; - return value; - } - - value = per_get_few_bits(pd, 8); - if((value & 0x80) == 0) { /* #11.9.3.6 */ - return (value & 0x7F); - } else if((value & 0x40) == 0) { /* #11.9.3.7 */ - /* bit 8 ... set to 1 and bit 7 ... set to zero */ - value = ((value & 0x3f) << 8) | per_get_few_bits(pd, 8); - return value; /* potential -1 from per_get_few_bits passes through. */ - } else if(value < 0) { - ASN_DEBUG("END of stream reached for PER"); - return -1; - } - value &= 0x3f; /* this is "m" from X.691, #11.9.3.8 */ - if(value < 1 || value > 4) { - return -1; /* Prohibited by #11.9.3.8 */ - } - *repeat = 1; - return (16384 * value); -} - -/* - * Get the normally small length "n". - * This procedure used to decode length of extensions bit-maps - * for SET and SEQUENCE types. - */ -ssize_t -uper_get_nslength(asn_per_data_t *pd) { - ssize_t length; - - ASN_DEBUG("Getting normally small length"); - - if(per_get_few_bits(pd, 1) == 0) { - length = per_get_few_bits(pd, 6) + 1; - if(length <= 0) return -1; - ASN_DEBUG("l=%d", (int)length); - return length; - } else { - int repeat; - length = uper_get_length(pd, -1, 0, &repeat); - if(length >= 0 && !repeat) return length; - return -1; /* Error, or do not support >16K extensions */ - } -} - -/* - * Get the normally small non-negative whole number. - * X.691, #10.6 - */ -ssize_t -uper_get_nsnnwn(asn_per_data_t *pd) { - ssize_t value; - - value = per_get_few_bits(pd, 7); - if(value & 64) { /* implicit (value < 0) */ - value &= 63; - value <<= 2; - value |= per_get_few_bits(pd, 2); - if(value & 128) /* implicit (value < 0) */ - return -1; - if(value == 0) - return 0; - if(value >= 3) - return -1; - value = per_get_few_bits(pd, 8 * value); - return value; - } - - return value; -} - -/* - * X.691-11/2008, #11.6 - * Encoding of a normally small non-negative whole number - */ -int -uper_put_nsnnwn(asn_per_outp_t *po, int n) { - int bytes; - - if(n <= 63) { - if(n < 0) return -1; - return per_put_few_bits(po, n, 7); - } - if(n < 256) - bytes = 1; - else if(n < 65536) - bytes = 2; - else if(n < 256 * 65536) - bytes = 3; - else - return -1; /* This is not a "normally small" value */ - if(per_put_few_bits(po, bytes, 8)) - return -1; - - return per_put_few_bits(po, n, 8 * bytes); -} - - -/* X.691-2008/11, #11.5.6 -> #11.3 */ -int uper_get_constrained_whole_number(asn_per_data_t *pd, unsigned long *out_value, int nbits) { - unsigned long lhalf; /* Lower half of the number*/ - long half; - - if(nbits <= 31) { - half = per_get_few_bits(pd, nbits); - if(half < 0) return -1; - *out_value = half; - return 0; - } - - if((size_t)nbits > 8 * sizeof(*out_value)) - return -1; /* RANGE */ - - half = per_get_few_bits(pd, 31); - if(half < 0) return -1; - - if(uper_get_constrained_whole_number(pd, &lhalf, nbits - 31)) - return -1; - - *out_value = ((unsigned long)half << (nbits - 31)) | lhalf; - return 0; -} - - -/* X.691-2008/11, #11.5.6 -> #11.3 */ -int -uper_put_constrained_whole_number_u(asn_per_outp_t *po, unsigned long v, - int nbits) { - if(nbits <= 31) { - return per_put_few_bits(po, v, nbits); - } else { - /* Put higher portion first, followed by lower 31-bit */ - if(uper_put_constrained_whole_number_u(po, v >> 31, nbits - 31)) - return -1; - return per_put_few_bits(po, v, 31); - } -} - -/* - * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" - * Put the length "n" (or part of it) into the stream. - */ -ssize_t -uper_put_length(asn_per_outp_t *po, size_t length, int *need_eom) { - int dummy = 0; - if(!need_eom) need_eom = &dummy; - - if(length <= 127) { /* #11.9.3.6 */ - *need_eom = 0; - return per_put_few_bits(po, length, 8) - ? -1 : (ssize_t)length; - } else if(length < 16384) { /* #10.9.3.7 */ - *need_eom = 0; - return per_put_few_bits(po, length|0x8000, 16) - ? -1 : (ssize_t)length; - } - - *need_eom = 0 == (length & 16383); - length >>= 14; - if(length > 4) { - *need_eom = 0; - length = 4; - } - - return per_put_few_bits(po, 0xC0 | length, 8) - ? -1 : (ssize_t)(length << 14); - -} - - -/* - * Put the normally small length "n" into the stream. - * This procedure used to encode length of extensions bit-maps - * for SET and SEQUENCE types. - */ -int -uper_put_nslength(asn_per_outp_t *po, size_t length) { - if(length <= 64) { - /* #11.9.3.4 */ - if(length == 0) return -1; - return per_put_few_bits(po, length - 1, 7) ? -1 : 0; - } else { - int need_eom = 0; - if(uper_put_length(po, length, &need_eom) != (ssize_t)length - || need_eom) { - /* This might happen in case of >16K extensions */ - return -1; - } - } - - return 0; -} - -static int -per__long_range(long lb, long ub, unsigned long *range_r) { - unsigned long bounds_range; - if((ub < 0) == (lb < 0)) { - bounds_range = ub - lb; - } else if(lb < 0) { - assert(ub >= 0); - bounds_range = 1 + ((unsigned long)ub + (unsigned long)-(lb + 1)); - } else { - assert(!"Unreachable"); - return -1; - } - *range_r = bounds_range; - return 0; -} - -int -per_long_range_rebase(long v, long lb, long ub, unsigned long *output) { - unsigned long range; - - assert(lb <= ub); - - if(v < lb || v > ub || per__long_range(lb, ub, &range) < 0) { - /* Range error. */ - return -1; - } - - /* - * Fundamentally what we're doing is returning (v-lb). - * However, this triggers undefined behavior when the word width - * of signed (v) is the same as the size of unsigned (*output). - * In practice, it triggers the UndefinedSanitizer. Therefore we shall - * compute the ranges accurately to avoid C's undefined behavior. - */ - if((v < 0) == (lb < 0)) { - *output = v-lb; - return 0; - } else if(v < 0) { - unsigned long rebased = 1 + (unsigned long)-(v+1) + (unsigned long)lb; - assert(rebased <= range); /* By construction */ - *output = rebased; - return 0; - } else if(lb < 0) { - unsigned long rebased = 1 + (unsigned long)-(lb+1) + (unsigned long)v; - assert(rebased <= range); /* By construction */ - *output = rebased; - return 0; - } else { - assert(!"Unreachable"); - return -1; - } -} - -int -per_long_range_unrebase(unsigned long inp, long lb, long ub, long *outp) { - unsigned long range; - - if(per__long_range(lb, ub, &range) != 0) { - return -1; - } - - if(inp > range) { - /* - * We can encode something in the given number of bits that technically - * exceeds the range. This is an avenue for security errors, - * so we don't allow that. - */ - return -1; - } - - if(inp <= LONG_MAX) { - *outp = (long)inp + lb; - } else { - *outp = (lb + LONG_MAX + 1) + (long)((inp - LONG_MAX) - 1); - } - - return 0; -} - -int32_t -aper_get_align(asn_per_data_t *pd) { - - if(pd->nboff & 0x7) { - ASN_DEBUG("Aligning %ld bits", 8 - ((unsigned long)pd->nboff & 0x7)); - return per_get_few_bits(pd, 8 - (pd->nboff & 0x7)); - } - return 0; -} - -ssize_t -aper_get_length(asn_per_data_t *pd, int range, int ebits, int *repeat) { - ssize_t value; - - *repeat = 0; - - // First check effective_bits parameter. - if (ebits >= 0) { - if (range <= 65536 && range >= 0) - return aper_get_nsnnwn(pd, range); - } - - if (aper_get_align(pd) < 0) - return -1; - - if(ebits >= 0) return per_get_few_bits(pd, ebits); - - value = per_get_few_bits(pd, 8); - if(value < 0) return -1; - if((value & 128) == 0) /* #10.9.3.6 */ - return (value & 0x7F); - if((value & 64) == 0) { /* #10.9.3.7 */ - value = ((value & 63) << 8) | per_get_few_bits(pd, 8); - if(value < 0) return -1; - return value; - } - value &= 63; /* this is "m" from X.691, #10.9.3.8 */ - if(value < 1 || value > 4) - return -1; - *repeat = 1; - return (16384 * value); -} - -ssize_t -aper_get_nslength(asn_per_data_t *pd) { - ssize_t length; - - ASN_DEBUG("Getting normally small length"); - - if(per_get_few_bits(pd, 1) == 0) { - length = per_get_few_bits(pd, 6) + 1; - if(length <= 0) return -1; - ASN_DEBUG("l=%ld", length); - return length; - } else { - int repeat; - length = aper_get_length(pd, -1, -1, &repeat); - if(length >= 0 && !repeat) return length; - return -1; /* Error, or do not support >16K extensions */ - } -} - -ssize_t -aper_get_nsnnwn(asn_per_data_t *pd, int range) { - ssize_t value; - int bytes = 0; - - ASN_DEBUG("getting nsnnwn with range %d", range); - - if(range <= 255) { - int i; - - if (range < 0) return -1; - /* 1 -> 8 bits */ - for (i = 1; i <= 8; i++) { - int upper = 1 << i; - if (upper >= range) - break; - } - value = per_get_few_bits(pd, i); - return value; - } else if (range == 256){ - /* 1 byte */ - bytes = 1; - } else if (range <= 65536) { - /* 2 bytes */ - bytes = 2; - } else { - return -1; - } - if (aper_get_align(pd) < 0) - return -1; - value = per_get_few_bits(pd, 8 * bytes); - return value; -} - -int aper_put_align(asn_per_outp_t *po) { - - if(po->nboff & 0x7) { - ASN_DEBUG("Aligning %ld bits", 8 - ((unsigned long)po->nboff & 0x7)); - if(per_put_few_bits(po, 0x00, (8 - (po->nboff & 0x7)))) - return -1; - } - return 0; -} - -ssize_t -aper_put_length(asn_per_outp_t *po, int range, size_t length) { - - ASN_DEBUG("APER put length %zu with range %d", length, range); - - /* 10.9 X.691 Note 2 */ - if (range <= 65536 && range >= 0) - return aper_put_nsnnwn(po, range, length); - - if (aper_put_align(po) < 0) - return -1; - - if(length <= 127) /* #10.9.3.6 */{ - return per_put_few_bits(po, length, 8) - ? -1 : (ssize_t)length; - } - else if(length < 16384) /* #10.9.3.7 */ - return per_put_few_bits(po, length|0x8000, 16) - ? -1 : (ssize_t)length; - - length >>= 14; - if(length > 4) length = 4; - - return per_put_few_bits(po, 0xC0 | length, 8) - ? -1 : (ssize_t)(length << 14); -} - - -int -aper_put_nslength(asn_per_outp_t *po, size_t length) { - - if(length <= 64) { - /* #10.9.3.4 */ - if(length == 0) return -1; - return per_put_few_bits(po, length-1, 7) ? -1 : 0; - } else { - if(aper_put_length(po, -1, length) != (ssize_t)length) { - /* This might happen in case of >16K extensions */ - return -1; - } - } - - return 0; -} - -int -aper_put_nsnnwn(asn_per_outp_t *po, int range, int number) { - int bytes; - - ASN_DEBUG("aper put nsnnwn %d with range %d", number, range); - /* 10.5.7.1 X.691 */ - if(range < 0) { - int i; - for (i = 1; ; i++) { - int bits = 1 << (8 * i); - if (number <= bits) - break; - } - bytes = i; - assert(i <= 4); - } - if(range <= 255) { - int i; - for (i = 1; i <= 8; i++) { - int bits = 1 << i; - if (range <= bits) - break; - } - return per_put_few_bits(po, number, i); - } else if(range == 256) { - bytes = 1; - } else if(range <= 65536) { - bytes = 2; - } else { /* Ranges > 64K */ - int i; - for (i = 1; ; i++) { - int bits = 1 << (8 * i); - if (range <= bits) - break; - } - assert(i <= 4); - bytes = i; - } - if(aper_put_align(po) < 0) /* Aligning on octet */ - return -1; -/* if(per_put_few_bits(po, bytes, 8)) - return -1; -*/ - return per_put_few_bits(po, number, 8 * bytes); -} diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/per_support.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/per_support.h deleted file mode 100644 index 23079c9..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/per_support.h +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _PER_SUPPORT_H_ -#define _PER_SUPPORT_H_ - -#include /* Platform-specific types */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Pre-computed PER constraints. - */ -typedef struct asn_per_constraint_s { - enum asn_per_constraint_flags { - APC_UNCONSTRAINED = 0x0, /* No PER visible constraints */ - APC_SEMI_CONSTRAINED = 0x1, /* Constrained at "lb" */ - APC_CONSTRAINED = 0x2, /* Fully constrained */ - APC_EXTENSIBLE = 0x4 /* May have extension */ - } flags; - int range_bits; /* Full number of bits in the range */ - int effective_bits; /* Effective bits */ - long lower_bound; /* "lb" value */ - long upper_bound; /* "ub" value */ -} asn_per_constraint_t; -typedef struct asn_per_constraints_s { - asn_per_constraint_t value; - asn_per_constraint_t size; - int (*value2code)(unsigned int value); - int (*code2value)(unsigned int code); -} asn_per_constraints_t; - -/* Temporary compatibility layer. Will get removed. */ -typedef struct asn_bit_data_s asn_per_data_t; -#define per_get_few_bits(data, bits) asn_get_few_bits(data, bits) -#define per_get_undo(data, bits) asn_get_undo(data, bits) -#define per_get_many_bits(data, dst, align, bits) \ - asn_get_many_bits(data, dst, align, bits) - -/* - * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" - * Get the length "n" from the Unaligned PER stream. - */ -ssize_t uper_get_length(asn_per_data_t *pd, int effective_bound_bits, - size_t lower_bound, int *repeat); - -ssize_t aper_get_length(asn_per_data_t *pd, int range, - int effective_bound_bits, int *repeat); - -/* - * Get the normally small length "n". - */ -ssize_t uper_get_nslength(asn_per_data_t *pd); -ssize_t aper_get_nslength(asn_per_data_t *pd); - -/* - * Get the normally small non-negative whole number. - */ -ssize_t uper_get_nsnnwn(asn_per_data_t *pd); -ssize_t aper_get_nsnnwn(asn_per_data_t *pd, int range); - -/* X.691-2008/11, #11.5.6 */ -int uper_get_constrained_whole_number(asn_per_data_t *pd, unsigned long *v, int nbits); - - -/* Temporary compatibility layer. Will get removed. */ -typedef struct asn_bit_outp_s asn_per_outp_t; -#define per_put_few_bits(out, bits, obits) asn_put_few_bits(out, bits, obits) -#define per_put_many_bits(out, src, nbits) asn_put_many_bits(out, src, nbits) -#define per_put_aligned_flush(out) asn_put_aligned_flush(out) - - -/* - * Rebase the given value as an offset into the range specified by the - * lower bound (lb) and upper bound (ub). - * RETURN VALUES: - * -1: Conversion failed due to range problems. - * 0: Conversion was successful. - */ -int per_long_range_rebase(long v, long lb, long ub, unsigned long *output); -/* The inverse operation: restores the value by the offset and its bounds. */ -int per_long_range_unrebase(unsigned long inp, long lb, long ub, long *outp); - -/* X.691-2008/11, #11.5 */ -int uper_put_constrained_whole_number_u(asn_per_outp_t *po, unsigned long v, int nbits); - -/* - * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" - * Put the length "whole_length" to the Unaligned PER stream. - * If (opt_need_eom) is given, it will be set to 1 if final 0-length is needed. - * In that case, invoke uper_put_length(po, 0, 0) after encoding the last block. - * This function returns the number of units which may be flushed - * in the next units saving iteration. - */ -ssize_t uper_put_length(asn_per_outp_t *po, size_t whole_length, - int *opt_need_eom); - -ssize_t aper_put_length(asn_per_outp_t *po, int range, size_t length); - -/* Align the current bit position to octet bundary */ -int aper_put_align(asn_per_outp_t *po); -int32_t aper_get_align(asn_per_data_t *pd); - -/* - * Put the normally small length "n" to the Unaligned PER stream. - * Returns 0 or -1. - */ -int uper_put_nslength(asn_per_outp_t *po, size_t length); - -int aper_put_nslength(asn_per_outp_t *po, size_t length); - -/* - * Put the normally small non-negative whole number. - */ -int uper_put_nsnnwn(asn_per_outp_t *po, int n); - -int aper_put_nsnnwn(asn_per_outp_t *po, int range, int number); - -#ifdef __cplusplus -} -#endif - -#endif /* _PER_SUPPORT_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/xer_decoder.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/xer_decoder.c deleted file mode 100644 index 5b87703..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/xer_decoder.c +++ /dev/null @@ -1,369 +0,0 @@ -/* - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include /* XER/XML parsing support */ - - -/* - * Decode the XER encoding of a given type. - */ -asn_dec_rval_t -xer_decode(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const void *buffer, size_t size) { - asn_codec_ctx_t s_codec_ctx; - - /* - * Stack checker requires that the codec context - * must be allocated on the stack. - */ - if(opt_codec_ctx) { - if(opt_codec_ctx->max_stack_size) { - s_codec_ctx = *opt_codec_ctx; - opt_codec_ctx = &s_codec_ctx; - } - } else { - /* If context is not given, be security-conscious anyway */ - memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); - s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; - opt_codec_ctx = &s_codec_ctx; - } - - /* - * Invoke type-specific decoder. - */ - return td->op->xer_decoder(opt_codec_ctx, td, struct_ptr, 0, buffer, size); -} - - - -struct xer__cb_arg { - pxml_chunk_type_e chunk_type; - size_t chunk_size; - const void *chunk_buf; - int callback_not_invoked; -}; - -static int -xer__token_cb(pxml_chunk_type_e type, const void *_chunk_data, size_t _chunk_size, void *key) { - struct xer__cb_arg *arg = (struct xer__cb_arg *)key; - arg->chunk_type = type; - arg->chunk_size = _chunk_size; - arg->chunk_buf = _chunk_data; - arg->callback_not_invoked = 0; - return -1; /* Terminate the XML parsing */ -} - -/* - * Fetch the next token from the XER/XML stream. - */ -ssize_t -xer_next_token(int *stateContext, const void *buffer, size_t size, pxer_chunk_type_e *ch_type) { - struct xer__cb_arg arg; - int new_stateContext = *stateContext; - ssize_t ret; - - arg.callback_not_invoked = 1; - ret = pxml_parse(&new_stateContext, buffer, size, xer__token_cb, &arg); - if(ret < 0) return -1; - if(arg.callback_not_invoked) { - assert(ret == 0); /* No data was consumed */ - *ch_type = PXER_WMORE; - return 0; /* Try again with more data */ - } else { - assert(arg.chunk_size); - assert(arg.chunk_buf == buffer); - } - - /* - * Translate the XML chunk types into more convenient ones. - */ - switch(arg.chunk_type) { - case PXML_TEXT: - *ch_type = PXER_TEXT; - break; - case PXML_TAG: - *ch_type = PXER_WMORE; - return 0; /* Want more */ - case PXML_TAG_END: - *ch_type = PXER_TAG; - break; - case PXML_COMMENT: - case PXML_COMMENT_END: - *ch_type = PXER_COMMENT; - break; - } - - *stateContext = new_stateContext; - return arg.chunk_size; -} - -#define CSLASH 0x2f /* '/' */ -#define LANGLE 0x3c /* '<' */ -#define RANGLE 0x3e /* '>' */ - -xer_check_tag_e -xer_check_tag(const void *buf_ptr, int size, const char *need_tag) { - const char *buf = (const char *)buf_ptr; - const char *end; - xer_check_tag_e ct = XCT_OPENING; - - if(size < 2 || buf[0] != LANGLE || buf[size-1] != RANGLE) { - if(size >= 2) - ASN_DEBUG("Broken XML tag: \"%c...%c\"", - buf[0], buf[size - 1]); - return XCT_BROKEN; - } - - /* - * Determine the tag class. - */ - if(buf[1] == CSLASH) { - buf += 2; /* advance past "" */ - ct = XCT_CLOSING; - if(size > 0 && buf[size-1] == CSLASH) - return XCT_BROKEN; /* */ - } else { - buf++; /* advance past "<" */ - size -= 2; /* strip "<" and ">" */ - if(size > 0 && buf[size-1] == CSLASH) { - ct = XCT_BOTH; - size--; /* One more, for "/" */ - } - } - - /* Sometimes we don't care about the tag */ - if(!need_tag || !*need_tag) - return (xer_check_tag_e)(XCT__UNK__MASK | ct); - - /* - * Determine the tag name. - */ - for(end = buf + size; buf < end; buf++, need_tag++) { - int b = *buf, n = *need_tag; - if(b != n) { - if(n == 0) { - switch(b) { - case 0x09: case 0x0a: case 0x0c: case 0x0d: - case 0x20: - /* "": whitespace is normal */ - return ct; - } - } - return (xer_check_tag_e)(XCT__UNK__MASK | ct); - } - if(b == 0) - return XCT_BROKEN; /* Embedded 0 in buf?! */ - } - if(*need_tag) - return (xer_check_tag_e)(XCT__UNK__MASK | ct); - - return ct; -} - - -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = (num_bytes); \ - buf_ptr = ((const char *)buf_ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself; \ - if(rval.code != RC_OK) \ - ASN_DEBUG("Failed with %d", rval.code); \ - return rval; \ - } while(0) - -#define XER_GOT_BODY(chunk_buf, chunk_size, size) do { \ - ssize_t converted_size = body_receiver \ - (struct_key, chunk_buf, chunk_size, \ - (size_t)chunk_size < size); \ - if(converted_size == -1) RETURN(RC_FAIL); \ - if(converted_size == 0 \ - && size == (size_t)chunk_size) \ - RETURN(RC_WMORE); \ - chunk_size = converted_size; \ - } while(0) -#define XER_GOT_EMPTY() do { \ - if(body_receiver(struct_key, 0, 0, size > 0) == -1) \ - RETURN(RC_FAIL); \ - } while(0) - -/* - * Generalized function for decoding the primitive values. - */ -asn_dec_rval_t -xer_decode_general(const asn_codec_ctx_t *opt_codec_ctx, - asn_struct_ctx_t *ctx, /* Type decoder context */ - void *struct_key, - const char *xml_tag, /* Expected XML tag */ - const void *buf_ptr, size_t size, - int (*opt_unexpected_tag_decoder) - (void *struct_key, const void *chunk_buf, size_t chunk_size), - ssize_t (*body_receiver) - (void *struct_key, const void *chunk_buf, size_t chunk_size, - int have_more) - ) { - - asn_dec_rval_t rval; - ssize_t consumed_myself = 0; - - (void)opt_codec_ctx; - - /* - * Phases of XER/XML processing: - * Phase 0: Check that the opening tag matches our expectations. - * Phase 1: Processing body and reacting on closing tag. - */ - if(ctx->phase > 1) RETURN(RC_FAIL); - for(;;) { - pxer_chunk_type_e ch_type; /* XER chunk type */ - ssize_t ch_size; /* Chunk size */ - xer_check_tag_e tcv; /* Tag check value */ - - /* - * Get the next part of the XML stream. - */ - ch_size = xer_next_token(&ctx->context, buf_ptr, size, - &ch_type); - if(ch_size == -1) { - RETURN(RC_FAIL); - } else { - switch(ch_type) { - case PXER_WMORE: - RETURN(RC_WMORE); - case PXER_COMMENT: /* Got XML comment */ - ADVANCE(ch_size); /* Skip silently */ - continue; - case PXER_TEXT: - if(ctx->phase == 0) { - /* - * We have to ignore whitespace here, - * but in order to be forward compatible - * with EXTENDED-XER (EMBED-VALUES, #25) - * any text is just ignored here. - */ - } else { - XER_GOT_BODY(buf_ptr, ch_size, size); - } - ADVANCE(ch_size); - continue; - case PXER_TAG: - break; /* Check the rest down there */ - } - } - - assert(ch_type == PXER_TAG && size); - - tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); - /* - * Phase 0: - * Expecting the opening tag - * for the type being processed. - * Phase 1: - * Waiting for the closing XML tag. - */ - switch(tcv) { - case XCT_BOTH: - if(ctx->phase) break; - /* Finished decoding of an empty element */ - XER_GOT_EMPTY(); - ADVANCE(ch_size); - ctx->phase = 2; /* Phase out */ - RETURN(RC_OK); - case XCT_OPENING: - if(ctx->phase) break; - ADVANCE(ch_size); - ctx->phase = 1; /* Processing body phase */ - continue; - case XCT_CLOSING: - if(!ctx->phase) break; - ADVANCE(ch_size); - ctx->phase = 2; /* Phase out */ - RETURN(RC_OK); - case XCT_UNKNOWN_BO: - /* - * Certain tags in the body may be expected. - */ - if(opt_unexpected_tag_decoder - && opt_unexpected_tag_decoder(struct_key, - buf_ptr, ch_size) >= 0) { - /* Tag's processed fine */ - ADVANCE(ch_size); - if(!ctx->phase) { - /* We are not expecting - * the closing tag anymore. */ - ctx->phase = 2; /* Phase out */ - RETURN(RC_OK); - } - continue; - } - /* Fall through */ - default: - break; /* Unexpected tag */ - } - - ASN_DEBUG("Unexpected XML tag (expected \"%s\")", xml_tag); - break; /* Dark and mysterious things have just happened */ - } - - RETURN(RC_FAIL); -} - - -size_t -xer_whitespace_span(const void *chunk_buf, size_t chunk_size) { - const char *p = (const char *)chunk_buf; - const char *pend = p + chunk_size; - - for(; p < pend; p++) { - switch(*p) { - /* X.693, #8.1.4 - * HORISONTAL TAB (9) - * LINE FEED (10) - * CARRIAGE RETURN (13) - * SPACE (32) - */ - case 0x09: case 0x0a: case 0x0d: case 0x20: - continue; - default: - break; - } - break; - } - return (p - (const char *)chunk_buf); -} - -/* - * This is a vastly simplified, non-validating XML tree skipper. - */ -int -xer_skip_unknown(xer_check_tag_e tcv, ber_tlv_len_t *depth) { - assert(*depth > 0); - switch(tcv) { - case XCT_BOTH: - case XCT_UNKNOWN_BO: - /* These negate each other. */ - return 0; - case XCT_OPENING: - case XCT_UNKNOWN_OP: - ++(*depth); - return 0; - case XCT_CLOSING: - case XCT_UNKNOWN_CL: - if(--(*depth) == 0) - return (tcv == XCT_CLOSING) ? 2 : 1; - return 0; - default: - return -1; - } -} diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/xer_decoder.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/xer_decoder.h deleted file mode 100644 index b951c41..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/xer_decoder.h +++ /dev/null @@ -1,106 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _XER_DECODER_H_ -#define _XER_DECODER_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * The XER decoder of any ASN.1 type. May be invoked by the application. - * Decodes CANONICAL-XER and BASIC-XER. - */ -asn_dec_rval_t xer_decode( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of data buffer */ -); - -/* - * Type of the type-specific XER decoder function. - */ -typedef asn_dec_rval_t(xer_type_decoder_f)( - const asn_codec_ctx_t *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, void **struct_ptr, - const char *opt_mname, /* Member name */ - const void *buf_ptr, size_t size); - -/******************************* - * INTERNALLY USEFUL FUNCTIONS * - *******************************/ - -/* - * Generalized function for decoding the primitive values. - * Used by more specialized functions, such as OCTET_STRING_decode_xer_utf8 - * and others. This function should not be used by applications, as its API - * is subject to changes. - */ -asn_dec_rval_t xer_decode_general( - const asn_codec_ctx_t *opt_codec_ctx, - asn_struct_ctx_t *ctx, /* Type decoder context */ - void *struct_key, /* Treated as opaque pointer */ - const char *xml_tag, /* Expected XML tag name */ - const void *buf_ptr, size_t size, - int (*opt_unexpected_tag_decoder)(void *struct_key, const void *chunk_buf, - size_t chunk_size), - ssize_t (*body_receiver)(void *struct_key, const void *chunk_buf, - size_t chunk_size, int have_more)); - - -/* - * Fetch the next XER (XML) token from the stream. - * The function returns the number of bytes occupied by the chunk type, - * returned in the _ch_type. The _ch_type is only set (and valid) when - * the return value is >= 0. - */ - typedef enum pxer_chunk_type { - PXER_WMORE, /* Chunk type is not clear, more data expected. */ - PXER_TAG, /* Complete XER tag */ - PXER_TEXT, /* Plain text between XER tags */ - PXER_COMMENT /* A comment, may be part of */ - } pxer_chunk_type_e; -ssize_t xer_next_token(int *stateContext, - const void *buffer, size_t size, pxer_chunk_type_e *_ch_type); - -/* - * This function checks the buffer against the tag name is expected to occur. - */ - typedef enum xer_check_tag { - XCT_BROKEN = 0, /* The tag is broken */ - XCT_OPENING = 1, /* This is the tag */ - XCT_CLOSING = 2, /* This is the tag */ - XCT_BOTH = 3, /* This is the tag */ - XCT__UNK__MASK = 4, /* Mask of everything unexpected */ - XCT_UNKNOWN_OP = 5, /* Unexpected tag */ - XCT_UNKNOWN_CL = 6, /* Unexpected tag */ - XCT_UNKNOWN_BO = 7 /* Unexpected tag */ - } xer_check_tag_e; -xer_check_tag_e xer_check_tag(const void *buf_ptr, int size, - const char *need_tag); - -/* - * Get the number of bytes consisting entirely of XER whitespace characters. - * RETURN VALUES: - * >=0: Number of whitespace characters in the string. - */ -size_t xer_whitespace_span(const void *chunk_buf, size_t chunk_size); - -/* - * Skip the series of anticipated extensions. - */ -int xer_skip_unknown(xer_check_tag_e tcv, ber_tlv_len_t *depth); - -#ifdef __cplusplus -} -#endif - -#endif /* _XER_DECODER_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/xer_encoder.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/xer_encoder.c deleted file mode 100644 index 4177ede..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/xer_encoder.c +++ /dev/null @@ -1,237 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * The XER encoder of any type. May be invoked by the application. - */ -asn_enc_rval_t -xer_encode(const asn_TYPE_descriptor_t *td, const void *sptr, - enum xer_encoder_flags_e xer_flags, asn_app_consume_bytes_f *cb, - void *app_key) { - asn_enc_rval_t er = {0, 0, 0}; - asn_enc_rval_t tmper; - const char *mname; - size_t mlen; - int xcan = (xer_flags & XER_F_CANONICAL) ? 1 : 2; - - if(!td || !sptr) goto cb_failed; - - mname = td->xml_tag; - mlen = strlen(mname); - - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - - tmper = td->op->xer_encoder(td, sptr, 1, xer_flags, cb, app_key); - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - - ASN__CALLBACK3("\n", xcan); - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -/* - * This is a helper function for xer_fprint, which directs all incoming data - * into the provided file descriptor. - */ -static int -xer__print2fp(const void *buffer, size_t size, void *app_key) { - FILE *stream = (FILE *)app_key; - - if(fwrite(buffer, 1, size, stream) != size) - return -1; - - return 0; -} - -int -xer_fprint(FILE *stream, const asn_TYPE_descriptor_t *td, const void *sptr) { - asn_enc_rval_t er = {0,0,0}; - - if(!stream) stream = stdout; - if(!td || !sptr) - return -1; - - er = xer_encode(td, sptr, XER_F_BASIC, xer__print2fp, stream); - if(er.encoded == -1) - return -1; - - return fflush(stream); -} - -struct xer_buffer { - char *buffer; - size_t buffer_size; - size_t allocated_size; -}; - -static int -xer__buffer_append(const void *buffer, size_t size, void *app_key) { - struct xer_buffer *xb = app_key; - - while(xb->buffer_size + size + 1 > xb->allocated_size) { - size_t new_size = 2 * (xb->allocated_size ? xb->allocated_size : 64); - char *new_buf = MALLOC(new_size); - if(!new_buf) return -1; - if (xb->buffer) { - memcpy(new_buf, xb->buffer, xb->buffer_size); - } - FREEMEM(xb->buffer); - xb->buffer = new_buf; - xb->allocated_size = new_size; - } - - memcpy(xb->buffer + xb->buffer_size, buffer, size); - xb->buffer_size += size; - xb->buffer[xb->buffer_size] = '\0'; - return 0; -} - -enum xer_equivalence_e -xer_equivalent(const struct asn_TYPE_descriptor_s *td, const void *struct1, - const void *struct2, FILE *opt_debug_stream) { - struct xer_buffer xb1 = {0, 0, 0}; - struct xer_buffer xb2 = {0, 0, 0}; - asn_enc_rval_t e1, e2; - asn_dec_rval_t rval; - void *sptr = NULL; - - if(!td || !struct1 || !struct2) { - if(opt_debug_stream) { - if(!td) fprintf(opt_debug_stream, "Type descriptor missing\n"); - if(!struct1) fprintf(opt_debug_stream, "Structure 1 missing\n"); - if(!struct2) fprintf(opt_debug_stream, "Structure 2 missing\n"); - } - return XEQ_FAILURE; - } - - e1 = xer_encode(td, struct1, XER_F_BASIC, xer__buffer_append, &xb1); - if(e1.encoded == -1) { - if(opt_debug_stream) { - fprintf(stderr, "XER Encoding of %s failed\n", td->name); - } - FREEMEM(xb1.buffer); - return XEQ_ENCODE1_FAILED; - } - - e2 = xer_encode(td, struct2, XER_F_BASIC, xer__buffer_append, &xb2); - if(e2.encoded == -1) { - if(opt_debug_stream) { - fprintf(stderr, "XER Encoding of %s failed\n", td->name); - } - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_ENCODE1_FAILED; - } - - if(xb1.buffer_size != xb2.buffer_size - || memcmp(xb1.buffer, xb2.buffer, xb1.buffer_size) != 0) { - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "Structures XER-encoded into different byte streams:\n=== " - "Structure 1 ===\n%s\n=== Structure 2 ===\n%s\n", - xb1.buffer, xb2.buffer); - } - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_DIFFERENT; - } else { - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "Both structures encoded into the same XER byte stream " - "of size %" ASN_PRI_SIZE ":\n%s", - xb1.buffer_size, xb1.buffer); - } - } - - rval = xer_decode(NULL, td, (void **)&sptr, xb1.buffer, - xb1.buffer_size); - switch(rval.code) { - case RC_OK: - break; - case RC_WMORE: - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "Structure %s XER decode unexpectedly requires " - "more data:\n%s\n", - td->name, xb1.buffer); - } - /* Fall through */ - case RC_FAIL: - default: - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "Structure %s XER decoding resulted in failure.\n", - td->name); - } - ASN_STRUCT_FREE(*td, sptr); - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_DECODE_FAILED; - } - - if(rval.consumed != xb1.buffer_size - && ((rval.consumed > xb1.buffer_size) - || xer_whitespace_span(xb1.buffer + rval.consumed, - xb1.buffer_size - rval.consumed) - != (xb1.buffer_size - rval.consumed))) { - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "Round-trip decode of %s required less bytes (%" ASN_PRI_SIZE ") than " - "encoded (%" ASN_PRI_SIZE ")\n", - td->name, rval.consumed, xb1.buffer_size); - } - ASN_STRUCT_FREE(*td, sptr); - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_ROUND_TRIP_FAILED; - } - - /* - * Reuse xb2 to encode newly decoded structure. - */ - FREEMEM(xb2.buffer); - memset(&xb2, 0, sizeof(xb2)); - - e2 = xer_encode(td, sptr, XER_F_BASIC, xer__buffer_append, &xb2); - if(e2.encoded == -1) { - if(opt_debug_stream) { - fprintf(stderr, "XER Encoding of round-trip decode of %s failed\n", - td->name); - } - ASN_STRUCT_FREE(*td, sptr); - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_ROUND_TRIP_FAILED; - } - - ASN_STRUCT_FREE(*td, sptr); - sptr = 0; - - if(xb1.buffer_size != xb2.buffer_size - || memcmp(xb1.buffer, xb2.buffer, xb1.buffer_size) != 0) { - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "XER Encoding of round-trip decode of %s resulted in " - "different byte stream:\n" - "=== Original ===\n%s\n" - "=== Round-tripped ===\n%s\n", - xb1.buffer, xb2.buffer, td->name); - } - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_ROUND_TRIP_FAILED; - } - - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_SUCCESS; -} - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/xer_encoder.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/xer_encoder.h deleted file mode 100644 index 9d75922..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/xer_encoder.h +++ /dev/null @@ -1,83 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _XER_ENCODER_H_ -#define _XER_ENCODER_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* Flags used by the xer_encode() and (*xer_type_encoder_f), defined below */ -enum xer_encoder_flags_e { - /* Mode of encoding */ - XER_F_BASIC = 0x01, /* BASIC-XER (pretty-printing) */ - XER_F_CANONICAL = 0x02 /* Canonical XER (strict rules) */ -}; - -/* - * The XER encoder of any type. May be invoked by the application. - * Produces CANONICAL-XER and BASIC-XER depending on the (xer_flags). - */ -asn_enc_rval_t xer_encode(const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - enum xer_encoder_flags_e xer_flags, - asn_app_consume_bytes_f *consume_bytes_cb, - void *app_key /* Arbitrary callback argument */ -); - -/* - * The variant of the above function which dumps the BASIC-XER (XER_F_BASIC) - * output into the chosen file pointer. - * RETURN VALUES: - * 0: The structure is printed. - * -1: Problem printing the structure. - * WARNING: No sensible errno value is returned. - */ -int xer_fprint(FILE *stream, const struct asn_TYPE_descriptor_s *td, - const void *struct_ptr); - -/* - * A helper function that uses XER encoding/decoding to verify that: - * - Both structures encode into the same BASIC XER. - * - Both resulting XER byte streams can be decoded back. - * - Both decoded structures encode into the same BASIC XER (round-trip). - * All of this verifies equivalence between structures and a round-trip. - * ARGUMENTS: - * (opt_debug_stream) - If specified, prints ongoing details. - */ -enum xer_equivalence_e { - XEQ_SUCCESS, /* The only completely positive return value */ - XEQ_FAILURE, /* General failure */ - XEQ_ENCODE1_FAILED, /* First sructure XER encoding failed */ - XEQ_ENCODE2_FAILED, /* Second structure XER encoding failed */ - XEQ_DIFFERENT, /* Structures encoded into different XER */ - XEQ_DECODE_FAILED, /* Decode of the XER data failed */ - XEQ_ROUND_TRIP_FAILED /* Bad round-trip */ -}; -enum xer_equivalence_e xer_equivalent( - const struct asn_TYPE_descriptor_s *type_descriptor, const void *struct1, - const void *struct2, FILE *opt_debug_stream); - -/* - * Type of the generic XER encoder. - */ -typedef asn_enc_rval_t(xer_type_encoder_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - int ilevel, /* Level of indentation */ - enum xer_encoder_flags_e xer_flags, - asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */ - void *app_key /* Arbitrary callback argument */ -); - -#ifdef __cplusplus -} -#endif - -#endif /* _XER_ENCODER_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/xer_support.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/xer_support.c deleted file mode 100644 index 36b4bfb..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/xer_support.c +++ /dev/null @@ -1,227 +0,0 @@ -/* - * Copyright (c) 2003, 2004 X/IO Labs, xiolabs.com. - * Copyright (c) 2003, 2004, 2005 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -/* Parser states */ -typedef enum { - ST_TEXT, - ST_TAG_START, - ST_TAG_BODY, - ST_TAG_QUOTE_WAIT, - ST_TAG_QUOTED_STRING, - ST_TAG_UNQUOTED_STRING, - ST_COMMENT_WAIT_DASH1, /* ""[0] */ - ST_COMMENT_CLO_RT /* "-->"[1] */ -} pstate_e; - -static const int -_charclass[256] = { - 0,0,0,0,0,0,0,0, 0,1,1,0,1,1,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,0, 0,0,0,0,0,0,0,0, - 2,2,2,2,2,2,2,2, 2,2,0,0,0,0,0,0, /* 01234567 89 */ - 0,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3, /* ABCDEFG HIJKLMNO */ - 3,3,3,3,3,3,3,3, 3,3,3,0,0,0,0,0, /* PQRSTUVW XYZ */ - 0,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3, /* abcdefg hijklmno */ - 3,3,3,3,3,3,3,3, 3,3,3,0,0,0,0,0 /* pqrstuvw xyz */ -}; -#define WHITESPACE(c) (_charclass[(unsigned char)(c)] == 1) -#define ALNUM(c) (_charclass[(unsigned char)(c)] >= 2) -#define ALPHA(c) (_charclass[(unsigned char)(c)] == 3) - -/* Aliases for characters, ASCII/UTF-8 */ -#define EXCLAM 0x21 /* '!' */ -#define CQUOTE 0x22 /* '"' */ -#define CDASH 0x2d /* '-' */ -#define CSLASH 0x2f /* '/' */ -#define LANGLE 0x3c /* '<' */ -#define CEQUAL 0x3d /* '=' */ -#define RANGLE 0x3e /* '>' */ -#define CQUEST 0x3f /* '?' */ - -/* Invoke token callback */ -#define TOKEN_CB_CALL(type, _ns, _current_too, _final) do { \ - int _ret; \ - pstate_e ns = _ns; \ - ssize_t _sz = (p - chunk_start) + _current_too; \ - if (!_sz) { \ - /* Shortcut */ \ - state = _ns; \ - break; \ - } \ - _ret = cb(type, chunk_start, _sz, key); \ - if(_ret < _sz) { \ - if(_current_too && _ret == -1) \ - state = ns; \ - goto finish; \ - } \ - chunk_start = p + _current_too; \ - state = ns; \ - } while(0) - -#define TOKEN_CB(_type, _ns, _current_too) \ - TOKEN_CB_CALL(_type, _ns, _current_too, 0) - -#define PXML_TAG_FINAL_CHUNK_TYPE PXML_TAG_END -#define PXML_COMMENT_FINAL_CHUNK_TYPE PXML_COMMENT_END - -#define TOKEN_CB_FINAL(_type, _ns, _current_too) \ - TOKEN_CB_CALL( _type ## _FINAL_CHUNK_TYPE , _ns, _current_too, 1) - -/* - * Parser itself - */ -ssize_t pxml_parse(int *stateContext, const void *xmlbuf, size_t size, pxml_callback_f *cb, void *key) { - pstate_e state = (pstate_e)*stateContext; - const char *chunk_start = (const char *)xmlbuf; - const char *p = chunk_start; - const char *end = p + size; - - for(; p < end; p++) { - int C = *(const unsigned char *)p; - switch(state) { - case ST_TEXT: - /* - * Initial state: we're in the middle of some text, - * or just have started. - */ - if (C == LANGLE) - /* We're now in the tag, probably */ - TOKEN_CB(PXML_TEXT, ST_TAG_START, 0); - break; - case ST_TAG_START: - if (ALPHA(C) || (C == CSLASH)) - state = ST_TAG_BODY; - else if (C == EXCLAM) - state = ST_COMMENT_WAIT_DASH1; - else - /* - * Not characters and not whitespace. - * Must be something like "3 < 4". - */ - TOKEN_CB(PXML_TEXT, ST_TEXT, 1);/* Flush as data */ - break; - case ST_TAG_BODY: - switch(C) { - case RANGLE: - /* End of the tag */ - TOKEN_CB_FINAL(PXML_TAG, ST_TEXT, 1); - break; - case LANGLE: - /* - * The previous tag wasn't completed, but still - * recognized as valid. (Mozilla-compatible) - */ - TOKEN_CB_FINAL(PXML_TAG, ST_TAG_START, 0); - break; - case CEQUAL: - state = ST_TAG_QUOTE_WAIT; - break; - } - break; - case ST_TAG_QUOTE_WAIT: - /* - * State after the equal sign ("=") in the tag. - */ - switch(C) { - case CQUOTE: - state = ST_TAG_QUOTED_STRING; - break; - case RANGLE: - /* End of the tag */ - TOKEN_CB_FINAL(PXML_TAG, ST_TEXT, 1); - break; - default: - if(!WHITESPACE(C)) - /* Unquoted string value */ - state = ST_TAG_UNQUOTED_STRING; - } - break; - case ST_TAG_QUOTED_STRING: - /* - * Tag attribute's string value in quotes. - */ - if(C == CQUOTE) { - /* Return back to the tag state */ - state = ST_TAG_BODY; - } - break; - case ST_TAG_UNQUOTED_STRING: - if(C == RANGLE) { - /* End of the tag */ - TOKEN_CB_FINAL(PXML_TAG, ST_TEXT, 1); - } else if(WHITESPACE(C)) { - /* Return back to the tag state */ - state = ST_TAG_BODY; - } - break; - case ST_COMMENT_WAIT_DASH1: - if(C == CDASH) { - state = ST_COMMENT_WAIT_DASH2; - } else { - /* Some ordinary tag. */ - state = ST_TAG_BODY; - } - break; - case ST_COMMENT_WAIT_DASH2: - if(C == CDASH) { - /* Seen "<--" */ - state = ST_COMMENT; - } else { - /* Some ordinary tag */ - state = ST_TAG_BODY; - } - break; - case ST_COMMENT: - if(C == CDASH) { - state = ST_COMMENT_CLO_DASH2; - } - break; - case ST_COMMENT_CLO_DASH2: - if(C == CDASH) { - state = ST_COMMENT_CLO_RT; - } else { - /* This is not an end of a comment */ - state = ST_COMMENT; - } - break; - case ST_COMMENT_CLO_RT: - if(C == RANGLE) { - TOKEN_CB_FINAL(PXML_COMMENT, ST_TEXT, 1); - } else if(C == CDASH) { - /* Maintain current state, still waiting for '>' */ - } else { - state = ST_COMMENT; - } - break; - } /* switch(*ptr) */ - } /* for() */ - - /* - * Flush the partially processed chunk, state permitting. - */ - if(p - chunk_start) { - switch (state) { - case ST_COMMENT: - TOKEN_CB(PXML_COMMENT, state, 0); - break; - case ST_TEXT: - TOKEN_CB(PXML_TEXT, state, 0); - break; - default: break; /* a no-op */ - } - } - -finish: - *stateContext = (int)state; - return chunk_start - (const char *)xmlbuf; -} - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/xer_support.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/xer_support.h deleted file mode 100644 index c3a36e7..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/xer_support.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2003, 2004 X/IO Labs, xiolabs.com. - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _XER_SUPPORT_H_ -#define _XER_SUPPORT_H_ - -#include /* Platform-specific types */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Types of data transferred to the application. - */ -typedef enum { - PXML_TEXT, /* Plain text between XML tags. */ - PXML_TAG, /* A tag, starting with '<'. */ - PXML_COMMENT, /* An XML comment, including "". */ - /* - * The following chunk types are reported if the chunk - * terminates the specified XML element. - */ - PXML_TAG_END, /* Tag ended */ - PXML_COMMENT_END /* Comment ended */ -} pxml_chunk_type_e; - -/* - * Callback function that is called by the parser when parsed data is - * available. The _opaque is the pointer to a field containing opaque user - * data specified in pxml_create() call. The chunk type is _type and the text - * data is the piece of buffer identified by _bufid (as supplied to - * pxml_feed() call) starting at offset _offset and of _size bytes size. - * The chunk is NOT '\0'-terminated. - */ -typedef int (pxml_callback_f)(pxml_chunk_type_e _type, - const void *_chunk_data, size_t _chunk_size, void *_key); - -/* - * Parse the given buffer as it were a chunk of XML data. - * Invoke the specified callback each time the meaninful data is found. - * This function returns number of bytes consumed from the bufer. - * It will always be lesser than or equal to the specified _size. - * The next invocation of this function must account the difference. - */ -ssize_t pxml_parse(int *_stateContext, const void *_buf, size_t _size, - pxml_callback_f *cb, void *_key); - -#ifdef __cplusplus -} -#endif - -#endif /* _XER_SUPPORT_H_ */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/kpm/CMakeLists.txt b/e2sim/e2sm_examples/kpm_e2sm/src/kpm/CMakeLists.txt old mode 100644 new mode 100755 index 263d98c..0d9771c --- a/e2sim/e2sm_examples/kpm_e2sm/src/kpm/CMakeLists.txt +++ b/e2sim/e2sm_examples/kpm_e2sm/src/kpm/CMakeLists.txt @@ -19,7 +19,7 @@ add_executable( kpm_sim kpm_callbacks.cpp encode_kpm.cpp ) add_dependencies( kpm_sim asn1_objects ) include_directories(.) -include_directories(../ASN1c) +include_directories(../../asn1c) include_directories(/usr/local/include/e2sim) include_directories(/usr/local/include) diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/kpm/encode_kpm.cpp b/e2sim/e2sm_examples/kpm_e2sm/src/kpm/encode_kpm.cpp index 55abcb5..8bfe7c6 100755 --- a/e2sim/e2sm_examples/kpm_e2sm/src/kpm/encode_kpm.cpp +++ b/e2sim/e2sm_examples/kpm_e2sm/src/kpm/encode_kpm.cpp @@ -18,1827 +18,473 @@ #include #include -#include -#include -#include - -#include "encode_kpm.hpp" - -using namespace std; - -void encode_kpm_function_description(E2SM_KPM_RANfunction_Description_t* ranfunc_desc) { - - printf("kpm0\n"); - - uint8_t *buf = (uint8_t*)"ORAN-E2SM-KPM"; - uint8_t *buf2 = (uint8_t*)"KPM monitor"; - uint8_t *buf3 = (uint8_t*)"OID123"; - long inst = 1; - - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_RANfunction_Description, ranfunc_desc); - - ranfunc_desc->ranFunction_Name.ranFunction_ShortName.size = strlen((char*)buf); - ranfunc_desc->ranFunction_Name.ranFunction_ShortName.buf = (uint8_t*)calloc(strlen((char*)buf), sizeof(uint8_t)); - memcpy(ranfunc_desc->ranFunction_Name.ranFunction_ShortName.buf, buf, ranfunc_desc->ranFunction_Name.ranFunction_ShortName.size); - - // ranfunc_desc->ranFunction_Name.ranFunction_Description = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - ranfunc_desc->ranFunction_Name.ranFunction_Description.buf = (uint8_t*)calloc(1,strlen((char*)buf2)); - memcpy(ranfunc_desc->ranFunction_Name.ranFunction_Description.buf, buf2, strlen((char*)buf2)); - ranfunc_desc->ranFunction_Name.ranFunction_Description.size = strlen((char*)buf2); - ranfunc_desc->ranFunction_Name.ranFunction_Instance = &inst; - - printf("kpm0.9\n"); - - // ranfunc_desc->ranFunction_Name.ranFunction_E2SM_OID = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - ranfunc_desc->ranFunction_Name.ranFunction_E2SM_OID.buf = (uint8_t*)calloc(1,strlen((char*)buf3)); - memcpy(ranfunc_desc->ranFunction_Name.ranFunction_E2SM_OID.buf, buf3, strlen((char*)buf3)); - ranfunc_desc->ranFunction_Name.ranFunction_E2SM_OID.size = strlen((char*)buf3); - - printf("kpm2\n"); - - - RIC_EventTriggerStyle_List_t *trigger_style = - (RIC_EventTriggerStyle_List_t*)calloc(1, sizeof(RIC_EventTriggerStyle_List_t)); - trigger_style->ric_EventTriggerStyle_Type = 1; - uint8_t *buf4 = (uint8_t*)"Periodic report"; - // trigger_style->ric_EventTriggerStyle_Name = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - trigger_style->ric_EventTriggerStyle_Name.buf = (uint8_t*)calloc(1,strlen((char*)buf4)); - memcpy(trigger_style->ric_EventTriggerStyle_Name.buf, buf4, strlen((char*)buf4)); - trigger_style->ric_EventTriggerStyle_Name.size = strlen((char*)buf4); - trigger_style->ric_EventTriggerFormat_Type = 5; - - printf("kpm3\n"); - - ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_EventTriggerStyle_List = - (E2SM_KPM_RANfunction_Description::E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item::E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_EventTriggerStyle_List*)calloc(1,sizeof(E2SM_KPM_RANfunction_Description::E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item::E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_EventTriggerStyle_List)); - - int ret = ASN_SEQUENCE_ADD(&ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_EventTriggerStyle_List->list , trigger_style); - printf("ret is %d\n", ret); - - RIC_ReportStyle_List_t *report_style1 = (RIC_ReportStyle_List_t*)calloc(1, sizeof(RIC_ReportStyle_List_t)); - report_style1->ric_ReportStyle_Type = 1; - - uint8_t *buf5 = (uint8_t*)"O-DU Measurement Container for the 5GC connected deployment"; - - printf("kpm4\n"); - - // report_style1->ric_ReportStyle_Name = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - report_style1->ric_ReportStyle_Name.buf = (uint8_t*)calloc(1,strlen((char*)buf5)); - memcpy(report_style1->ric_ReportStyle_Name.buf, buf5, strlen((char*)buf5)); - report_style1->ric_ReportStyle_Name.size = strlen((char*)buf5); - report_style1->ric_IndicationHeaderFormat_Type = 1; - report_style1->ric_IndicationMessageFormat_Type = 1; - - printf("kpm5\n"); - - RIC_ReportStyle_List_t *report_style2 = (RIC_ReportStyle_List_t*)calloc(1, sizeof(RIC_ReportStyle_List_t)); - report_style2->ric_ReportStyle_Type = 2; - - uint8_t *buf6 = (uint8_t*)"O-DU Measurement Container for the EPC connected deployment"; - - // report_style2->ric_ReportStyle_Name = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - - - report_style2->ric_ReportStyle_Name.buf = (uint8_t*)calloc(1,strlen((char*)buf6)); - memcpy(report_style2->ric_ReportStyle_Name.buf, buf6, strlen((char*)buf6)); - report_style2->ric_ReportStyle_Name.size = strlen((char*)buf6); - report_style2->ric_IndicationHeaderFormat_Type = 1; - report_style2->ric_IndicationMessageFormat_Type = 1; - - printf("kpm6\n"); - - RIC_ReportStyle_List_t *report_style3 = (RIC_ReportStyle_List_t*)calloc(1, sizeof(RIC_ReportStyle_List_t)); - report_style3->ric_ReportStyle_Type = 3; - - uint8_t *buf7 = (uint8_t*)"O-CU-CP Measurement Container for the 5GC connected deployment"; - - // report_style3->ric_ReportStyle_Name = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - report_style3->ric_ReportStyle_Name.buf = (uint8_t*)calloc(1,strlen((char*)buf7)); - memcpy(report_style3->ric_ReportStyle_Name.buf, buf7, strlen((char*)buf7)); - report_style3->ric_ReportStyle_Name.size = strlen((char*)buf7); - report_style3->ric_IndicationHeaderFormat_Type = 1; - report_style3->ric_IndicationMessageFormat_Type = 1; - - RIC_ReportStyle_List_t *report_style4 = (RIC_ReportStyle_List_t*)calloc(1, sizeof(RIC_ReportStyle_List_t)); - report_style4->ric_ReportStyle_Type = 4; - - uint8_t *buf8 = (uint8_t*)"O-CU-CP Measurement Container for the EPC connected deployment"; - - // report_style3->ric_ReportStyle_Name = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - report_style4->ric_ReportStyle_Name.buf = (uint8_t*)calloc(1,strlen((char*)buf8)); - memcpy(report_style4->ric_ReportStyle_Name.buf, buf8, strlen((char*)buf8)); - report_style4->ric_ReportStyle_Name.size = strlen((char*)buf8); - report_style4->ric_IndicationHeaderFormat_Type = 1; - report_style4->ric_IndicationMessageFormat_Type = 1; - - RIC_ReportStyle_List_t *report_style5 = (RIC_ReportStyle_List_t*)calloc(1, sizeof(RIC_ReportStyle_List_t)); - report_style5->ric_ReportStyle_Type = 5; - - uint8_t *buf9 = (uint8_t*)"O-CU-UP Measurement Container for the 5GC connected deployment"; - - // report_style3->ric_ReportStyle_Name = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - report_style5->ric_ReportStyle_Name.buf = (uint8_t*)calloc(1,strlen((char*)buf9)); - memcpy(report_style5->ric_ReportStyle_Name.buf, buf9, strlen((char*)buf9)); - report_style5->ric_ReportStyle_Name.size = strlen((char*)buf9); - report_style5->ric_IndicationHeaderFormat_Type = 1; - report_style5->ric_IndicationMessageFormat_Type = 1; - - - RIC_ReportStyle_List_t *report_style6 = (RIC_ReportStyle_List_t*)calloc(1, sizeof(RIC_ReportStyle_List_t)); - report_style6->ric_ReportStyle_Type = 6; - - uint8_t *buf10 = (uint8_t*)"O-CU-UP Measurement Container for the EPC connected deployment"; - - // report_style3->ric_ReportStyle_Name = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - report_style6->ric_ReportStyle_Name.buf = (uint8_t*)calloc(1,strlen((char*)buf10)); - memcpy(report_style6->ric_ReportStyle_Name.buf, buf10, strlen((char*)buf10)); - report_style6->ric_ReportStyle_Name.size = strlen((char*)buf10); - report_style6->ric_IndicationHeaderFormat_Type = 1; - report_style6->ric_IndicationMessageFormat_Type = 1; - - - ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_ReportStyle_List = - (E2SM_KPM_RANfunction_Description::E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item::E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_ReportStyle_List*)calloc(1,sizeof(E2SM_KPM_RANfunction_Description::E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item::E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_ReportStyle_List)); - - ASN_SEQUENCE_ADD(&ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_ReportStyle_List->list, report_style1); - ASN_SEQUENCE_ADD(&ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_ReportStyle_List->list, report_style2); - ASN_SEQUENCE_ADD(&ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_ReportStyle_List->list, report_style3); - ASN_SEQUENCE_ADD(&ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_ReportStyle_List->list, report_style4); - ASN_SEQUENCE_ADD(&ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_ReportStyle_List->list, report_style5); - ASN_SEQUENCE_ADD(&ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_ReportStyle_List->list, report_style6); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_RANfunction_Description, ranfunc_desc); - -} - -void encode_e2sm_kpm_indication_header(E2SM_KPM_IndicationHeader_t *ihead, uint8_t *plmnid_buf, uint8_t *sst_buf, uint8_t *sd_buf, - long fqival, long qcival, uint8_t *nrcellid_buf, uint8_t *gnbid_buf, int gnbid_unused, - uint8_t *cuupid_buf, uint8_t *duid_buf, uint8_t *cuupname_buf) { - - - //uint8_t *plmnid_buf = (uint8_t*)"747"; - //uint8_t *sst_buf = (uint8_t*)"1"; - //uint8_t *sd_buf = (uint8_t*)"100"; - - E2SM_KPM_IndicationHeader_Format1_t* ind_header = - (E2SM_KPM_IndicationHeader_Format1_t*)calloc(1,sizeof(E2SM_KPM_IndicationHeader_Format1_t)); - - // long fqival = 9; - // long qcival = 9; - - SNSSAI_t *snssai = (SNSSAI_t*)calloc(1, sizeof(SNSSAI_t)); - ASN_STRUCT_RESET(asn_DEF_SNSSAI,snssai); - snssai->sST.buf = (uint8_t*)calloc(1,1); - snssai->sST.size = 1; - memcpy(snssai->sST.buf, sst_buf, 1); - snssai->sD = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - snssai->sD->buf = (uint8_t*)calloc(1,3); - snssai->sD->size = 3; - memcpy(snssai->sD->buf, sd_buf, 3); - - BIT_STRING_t *nrcellid = (BIT_STRING_t*)calloc(1, sizeof(BIT_STRING_t));; - nrcellid->buf = (uint8_t*)calloc(1,5); - nrcellid->size = 5; - memcpy(nrcellid->buf, nrcellid_buf, 5); - /* - nrcellid->buf[0] = 0x22; - nrcellid->buf[1] = 0x5B; - nrcellid->buf[2] = 0xD6; - nrcellid->buf[3] = 0x00; - nrcellid->buf[4] = 0x70; - */ - nrcellid->bits_unused = 4; - - - INTEGER_t *cuup_id = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - // uint8_t buffer[1]; - // buffer[0] = 20000; - cuup_id->buf = (uint8_t*)calloc(1,1); - memcpy(cuup_id->buf, cuupid_buf, 1); - cuup_id->size = 1; - - INTEGER_t *du_id = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - // uint8_t buffer_duid[1]; - // buffer_duid[0] = 20000; - du_id->buf = (uint8_t*)calloc(1,1); - memcpy(du_id->buf, duid_buf, 1); - du_id->size = 1; - - - // uint8_t *buf5 = (uint8_t*)"GNBCUUP5"; - OCTET_STRING_t *cuupname = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - cuupname->size = 8; - cuupname->buf = (uint8_t*)calloc(1,8); - memcpy(cuupname->buf, cuupname_buf, cuupname->size); - - OCTET_STRING_t *plmnid_id_GlobalKPMnode_ID = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnid_id_GlobalKPMnode_ID->size = strlen((char *)plmnid_buf); - plmnid_id_GlobalKPMnode_ID->buf = (uint8_t*)calloc(plmnid_id_GlobalKPMnode_ID->size, sizeof(uint8_t)); - memcpy(plmnid_id_GlobalKPMnode_ID->buf, plmnid_buf, plmnid_id_GlobalKPMnode_ID->size); - - BIT_STRING_t *gnb_bstring_id_GlobalKPMnode_ID = (BIT_STRING_t*)calloc(1, sizeof(BIT_STRING_t)); - gnb_bstring_id_GlobalKPMnode_ID->size = strlen((char *)gnbid_buf); - gnb_bstring_id_GlobalKPMnode_ID->buf = (uint8_t*)calloc(gnb_bstring_id_GlobalKPMnode_ID->size, sizeof(uint8_t)); - memcpy(gnb_bstring_id_GlobalKPMnode_ID->buf, gnbid_buf, gnb_bstring_id_GlobalKPMnode_ID->size); - gnb_bstring_id_GlobalKPMnode_ID->bits_unused = gnbid_unused; - - ind_header->id_GlobalKPMnode_ID = (GlobalKPMnode_ID*)calloc(1,sizeof(GlobalKPMnode_ID)); - ind_header->id_GlobalKPMnode_ID->present = GlobalKPMnode_ID_PR_gNB; - ind_header->id_GlobalKPMnode_ID->choice.gNB.global_gNB_ID.gnb_id.present = GNB_ID_Choice_PR_gnb_ID; - ind_header->id_GlobalKPMnode_ID->choice.gNB.global_gNB_ID.gnb_id.choice.gnb_ID = *gnb_bstring_id_GlobalKPMnode_ID; - ind_header->id_GlobalKPMnode_ID->choice.gNB.global_gNB_ID.plmn_id = *plmnid_id_GlobalKPMnode_ID; - ind_header->id_GlobalKPMnode_ID->choice.gNB.gNB_CU_UP_ID = cuup_id; - if (plmnid_id_GlobalKPMnode_ID) free(plmnid_id_GlobalKPMnode_ID); - if (gnb_bstring_id_GlobalKPMnode_ID) free(gnb_bstring_id_GlobalKPMnode_ID); - - - OCTET_STRING_t *plmnid_nRCGI = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnid_nRCGI->buf = (uint8_t*)calloc(3,1); - plmnid_nRCGI->size = 3; - memcpy(plmnid_nRCGI->buf, plmnid_buf, plmnid_nRCGI->size); - - ind_header->nRCGI = (NRCGI*)calloc(1,sizeof(NRCGI)); - ind_header->nRCGI->pLMN_Identity = *plmnid_nRCGI; - ind_header->nRCGI->nRCellIdentity = *nrcellid; - if (plmnid_nRCGI) free(plmnid_nRCGI); - if (nrcellid) free(nrcellid); - - - OCTET_STRING_t *plmnid = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnid->buf = (uint8_t*)calloc(3,1); - plmnid->size = 3; - memcpy(plmnid->buf, plmnid_buf, plmnid->size); - - ind_header->pLMN_Identity = plmnid; - // memcpy(ind_header->fiveQI, &fqival, 4); - - ind_header->sliceID = snssai; - // memcpy(ind_header->qci, &qcival, 4); - - - ind_header->gNB_Name = (GNB_Name*)calloc(1,sizeof(GNB_Name)); - ind_header->gNB_Name->present = GNB_Name_PR_gNB_CU_UP_Name; - ind_header->gNB_Name->choice.gNB_CU_UP_Name = *cuupname; - if (cuupname) free(cuupname); - - - OCTET_STRING_t *plmnid_global_GNB_ID = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnid_global_GNB_ID->buf = (uint8_t*)calloc(3,1); - plmnid_global_GNB_ID->size = 3; - memcpy(plmnid_global_GNB_ID->buf, plmnid_buf, plmnid_global_GNB_ID->size); - - BIT_STRING_t *gnb_bstring_global_GNB_ID = (BIT_STRING_t*)calloc(1, sizeof(BIT_STRING_t));; - gnb_bstring_global_GNB_ID->buf = (uint8_t*)calloc(1,4); - gnb_bstring_global_GNB_ID->size = 4; - memcpy(gnb_bstring_global_GNB_ID->buf, gnbid_buf, 4); - gnb_bstring_global_GNB_ID->bits_unused = gnbid_unused; - - ind_header->global_GNB_ID = (GlobalgNB_ID*)calloc(1,sizeof(GlobalgNB_ID)); - ind_header->global_GNB_ID->plmn_id = *plmnid_global_GNB_ID; - ind_header->global_GNB_ID->gnb_id.present = GNB_ID_Choice_PR_gnb_ID; - ind_header->global_GNB_ID->gnb_id.choice.gnb_ID = *gnb_bstring_global_GNB_ID; - if (plmnid_global_GNB_ID) free(plmnid_global_GNB_ID); - if (gnb_bstring_global_GNB_ID) free(gnb_bstring_global_GNB_ID); - - - // long msg_type = 2; - // ind_header->message_Type = &msg_type; - ind_header->gNB_DU_ID = du_id; - - - ihead->present = E2SM_KPM_IndicationHeader_PR_indicationHeader_Format1; - ihead->choice.indicationHeader_Format1 = *ind_header; - if (ind_header) free(ind_header); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationHeader, ihead); - -} - - - -void encode_kpm_ocuup_user_level(RAN_Container_t *ranco, - uint8_t *plmnid_buf, - uint8_t *nrcellid_buf, - uint8_t *crnti_buf, - int bytes_dl, - int bytes_ul) { - - uint8_t *buf = (uint8_t*)"2020.06.13 13:01:05.222"; - Timestamp_t *ts = (Timestamp_t*)calloc(1,sizeof(Timestamp_t)); - ts->buf = (uint8_t*)calloc(strlen((char*)buf),1); - ts->size = strlen((char*)buf); - memcpy(ts->buf,buf,ts->size); - - printf("enc1\n"); - - CU_UP_Usage_Report_CellResourceReportItem_t *report_item = - (CU_UP_Usage_Report_CellResourceReportItem_t*)calloc(1,sizeof(CU_UP_Usage_Report_CellResourceReportItem_t)); - - // uint8_t *buf2 = (uint8_t*)"747"; - - OCTET_STRING_t *plmnidstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnidstr->buf = (uint8_t*)calloc(3,1); - plmnidstr->size = 3; - memcpy(plmnidstr->buf, plmnid_buf, plmnidstr->size); - - printf("enc2\n"); - - NRCellIdentity_t *nrcellid = (NRCellIdentity_t*)calloc(1,sizeof(NRCellIdentity_t)); - // uint8_t* buf3 = (uint8_t*)"12340"; - nrcellid->buf = (uint8_t*)calloc(1,5); - memcpy(nrcellid->buf, nrcellid_buf, 5); - nrcellid->size = 5; - nrcellid->bits_unused = 4; - - NRCGI *nrcgi = (NRCGI*)calloc(1,sizeof(NRCGI)); - nrcgi->pLMN_Identity = *plmnidstr; - nrcgi->nRCellIdentity = *nrcellid; - if (plmnidstr) free(plmnidstr); - if (nrcellid) free(nrcellid); - - printf("enc3\n"); - - report_item->nRCGI = *nrcgi; - if (nrcgi) free(nrcgi); - - CU_UP_Usage_Report_UeResourceReportItem *ue_report_item = - (CU_UP_Usage_Report_UeResourceReportItem*)calloc(1,sizeof(CU_UP_Usage_Report_UeResourceReportItem)); - - printf("enc3.2\n"); - - // uint8_t* crnti_str = (uint8_t*)"1111"; - OCTET_STRING *crnti = (OCTET_STRING*)calloc(1,sizeof(OCTET_STRING)); - crnti->buf = (uint8_t*)calloc(1,4); - - printf("enc3.3\n"); - - crnti->size = strlen((char*)crnti_buf); - - printf("enc3.4\n"); - memcpy(crnti->buf, crnti_buf, crnti->size); - - printf("enc4\n"); - - INTEGER_t *bytesdl = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - int array_size_dl; - - if (bytes_dl <= 64) { - array_size_dl = 1; - - uint8_t buffer[array_size_dl]; - buffer[0] = bytes_dl & 0xFF; - bytesdl->buf = (uint8_t*)calloc(1,1); - memcpy(bytesdl->buf,buffer,1); - bytesdl->size = 1; - - } else if (bytes_dl <= 16384) { - array_size_dl = 2; - - uint8_t buffer[array_size_dl]; - buffer[0] = (bytes_dl >> 8) & 0xFF; - buffer[1] = bytes_dl & 0xFF; - bytesdl->buf = (uint8_t*)calloc(2,1); - memcpy(bytesdl->buf,buffer,2); - bytesdl->size = 2; - - } else if (bytes_dl <= 4194304) { - array_size_dl = 3; - - uint8_t buffer[array_size_dl]; - buffer[0] = (bytes_dl >> 16) & 0xFF; - buffer[1] = (bytes_dl >> 8) & 0xFF; - buffer[2] = bytes_dl & 0xFF; - bytesdl->buf = (uint8_t*)calloc(3,1); - memcpy(bytesdl->buf,buffer,3); - bytesdl->size = 3; - - } else if (bytes_dl <= 1073741824) { - array_size_dl = 4; - uint8_t buffer[array_size_dl]; - buffer[0] = (bytes_dl >> 24) & 0xFF; - buffer[1] = (bytes_dl >> 16) & 0xFF; - buffer[2] = (bytes_dl >> 8) & 0xFF; - buffer[3] = bytes_dl & 0xFF; - bytesdl->buf = (uint8_t*)calloc(4,1); - memcpy(bytesdl->buf,buffer,4); - bytesdl->size = 4; - } - - - INTEGER_t *bytesul = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - - int array_size_ul; - - if (bytes_ul <= 64) { - array_size_ul = 1; - - uint8_t buffer[array_size_ul]; - buffer[0] = bytes_ul & 0xFF; - bytesul->buf = (uint8_t*)calloc(1,1); - memcpy(bytesul->buf,buffer,1); - bytesul->size = 1; - - } else if (bytes_ul <= 16384) { - array_size_ul = 2; - - uint8_t buffer[array_size_ul]; - buffer[0] = (bytes_ul >> 8) & 0xFF; - buffer[1] = bytes_ul & 0xFF; - bytesul->buf = (uint8_t*)calloc(2,1); - memcpy(bytesul->buf,buffer,2); - bytesul->size = 2; - - } else if (bytes_ul <= 4194304) { - array_size_ul = 3; - - uint8_t buffer[array_size_ul]; - buffer[0] = (bytes_ul >> 16) & 0xFF; - buffer[1] = (bytes_ul >> 8) & 0xFF; - buffer[2] = bytes_ul & 0xFF; - bytesul->buf = (uint8_t*)calloc(3,1); - memcpy(bytesul->buf,buffer,3); - bytesul->size = 3; - - } else if (bytes_ul <= 1073741824) { - array_size_ul = 4; - uint8_t buffer[array_size_ul]; - buffer[0] = (bytes_ul >> 24) & 0xFF; - buffer[1] = (bytes_ul >> 16) & 0xFF; - buffer[2] = (bytes_ul >> 8) & 0xFF; - buffer[3] = bytes_ul & 0xFF; - bytesul->buf = (uint8_t*)calloc(4,1); - memcpy(bytesul->buf,buffer,4); - bytesul->size = 4; - } - - - - ue_report_item->c_RNTI = *crnti; - ue_report_item->pDCPBytesDL = bytesdl; - ue_report_item->pDCPBytesUL = bytesul; - if (crnti) free(crnti); - - - ASN_SEQUENCE_ADD(&report_item->ueResourceReportList.list, ue_report_item); - - ranco->timestamp = *ts; - ranco->reportContainer.present = RAN_Container__reportContainer_PR_oCU_UP_UE; - ASN_SEQUENCE_ADD(&ranco->reportContainer.choice.oCU_UP_UE.cellResourceReportList.list, report_item); - if (ts) free(ts); - - xer_fprint(stderr, &asn_DEF_RAN_Container, ranco); - -} - -void encode_kpm_ocucp_user_level(RAN_Container_t *ranco, - uint8_t *plmnid_buf, - uint8_t *nrcellid_buf, - uint8_t *crnti_buf, - const uint8_t *serving_buf, - const uint8_t *neighbor_buf) { - uint8_t *buf = (uint8_t*)"2020.06.13 13:01:05.222"; - Timestamp_t *ts = (Timestamp_t*)calloc(1,sizeof(Timestamp_t)); - ts->buf = (uint8_t*)calloc(strlen((char*)buf),1); - ts->size = strlen((char*)buf); - memcpy(ts->buf,buf,ts->size); - - printf("enc1\n"); - - CU_CP_Usage_Report_CellResourceReportItem_t *report_item = - (CU_CP_Usage_Report_CellResourceReportItem_t*)calloc(1,sizeof(CU_CP_Usage_Report_CellResourceReportItem_t)); - - int plmnid_size = strlen((char*)plmnid_buf); - OCTET_STRING_t *plmnidstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnidstr->buf = (uint8_t*)calloc(plmnid_size,1); - plmnidstr->size = plmnid_size; - memcpy(plmnidstr->buf, plmnid_buf, plmnidstr->size); - - printf("enc2\n"); - - NRCellIdentity_t *nrcellid = (NRCellIdentity_t*)calloc(1,sizeof(NRCellIdentity_t)); - - // int nrcellid_size = strlen((char*)nrcellid_buf); - int nrcellid_size = 5; - nrcellid->buf = (uint8_t*)calloc(1, nrcellid_size); - memcpy(nrcellid->buf, nrcellid_buf, nrcellid_size); - nrcellid->size = 5; - nrcellid->bits_unused = 4; - - NRCGI *nrcgi = (NRCGI*)calloc(1,sizeof(NRCGI)); - nrcgi->pLMN_Identity = *plmnidstr; - nrcgi->nRCellIdentity = *nrcellid; - if (plmnidstr) free(plmnidstr); - if (nrcellid) free(nrcellid); - - printf("enc3\n"); - - report_item->nRCGI = *nrcgi; - if (nrcgi) free(nrcgi); - - CU_CP_Usage_Report_UeResourceReportItem *ue_report_item = - (CU_CP_Usage_Report_UeResourceReportItem*)calloc(1,sizeof(CU_CP_Usage_Report_UeResourceReportItem)); - - printf("enc3.2\n"); - - - int crnti_size = strlen((char*)crnti_buf); - OCTET_STRING *crnti = (OCTET_STRING*)calloc(1,sizeof(OCTET_STRING)); - crnti->buf = (uint8_t*)calloc(1, crnti_size); - - printf("enc3.3\n"); - - crnti->size = strlen((char*)crnti_buf); - - printf("enc3.4\n"); - memcpy(crnti->buf, crnti_buf, crnti->size); - - // uint8_t *buf_serving = (uint8_t*)"RSRP10"; - - int serving_buf_len = strlen((char*)serving_buf); - OCTET_STRING_t *servingstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - servingstr->buf = (uint8_t*)calloc(serving_buf_len,1); - servingstr->size = serving_buf_len; - memcpy(servingstr->buf, serving_buf, servingstr->size); - - - int neighbor_buf_len = strlen((char*)neighbor_buf); - // uint8_t *buf_neighbor = (uint8_t*)"-10,-15"; - OCTET_STRING_t *neighborstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - ts->buf = (uint8_t*)calloc(neighbor_buf_len,1); - neighborstr->buf = (uint8_t*)calloc(neighbor_buf_len,1); - neighborstr->size = neighbor_buf_len; - memcpy(neighborstr->buf, neighbor_buf, neighborstr->size); - - ue_report_item->c_RNTI = *crnti; - ue_report_item->serving_Cell_RF_Type = servingstr; - ue_report_item->neighbor_Cell_RF = neighborstr; - if (crnti) free(crnti); - - - ASN_SEQUENCE_ADD(&report_item->ueResourceReportList.list, ue_report_item); - - ranco->timestamp = *ts; - ranco->reportContainer.present = RAN_Container__reportContainer_PR_oCU_CP_UE; - ASN_SEQUENCE_ADD(&ranco->reportContainer.choice.oCU_CP_UE.cellResourceReportList.list, report_item); - if (ts->buf) free(ts->buf); - if (ts) free(ts); - - xer_fprint(stderr, &asn_DEF_RAN_Container, ranco); - - -} - -void encode_kpm_ocucp_user_level(RAN_Container_t *ranco) { - - uint8_t *buf = (uint8_t*)"2020.06.13 13:01:05.222"; - Timestamp_t *ts = (Timestamp_t*)calloc(1,sizeof(Timestamp_t)); - ts->buf = (uint8_t*)calloc(strlen((char*)buf),1); - ts->size = strlen((char*)buf); - memcpy(ts->buf,buf,ts->size); - - printf("enc1\n"); - - CU_CP_Usage_Report_CellResourceReportItem_t *report_item = - (CU_CP_Usage_Report_CellResourceReportItem_t*)calloc(1,sizeof(CU_CP_Usage_Report_CellResourceReportItem_t)); - - uint8_t *buf2 = (uint8_t*)"747"; - - OCTET_STRING_t *plmnidstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnidstr->buf = (uint8_t*)calloc(3,1); - plmnidstr->size = 3; - memcpy(plmnidstr->buf, buf2, plmnidstr->size); - - printf("enc2\n"); - - NRCellIdentity_t *nrcellid = (NRCellIdentity_t*)calloc(1,sizeof(NRCellIdentity_t)); - uint8_t* buf3 = (uint8_t*)"12340"; - nrcellid->buf = (uint8_t*)calloc(1,5); - memcpy(nrcellid->buf, buf3, 5); - nrcellid->size = 5; - nrcellid->bits_unused = 4; - - NRCGI *nrcgi = (NRCGI*)calloc(1,sizeof(NRCGI)); - nrcgi->pLMN_Identity = *plmnidstr; - nrcgi->nRCellIdentity = *nrcellid; - - printf("enc3\n"); - - report_item->nRCGI = *nrcgi; - if (nrcgi) free(nrcgi); - - CU_CP_Usage_Report_UeResourceReportItem *ue_report_item = - (CU_CP_Usage_Report_UeResourceReportItem*)calloc(1,sizeof(CU_CP_Usage_Report_UeResourceReportItem)); - - printf("enc3.2\n"); - - uint8_t* crnti_str = (uint8_t*)"1111"; - OCTET_STRING *crnti = (OCTET_STRING*)calloc(1,sizeof(OCTET_STRING)); - crnti->buf = (uint8_t*)calloc(1,4); - - printf("enc3.3\n"); - - crnti->size = strlen((char*)crnti_str); - - printf("enc3.4\n"); - memcpy(crnti->buf, crnti_str, crnti->size); - - uint8_t *buf_serving = (uint8_t*)"RSRP10"; - OCTET_STRING_t *servingstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - servingstr->buf = (uint8_t*)calloc(6,1); - servingstr->size = 6; - memcpy(servingstr->buf, buf_serving, servingstr->size); - - uint8_t *buf_neighbor = (uint8_t*)"-10,-15"; - OCTET_STRING_t *neighborstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - neighborstr->buf = (uint8_t*)calloc(7,1); - neighborstr->size = 7; - memcpy(neighborstr->buf, buf_neighbor, neighborstr->size); - - ue_report_item->c_RNTI = *crnti; - ue_report_item->serving_Cell_RF_Type = servingstr; - ue_report_item->neighbor_Cell_RF = neighborstr; - - - ASN_SEQUENCE_ADD(&report_item->ueResourceReportList.list, ue_report_item); - - ranco->timestamp = *ts; - ranco->reportContainer.present = RAN_Container__reportContainer_PR_oCU_CP_UE; - ASN_SEQUENCE_ADD(&ranco->reportContainer.choice.oCU_CP_UE.cellResourceReportList.list, report_item); - - xer_fprint(stderr, &asn_DEF_RAN_Container, ranco); - -} - - -void encode_kpm_odu_user_level(RAN_Container_t *ranco, - uint8_t *plmnid_buf, - uint8_t *nrcellid_buf, - uint8_t *crnti_buf, - long prb_usage_dl, - long prb_usage_ul) { - - uint8_t *buf = (uint8_t*)"2020.06.13 13:01:05.222"; - Timestamp_t *ts = (Timestamp_t*)calloc(1,sizeof(Timestamp_t)); - ts->buf = (uint8_t*)calloc(strlen((char*)buf),1); - ts->size = strlen((char*)buf); - memcpy(ts->buf,buf,ts->size); - - printf("enc1\n"); - - DU_Usage_Report_CellResourceReportItem_t *report_item = - (DU_Usage_Report_CellResourceReportItem_t*)calloc(1,sizeof(DU_Usage_Report_CellResourceReportItem_t)); - - // uint8_t *buf2 = (uint8_t*)"747"; - - int plmnid_size = strlen((char*)plmnid_buf); - OCTET_STRING_t *plmnidstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnidstr->buf = (uint8_t*)calloc(plmnid_size,1); - plmnidstr->size = plmnid_size; - memcpy(plmnidstr->buf, plmnid_buf, plmnidstr->size); - - printf("enc2\n"); - - NRCellIdentity_t *nrcellid = (NRCellIdentity_t*)calloc(1,sizeof(NRCellIdentity_t)); - - // int nrcellid_size = strlen((char*)nrcellid_buf); - int nrcellid_size = 5; - nrcellid->buf = (uint8_t*)calloc(1,nrcellid_size); - memcpy(nrcellid->buf, nrcellid_buf, nrcellid_size); - nrcellid->size = nrcellid_size; - nrcellid->bits_unused = 4; - - NRCGI *nrcgi = (NRCGI*)calloc(1,sizeof(NRCGI)); - nrcgi->pLMN_Identity = *plmnidstr; - nrcgi->nRCellIdentity = *nrcellid; - if (plmnidstr) free(plmnidstr); - if (nrcellid) free(nrcellid); - - printf("enc3\n"); - - report_item->nRCGI = *nrcgi; - if (nrcgi) free(nrcgi); - - printf("enc3.1\n"); - - DU_Usage_Report_UeResourceReportItem *ue_report_item = - (DU_Usage_Report_UeResourceReportItem*)calloc(1,sizeof(DU_Usage_Report_UeResourceReportItem)); - - printf("enc3.2\n"); - - int crnti_size = strlen((char*)crnti_buf); - - OCTET_STRING *crnti = (OCTET_STRING*)calloc(1,sizeof(OCTET_STRING)); - crnti->buf = (uint8_t*)calloc(1,crnti_size); - - printf("enc3.3\n"); - - crnti->size = strlen((char*)crnti_buf); - - printf("enc3.4\n"); - memcpy(crnti->buf, crnti_buf, crnti->size); - - printf("enc4\n"); - - long *p_prb_usage_dl = (long*)calloc(1, sizeof(long)); - long *p_prb_usage_ul = (long*)calloc(1, sizeof(long)); - *p_prb_usage_dl = (long)prb_usage_dl; - *p_prb_usage_ul = (long)prb_usage_ul; - - ue_report_item->c_RNTI = *crnti; - ue_report_item->dl_PRBUsage = p_prb_usage_dl; - if (crnti) free(crnti); - - printf("enc5\n"); - - ue_report_item->ul_PRBUsage = p_prb_usage_ul; - - printf("enc6\n"); - - ASN_SEQUENCE_ADD(&report_item->ueResourceReportList.list, ue_report_item); - - - ranco->timestamp = *ts; - ranco->reportContainer.present = RAN_Container__reportContainer_PR_oDU_UE; - ASN_SEQUENCE_ADD(&ranco->reportContainer.choice.oDU_UE.cellResourceReportList.list, report_item); - if (ts) free(ts); - - xer_fprint(stderr, &asn_DEF_RAN_Container, ranco); - - -} - -void encode_kpm_report_rancontainer_du_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage, - uint8_t *plmnid_buf, - uint8_t *nrcellid_buf, - uint8_t *crnti_buf, - long prb_usage_dl, - long prb_usage_ul) { - - RAN_Container_t *ranco = (RAN_Container_t*)calloc(1,sizeof(RAN_Container_t)); - encode_kpm_odu_user_level(ranco,plmnid_buf,nrcellid_buf,crnti_buf,prb_usage_dl,prb_usage_ul); - - printf("After creating RAN container, xer printing it\n"); - xer_fprint(stderr, &asn_DEF_RAN_Container, ranco); - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->theRANContainer = ranco; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - int ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage__indicationMessage_PR pres = E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1; - - indicationmessage->indicationMessage.present = pres; - - indicationmessage->indicationMessage.choice.indicationMessage_Format1 = *format; - if (format) free(format); - - char error_buf[300] = {0, }; - size_t errlen = 0; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - asn_codec_ctx_t *opt_cod; - - uint8_t e2smbuffer[8192] = {0, }; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192] = {0, }; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - -} - -void encode_kpm_report_rancontainer_cucp_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage, - uint8_t *plmnid_buf, - uint8_t *nrcellid_buf, - uint8_t *crnti_buf, - const uint8_t *serving_buf, - const uint8_t *neighbor_buf) { - - RAN_Container_t *ranco = (RAN_Container_t*)calloc(1,sizeof(RAN_Container_t)); - encode_kpm_ocucp_user_level(ranco, plmnid_buf, - nrcellid_buf, crnti_buf, - serving_buf, neighbor_buf); - - printf("After creating RAN container, xer printing it\n"); - xer_fprint(stderr, &asn_DEF_RAN_Container, ranco); - - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->theRANContainer = ranco; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - int ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage__indicationMessage_PR pres = E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1; - - indicationmessage->indicationMessage.present = pres; - - indicationmessage->indicationMessage.choice.indicationMessage_Format1 = *format; - if (format) free(format); - - char error_buf[300] = {0, }; - size_t errlen = 0; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - asn_codec_ctx_t *opt_cod; - - uint8_t e2smbuffer[8192] = {0, }; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192] = {0, }; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - -} - - -void encode_kpm_report_rancontainer_cucp(E2SM_KPM_IndicationMessage_t* indicationmessage) { - - RAN_Container_t *ranco = (RAN_Container_t*)calloc(1,sizeof(RAN_Container_t)); - encode_kpm_ocucp_user_level(ranco); - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->theRANContainer = ranco; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - int ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage__indicationMessage_PR pres = E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1; - - indicationmessage->indicationMessage.present = pres; - - indicationmessage->indicationMessage.choice.indicationMessage_Format1 = *format; - if (format) free(format); - - char error_buf[300] = {0, }; - size_t errlen = 0; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - // xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - asn_codec_ctx_t *opt_cod; - - uint8_t e2smbuffer[8192] = {0, }; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192] = {0, }; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - -} - -void encode_kpm_report_rancontainer_cuup_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage, - uint8_t *plmnid_buf, - uint8_t *nrcellid_buf, - uint8_t *crnti_buf, - int pdcp_bytesdl, - int pdcp_bytesul) { - - RAN_Container_t *ranco = (RAN_Container_t*)calloc(1,sizeof(RAN_Container_t)); - encode_kpm_ocuup_user_level(ranco,plmnid_buf,nrcellid_buf,crnti_buf,pdcp_bytesdl,pdcp_bytesul); - - fprintf(stderr, "After creating RAN container, xer printing it\n"); - xer_fprint(stderr, &asn_DEF_RAN_Container, ranco); - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->theRANContainer = ranco; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - int ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage__indicationMessage_PR pres = E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1; - - indicationmessage->indicationMessage.present = pres; - - indicationmessage->indicationMessage.choice.indicationMessage_Format1 = *format; - if (format) free(format); - - char error_buf[300] = {0, }; - size_t errlen = 0; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - asn_codec_ctx_t *opt_cod; - - uint8_t e2smbuffer[8192] = {0, }; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192] = {0, }; - size_t e2smbuffer_size2 = 8192; - - // xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - -} - -void encode_kpm_report_rancontainer_cuup(E2SM_KPM_IndicationMessage_t* indicationmessage) { - - RAN_Container_t *ranco = (RAN_Container_t*)calloc(1,sizeof(RAN_Container_t)); - //encode_kpm_ocuup_user_level(ranco); - - - uint8_t *buf = (uint8_t*)"2020.06.13 13:01:05.222"; - Timestamp_t *ts = (Timestamp_t*)calloc(1,sizeof(Timestamp_t)); - ts->buf = (uint8_t*)calloc(strlen((char*)buf),1); - ts->size = strlen((char*)buf); - memcpy(ts->buf,buf,ts->size); - - printf("enc1\n"); - - CU_CP_Usage_Report_CellResourceReportItem_t *report_item = - (CU_CP_Usage_Report_CellResourceReportItem_t*)calloc(1,sizeof(CU_CP_Usage_Report_CellResourceReportItem_t)); - - uint8_t *buf2 = (uint8_t*)"747"; - - OCTET_STRING_t *plmnidstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnidstr->buf = (uint8_t*)calloc(3,1); - plmnidstr->size = 3; - memcpy(plmnidstr->buf, buf2, plmnidstr->size); - - printf("enc2\n"); - - NRCellIdentity_t *nrcellid = (NRCellIdentity_t*)calloc(1,sizeof(NRCellIdentity_t)); - uint8_t* buf3 = (uint8_t*)"12340"; - nrcellid->buf = (uint8_t*)calloc(1,5); - memcpy(nrcellid->buf, buf3, 5); - nrcellid->size = 5; - nrcellid->bits_unused = 4; - - NRCGI *nrcgi = (NRCGI*)calloc(1,sizeof(NRCGI)); - nrcgi->pLMN_Identity = *plmnidstr; - nrcgi->nRCellIdentity = *nrcellid; - if (plmnidstr) free(plmnidstr); - if (nrcellid) free(nrcellid); - - printf("enc3\n"); - - report_item->nRCGI = *nrcgi; - if (nrcgi) free(nrcgi); - - CU_CP_Usage_Report_UeResourceReportItem *ue_report_item = - (CU_CP_Usage_Report_UeResourceReportItem*)calloc(1,sizeof(CU_CP_Usage_Report_UeResourceReportItem)); - - printf("enc3.2\n"); - - uint8_t* crnti_str = (uint8_t*)"1111"; - OCTET_STRING *crnti = (OCTET_STRING*)calloc(1,sizeof(OCTET_STRING)); - crnti->buf = (uint8_t*)calloc(1,4); - - printf("enc3.3\n"); - - crnti->size = strlen((char*)crnti_str); - - printf("enc3.4\n"); - memcpy(crnti->buf, crnti_str, crnti->size); - - uint8_t *buf_serving = (uint8_t*)"RSRP10"; - OCTET_STRING_t *servingstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - servingstr->buf = (uint8_t*)calloc(6,1); - servingstr->size = 6; - memcpy(servingstr->buf, buf_serving, servingstr->size); - - uint8_t *buf_neighbor = (uint8_t*)"-10,-15"; - OCTET_STRING_t *neighborstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - neighborstr->buf = (uint8_t*)calloc(7,1); - neighborstr->size = 7; - memcpy(neighborstr->buf, buf_neighbor, neighborstr->size); - - ue_report_item->c_RNTI = *crnti; - ue_report_item->serving_Cell_RF_Type = servingstr; - ue_report_item->neighbor_Cell_RF = neighborstr; - - - ASN_SEQUENCE_ADD(&report_item->ueResourceReportList.list, ue_report_item); - - ranco->timestamp = *ts; - ranco->reportContainer.present = RAN_Container__reportContainer_PR_oCU_CP_UE; - ASN_SEQUENCE_ADD(&ranco->reportContainer.choice.oCU_CP_UE.cellResourceReportList.list, report_item); - - // xer_fprint(stderr, &asn_DEF_RAN_Container, ranco); - - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->theRANContainer = ranco; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - int ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage__indicationMessage_PR pres = E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1; - - indicationmessage->indicationMessage.present = pres; - - indicationmessage->indicationMessage.choice.indicationMessage_Format1 = *format; - if (format) free(format); - - char error_buf[300] = {0, }; - size_t errlen = 0; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - asn_codec_ctx_t *opt_cod; - - uint8_t e2smbuffer[8192] = {0, }; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192] = {0, }; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - -} - -void encode_kpm_report_style1_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage, - long fiveqi, - long dl_prb_usage, - long ul_prb_usage, - uint8_t* sst_buf, - uint8_t* sd_buf, - uint8_t* plmnid_buf, - uint8_t* nrcellid_buf, - long *dl_prbs, - long *ul_prbs) { - - - asn_codec_ctx_t *opt_cod; - - FQIPERSlicesPerPlmnPerCellListItem_t *fqi_item = - (FQIPERSlicesPerPlmnPerCellListItem_t*)calloc(1,sizeof(FQIPERSlicesPerPlmnPerCellListItem_t)); - - long *p_dl_prb_usage = (long*)calloc(1, sizeof(long)); - long *p_ul_prb_usage = (long*)calloc(1, sizeof(long)); - *p_dl_prb_usage = (long)dl_prb_usage; - *p_ul_prb_usage = (long)ul_prb_usage; - - fqi_item->fiveQI = fiveqi; - fqi_item->dl_PRBUsage = p_dl_prb_usage; - fqi_item->ul_PRBUsage = p_ul_prb_usage; - - uint8_t *buf1 = (uint8_t*)"4"; - - // std::string sd = "SD1"; - // std::vector sdvec(sd.begin(), sd.end()); - // uint8_t *bufz = &sdvec[0]; - uint8_t *bufz = (uint8_t*)"SD1"; - - SNSSAI_t *snssai = (SNSSAI_t*)calloc(1, sizeof(SNSSAI_t)); - ASN_STRUCT_RESET(asn_DEF_SNSSAI,snssai); - snssai->sST.buf = (uint8_t*)calloc(1,1); - snssai->sST.size = 1; - memcpy(snssai->sST.buf, sst_buf, 1); - snssai->sD = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - snssai->sD->buf = (uint8_t*)calloc(1,3); - snssai->sD->size = 3; - memcpy(snssai->sD->buf, sd_buf, 3); - - - SlicePerPlmnPerCellListItem_t *sliceitem = - (SlicePerPlmnPerCellListItem_t*)calloc(1,sizeof(SlicePerPlmnPerCellListItem_t)); - sliceitem->sliceID = *snssai; - ASN_SEQUENCE_ADD(&sliceitem->fQIPERSlicesPerPlmnPerCellList.list, fqi_item); - if (snssai) free(snssai); - - uint8_t *buf2 = (uint8_t*)"747"; - - OCTET_STRING_t *plmnid = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnid->buf = (uint8_t*)calloc(3,1); - plmnid->size = 3; - memcpy(plmnid->buf, plmnid_buf, plmnid->size); - - ServedPlmnPerCellListItem_t *percellitem1 = - (ServedPlmnPerCellListItem_t*)calloc(1,sizeof(ServedPlmnPerCellListItem_t)); - percellitem1->pLMN_Identity = *plmnid; - percellitem1->du_PM_5GC = (FGC_DU_PM_Container*)calloc(1,sizeof(FGC_DU_PM_Container)); - ASN_SEQUENCE_ADD(&percellitem1->du_PM_5GC->slicePerPlmnPerCellList.list, sliceitem); - if (plmnid) free(plmnid); - - OCTET_STRING_t *plmnidstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnidstr->buf = (uint8_t*)calloc(3,1); - plmnidstr->size = 3; - memcpy(plmnidstr->buf, plmnid_buf, plmnidstr->size); - - printf("enc2\n"); - - NRCellIdentity_t *nrcellid = (NRCellIdentity_t*)calloc(1,sizeof(NRCellIdentity_t)); - uint8_t* buf3 = (uint8_t*)"12340"; - nrcellid->buf = (uint8_t*)calloc(1,5); - memcpy(nrcellid->buf, nrcellid_buf, 5); - nrcellid->size = 5; - nrcellid->bits_unused = 4; - - NRCGI *nrcgi = (NRCGI*)calloc(1,sizeof(NRCGI)); - nrcgi->pLMN_Identity = *plmnidstr; - nrcgi->nRCellIdentity = *nrcellid; - if (plmnidstr) free(plmnidstr); - if (nrcellid) free(nrcellid); - - - CellResourceReportListItem_t *listitem1 = (CellResourceReportListItem_t*)calloc(1,sizeof(CellResourceReportListItem_t)); - listitem1->nRCGI = *nrcgi; - listitem1->dl_TotalofAvailablePRBs = dl_prbs; - listitem1->ul_TotalofAvailablePRBs = ul_prbs; - ASN_SEQUENCE_ADD(&listitem1->servedPlmnPerCellList.list, percellitem1); - if (nrcgi) free(nrcgi); - - - ODU_PF_Container_t *ducont = (ODU_PF_Container_t*)calloc(1,sizeof(ODU_PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_ODU_PF_Container, ducont); - int ret = ASN_SEQUENCE_ADD(&ducont->cellResourceReportList.list, listitem1); - - PF_Container_PR pres1 = PF_Container_PR_oDU; - - PF_Container_t *pfcontainer = (PF_Container_t*)calloc(1, sizeof(PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_PF_Container, pfcontainer); - pfcontainer->present = pres1; - pfcontainer->choice.oDU = *ducont; - if (ducont) free(ducont); - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->performanceContainer = pfcontainer; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage__indicationMessage_PR pres = E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1; - - indicationmessage->indicationMessage.present = pres; - - indicationmessage->indicationMessage.choice.indicationMessage_Format1 = *format; - if (format) free(format); - - char error_buf[300] = {0, }; - size_t errlen = 0; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - - uint8_t e2smbuffer[8192] = {0, }; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192] = {0, }; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - -} - - -void encode_kpm_report_style1(E2SM_KPM_IndicationMessage_t* indicationmessage) { - - long fiveqi = 8; - long dl_prb_usage = 50; - long ul_prb_usage = 70; - - asn_codec_ctx_t *opt_cod; - - FQIPERSlicesPerPlmnPerCellListItem_t *fqi_item = - (FQIPERSlicesPerPlmnPerCellListItem_t*)calloc(1,sizeof(FQIPERSlicesPerPlmnPerCellListItem_t)); - fqi_item->fiveQI = fiveqi; - fqi_item->dl_PRBUsage = &dl_prb_usage; - fqi_item->ul_PRBUsage = &ul_prb_usage; - - uint8_t *buf1 = (uint8_t*)"4"; - // std::string sd = "SD1"; - // std::vector sdvec(sd.begin(), sd.end()); - // uint8_t *bufz = &sdvec[0]; - uint8_t *bufz = (uint8_t*)"SD1"; - - SNSSAI_t *snssai = (SNSSAI_t*)calloc(1, sizeof(SNSSAI_t)); - ASN_STRUCT_RESET(asn_DEF_SNSSAI,snssai); - snssai->sST.buf = (uint8_t*)calloc(1,1); - snssai->sST.size = 1; - memcpy(snssai->sST.buf, buf1, 1); - snssai->sD = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - snssai->sD->buf = (uint8_t*)calloc(1,3); - snssai->sD->size = 3; - memcpy(snssai->sD->buf, bufz, 3); - - - SlicePerPlmnPerCellListItem_t *sliceitem = - (SlicePerPlmnPerCellListItem_t*)calloc(1,sizeof(SlicePerPlmnPerCellListItem_t)); - sliceitem->sliceID = *snssai; - ASN_SEQUENCE_ADD(&sliceitem->fQIPERSlicesPerPlmnPerCellList.list, fqi_item); - if (snssai) free(snssai); - - uint8_t *buf2 = (uint8_t*)"747"; - - OCTET_STRING_t *plmnid = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnid->buf = (uint8_t*)calloc(3,1); - plmnid->size = 3; - memcpy(plmnid->buf, buf2, plmnid->size); - - ServedPlmnPerCellListItem_t *percellitem1 = - (ServedPlmnPerCellListItem_t*)calloc(1,sizeof(ServedPlmnPerCellListItem_t)); - percellitem1->pLMN_Identity = *plmnid; - percellitem1->du_PM_5GC = (FGC_DU_PM_Container*)calloc(1,sizeof(FGC_DU_PM_Container)); - ASN_SEQUENCE_ADD(&percellitem1->du_PM_5GC->slicePerPlmnPerCellList.list, sliceitem); - - OCTET_STRING_t *plmnidstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnidstr->buf = (uint8_t*)calloc(3,1); - plmnidstr->size = 3; - memcpy(plmnidstr->buf, buf2, plmnidstr->size); - - printf("enc2\n"); - - NRCellIdentity_t *nrcellid = (NRCellIdentity_t*)calloc(1,sizeof(NRCellIdentity_t)); - uint8_t* buf3 = (uint8_t*)"12340"; - nrcellid->buf = (uint8_t*)calloc(1,5); - memcpy(nrcellid->buf, buf3, 5); - nrcellid->size = 5; - nrcellid->bits_unused = 4; - - NRCGI *nrcgi = (NRCGI*)calloc(1,sizeof(NRCGI)); - nrcgi->pLMN_Identity = *plmnidstr; - nrcgi->nRCellIdentity = *nrcellid; - if (plmnidstr) free(plmnidstr); - if (nrcellid) free(nrcellid); - - long dl_prbs = (long)100; - long ul_prbs = (long)120; - - CellResourceReportListItem_t *listitem1 = (CellResourceReportListItem_t*)calloc(1,sizeof(CellResourceReportListItem_t)); - listitem1->nRCGI = *nrcgi; - listitem1->dl_TotalofAvailablePRBs = &dl_prbs; - listitem1->ul_TotalofAvailablePRBs = &ul_prbs; - ASN_SEQUENCE_ADD(&listitem1->servedPlmnPerCellList.list, percellitem1); - if (nrcgi) free(nrcgi); - - - ODU_PF_Container_t *ducont = (ODU_PF_Container_t*)calloc(1,sizeof(ODU_PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_ODU_PF_Container, ducont); - int ret = ASN_SEQUENCE_ADD(&ducont->cellResourceReportList.list, listitem1); - - PF_Container_PR pres1 = PF_Container_PR_oDU; - - PF_Container_t *pfcontainer = (PF_Container_t*)calloc(1, sizeof(PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_PF_Container, pfcontainer); - pfcontainer->present = pres1; - pfcontainer->choice.oDU = *ducont; - if (ducont) free(ducont); - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->performanceContainer = pfcontainer; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage__indicationMessage_PR pres = E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1; - - indicationmessage->indicationMessage.present = pres; +#include - indicationmessage->indicationMessage.choice.indicationMessage_Format1 = *format; - if (format) free(format); +#include +#include - char error_buf[300] = {0, }; - size_t errlen = 0; +#include "encode_kpm.hpp" +#include "e2sim_defs.h" +using namespace std; - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); +void encode_kpm_function_description(E2SM_KPM_RANfunction_Description_t* ranfunc_desc) { + uint8_t* short_name = (uint8_t*)"ORAN-E2SM-KPM"; + uint8_t* func_desc = (uint8_t*)"KPM Monitor"; + uint8_t* e2sm_odi = (uint8_t*)"OID123"; - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - + LOG_I("short_name: %s, func_desc: %s, e2sm_odi: %s", short_name, func_desc, e2sm_odi); - uint8_t e2smbuffer[8192] = {0, }; - size_t e2smbuffer_size = 8192; + long inst = 1; - uint8_t e2smbuffer2[8192] = {0, }; - size_t e2smbuffer_size2 = 8192; + ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_RANfunction_Description, ranfunc_desc); - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); + ranfunc_desc->ranFunction_Name.ranFunction_ShortName.size = strlen((char*)short_name); + ranfunc_desc->ranFunction_Name.ranFunction_ShortName.buf = + (uint8_t*)calloc(strlen((char*)short_name), sizeof(uint8_t)); + memcpy(ranfunc_desc->ranFunction_Name.ranFunction_ShortName.buf, short_name, + ranfunc_desc->ranFunction_Name.ranFunction_ShortName.size); + + ranfunc_desc->ranFunction_Name.ranFunction_Description.buf = + (uint8_t*)calloc(1, strlen((char*)func_desc)); + memcpy(ranfunc_desc->ranFunction_Name.ranFunction_Description.buf, func_desc, + strlen((char*)func_desc)); + ranfunc_desc->ranFunction_Name.ranFunction_Description.size = strlen((char*)func_desc); + ranfunc_desc->ranFunction_Name.ranFunction_Instance = &inst; - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); + ranfunc_desc->ranFunction_Name.ranFunction_E2SM_OID.buf = + (uint8_t*)calloc(1, strlen((char*)e2sm_odi)); + memcpy(ranfunc_desc->ranFunction_Name.ranFunction_E2SM_OID.buf, e2sm_odi, + strlen((char*)e2sm_odi)); + ranfunc_desc->ranFunction_Name.ranFunction_E2SM_OID.size = strlen((char*)e2sm_odi); + LOG_I("Initialize event trigger style list structure"); -} + RIC_EventTriggerStyle_Item_t* trigger_style = + (RIC_EventTriggerStyle_Item_t*)calloc(1, sizeof(RIC_EventTriggerStyle_Item_t)); + trigger_style->ric_EventTriggerStyle_Type = 1; + uint8_t* style_name = (uint8_t*)"Periodic Report"; + trigger_style->ric_EventTriggerStyle_Name.buf = (uint8_t*)calloc(1, strlen((char*)style_name)); + memcpy(trigger_style->ric_EventTriggerStyle_Name.buf, style_name, strlen((char*)style_name)); + trigger_style->ric_EventTriggerStyle_Name.size = strlen((char*)style_name); + trigger_style->ric_EventTriggerFormat_Type = 5; -void encode_kpm_report_style5_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage, - uint8_t *gnbcuupname_buf, - int bytes_dl, - int bytes_ul, - uint8_t *sst_buf, - uint8_t *sd_buf, - uint8_t *plmnid_buf) { - - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); + ranfunc_desc->ric_EventTriggerStyle_List = + (E2SM_KPM_RANfunction_Description:: + E2SM_KPM_RANfunction_Description__ric_EventTriggerStyle_List*) + calloc(1, sizeof(E2SM_KPM_RANfunction_Description:: + E2SM_KPM_RANfunction_Description__ric_EventTriggerStyle_List)); + int ret = ASN_SEQUENCE_ADD(&ranfunc_desc->ric_EventTriggerStyle_List->list, trigger_style); - // uint8_t *buf = (uint8_t*)"GNBCUUP5"; - OCTET_STRING_t *gnbcuupname = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - gnbcuupname->size = 8; - gnbcuupname->buf = (uint8_t*)calloc(1,8); - memcpy(gnbcuupname->buf, gnbcuupname_buf, gnbcuupname->size); + LOG_I("Initialize report style structure"); + MeasurementInfo_Action_List_t* measInfo_Action_List = + (MeasurementInfo_Action_List_t*)calloc(1, sizeof(MeasurementInfo_Action_List_t)); + uint8_t* measured_metrics[] = {(uint8_t*)"CQI", (uint8_t*)"RSRP", (uint8_t*)"RSRQ"}; - //We need to convert bytes_dl into array of uint8_t + for (int i = 0; i < 3; i++) { + uint8_t* metrics = measured_metrics[i]; + MeasurementInfo_Action_Item_t* measItem = + (MeasurementInfo_Action_Item_t*)calloc(1, sizeof(MeasurementInfo_Action_Item_t)); + measItem->measName.buf = (uint8_t*)calloc(1, strlen((char*)metrics)); + memcpy(measItem->measName.buf, metrics, strlen((char*)metrics)); - int array_size_dl; + measItem->measName.size = strlen((char*)metrics); - INTEGER_t *bytesdl = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); + measItem->measID = (MeasurementTypeID_t*)calloc(1, sizeof(MeasurementTypeID_t)); + *measItem->measID = i; - if (bytes_dl <= 64) { - array_size_dl = 1; - - uint8_t buffer[array_size_dl]; - buffer[0] = bytes_dl & 0xFF; - bytesdl->buf = (uint8_t*)calloc(1,1); - memcpy(bytesdl->buf,buffer,1); - bytesdl->size = 1; - - } else if (bytes_dl <= 16384) { - array_size_dl = 2; - - uint8_t buffer[array_size_dl]; - buffer[0] = (bytes_dl >> 8) & 0xFF; - buffer[1] = bytes_dl & 0xFF; - bytesdl->buf = (uint8_t*)calloc(2,1); - memcpy(bytesdl->buf,buffer,2); - bytesdl->size = 2; - - } else if (bytes_dl <= 4194304) { - array_size_dl = 3; - - uint8_t buffer[array_size_dl]; - buffer[0] = (bytes_dl >> 16) & 0xFF; - buffer[1] = (bytes_dl >> 8) & 0xFF; - buffer[2] = bytes_dl & 0xFF; - bytesdl->buf = (uint8_t*)calloc(3,1); - memcpy(bytesdl->buf,buffer,3); - bytesdl->size = 3; - - } else if (bytes_dl <= 1073741824) { - array_size_dl = 4; - uint8_t buffer[array_size_dl]; - buffer[0] = (bytes_dl >> 24) & 0xFF; - buffer[1] = (bytes_dl >> 16) & 0xFF; - buffer[2] = (bytes_dl >> 8) & 0xFF; - buffer[3] = bytes_dl & 0xFF; - bytesdl->buf = (uint8_t*)calloc(4,1); - memcpy(bytesdl->buf,buffer,4); - bytesdl->size = 4; + ASN_SEQUENCE_ADD(&measInfo_Action_List->list, measItem); } - - - //We need to convert bytes_ul into array of uint8_t - INTEGER_t *bytesul = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - int array_size_ul; - - if (bytes_ul <= 64) { - array_size_ul = 1; - - uint8_t buffer[array_size_ul]; - buffer[0] = bytes_ul & 0xFF; - bytesul->buf = (uint8_t*)calloc(1,1); - memcpy(bytesul->buf,buffer,1); - bytesul->size = 1; - - } else if (bytes_ul <= 16384) { - array_size_ul = 2; - - uint8_t buffer[array_size_ul]; - buffer[0] = (bytes_ul >> 8) & 0xFF; - buffer[1] = bytes_ul & 0xFF; - bytesul->buf = (uint8_t*)calloc(2,1); - memcpy(bytesul->buf,buffer,2); - bytesul->size = 2; - - } else if (bytes_ul <= 4194304) { - array_size_ul = 3; - - uint8_t buffer[array_size_ul]; - buffer[0] = (bytes_ul >> 16) & 0xFF; - buffer[1] = (bytes_ul >> 8) & 0xFF; - buffer[2] = bytes_ul & 0xFF; - bytesul->buf = (uint8_t*)calloc(3,1); - memcpy(bytesul->buf,buffer,3); - bytesul->size = 3; - - } else if (bytes_ul <= 1073741824) { - array_size_ul = 4; - uint8_t buffer[array_size_ul]; - buffer[0] = (bytes_ul >> 24) & 0xFF; - buffer[1] = (bytes_ul >> 16) & 0xFF; - buffer[2] = (bytes_ul >> 8) & 0xFF; - buffer[3] = bytes_ul & 0xFF; - bytesul->buf = (uint8_t*)calloc(4,1); - memcpy(bytesul->buf,buffer,4); - bytesul->size = 4; - } - - long fqi = 9; - FQIPERSlicesPerPlmnListItem_t *fqilistitem = (FQIPERSlicesPerPlmnListItem_t*)calloc(1, sizeof(FQIPERSlicesPerPlmnListItem_t)); - ASN_STRUCT_RESET(asn_DEF_FQIPERSlicesPerPlmnListItem, fqilistitem); - fqilistitem->fiveQI = fqi; - fqilistitem->pDCPBytesDL = bytesdl; - fqilistitem->pDCPBytesUL = bytesul; + RIC_ReportStyle_Item_t* report_style1 = + (RIC_ReportStyle_Item_t*)calloc(1, sizeof(RIC_ReportStyle_Item_t)); + report_style1->ric_ReportStyle_Type = 1; + uint8_t* buf5 = (uint8_t*)"E2 Node Measurement"; + report_style1->ric_ReportStyle_Name.buf = (uint8_t*)calloc(1, strlen((char*)buf5)); + memcpy(report_style1->ric_ReportStyle_Name.buf, buf5, strlen((char*)buf5)); + report_style1->ric_ReportStyle_Name.size = strlen((char*)buf5); + report_style1->ric_ActionFormat_Type = 1; + report_style1->ric_IndicationHeaderFormat_Type = 1; + report_style1->ric_IndicationMessageFormat_Type = 1; + report_style1->measInfo_Action_List = *measInfo_Action_List; - uint8_t *buf1 = (uint8_t*)"4"; - uint8_t *bufz = (uint8_t*)"SD1"; - - SNSSAI_t *snssai = (SNSSAI_t*)calloc(1, sizeof(SNSSAI_t)); - ASN_STRUCT_RESET(asn_DEF_SNSSAI,snssai); - snssai->sST.buf = (uint8_t*)calloc(1,1); - snssai->sST.size = 1; - memcpy(snssai->sST.buf, sst_buf, 1); - snssai->sD = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - snssai->sD->buf = (uint8_t*)calloc(1,3); - snssai->sD->size = 3; - memcpy(snssai->sD->buf, sd_buf, 3); + RIC_ReportStyle_Item_t* report_style2 = + (RIC_ReportStyle_Item_t*)calloc(1, sizeof(RIC_ReportStyle_Item_t)); + report_style2->ric_ReportStyle_Type = 2; - + uint8_t* buf6 = (uint8_t*)"E2 Node Measurement for a single UE"; + report_style2->ric_ReportStyle_Name.buf = (uint8_t*)calloc(1, strlen((char*)buf6)); + memcpy(report_style2->ric_ReportStyle_Name.buf, buf6, strlen((char*)buf6)); + report_style2->ric_ReportStyle_Name.size = strlen((char*)buf6); + report_style2->ric_ActionFormat_Type = 2; + report_style2->ric_IndicationHeaderFormat_Type = 1; + report_style2->ric_IndicationMessageFormat_Type = 1; + report_style2->measInfo_Action_List = *measInfo_Action_List; - SliceToReportListItem_t *slicelistitem = (SliceToReportListItem_t*)calloc(1,sizeof(SliceToReportListItem_t)); - ASN_STRUCT_RESET(asn_DEF_SliceToReportListItem, slicelistitem); - slicelistitem->sliceID = *snssai; - int ret = ASN_SEQUENCE_ADD(&slicelistitem->fQIPERSlicesPerPlmnList.list, fqilistitem); - if (snssai) free(snssai); + RIC_ReportStyle_Item_t* report_style3 = + (RIC_ReportStyle_Item_t*)calloc(1, sizeof(RIC_ReportStyle_Item_t)); + report_style3->ric_ReportStyle_Type = 3; - asn_codec_ctx_t *opt_cod; + uint8_t* buf7 = (uint8_t*)"Condition-based, UE-level E2 Node Measurement"; + report_style3->ric_ReportStyle_Name.buf = (uint8_t*)calloc(1, strlen((char*)buf7)); + memcpy(report_style3->ric_ReportStyle_Name.buf, buf7, strlen((char*)buf7)); + report_style3->ric_ReportStyle_Name.size = strlen((char*)buf7); + report_style3->ric_ActionFormat_Type = 3; + report_style3->ric_IndicationHeaderFormat_Type = 1; + report_style3->ric_IndicationMessageFormat_Type = 2; + report_style3->measInfo_Action_List = *measInfo_Action_List; - uint8_t e2smbuffera[8192] = {0, }; - size_t e2smbuffer_sizea = 8192; + RIC_ReportStyle_Item_t* report_style4 = + (RIC_ReportStyle_Item_t*)calloc(1, sizeof(RIC_ReportStyle_Item_t)); + report_style4->ric_ReportStyle_Type = 4; + uint8_t* buf8 = (uint8_t*)"Common Condition-based, UE-level Measurement"; + report_style4->ric_ReportStyle_Name.buf = (uint8_t*)calloc(1, strlen((char*)buf8)); + memcpy(report_style4->ric_ReportStyle_Name.buf, buf8, strlen((char*)buf8)); + report_style4->ric_ReportStyle_Name.size = strlen((char*)buf8); + report_style4->ric_ActionFormat_Type = 4; + report_style4->ric_IndicationHeaderFormat_Type = 1; + report_style4->ric_IndicationMessageFormat_Type = 3; + report_style4->measInfo_Action_List = *measInfo_Action_List; - asn_enc_rval_t era = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_SliceToReportListItem, - slicelistitem, e2smbuffera, e2smbuffer_sizea); - fprintf(stderr, "inner er encded is %d\n", era.encoded); - fprintf(stderr, "after encoding message\n"); + RIC_ReportStyle_Item_t* report_style5 = + (RIC_ReportStyle_Item_t*)calloc(1, sizeof(RIC_ReportStyle_Item_t)); + report_style5->ric_ReportStyle_Type = 5; + uint8_t* buf9 = (uint8_t*)"E2 Node Measurement for multiple UEs"; + report_style5->ric_ReportStyle_Name.buf = (uint8_t*)calloc(1, strlen((char*)buf9)); + memcpy(report_style5->ric_ReportStyle_Name.buf, buf9, strlen((char*)buf9)); + report_style5->ric_ReportStyle_Name.size = strlen((char*)buf9); + report_style5->ric_ActionFormat_Type = 5; + report_style5->ric_IndicationHeaderFormat_Type = 1; + report_style5->ric_IndicationMessageFormat_Type = 3; + report_style5->measInfo_Action_List = *measInfo_Action_List; - FGC_CUUP_PM_Format_t *pm_format = (FGC_CUUP_PM_Format_t*)calloc(1,sizeof(FGC_CUUP_PM_Format_t)); - ASN_STRUCT_RESET(asn_DEF_FGC_CUUP_PM_Format, pm_format); - ret = ASN_SEQUENCE_ADD(&pm_format->sliceToReportList.list, slicelistitem); + ranfunc_desc->ric_ReportStyle_List = + (E2SM_KPM_RANfunction_Description::E2SM_KPM_RANfunction_Description__ric_ReportStyle_List*) + calloc(1, sizeof(E2SM_KPM_RANfunction_Description:: + E2SM_KPM_RANfunction_Description__ric_ReportStyle_List)); - uint8_t *buf2 = (uint8_t*)"747"; - // std::string pl = "PLMNID7"; - // std::vector plvec(pl.begin(), pl.end()); - // uint8_t *buf2 = &plvec[0]; - - OCTET_STRING_t *plmnid = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnid->buf = (uint8_t*)calloc(3,1); - plmnid->size = 3; - memcpy(plmnid->buf, plmnid_buf, plmnid->size); + ASN_SEQUENCE_ADD(&ranfunc_desc->ric_ReportStyle_List->list, report_style1); + ASN_SEQUENCE_ADD(&ranfunc_desc->ric_ReportStyle_List->list, report_style2); + ASN_SEQUENCE_ADD(&ranfunc_desc->ric_ReportStyle_List->list, report_style3); + ASN_SEQUENCE_ADD(&ranfunc_desc->ric_ReportStyle_List->list, report_style4); + ASN_SEQUENCE_ADD(&ranfunc_desc->ric_ReportStyle_List->list, report_style5); + // xer_fprint(stderr, &asn_DEF_E2SM_KPM_RANfunction_Description, ranfunc_desc); +} - PlmnID_List_t *plmnidlist = (PlmnID_List_t*)calloc(1,sizeof(PlmnID_List_t)); - ASN_STRUCT_RESET(asn_DEF_PlmnID_List, plmnidlist); - plmnidlist->pLMN_Identity = *plmnid; - plmnidlist->cu_UP_PM_5GC = pm_format; - if (plmnid) free(plmnid); +void kpm_report_indication_header_initialized(E2SM_KPM_IndicationHeader_t* ihead, + uint8_t* plmnid_buf, uint8_t* sst_buf, + uint8_t* sd_buf, long fqival, long qcival, + uint8_t* nrcellid_buf, uint8_t* gnbid_buf, + int gnbid_unused, uint8_t* cuupid_buf, + uint8_t* duid_buf, uint8_t* cuupname_buf) { + LOG_I("Start initializing mocked indication header"); + E2SM_KPM_IndicationHeader_Format1_t* ind_header = + (E2SM_KPM_IndicationHeader_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationHeader_Format1_t)); + + ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, ind_header); + + uint8_t* buf2 = (uint8_t*)"ORANSim"; + ind_header->senderName = (PrintableString_t*)calloc(1, sizeof(PrintableString_t)); + ind_header->senderName->buf = (uint8_t*)calloc(1, strlen((char*)buf2)); + memcpy(ind_header->senderName->buf, buf2, strlen((char*)buf2)); + ind_header->senderName->size = strlen((char*)buf2); + + uint8_t* buf3 = (uint8_t*)"simulator"; + ind_header->senderType = (PrintableString_t*)calloc(1, sizeof(PrintableString_t)); + ind_header->senderType->buf = (uint8_t*)calloc(1, strlen((char*)buf3)); + memcpy(ind_header->senderType->buf, buf3, strlen((char*)buf3)); + ind_header->senderType->size = strlen((char*)buf3); + + uint8_t* buf4 = (uint8_t*)"ORAN-SC"; + ind_header->vendorName = (PrintableString_t*)calloc(1, sizeof(PrintableString_t)); + ind_header->vendorName->buf = (uint8_t*)calloc(1, strlen((char*)buf4)); + memcpy(ind_header->vendorName->buf, buf4, strlen((char*)buf4)); + ind_header->vendorName->size = strlen((char*)buf4); + + uint8_t* buf = (uint8_t*)"20200613"; + TimeStamp_t* ts = (TimeStamp_t*)calloc(1, sizeof(TimeStamp_t)); + ts->buf = (uint8_t*)calloc(strlen((char*)buf), 1); + ts->size = strlen((char*)buf); + memcpy(ts->buf, buf, ts->size); - CUUPMeasurement_Container_t *meas_cont = (CUUPMeasurement_Container_t*)calloc(1, sizeof(CUUPMeasurement_Container_t)); - ASN_STRUCT_RESET(asn_DEF_CUUPMeasurement_Container, meas_cont); - ret = ASN_SEQUENCE_ADD(&meas_cont->plmnList.list, plmnidlist); + ind_header->colletStartTime = *ts; + if (ts) free(ts); + uint8_t* buf5 = (uint8_t*)"1.0"; + ind_header->fileFormatversion = (PrintableString_t*)calloc(1, sizeof(PrintableString_t)); + ind_header->fileFormatversion->buf = (uint8_t*)calloc(1, strlen((char*)buf5)); + memcpy(ind_header->fileFormatversion->buf, buf5, strlen((char*)buf5)); + ind_header->fileFormatversion->size = strlen((char*)buf5); - - - PF_ContainerListItem_t *listitem1 = (PF_ContainerListItem_t*)calloc(1, sizeof(PF_ContainerListItem_t)); - ASN_STRUCT_RESET(asn_DEF_PF_ContainerListItem, listitem1); - listitem1->interface_type = 2; - listitem1->o_CU_UP_PM_Container = *meas_cont; - if (meas_cont) free(meas_cont); + ihead->indicationHeader_formats.present = + E2SM_KPM_IndicationHeader__indicationHeader_formats_PR_indicationHeader_Format1; + ihead->indicationHeader_formats.choice.indicationHeader_Format1 = ind_header; - OCUUP_PF_Container_t *cuupcont = (OCUUP_PF_Container_t*)calloc(1,sizeof(OCUUP_PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_OCUUP_PF_Container, cuupcont); - cuupcont->gNB_CU_UP_Name = gnbcuupname; - ret = ASN_SEQUENCE_ADD(&cuupcont->pf_ContainerList.list, listitem1); - - PF_Container_PR pres1 = PF_Container_PR_oCU_UP; + // xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationHeader, ihead); +} - PF_Container_t *pfcontainer = (PF_Container_t*)calloc(1, sizeof(PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_PF_Container, pfcontainer); - pfcontainer->present = pres1; - pfcontainer->choice.oCU_UP = *cuupcont; - if (cuupcont) free(cuupcont); +void ue_meas_kpm_report_indication_message_initialized( + E2SM_KPM_IndicationMessage_t* indicationmessage, uint8_t* nrcellid_buf, uint8_t* crnti_buf, + const uint8_t* serving_buf, const uint8_t* neighbor_buf) { + GranularityPeriod_t period = 1; + MeasurementData_t* measData = (MeasurementData_t*)calloc(1, sizeof(MeasurementData_t)); + MeasurementDataItem_t* measDataItem = + (MeasurementDataItem_t*)calloc(1, sizeof(MeasurementDataItem_t)); + MeasurementRecord_t* measDataItem_record = + (MeasurementRecord_t*)calloc(1, sizeof(MeasurementRecord_t)); + MeasurementRecordItem_t* measDataRecordItem = + (MeasurementRecordItem_t*)calloc(1, sizeof(MeasurementRecordItem_t)); + + unsigned long val = 1; + measDataRecordItem->present = MeasurementRecordItem_PR_integer; + measDataRecordItem->choice.integer = val; + + ASN_SEQUENCE_ADD(&measDataItem_record->list, measDataRecordItem); + + measDataItem->measRecord = *measDataItem_record; + long incomplete = 0; + measDataItem->incompleteFlag = (long*)calloc(1, sizeof(long)); + *measDataItem->incompleteFlag = incomplete; + ASN_SEQUENCE_ADD(&measData->list, measDataItem); + + E2SM_KPM_IndicationMessage_Format1_t* format = (E2SM_KPM_IndicationMessage_Format1_t*)calloc( + 1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); + format->granulPeriod = (GranularityPeriod_t*)calloc(1, sizeof(GranularityPeriod_t)); + *format->granulPeriod = period; + format->measData = *measData; + + MeasurementInfoList_t* measList = + (MeasurementInfoList_t*)calloc(1, sizeof(MeasurementInfoList_t)); + MeasurementInfoItem_t* measItem = + (MeasurementInfoItem_t*)calloc(1, sizeof(MeasurementInfoItem_t)); + LabelInfoList_t* labelList = (LabelInfoList_t*)calloc(1, sizeof(LabelInfoList_t)); + LabelInfoItem_t* labelItem = (LabelInfoItem_t*)calloc(1, sizeof(LabelInfoItem_t)); + MeasurementLabel_t* measLabel = (MeasurementLabel_t*)calloc(1, sizeof(MeasurementLabel_t)); + + uint8_t* plmnid_buf = (uint8_t*)"747"; + uint8_t* sst_buf = (uint8_t*)"1"; + uint8_t* sd_buf = (uint8_t*)"100"; + + S_NSSAI_t* snssai = (S_NSSAI_t*)calloc(1, sizeof(S_NSSAI_t)); + snssai->sST.buf = (uint8_t*)calloc(strlen((char*)sst_buf), sizeof(uint8_t)); + snssai->sST.size = strlen((char*)sst_buf); + memcpy(snssai->sST.buf, sst_buf, strlen((char*)sst_buf)); + + snssai->sD = (SD_t*)calloc(1, sizeof(SD_t)); + snssai->sD->buf = (uint8_t*)calloc(strlen((char*)sd_buf), sizeof(uint8_t)); + snssai->sD->size = strlen((char*)sd_buf); + memcpy(snssai->sD->buf, sd_buf, strlen((char*)sd_buf)); + + int plmnid_size = strlen((char*)plmnid_buf); + PLMNIdentity_t* plmnidstr = (PLMNIdentity_t*)calloc(1, sizeof(PLMNIdentity_t)); + plmnidstr->buf = (uint8_t*)calloc(plmnid_size, 1); + plmnidstr->size = plmnid_size; + memcpy(plmnidstr->buf, plmnid_buf, plmnidstr->size); - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->performanceContainer = pfcontainer; + measLabel->plmnID = plmnidstr; + measLabel->sliceID = snssai; - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); + labelItem->measLabel = *measLabel; + ASN_SEQUENCE_ADD(&labelList->list, labelItem); + measItem->labelInfoList = *labelList; + if (labelList) free(labelList); + MeasurementType_t measType; + measType.present = MeasurementType_PR_measID; + measType.choice.measID = 1; + measItem->measType = measType; + ASN_SEQUENCE_ADD(&measList->list, measItem); - ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage__indicationMessage_PR pres = E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1; + format->measInfoList = measList; - indicationmessage->indicationMessage.present = pres; + E2SM_KPM_IndicationMessage__indicationMessage_formats_PR pres = + E2SM_KPM_IndicationMessage__indicationMessage_formats_PR_indicationMessage_Format1; - indicationmessage->indicationMessage.choice.indicationMessage_Format1 = *format; - if (format) free(format); + indicationmessage->indicationMessage_formats.present = pres; + indicationmessage->indicationMessage_formats.choice.indicationMessage_Format1 = format; - char error_buf[300] = {0, }; + char error_buf[300] = { + 0, + }; size_t errlen = 0; - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - - uint8_t e2smbuffer[8192] = {0, }; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192] = {0, }; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); + int ret = asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, + &errlen); + if (ret) { + LOG_I("Constraint validation of indication message failed: %s", error_buf); + } + // xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); } -void encode_kpm_report_style5(E2SM_KPM_IndicationMessage_t* indicationmessage) { - - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - - uint8_t *buf = (uint8_t*)"GNBCUUP5"; - OCTET_STRING_t *gnbcuupname = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - gnbcuupname->size = 8; - gnbcuupname->buf = (uint8_t*)calloc(1,8); - memcpy(gnbcuupname->buf, buf, gnbcuupname->size); - - - INTEGER_t *bytesdl = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - uint8_t buffer[1]; - buffer[0]= 40000; - bytesdl->buf = (uint8_t*)calloc(1,1); - memcpy(bytesdl->buf, buffer,1); - bytesdl->size = 1; - - INTEGER_t *bytesul = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - uint8_t buffer1[1]; - buffer1[0] = 50000; - bytesul->buf = (uint8_t*)calloc(1,1); - memcpy(bytesul->buf, buffer1, 1); - bytesul->size = 1; - - FQIPERSlicesPerPlmnListItem_t *fqilistitem = (FQIPERSlicesPerPlmnListItem_t*)calloc(1, sizeof(FQIPERSlicesPerPlmnListItem_t)); - ASN_STRUCT_RESET(asn_DEF_FQIPERSlicesPerPlmnListItem, fqilistitem); - fqilistitem->fiveQI = 9; - fqilistitem->pDCPBytesDL = bytesdl; - fqilistitem->pDCPBytesUL = bytesul; - - - uint8_t *buf1 = (uint8_t*)"4"; - uint8_t *bufz = (uint8_t*)"SD1"; - - SNSSAI_t *snssai = (SNSSAI_t*)calloc(1, sizeof(SNSSAI_t)); - ASN_STRUCT_RESET(asn_DEF_SNSSAI,snssai); - snssai->sST.buf = (uint8_t*)calloc(1,1); - snssai->sST.size = 1; - memcpy(snssai->sST.buf, buf1, 1); - snssai->sD = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - snssai->sD->buf = (uint8_t*)calloc(1,3); - snssai->sD->size = 3; - memcpy(snssai->sD->buf, bufz, 3); - - - - SliceToReportListItem_t *slicelistitem = (SliceToReportListItem_t*)calloc(1,sizeof(SliceToReportListItem_t)); - ASN_STRUCT_RESET(asn_DEF_SliceToReportListItem, slicelistitem); - slicelistitem->sliceID = *snssai; - int ret = ASN_SEQUENCE_ADD(&slicelistitem->fQIPERSlicesPerPlmnList.list, fqilistitem); - if (snssai) free(snssai); - - asn_codec_ctx_t *opt_cod; - - - uint8_t e2smbuffera[8192] = {0, }; - size_t e2smbuffer_sizea = 8192; - +void cell_meas_kpm_report_indication_message_style_1_initialized( + E2SM_KPM_IndicationMessage_t* indicationmessage, long fiveqi, long dl_prb_usage, + long ul_prb_usage, uint8_t* nrcellid_buf, long* dl_prbs, long* ul_prbs) { + LOG_I("Preparing indication message for cell measurement report"); + + asn_codec_ctx_t* opt_cod; + + GranularityPeriod_t period = 1; + MeasurementData_t* measData = (MeasurementData_t*)calloc(1, sizeof(MeasurementData_t)); + MeasurementDataItem_t* measDataItem = + (MeasurementDataItem_t*)calloc(1, sizeof(MeasurementDataItem_t)); + MeasurementRecord_t* measDataItem_record = + (MeasurementRecord_t*)calloc(1, sizeof(MeasurementRecord_t)); + MeasurementRecordItem_t* measDataRecordItem = + (MeasurementRecordItem_t*)calloc(1, sizeof(MeasurementRecordItem_t)); + + measDataRecordItem->present = MeasurementRecordItem_PR_integer; + measDataRecordItem->choice.integer = 1; + + ASN_SEQUENCE_ADD(&measDataItem_record->list, measDataRecordItem); + + measDataItem->measRecord = *measDataItem_record; + measDataItem->incompleteFlag = (long*)calloc(1, sizeof(long)); + *measDataItem->incompleteFlag = 0; + ASN_SEQUENCE_ADD(&measData->list, measDataItem); + + E2SM_KPM_IndicationMessage_Format1_t* format = (E2SM_KPM_IndicationMessage_Format1_t*)calloc( + 1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); + format->granulPeriod = (GranularityPeriod_t*)calloc(1, sizeof(GranularityPeriod_t)); + *format->granulPeriod = period; + format->measData = *measData; + + MeasurementInfoList_t* measList = + (MeasurementInfoList_t*)calloc(1, sizeof(MeasurementInfoList_t)); + MeasurementInfoItem_t* measItem = + (MeasurementInfoItem_t*)calloc(1, sizeof(MeasurementInfoItem_t)); + LabelInfoList_t* labelList = (LabelInfoList_t*)calloc(1, sizeof(LabelInfoList_t)); + LabelInfoItem_t* labelItem = (LabelInfoItem_t*)calloc(1, sizeof(LabelInfoItem_t)); + MeasurementLabel_t* measLabel = (MeasurementLabel_t*)calloc(1, sizeof(MeasurementLabel_t)); + + uint8_t* plmnid_buf = (uint8_t*)"747"; + uint8_t* sst_buf = (uint8_t*)"1"; + uint8_t* sd_buf = (uint8_t*)"100"; + + S_NSSAI_t* snssai = (S_NSSAI_t*)calloc(1, sizeof(S_NSSAI_t)); + snssai->sST.buf = (uint8_t*)calloc(strlen((char*)sst_buf), sizeof(uint8_t)); + snssai->sST.size = strlen((char*)sst_buf); + memcpy(snssai->sST.buf, sst_buf, strlen((char*)sst_buf)); + + snssai->sD = (SD_t*)calloc(1, sizeof(SD_t)); + snssai->sD->buf = (uint8_t*)calloc(strlen((char*)sd_buf), sizeof(uint8_t)); + snssai->sD->size = strlen((char*)sd_buf); + memcpy(snssai->sD->buf, sd_buf, strlen((char*)sd_buf)); + + int plmnid_size = strlen((char*)plmnid_buf); + PLMNIdentity_t* plmnidstr = (PLMNIdentity_t*)calloc(1, sizeof(PLMNIdentity_t)); + plmnidstr->buf = (uint8_t*)calloc(plmnid_size, 1); + plmnidstr->size = plmnid_size; + memcpy(plmnidstr->buf, plmnid_buf, plmnidstr->size); + measLabel->plmnID = plmnidstr; + measLabel->sliceID = snssai; - asn_enc_rval_t era = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_SliceToReportListItem, - slicelistitem, e2smbuffera, e2smbuffer_sizea); - fprintf(stderr, "inner er encded is %d\n", era.encoded); - fprintf(stderr, "after encoding message\n"); + labelItem->measLabel = *measLabel; + ASN_SEQUENCE_ADD(&labelList->list, labelItem); + measItem->labelInfoList = *labelList; + if (labelList) free(labelList); + MeasurementType_t measType; + measType.present = MeasurementType_PR_measID; + measType.choice.measID = 1; + measItem->measType = measType; + ASN_SEQUENCE_ADD(&measList->list, measItem); + format->measInfoList = measList; + E2SM_KPM_IndicationMessage__indicationMessage_formats_PR pres = + E2SM_KPM_IndicationMessage__indicationMessage_formats_PR_indicationMessage_Format1; - FGC_CUUP_PM_Format_t *pm_format = (FGC_CUUP_PM_Format_t*)calloc(1,sizeof(FGC_CUUP_PM_Format_t)); - ASN_STRUCT_RESET(asn_DEF_FGC_CUUP_PM_Format, pm_format); - ret = ASN_SEQUENCE_ADD(&pm_format->sliceToReportList.list, slicelistitem); + indicationmessage->indicationMessage_formats.present = pres; + indicationmessage->indicationMessage_formats.choice.indicationMessage_Format1 = format; - uint8_t *buf2 = (uint8_t*)"747"; - // std::string pl = "PLMNID7"; - // std::vector plvec(pl.begin(), pl.end()); - // uint8_t *buf2 = &plvec[0]; - - OCTET_STRING_t *plmnid = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnid->buf = (uint8_t*)calloc(3,1); - plmnid->size = 3; - memcpy(plmnid->buf, buf2, plmnid->size); + char error_buf[300] = { + 0, + }; + size_t errlen = 0; + int ret = asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, + &errlen); - PlmnID_List_t *plmnidlist = (PlmnID_List_t*)calloc(1,sizeof(PlmnID_List_t)); - ASN_STRUCT_RESET(asn_DEF_PlmnID_List, plmnidlist); - plmnidlist->pLMN_Identity = *plmnid; - plmnidlist->cu_UP_PM_5GC = pm_format; + if (ret) { + LOG_I("Constraint validation of indication message failed: %s\n", error_buf); + } + // xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); +} - CUUPMeasurement_Container_t *meas_cont = (CUUPMeasurement_Container_t*)calloc(1, sizeof(CUUPMeasurement_Container_t)); - ASN_STRUCT_RESET(asn_DEF_CUUPMeasurement_Container, meas_cont); - ret = ASN_SEQUENCE_ADD(&meas_cont->plmnList.list, plmnidlist); +void encode_kpm_report_style1(E2SM_KPM_IndicationMessage_t* indicationmessage) { + long fiveqi = 8; + long dl_prb_usage = 50; + long ul_prb_usage = 70; + asn_codec_ctx_t* opt_cod; - - - PF_ContainerListItem_t *listitem1 = (PF_ContainerListItem_t*)calloc(1, sizeof(PF_ContainerListItem_t)); - ASN_STRUCT_RESET(asn_DEF_PF_ContainerListItem, listitem1); - listitem1->interface_type = 2; - listitem1->o_CU_UP_PM_Container = *meas_cont; - if (meas_cont) free(meas_cont); + GranularityPeriod_t period = 1; + MeasurementData_t measData; + MeasurementDataItem_t measDataItem; + MeasurementRecord_t measDataItem_record; + MeasurementRecordItem_t measDataRecordItem; - OCUUP_PF_Container_t *cuupcont = (OCUUP_PF_Container_t*)calloc(1,sizeof(OCUUP_PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_OCUUP_PF_Container, cuupcont); - cuupcont->gNB_CU_UP_Name = gnbcuupname; - ret = ASN_SEQUENCE_ADD(&cuupcont->pf_ContainerList.list, listitem1); - - PF_Container_PR pres1 = PF_Container_PR_oCU_UP; + measDataRecordItem.present = MeasurementRecordItem_PR_real; + measDataRecordItem.choice.real = 1.5; - PF_Container_t *pfcontainer = (PF_Container_t*)calloc(1, sizeof(PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_PF_Container, pfcontainer); - pfcontainer->present = pres1; - pfcontainer->choice.oCU_UP = *cuupcont; - if (cuupcont) free(cuupcont); + ASN_SEQUENCE_ADD(&measDataItem_record.list, &measDataRecordItem); - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->performanceContainer = pfcontainer; + measDataItem.measRecord = measDataItem_record; + ASN_SEQUENCE_ADD(&measData.list, &measDataItem); - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); + E2SM_KPM_IndicationMessage_Format1_t* format = (E2SM_KPM_IndicationMessage_Format1_t*)calloc( + 1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage__indicationMessage_PR pres = E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1; + format->granulPeriod = . + format->measData = measData; + + E2SM_KPM_IndicationMessage__indicationMessage_formats_PR pres = + E2SM_KPM_IndicationMessage__indicationMessage_formats_PR_indicationMessage_Format1; - indicationmessage->indicationMessage.present = pres; + indicationmessage->indicationMessage_formats.present = pres; - indicationmessage->indicationMessage.choice.indicationMessage_Format1 = *format; + indicationmessage->indicationMessage_formats.choice.indicationMessage_Format1 = format; if (format) free(format); - char error_buf[300] = {0, }; + char error_buf[300] = { + 0, + }; size_t errlen = 0; - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); + int ret = asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, + &errlen); - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - + if (ret) { + LOG_I("Constraint validation of indication message failed: %s\n", error_buf); + } - uint8_t e2smbuffer[8192] = {0, }; + uint8_t e2smbuffer[8192] = { + 0, + }; size_t e2smbuffer_size = 8192; - uint8_t e2smbuffer2[8192] = {0, }; - size_t e2smbuffer_size2 = 8192; - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); + asn_encode_to_buffer(opt_cod, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2SM_KPM_IndicationMessage, + indicationmessage, e2smbuffer, e2smbuffer_size); + if (er.encoded == -1) { + LOG_I("Failed to serialize message. Detail: %s.\n", asn_DEF_E2SM_KPM_IndicationMessage.name); + } else if (er.encoded > e2smbuffer_size) { + LOG_I("Buffer of size %zu is too small for %s, need %zu\n", e2smbuffer_size, asn_DEF_E2SM_KPM_IndicationMessage.name, er.encoded); + } } - void encode_kpm(E2SM_KPM_IndicationMessage_t* indicationmessage) { - /* ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); //std::string gn = "GNBCUUP5"; @@ -1865,10 +511,9 @@ void encode_kpm(E2SM_KPM_IndicationMessage_t* indicationmessage) { memcpy(bytesul->buf, buffer1, 1); bytesul->size = 1; - FQIPERSlicesPerPlmnListItem_t *fqilistitem = (FQIPERSlicesPerPlmnListItem_t*)calloc(1, sizeof(FQIPERSlicesPerPlmnListItem_t)); - ASN_STRUCT_RESET(asn_DEF_FQIPERSlicesPerPlmnListItem, fqilistitem); - fqilistitem->fiveQI = 9; - fqilistitem->pDCPBytesDL = bytesdl; + FQIPERSlicesPerPlmnListItem_t *fqilistitem = (FQIPERSlicesPerPlmnListItem_t*)calloc(1, + sizeof(FQIPERSlicesPerPlmnListItem_t)); ASN_STRUCT_RESET(asn_DEF_FQIPERSlicesPerPlmnListItem, + fqilistitem); fqilistitem->fiveQI = 9; fqilistitem->pDCPBytesDL = bytesdl; fqilistitem->pDCPBytesUL = bytesul; @@ -1876,7 +521,7 @@ void encode_kpm(E2SM_KPM_IndicationMessage_t* indicationmessage) { // std::string sl = "SLICE4"; // std::vector slvec(sl.begin(), sl.end()); // uint8_t *buf1 = &slvec[0]; - uint8_t *buf1 = (uint8_t*)"4"; + uint8_t *buf1 = (uint8_t*)"4"; OCTET_STRING_t *sst = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); sst->size = 6; sst->buf = (uint8_t*)calloc(1,6); @@ -1891,7 +536,7 @@ void encode_kpm(E2SM_KPM_IndicationMessage_t* indicationmessage) { sds->buf = (uint8_t*)calloc(1,3); memcpy(sds->buf, bufz, sds->size); - + SNSSAI_t *snssai = (SNSSAI_t*)calloc(1, sizeof(SNSSAI_t)); ASN_STRUCT_RESET(asn_DEF_SNSSAI,snssai); snssai->sST.buf = (uint8_t*)calloc(1,1); @@ -1902,14 +547,15 @@ void encode_kpm(E2SM_KPM_IndicationMessage_t* indicationmessage) { snssai->sD->size = 3; memcpy(snssai->sD->buf, bufz, 3); - - SliceToReportListItem_t *slicelistitem = (SliceToReportListItem_t*)calloc(1,sizeof(SliceToReportListItem_t)); + + SliceToReportListItem_t *slicelistitem = + (SliceToReportListItem_t*)calloc(1,sizeof(SliceToReportListItem_t)); ASN_STRUCT_RESET(asn_DEF_SliceToReportListItem, slicelistitem); slicelistitem->sliceID = *snssai; int ret = ASN_SEQUENCE_ADD(&slicelistitem->fQIPERSlicesPerPlmnList.list, fqilistitem); - asn_codec_ctx_t *opt_cod; + asn_codec_ctx_t *opt_cod; uint8_t e2smbuffera[8192]; @@ -1919,11 +565,11 @@ void encode_kpm(E2SM_KPM_IndicationMessage_t* indicationmessage) { asn_enc_rval_t era = asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_SliceToReportListItem, - slicelistitem, e2smbuffera, e2smbuffer_sizea); + ATS_ALIGNED_BASIC_PER, + &asn_DEF_SliceToReportListItem, + slicelistitem, e2smbuffera, e2smbuffer_sizea); fprintf(stderr, "inner er encded is %d\n", era.encoded); - fprintf(stderr, "after encoding message\n"); + fprintf(stderr, "after encoding message"); @@ -1935,7 +581,7 @@ void encode_kpm(E2SM_KPM_IndicationMessage_t* indicationmessage) { // std::string pl = "PLMNID7"; // std::vector plvec(pl.begin(), pl.end()); // uint8_t *buf2 = &plvec[0]; - + OCTET_STRING_t *plmnid = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); plmnid->buf = (uint8_t*)calloc(3,1); plmnid->size = 3; @@ -1947,15 +593,15 @@ void encode_kpm(E2SM_KPM_IndicationMessage_t* indicationmessage) { plmnidlist->pLMN_Identity = *plmnid; plmnidlist->cu_UP_PM_5GC = pm_format; - CUUPMeasurement_Container_t *meas_cont = (CUUPMeasurement_Container_t*)calloc(1, sizeof(CUUPMeasurement_Container_t)); - ASN_STRUCT_RESET(asn_DEF_CUUPMeasurement_Container, meas_cont); - ret = ASN_SEQUENCE_ADD(&meas_cont->plmnList.list, plmnidlist); + CUUPMeasurement_Container_t *meas_cont = (CUUPMeasurement_Container_t*)calloc(1, + sizeof(CUUPMeasurement_Container_t)); ASN_STRUCT_RESET(asn_DEF_CUUPMeasurement_Container, + meas_cont); ret = ASN_SEQUENCE_ADD(&meas_cont->plmnList.list, plmnidlist); + + - - - PF_ContainerListItem_t *listitem1 = (PF_ContainerListItem_t*)calloc(1, sizeof(PF_ContainerListItem_t)); - ASN_STRUCT_RESET(asn_DEF_PF_ContainerListItem, listitem1); + PF_ContainerListItem_t *listitem1 = (PF_ContainerListItem_t*)calloc(1, + sizeof(PF_ContainerListItem_t)); ASN_STRUCT_RESET(asn_DEF_PF_ContainerListItem, listitem1); listitem1->interface_type = 2; listitem1->o_CU_UP_PM_Container = *meas_cont; @@ -1963,7 +609,7 @@ void encode_kpm(E2SM_KPM_IndicationMessage_t* indicationmessage) { ASN_STRUCT_RESET(asn_DEF_OCUUP_PF_Container, cuupcont); cuupcont->gNB_CU_UP_Name = gnbcuupname; ret = ASN_SEQUENCE_ADD(&cuupcont->pf_ContainerList.list, listitem1); - + PF_Container_PR pres1 = PF_Container_PR_oCU_UP; PF_Container_t *pfcontainer = (PF_Container_t*)calloc(1, sizeof(PF_Container_t)); @@ -1971,8 +617,8 @@ void encode_kpm(E2SM_KPM_IndicationMessage_t* indicationmessage) { pfcontainer->present = pres1; pfcontainer->choice.oCU_UP = *cuupcont; - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); + PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, + sizeof(PM_Containers_List_t)); ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); containers_list->performanceContainer = pfcontainer; E2SM_KPM_IndicationMessage_Format1_t *format = @@ -1980,7 +626,7 @@ void encode_kpm(E2SM_KPM_IndicationMessage_t* indicationmessage) { ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - + E2SM_KPM_IndicationMessage_PR pres = E2SM_KPM_IndicationMessage_PR_indicationMessage_Format1; indicationmessage->present = pres; @@ -1995,22 +641,22 @@ void encode_kpm(E2SM_KPM_IndicationMessage_t* indicationmessage) { printf("error buf %s\n", error_buf); xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - + uint8_t e2smbuffer[8192]; size_t e2smbuffer_size = 8192; uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; + size_t e2smbuffer_size2 = 8192; asn_enc_rval_t er = asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); + ATS_ALIGNED_BASIC_PER, + &asn_DEF_E2SM_KPM_IndicationMessage, + indicationmessage, e2smbuffer, e2smbuffer_size); fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); + fprintf(stderr, "after encoding message"); */ } @@ -2041,18 +687,17 @@ void encode_kpm_bak(E2SM_KPM_IndicationMessage_t* indicationmessage) { memcpy(bytesul->buf, buffer1, 1); bytesul->size = 1; - FQIPERSlicesPerPlmnListItem_t *fqilistitem = (FQIPERSlicesPerPlmnListItem_t*)calloc(1, sizeof(FQIPERSlicesPerPlmnListItem_t)); - ASN_STRUCT_RESET(asn_DEF_FQIPERSlicesPerPlmnListItem, fqilistitem); - fqilistitem->fiveQI = 9; - fqilistitem->pDCPBytesDL = bytesdl; - fqilistitem->pDCPBytesUL = bytesul; + FQIPERSlicesPerPlmnListItem_t *fqilistitem = (FQIPERSlicesPerPlmnListItem_t*)calloc(1, +sizeof(FQIPERSlicesPerPlmnListItem_t)); ASN_STRUCT_RESET(asn_DEF_FQIPERSlicesPerPlmnListItem, +fqilistitem); fqilistitem->fiveQI = 9; fqilistitem->pDCPBytesDL = bytesdl; fqilistitem->pDCPBytesUL += bytesul; std::string sl = "SLICE4"; std::vector slvec(sl.begin(), sl.end()); // uint8_t *buf1 = &slvec[0]; - uint8_t *buf1 = (uint8_t*)"SLICE4"; + uint8_t *buf1 = (uint8_t*)"SLICE4"; OCTET_STRING_t *sst = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); sst->size = 6; sst->buf = (uint8_t*)calloc(1,6); @@ -2067,7 +712,7 @@ void encode_kpm_bak(E2SM_KPM_IndicationMessage_t* indicationmessage) { sds->buf = (uint8_t*)calloc(1,3); memcpy(sds->buf, bufz, sds->size); - + SNSSAI_t *snssai = (SNSSAI_t*)calloc(1, sizeof(SNSSAI_t)); ASN_STRUCT_RESET(asn_DEF_SNSSAI,snssai); snssai->sST.buf = (uint8_t*)calloc(6,1); @@ -2078,23 +723,24 @@ void encode_kpm_bak(E2SM_KPM_IndicationMessage_t* indicationmessage) { snssai->sD->size = 3; memcpy(snssai->sD->buf, bufz, 3); - - SliceToReportListItem_t *slicelistitem = (SliceToReportListItem_t*)calloc(1,sizeof(SliceToReportListItem_t)); + + SliceToReportListItem_t *slicelistitem = +(SliceToReportListItem_t*)calloc(1,sizeof(SliceToReportListItem_t)); ASN_STRUCT_RESET(asn_DEF_SliceToReportListItem, slicelistitem); slicelistitem->sliceID = *snssai; int ret = ASN_SEQUENCE_ADD(&slicelistitem->fQIPERSlicesPerPlmnList.list, fqilistitem); uint8_t e2smbuffera[8192]; - size_t e2smbuffer_sizea = 8192; + size_t e2smbuffer_sizea = 8192; auto era = asn_encode_to_buffer(nullptr, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_SliceToReportListItem, - slicelistitem, e2smbuffera, e2smbuffer_sizea); + ATS_ALIGNED_BASIC_PER, + &asn_DEF_SliceToReportListItem, + slicelistitem, e2smbuffera, e2smbuffer_sizea); fprintf(stderr, "inner er encded is %d\n", era.encoded); - fprintf(stderr, "after encoding message\n"); + fprintf(stderr, "after encoding message"); FGC_CUUP_PM_Format_t *pm_format = (FGC_CUUP_PM_Format_t*)calloc(1,sizeof(FGC_CUUP_PM_Format_t)); ASN_STRUCT_RESET(asn_DEF_FGC_CUUP_PM_Format, pm_format); @@ -2103,10 +749,10 @@ void encode_kpm_bak(E2SM_KPM_IndicationMessage_t* indicationmessage) { std::string pl = "PLMNID7"; std::vector plvec(pl.begin(), pl.end()); uint8_t *buf2 = &plvec[0]; - + OCTET_STRING_t *plmnid = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); plmnid->buf = (uint8_t*)calloc(1,7); - plmnid->size = 7; + plmnid->size = 7; memcpy(plmnid->buf, buf2, plmnid->size); @@ -2115,15 +761,15 @@ void encode_kpm_bak(E2SM_KPM_IndicationMessage_t* indicationmessage) { plmnidlist->pLMN_Identity = *plmnid; plmnidlist->cu_UP_PM_5GC = pm_format; - CUUPMeasurement_Container_t *meas_cont = (CUUPMeasurement_Container_t*)calloc(1, sizeof(CUUPMeasurement_Container_t)); - ASN_STRUCT_RESET(asn_DEF_CUUPMeasurement_Container, meas_cont); - ret = ASN_SEQUENCE_ADD(&meas_cont->plmnList.list, plmnidlist); + CUUPMeasurement_Container_t *meas_cont = (CUUPMeasurement_Container_t*)calloc(1, +sizeof(CUUPMeasurement_Container_t)); ASN_STRUCT_RESET(asn_DEF_CUUPMeasurement_Container, +meas_cont); ret = ASN_SEQUENCE_ADD(&meas_cont->plmnList.list, plmnidlist); + - - - PF_ContainerListItem_t *listitem1 = (PF_ContainerListItem_t*)calloc(1, sizeof(PF_ContainerListItem_t)); - ASN_STRUCT_RESET(asn_DEF_PF_ContainerListItem, listitem1); + + PF_ContainerListItem_t *listitem1 = (PF_ContainerListItem_t*)calloc(1, +sizeof(PF_ContainerListItem_t)); ASN_STRUCT_RESET(asn_DEF_PF_ContainerListItem, listitem1); listitem1->interface_type = 2; listitem1->o_CU_UP_PM_Container = *meas_cont; @@ -2131,7 +777,7 @@ void encode_kpm_bak(E2SM_KPM_IndicationMessage_t* indicationmessage) { ASN_STRUCT_RESET(asn_DEF_OCUUP_PF_Container, cuupcont); cuupcont->gNB_CU_UP_Name = gnbcuupname; ret = ASN_SEQUENCE_ADD(&cuupcont->pf_ContainerList.list, listitem1); - + PF_Container_PR pres1 = PF_Container_PR_oCU_UP; PF_Container_t *pfcontainer = (PF_Container_t*)calloc(1, sizeof(PF_Container_t)); @@ -2139,8 +785,8 @@ void encode_kpm_bak(E2SM_KPM_IndicationMessage_t* indicationmessage) { pfcontainer->present = pres1; pfcontainer->choice.oCU_UP = *cuupcont; - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); + PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, +sizeof(PM_Containers_List_t)); ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); containers_list->performanceContainer = pfcontainer; E2SM_KPM_IndicationMessage_Format1_t *format = @@ -2148,7 +794,7 @@ void encode_kpm_bak(E2SM_KPM_IndicationMessage_t* indicationmessage) { ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - + E2SM_KPM_IndicationMessage_PR pres = E2SM_KPM_IndicationMessage_PR_indicationMessage_Format1; indicationmessage->present = pres; @@ -2161,23 +807,23 @@ void encode_kpm_bak(E2SM_KPM_IndicationMessage_t* indicationmessage) { asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); printf("error length %d\n", errlen); printf("error buf %s\n", error_buf); - + uint8_t e2smbuffer[8192]; size_t e2smbuffer_size = 8192; uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; + size_t e2smbuffer_size2 = 8192; auto er = asn_encode_to_buffer(nullptr, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); + ATS_ALIGNED_BASIC_PER, + &asn_DEF_E2SM_KPM_IndicationMessage, + indicationmessage, e2smbuffer, e2smbuffer_size); fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); + fprintf(stderr, "after encoding message"); + - } -*/ +*/ \ No newline at end of file diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/kpm/encode_kpm.hpp b/e2sim/e2sm_examples/kpm_e2sm/src/kpm/encode_kpm.hpp index 96314ab..77b2783 100755 --- a/e2sim/e2sm_examples/kpm_e2sm/src/kpm/encode_kpm.hpp +++ b/e2sim/e2sm_examples/kpm_e2sm/src/kpm/encode_kpm.hpp @@ -20,14 +20,24 @@ #define ENCODE_KPM_HPP extern "C" { - #include "OCUCP-PF-Container.h" #include "OCTET_STRING.h" #include "asn_application.h" + #include "GranularityPeriod.h" + #include "TimeStamp.h" + #include "E2SM-KPM-IndicationHeader-Format1.h" + #include "E2SM-KPM-IndicationMessage-Format1.h" #include "E2SM-KPM-IndicationMessage.h" #include "E2SM-KPM-IndicationHeader.h" - #include "FQIPERSlicesPerPlmnListItem.h" #include "E2SM-KPM-RANfunction-Description.h" - #include "Timestamp.h" + #include "RIC-EventTriggerStyle-Item.h" + #include "RIC-ReportStyle-Item.h" + #include "MeasurementDataItem.h" + #include "MeasurementRecordItem.h" + #include "MeasurementInfo-Action-Item.h" + #include "MeasurementInfoList.h" + #include "MeasurementInfoItem.h" + #include "LabelInfoItem.h" + #include "S-NSSAI.h" } void encode_kpm(E2SM_KPM_IndicationMessage_t* indicationmessage); @@ -36,33 +46,16 @@ void encode_kpm_bak(E2SM_KPM_IndicationMessage_t* indicationmessage); void encode_kpm_function_description(E2SM_KPM_RANfunction_Description_t* ranfunc_desc); -void encode_kpm_report_style5(E2SM_KPM_IndicationMessage_t* indicationmessage); - -void encode_kpm_odu_user_level(RAN_Container_t *ranco); - -void encode_kpm_ocucp_user_level(RAN_Container_t *ranco); - -void encode_e2sm_kpm_indication_header(E2SM_KPM_IndicationHeader_t *ihead, uint8_t *plmnid_buf, uint8_t *sst_buf, uint8_t *sd_buf, long fqival, long qcival, uint8_t *nrcellid_buf, uint8_t *gnbid_buf, int gnbid_unused, uint8_t *cuupid_buf, uint8_t *duid_buf, uint8_t *cuupname_buf); - -void encode_kpm_ocuup_user_level(RAN_Container_t *ranco); - void encode_kpm_report_rancontainer_du(E2SM_KPM_IndicationMessage_t *indMsg); -void encode_kpm_report_rancontainer_cucp(E2SM_KPM_IndicationMessage_t *indMsg); - -void encode_kpm_report_rancontainer_cuup(E2SM_KPM_IndicationMessage_t *indMsg); - void encode_kpm_report_style1(E2SM_KPM_IndicationMessage_t* indicationmessage); -void encode_kpm_report_rancontainer_du_parameterized(E2SM_KPM_IndicationMessage_t *indMsg, uint8_t *plmnid_buf, uint8_t *nrcellid_buf, uint8_t *crnti_buf, long prb_usage_dl, long prb_usage_ul); - -void encode_kpm_report_rancontainer_cucp_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage,uint8_t *plmnid_buf,uint8_t *nrcellid_buf,uint8_t *crnti_buf,const uint8_t *serving_buf, const uint8_t *neighbor_buf); +void kpm_report_indication_header_initialized(E2SM_KPM_IndicationHeader_t *ihead, uint8_t *plmnid_buf, uint8_t *sst_buf, uint8_t *sd_buf, long fqival, long qcival, uint8_t *nrcellid_buf, uint8_t *gnbid_buf, int gnbid_unused, uint8_t *cuupid_buf, uint8_t *duid_buf, uint8_t *cuupname_buf); -void encode_kpm_report_rancontainer_cuup_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage, uint8_t *plmnid_buf, uint8_t *nrcellid_buf, uint8_t *crnti_buf,int pdcp_bytesdl, int pdcp_bytesul); +void ue_meas_kpm_report_indication_message_initialized(E2SM_KPM_IndicationMessage_t* indicationmessage,uint8_t *nrcellid_buf,uint8_t *crnti_buf,const uint8_t *serving_buf, const uint8_t *neighbor_buf); -void encode_kpm_report_style1_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage, long fiveqi, long dl_prb_usage, long ul_prb_usage, uint8_t* sst_buf, uint8_t* sd_buf, uint8_t* plmnid_buf, uint8_t* nrcellid_buf, long *dl_prbs, long *ul_prbs); +void cell_meas_kpm_report_indication_message_style_1_initialized(E2SM_KPM_IndicationMessage_t* indicationmessage, long fiveqi, long dl_prb_usage, long ul_prb_usage, uint8_t* nrcellid_buf, long *dl_prbs, long *ul_prbs); -void encode_kpm_report_style5_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage, uint8_t *gnbcuupname_buf, int bytes_dl,int bytes_ul, uint8_t *sst_buf, uint8_t *sd_buf, uint8_t *plmnid_buf); #endif diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/kpm/kpm_callbacks.cpp b/e2sim/e2sm_examples/kpm_e2sm/src/kpm/kpm_callbacks.cpp index fea3a4b..59bd744 100755 --- a/e2sim/e2sm_examples/kpm_e2sm/src/kpm/kpm_callbacks.cpp +++ b/e2sim/e2sm_examples/kpm_e2sm/src/kpm/kpm_callbacks.cpp @@ -23,15 +23,12 @@ extern "C" { - #include "OCUCP-PF-Container.h" #include "OCTET_STRING.h" #include "asn_application.h" #include "E2SM-KPM-IndicationMessage.h" - #include "FQIPERSlicesPerPlmnListItem.h" #include "E2SM-KPM-RANfunction-Description.h" #include "E2SM-KPM-IndicationHeader-Format1.h" #include "E2SM-KPM-IndicationHeader.h" - #include "Timestamp.h" #include "E2AP-PDU.h" #include "RICsubscriptionRequest.h" #include "RICsubscriptionResponse.h" @@ -51,7 +48,8 @@ extern "C" { #include #include "viavi_connector.hpp" - +#include "errno.h" +#include "e2sim_defs.h" using json = nlohmann::json; using namespace std; @@ -62,9 +60,7 @@ E2Sim e2sim; int main(int argc, char* argv[]) { - fprintf(stderr, "Starting KPM processor sim"); - - fprintf(stderr, "JSON Test\n"); + LOG_I("Starting KPM simulator"); uint8_t *nrcellid_buf = (uint8_t*)calloc(1,5); nrcellid_buf[0] = 0x22; @@ -73,8 +69,6 @@ int main(int argc, char* argv[]) { nrcellid_buf[3] = 0x00; nrcellid_buf[4] = 0x70; - - asn_codec_ctx_t *opt_cod; E2SM_KPM_RANfunction_Description_t *ranfunc_desc = @@ -90,33 +84,20 @@ int main(int argc, char* argv[]) { &asn_DEF_E2SM_KPM_RANfunction_Description, ranfunc_desc, e2smbuffer, e2smbuffer_size); - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - fprintf(stderr, "here is encoded message %s\n", e2smbuffer); - + if(er.encoded == -1) { + LOG_I("Failed to serialize function description data. Detail: %s.", asn_DEF_E2SM_KPM_RANfunction_Description.name); + } else if(er.encoded > e2smbuffer_size) { + LOG_I("Buffer of size %zu is too small for %s, need %zu", e2smbuffer_size, asn_DEF_E2SM_KPM_RANfunction_Description.name, er.encoded); + } + uint8_t *ranfuncdesc = (uint8_t*)calloc(1,er.encoded); memcpy(ranfuncdesc, e2smbuffer, er.encoded); - printf("this is the char array %s\n", (char*)ranfuncdesc); - OCTET_STRING_t *ranfunc_ostr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); ranfunc_ostr->buf = (uint8_t*)calloc(1,er.encoded); ranfunc_ostr->size = er.encoded; memcpy(ranfunc_ostr->buf,e2smbuffer,er.encoded); - - printf("!!!lenth of ranfuncdesc is %d\n", strlen((char*)ranfuncdesc)); - printf("value of this index is %d\n", ranfuncdesc[0]); - printf("value of this index is %d\n", ranfuncdesc[1]); - printf("value of this index is %d\n", ranfuncdesc[2]); - printf("value of this index is %d\n", ranfuncdesc[3]); - printf("value of this index is %d\n", ranfuncdesc[4]); - printf("value of this index is %d\n", ranfuncdesc[5]); - printf("value of this index is %d\n", ranfuncdesc[6]); - printf("value of this index is %d\n", ranfuncdesc[10]); - printf("value of this index is %d\n", ranfuncdesc[15]); - printf("value of this index is %d\n", ranfuncdesc[100]); - printf("value of this index is %d\n", ranfuncdesc[101]); - + e2sim.register_e2sm(0,ranfunc_ostr); e2sim.register_subscription_callback(0,&callback_kpm_subscription_request); @@ -178,534 +159,371 @@ void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long uint8_t *sd_buf = (uint8_t*)"100"; - fprintf(stderr,"De line is %s\n", str.c_str()); + LOG_I("Current line: %s", str.c_str()); bool valid = false; try { all_ues_json = json::parse(str); - valid = true; } catch (...) { - fprintf(stderr, "Exception on reading json\n"); + LOG_I("Exception on reading json"); + exit(1); } if (valid) { - fprintf(stderr, "key is valid\n"); - std::string first_key = all_ues_json.begin().key(); - fprintf(stderr, "first key is %s\n", first_key.c_str()); + LOG_I("First key is %s\n", first_key.c_str()); if (first_key.compare("ueMeasReport") == 0) { - - fprintf(stderr, "it is equal to ue meas report\n"); - int numMeasReports = (all_ues_json["/ueMeasReport/ueMeasReportList"_json_pointer]).size(); - - - for (int i = 0; i < numMeasReports; i++) { - int nextCellId; - int nextRsrp; - int nextRsrq; - int nextRssinr; - float tput; - int prb_usage; - std::string ueId; - - fprintf(stderr,"UE number %d\n", i); - - json::json_pointer p001(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) +"/ue-id"); - ueId = all_ues_json[p001].get(); - fprintf(stderr, "UEID %s\n", ueId.c_str()); - - json::json_pointer p0(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) +"/throughput"); - tput = all_ues_json[p0].get(); - fprintf(stderr, "Throughput %f\n", tput); - - json::json_pointer p00(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) +"/prb_usage"); - prb_usage = all_ues_json[p00].get(); - fprintf(stderr, "Throughput %d\n", prb_usage); - - json::json_pointer p1(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) +"/nrCellIdentity"); - nextCellId = all_ues_json[p1].get(); - fprintf(stderr, "Serving Cell %d\n",nextCellId); - - json::json_pointer p2(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) +"/servingCellRfReport/rsrp"); - nextRsrp = all_ues_json[p2].get(); - fprintf(stderr," RSRP %d\n", nextRsrp); - - json::json_pointer p3(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) +"/servingCellRfReport/rsrq"); - nextRsrq = all_ues_json[p3].get(); - fprintf(stderr," RSRQ %d\n",nextRsrq); - - json::json_pointer p4(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) +"/servingCellRfReport/rssinr"); - nextRssinr = all_ues_json[p4].get(); - fprintf(stderr," RSSINR %d\n", nextRssinr); - - json::json_pointer p5(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) +"/neighbourCellList"); - - uint8_t crnti_buf[3] = {0, }; - - if (ueId.find("Pedestrian") != string::npos) { - std::string ind = ueId.substr(11); - fprintf(stderr, "ind is %s\n", ind.c_str()); - - int indval = std::stoi(ind); - - if (indval < 10) { - crnti_buf[1] = indval; - crnti_buf[0] = 0; - } else { - crnti_buf[0] = indval/10; - crnti_buf[1] = indval % 10; - } - - } else if (ueId.find("Car") != string::npos) { - crnti_buf[0] = 4; - crnti_buf[1] = 1; - } - - // uint8_t *buf2 = (uint8_t*)"12"; - - std::string serving_str = "{\"rsrp\": " + std::to_string(nextRsrp) + ", \"rsrq\": " + - std::to_string(nextRsrq) + ", \"rssinr\": " + std::to_string(nextRssinr) + "}"; - const uint8_t *serving_buf = reinterpret_cast(serving_str.c_str()); - - int numNeighborCells = (all_ues_json[p5]).size(); - - std::string neighbor_str = "["; - - int nextNbCell; - int nextNbRsrp; - int nextNbRsrq; - int nextNbRssinr; - - for (int j = 0; j < numNeighborCells; j++) { - json::json_pointer p8(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) +"/neighbourCellList/" + std::to_string(j) + "/nbCellIdentity"); - nextNbCell = all_ues_json[p8].get(); - //cout << "Neighbor Cell " << all_ues_json[p8] << endl; - json::json_pointer p9(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) - +"/neighbourCellList/" + std::to_string(j) + "/nbCellRfReport/rsrp"); - nextNbRsrp = all_ues_json[p9].get(); - //cout << " RSRP " << nextNbRsrp << endl; - - json::json_pointer p10(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) - +"/neighbourCellList/" + std::to_string(j) + "/nbCellRfReport/rsrq"); - nextNbRsrq = all_ues_json[p10].get(); - //cout << " RSRQ " << nextNbRsrq << endl; - - json::json_pointer p11(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) - +"/neighbourCellList/" + std::to_string(j) + "/nbCellRfReport/rssinr"); - nextNbRssinr = all_ues_json[p11].get(); - //cout << " RSSINR " << nextNbRssinr << endl; - - if (j != 0) { - neighbor_str += ","; - - } - - - uint8_t neighbor_cellid_buf[6] = {0, }; - neighbor_cellid_buf[0] = 0x22; - neighbor_cellid_buf[1] = 0x5B; - neighbor_cellid_buf[2] = 0xD6; - neighbor_cellid_buf[3] = nextNbCell; - neighbor_cellid_buf[4] = 0x70; - - char cid_buf[25] = {0, }; - get_cell_id(neighbor_cellid_buf,cid_buf); - - - neighbor_str += "{\"CID\" : \"" + std::string(cid_buf) + "\", \"Cell-RF\" : {\"rsrp\": " + std::to_string(nextNbRsrp) + - ", \"rsrq\": " + std::to_string(nextNbRsrq) + ", \"rssinr\": " + std::to_string(nextNbRssinr) + "}}"; - - } - - neighbor_str += "]"; - - fprintf(stderr,"This is neighbor str %s\n", neighbor_str.c_str()); - - //Creating UE-level RAN-Container CUCP message - - fprintf(stderr,"Creating UE-level RAN-Container CUCP message\n"); - - const uint8_t *neighbor_buf = reinterpret_cast(neighbor_str.c_str()); - - - uint8_t nrcellid_buf[6] = {0, }; - nrcellid_buf[0] = 0x22; - nrcellid_buf[1] = 0x5B; - nrcellid_buf[2] = 0xD6; - nrcellid_buf[3] = nextCellId; - nrcellid_buf[4] = 0x70; - - uint8_t gnbid_buf[4] = {0, }; - gnbid_buf[0] = 0x22; - gnbid_buf[1] = 0x5B; - gnbid_buf[2] = 0xD6; - - uint8_t cuupid_buf[2] = {0, }; - cuupid_buf[0] = 20000; - - uint8_t duid_buf[2] = {0, }; - duid_buf[0] = 20000; - - uint8_t *cuupname_buf = (uint8_t*)"GNBCUUP5"; - - - E2SM_KPM_IndicationMessage_t *ind_msg_cucp_ue = - (E2SM_KPM_IndicationMessage_t*)calloc(1,sizeof(E2SM_KPM_IndicationMessage_t)); - - encode_kpm_report_rancontainer_cucp_parameterized(ind_msg_cucp_ue, plmnid_buf, nrcellid_buf, crnti_buf, serving_buf, neighbor_buf); - - uint8_t e2sm_message_buf_cucp_ue[8192] = {0, }; - size_t e2sm_message_buf_size_cucp_ue = 8192; - - asn_codec_ctx_t *opt_cod; - - - asn_enc_rval_t er_message_cucp_ue = asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - ind_msg_cucp_ue, e2sm_message_buf_cucp_ue, e2sm_message_buf_size_cucp_ue); - ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationMessage, ind_msg_cucp_ue); - - fprintf(stderr, "er encded is %d\n", er_message_cucp_ue.encoded); - fprintf(stderr, "after encoding message\n"); - - E2SM_KPM_IndicationHeader_t* ind_header_cucp_ue = - (E2SM_KPM_IndicationHeader_t*)calloc(1,sizeof(E2SM_KPM_IndicationHeader_t)); - encode_e2sm_kpm_indication_header(ind_header_cucp_ue, plmnid_buf, sst_buf, sd_buf, fqival, qcival, nrcellid_buf, gnbid_buf, 0, cuupid_buf, duid_buf, cuupname_buf); - fprintf(stderr, "Now printing xer outside of function call\n"); - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationHeader, ind_header_cucp_ue); - - uint8_t e2sm_header_buf_cucp_ue[8192] = {0, }; - size_t e2sm_header_buf_size_cucp_ue = 8192; - - asn_enc_rval_t er_header_cucp_ue = asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationHeader, - ind_header_cucp_ue, e2sm_header_buf_cucp_ue, e2sm_header_buf_size_cucp_ue); - ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationHeader, ind_header_cucp_ue); - - fprintf(stderr, "er encded is %d\n", er_header_cucp_ue.encoded); - fprintf(stderr, "error buf is %s\n", (char*)e2sm_header_buf_cucp_ue); - fprintf(stderr, "after encoding header\n"); - - E2AP_PDU *pdu_cucp_ue = (E2AP_PDU*)calloc(1,sizeof(E2AP_PDU)); - - encoding::generate_e2apv1_indication_request_parameterized(pdu_cucp_ue, requestorId, - instanceId, ranFunctionId, - actionId, seqNum, e2sm_header_buf_cucp_ue, - er_header_cucp_ue.encoded, e2sm_message_buf_cucp_ue, - er_message_cucp_ue.encoded); - - - e2sim.encode_and_send_sctp_data(pdu_cucp_ue); - - seqNum++; - - std::this_thread::sleep_for (std::chrono::milliseconds(50)); - - //Creating UE-level RAN-Container CUUP message - - fprintf(stderr,"Creating UE-level RAN-Container CUUP message\n"); - - E2SM_KPM_IndicationMessage_t *ind_msg_cuup_ue = - (E2SM_KPM_IndicationMessage_t*)calloc(1,sizeof(E2SM_KPM_IndicationMessage_t)); - - long bytes = (long)(tput * 100); - - encode_kpm_report_rancontainer_cuup_parameterized(ind_msg_cuup_ue, plmnid_buf, nrcellid_buf, crnti_buf, bytes, 0); - - uint8_t e2sm_message_buf_cuup_ue[8192] = {0, }; - size_t e2sm_message_buf_size_cuup_ue = 8192; - - asn_codec_ctx_t *opt_cod2; - - - asn_enc_rval_t er_message_cuup_ue = asn_encode_to_buffer(opt_cod2, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - ind_msg_cuup_ue, e2sm_message_buf_cuup_ue, e2sm_message_buf_size_cuup_ue); - ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationMessage, ind_msg_cuup_ue); - - fprintf(stderr, "er encded is %d\n", er_message_cuup_ue.encoded); - fprintf(stderr, "after encoding message\n"); - - E2SM_KPM_IndicationHeader_t* ind_header_cuup_ue = - (E2SM_KPM_IndicationHeader_t*)calloc(1,sizeof(E2SM_KPM_IndicationHeader_t)); - encode_e2sm_kpm_indication_header(ind_header_cuup_ue, plmnid_buf, sst_buf, sd_buf, fqival, qcival, nrcellid_buf, gnbid_buf, 0, cuupid_buf, duid_buf, cuupname_buf); - - uint8_t e2sm_header_buf_cuup_ue[8192] = {0, }; - size_t e2sm_header_buf_size_cuup_ue = 8192; - - asn_enc_rval_t er_header_cuup_ue = asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationHeader, - ind_header_cuup_ue, e2sm_header_buf_cuup_ue, e2sm_header_buf_size_cuup_ue); - ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationHeader, ind_header_cuup_ue); - - - E2AP_PDU *pdu_cuup_ue = (E2AP_PDU*)calloc(1,sizeof(E2AP_PDU)); - - encoding::generate_e2apv1_indication_request_parameterized(pdu_cuup_ue, requestorId, - instanceId, ranFunctionId, - actionId, seqNum, e2sm_header_buf_cuup_ue, - er_header_cuup_ue.encoded, - e2sm_message_buf_cuup_ue, er_message_cuup_ue.encoded); - - e2sim.encode_and_send_sctp_data(pdu_cuup_ue); - - seqNum++; - - std::this_thread::sleep_for (std::chrono::milliseconds(50)); - - //Creating UE-level RAN-Container DU message - - fprintf(stderr,"Creating UE-level RAN-Container DU message\n"); - - E2SM_KPM_IndicationMessage_t *ind_message_du_ue = - (E2SM_KPM_IndicationMessage_t*)calloc(1,sizeof(E2SM_KPM_IndicationMessage_t)); - - encode_kpm_report_rancontainer_du_parameterized(ind_message_du_ue, - plmnid_buf, nrcellid_buf, crnti_buf, prb_usage, 0); - - uint8_t e2sm_message_buf_du_ue[8192] = {0, }; - size_t e2sm_message_buf_size_du_ue = 8192; - - asn_codec_ctx_t *opt_cod3; - - - asn_enc_rval_t er_message_du_ue = asn_encode_to_buffer(opt_cod3, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - ind_message_du_ue, - e2sm_message_buf_du_ue, - e2sm_message_buf_size_du_ue); - ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationMessage, ind_message_du_ue); - - fprintf(stderr, "er encded is %d\n", er_message_du_ue.encoded); - fprintf(stderr, "after encoding message\n"); - - E2SM_KPM_IndicationHeader_t* ind_header_du_ue = - (E2SM_KPM_IndicationHeader_t*)calloc(1,sizeof(E2SM_KPM_IndicationHeader_t)); - encode_e2sm_kpm_indication_header(ind_header_du_ue, plmnid_buf, sst_buf, sd_buf, fqival, qcival, nrcellid_buf, gnbid_buf, 0, cuupid_buf, duid_buf, cuupname_buf); - - uint8_t e2sm_header_buf_du_ue[8192] = {0, }; - size_t e2sm_header_buf_size_du_ue = 8192; - - asn_enc_rval_t er_header_du_ue = asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationHeader, - ind_header_du_ue, e2sm_header_buf_du_ue, - e2sm_header_buf_size_du_ue); - ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationHeader, ind_header_du_ue); - - - E2AP_PDU *pdu_du_ue = (E2AP_PDU*)calloc(1,sizeof(E2AP_PDU)); - - encoding::generate_e2apv1_indication_request_parameterized(pdu_du_ue, requestorId, - instanceId, ranFunctionId, - actionId, seqNum, - e2sm_header_buf_du_ue, er_header_du_ue.encoded, - e2sm_message_buf_du_ue, er_message_du_ue.encoded); - - e2sim.encode_and_send_sctp_data(pdu_du_ue); - - seqNum++; - - std::this_thread::sleep_for (std::chrono::milliseconds(50)); - - fprintf(stderr, "done with ue meas report\n"); - } + json::json_pointer du_id(std::string("/ueMeasReport/du-id")); + int duid = all_ues_json[du_id].get(); + LOG_I("Start sending UE measurement reports with DU id %d", duid); + + int numMeasReports = (all_ues_json["/ueMeasReport/ueMeasReportList"_json_pointer]).size(); + + for (int i = 0; i < numMeasReports; i++) { + int nextCellId; + int nextRsrp; + int nextRsrq; + int nextRssinr; + float tput; + int prb_usage; + std::string ueId; + + json::json_pointer p001(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) +"/ue-id"); + ueId = all_ues_json[p001].get(); + + LOG_I("Preparing report data for UE %d with id %s", i, ueId); + + json::json_pointer p0(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) +"/throughput"); + tput = all_ues_json[p0].get(); + + json::json_pointer p00(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) +"/prb_usage"); + prb_usage = all_ues_json[p00].get(); + + json::json_pointer p1(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) +"/nrCellIdentity"); + nextCellId = all_ues_json[p1].get(); + + json::json_pointer p2(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) +"/servingCellRfReport/rsrp"); + nextRsrp = all_ues_json[p2].get(); + + json::json_pointer p3(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) +"/servingCellRfReport/rsrq"); + nextRsrq = all_ues_json[p3].get(); + + json::json_pointer p4(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) +"/servingCellRfReport/rssinr"); + nextRssinr = all_ues_json[p4].get(); + + json::json_pointer p5(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) +"/neighbourCellList"); + + uint8_t crnti_buf[3] = {0, }; + + if (ueId.find("Pedestrian") != string::npos) { + std::string ind = ueId.substr(11); + int indval = std::stoi(ind); + + if (indval < 10) { + crnti_buf[1] = indval; + crnti_buf[0] = 0; + } else { + crnti_buf[0] = indval/10; + crnti_buf[1] = indval % 10; + } + + } else if (ueId.find("Car") != string::npos) { + crnti_buf[0] = 4; + crnti_buf[1] = 1; + } + + std::string serving_str = "{\"rsrp\": " + std::to_string(nextRsrp) + ", \"rsrq\": " + + std::to_string(nextRsrq) + ", \"rssinr\": " + std::to_string(nextRssinr) + "}"; + const uint8_t *serving_buf = reinterpret_cast(serving_str.c_str()); + + int numNeighborCells = (all_ues_json[p5]).size(); + + std::string neighbor_str = "["; + + int nextNbCell; + int nextNbRsrp; + int nextNbRsrq; + int nextNbRssinr; + + for (int j = 0; j < numNeighborCells; j++) { + json::json_pointer p8(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) +"/neighbourCellList/" + std::to_string(j) + "/nbCellIdentity"); + nextNbCell = all_ues_json[p8].get(); + json::json_pointer p9(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) + +"/neighbourCellList/" + std::to_string(j) + "/nbCellRfReport/rsrp"); + nextNbRsrp = all_ues_json[p9].get(); + + json::json_pointer p10(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) + +"/neighbourCellList/" + std::to_string(j) + "/nbCellRfReport/rsrq"); + nextNbRsrq = all_ues_json[p10].get(); + + json::json_pointer p11(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) + +"/neighbourCellList/" + std::to_string(j) + "/nbCellRfReport/rssinr"); + nextNbRssinr = all_ues_json[p11].get(); + + if (j != 0) { + neighbor_str += ","; + } + + + uint8_t neighbor_cellid_buf[6] = {0, }; + neighbor_cellid_buf[0] = 0x22; + neighbor_cellid_buf[1] = 0x5B; + neighbor_cellid_buf[2] = 0xD6; + neighbor_cellid_buf[3] = nextNbCell; + neighbor_cellid_buf[4] = 0x70; + + char cid_buf[25] = {0, }; + get_cell_id(neighbor_cellid_buf,cid_buf); + + + neighbor_str += "{\"CID\" : \"" + std::string(cid_buf) + "\", \"Cell-RF\" : {\"rsrp\": " + std::to_string(nextNbRsrp) + + ", \"rsrq\": " + std::to_string(nextNbRsrq) + ", \"rssinr\": " + std::to_string(nextNbRssinr) + "}}"; + + } + + neighbor_str += "]"; + + LOG_I("This is neighbor str %s\n", neighbor_str.c_str()); + + const uint8_t *neighbor_buf = reinterpret_cast(neighbor_str.c_str()); + + + uint8_t nrcellid_buf[6] = {0, }; + nrcellid_buf[0] = 0x22; + nrcellid_buf[1] = 0x5B; + nrcellid_buf[2] = 0xD6; + nrcellid_buf[3] = nextCellId; + nrcellid_buf[4] = 0x70; + + uint8_t gnbid_buf[4] = {0, }; + gnbid_buf[0] = 0x22; + gnbid_buf[1] = 0x5B; + gnbid_buf[2] = 0xD6; + + uint8_t cuupid_buf[2] = {0, }; + cuupid_buf[0] = 20000; + + uint8_t duid_buf[2] = {0, }; + duid_buf[0] = 20000; + + uint8_t *cuupname_buf = (uint8_t*)"GNBCUUP5"; + + + E2SM_KPM_IndicationMessage_t *ind_msg_cucp_ue = + (E2SM_KPM_IndicationMessage_t*)calloc(1,sizeof(E2SM_KPM_IndicationMessage_t)); + + ue_meas_kpm_report_indication_message_initialized(ind_msg_cucp_ue, nrcellid_buf, crnti_buf, serving_buf, neighbor_buf); + + uint8_t e2sm_message_buf_cucp_ue[8192] = {0, }; + size_t e2sm_message_buf_size_cucp_ue = 8192; + + asn_codec_ctx_t *opt_cod; + + asn_enc_rval_t er_message_cucp_ue = asn_encode_to_buffer(opt_cod, + ATS_ALIGNED_BASIC_PER, + &asn_DEF_E2SM_KPM_IndicationMessage, + ind_msg_cucp_ue, e2sm_message_buf_cucp_ue, e2sm_message_buf_size_cucp_ue); + + if(er_message_cucp_ue.encoded == -1) { + LOG_I("Failed to serialize message data. Detail: %s.\n", asn_DEF_E2SM_KPM_IndicationMessage.name); + exit(1); + } else if(er_message_cucp_ue.encoded > e2sm_message_buf_size_cucp_ue) { + LOG_I("Buffer of size %zu is too small for %s, need %zu\n", e2sm_message_buf_size_cucp_ue, asn_DEF_E2SM_KPM_IndicationMessage.name, er_message_cucp_ue.encoded); + exit(1); + } else { + LOG_I("Encoded UE indication message succesfully, size in bytes: %d", er_message_cucp_ue.encoded) + } + + ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationMessage, ind_msg_cucp_ue); + + E2SM_KPM_IndicationHeader_t* ind_header_cucp_ue = + (E2SM_KPM_IndicationHeader_t*)calloc(1,sizeof(E2SM_KPM_IndicationHeader_t)); + kpm_report_indication_header_initialized(ind_header_cucp_ue, plmnid_buf, sst_buf, sd_buf, fqival, qcival, nrcellid_buf, gnbid_buf, 0, cuupid_buf, duid_buf, cuupname_buf); + + asn_codec_ctx_t *opt_cod1; + uint8_t e2sm_header_buf_cucp_ue[8192] = {0, }; + size_t e2sm_header_buf_size_cucp_ue = 8192; + + asn_enc_rval_t er_header_cucp_ue = asn_encode_to_buffer(opt_cod1, + ATS_ALIGNED_BASIC_PER, + &asn_DEF_E2SM_KPM_IndicationHeader, + ind_header_cucp_ue, e2sm_header_buf_cucp_ue, e2sm_header_buf_size_cucp_ue); + + if(er_header_cucp_ue.encoded == -1) { + LOG_I("Failed to serialize data. Detail: %s.\n", asn_DEF_E2SM_KPM_IndicationHeader.name); + exit(1); + } else if(er_header_cucp_ue.encoded > e2sm_header_buf_size_cucp_ue) { + LOG_I("Buffer of size %zu is too small for %s, need %zu\n", e2sm_header_buf_size_cucp_ue, asn_DEF_E2SM_KPM_IndicationHeader.name, er_header_cucp_ue.encoded); + exit(1); + } else { + LOG_I("Encoded UE indication header succesfully, size in bytes: %d", er_header_cucp_ue.encoded); + for(int i = 0; i < er_header_cucp_ue.encoded; i ++) { + printf("%x ", e2sm_header_buf_cucp_ue[i]); + } + + } + + + ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationHeader, ind_header_cucp_ue); + + E2AP_PDU *pdu_cucp_ue = (E2AP_PDU*)calloc(1,sizeof(E2AP_PDU)); + + encoding::generate_e2apv1_indication_request_parameterized(pdu_cucp_ue, requestorId, + instanceId, ranFunctionId, + actionId, seqNum, e2sm_header_buf_cucp_ue, + er_header_cucp_ue.encoded, e2sm_message_buf_cucp_ue, + er_message_cucp_ue.encoded); + + e2sim.encode_and_send_sctp_data(pdu_cucp_ue); + LOG_I("Measurement report for UE %d has been sent\n", i); + seqNum++; + std::this_thread::sleep_for (std::chrono::milliseconds(50)); + } } else if (first_key.compare("cellMeasReport") == 0) { - fprintf(stderr, "it is equal to cell meas report\n"); - - int numMeasReports = (all_ues_json["/cellMeasReport/cellMeasReportList"_json_pointer]).size(); + json::json_pointer du_id(std::string("/cellMeasReport/du-id")); + int duid = all_ues_json[du_id].get(); - for (int i = 0; i < numMeasReports; i++) { - int nextCellId; - - float bytes_dl; - float bytes_ul; - int prb_dl; - int prb_ul; - int cellid; - - fprintf(stderr,"UE number %d\n", i); - - json::json_pointer p00(std::string("/cellMeasReport/cellMeasReportList/") + std::to_string(i) +"/nrCellIdentity"); - cellid = all_ues_json[p00].get(); - fprintf(stderr, "Cell ID %d\n", cellid); - - json::json_pointer p0(std::string("/cellMeasReport/cellMeasReportList/") + std::to_string(i) +"/pdcpByteMeasReport/pdcpBytesDl"); - bytes_dl = all_ues_json[p0].get(); - fprintf(stderr, "Bytes DL %f\n", bytes_dl); - - json::json_pointer p1(std::string("/cellMeasReport/cellMeasReportList/") + std::to_string(i) +"/pdcpByteMeasReport/pdcpBytesUl"); - bytes_ul = all_ues_json[p1].get(); - fprintf(stderr, "Bytes UL %f\n", bytes_ul); - - json::json_pointer p2(std::string("/cellMeasReport/cellMeasReportList/") + std::to_string(i) +"/prbMeasReport/availPrbDl"); - prb_dl = all_ues_json[p2].get(); - fprintf(stderr, "Avail PRB DL %d\n", prb_dl); - - json::json_pointer p3(std::string("/cellMeasReport/cellMeasReportList/") + std::to_string(i) +"/prbMeasReport/availPrbUl"); - prb_ul = all_ues_json[p3].get(); - fprintf(stderr, "Avail PRB UL %d\n", prb_ul); - - - uint8_t *sst_buf = (uint8_t*)"1"; - uint8_t *sd_buf = (uint8_t*)"100"; - uint8_t *plmnid_buf = (uint8_t*)"747"; - - uint8_t nrcellid_buf[6] = {0, }; - nrcellid_buf[0] = 0x22; - nrcellid_buf[1] = 0x5B; - nrcellid_buf[2] = 0xD6; - nrcellid_buf[3] = cellid; - nrcellid_buf[4] = 0x70; - - uint8_t gnbid_buf[4] = {0, }; - gnbid_buf[0] = 0x22; - gnbid_buf[1] = 0x5B; - gnbid_buf[2] = 0xD6; - - uint8_t cuupid_buf[2] = {0, }; - cuupid_buf[0] = 20000; - - uint8_t duid_buf[2] = {0, }; - duid_buf[0] = 20000; - - uint8_t *cuupname_buf = (uint8_t*)"GNBCUUP5"; - - - //Encoding Style 5 Message Body - - fprintf(stderr, "Encoding Style 5 Message body\n"); - - asn_codec_ctx_t *opt_cod; - - E2SM_KPM_IndicationMessage_t *ind_msg_style5 = - (E2SM_KPM_IndicationMessage_t*)calloc(1,sizeof(E2SM_KPM_IndicationMessage_t)); - E2AP_PDU *pdu_style5 = (E2AP_PDU*)calloc(1,sizeof(E2AP_PDU)); - - encode_kpm_report_style5_parameterized(ind_msg_style5 , cuupname_buf, bytes_dl, bytes_ul, sst_buf, sd_buf, plmnid_buf); - - uint8_t e2sm_message_buf_style5[8192] = {0, }; - size_t e2sm_message_buf_size_style5 = 8192; - - asn_enc_rval_t er_message_style5 = asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - ind_msg_style5, e2sm_message_buf_style5, e2sm_message_buf_size_style5); - ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationMessage, ind_msg_style5); - - fprintf(stderr, "er encded is %d\n", er_message_style5.encoded); - fprintf(stderr, "after encoding message\n"); - - int seqNum0 = 1; - - - E2SM_KPM_IndicationHeader_t* ind_header_style5 = - (E2SM_KPM_IndicationHeader_t*)calloc(1,sizeof(E2SM_KPM_IndicationHeader_t)); - encode_e2sm_kpm_indication_header(ind_header_style5, plmnid_buf, sst_buf, sd_buf, fqival, qcival, nrcellid_buf, gnbid_buf, 0, cuupid_buf, duid_buf, cuupname_buf); - - uint8_t e2sm_header_buf_style5[8192] = {0, }; - size_t e2sm_header_buf_size_style5 = 8192; - - asn_enc_rval_t er_header_style5 = asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationHeader, - ind_header_style5, - e2sm_header_buf_style5, e2sm_header_buf_size_style5); - ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationHeader, ind_header_style5); - - - encoding::generate_e2apv1_indication_request_parameterized(pdu_style5, requestorId, - instanceId, ranFunctionId, - actionId, seqNum0, e2sm_header_buf_style5, - er_header_style5.encoded, e2sm_message_buf_style5, - er_message_style5.encoded); - - e2sim.encode_and_send_sctp_data(pdu_style5); - - seqNum++; - - std::this_thread::sleep_for (std::chrono::milliseconds(50)); - - - //Encoding Style 1 Message Body - - fprintf(stderr, "Encoding Style 1 Message body\n"); - asn_codec_ctx_t *opt_cod2; - - - E2SM_KPM_IndicationMessage_t *ind_message_style1 = - (E2SM_KPM_IndicationMessage_t*)calloc(1,sizeof(E2SM_KPM_IndicationMessage_t)); - E2AP_PDU *pdu_style1 = (E2AP_PDU*)calloc(1,sizeof(E2AP_PDU)); - - long fiveqi = 7; - - - - long *l_dl_prbs = (long*)calloc(1, sizeof(long)); - long *l_ul_prbs = (long*)calloc(1, sizeof(long)); - *l_dl_prbs = (long)prb_dl; - *l_ul_prbs = (long)prb_ul; - - encode_kpm_report_style1_parameterized(ind_message_style1, fiveqi, - prb_dl, prb_ul, sst_buf, sd_buf, - plmnid_buf, nrcellid_buf, l_dl_prbs, l_ul_prbs); - - uint8_t e2sm_message_buf_style1[8192] = {0, }; - size_t e2sm_message_buf_size_style1 = 8192; - - asn_enc_rval_t er_message_style1 = asn_encode_to_buffer(opt_cod2, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - ind_message_style1, - e2sm_message_buf_style1, e2sm_message_buf_size_style1); - ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationMessage, ind_message_style1); - - fprintf(stderr, "er encded is %d\n", er_message_style1.encoded); - fprintf(stderr, "after encoding message\n"); - - - uint8_t *cpid_buf2 = (uint8_t*)"CPID"; - - fprintf(stderr, "About to encode Indication\n"); - - E2SM_KPM_IndicationHeader_t* ind_header_style1 = - (E2SM_KPM_IndicationHeader_t*)calloc(1,sizeof(E2SM_KPM_IndicationHeader_t)); - encode_e2sm_kpm_indication_header(ind_header_style1, plmnid_buf, sst_buf, sd_buf, fqival, qcival, nrcellid_buf, gnbid_buf, 0, cuupid_buf, duid_buf, cuupname_buf); - - uint8_t e2sm_header_buf_style1[8192] = {0, }; - size_t e2sm_header_buf_size_style1 = 8192; - - asn_enc_rval_t er_header_style1 = asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationHeader, - ind_header_style1, - e2sm_header_buf_style1, e2sm_header_buf_size_style1); - ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationHeader, ind_header_style1); - - encoding::generate_e2apv1_indication_request_parameterized(pdu_style1, requestorId, - instanceId, ranFunctionId, - actionId, seqNum, e2sm_header_buf_style1, - er_header_style1.encoded, - e2sm_message_buf_style1, er_message_style1.encoded); - - e2sim.encode_and_send_sctp_data(pdu_style1); - seqNum++; - std::this_thread::sleep_for (std::chrono::milliseconds(50)); - - } - } + LOG_I("Start sending Cell measurement reports with DU id %d", duid); + + int numMeasReports = (all_ues_json["/cellMeasReport/cellMeasReportList"_json_pointer]).size(); + + for (int i = 0; i < numMeasReports; i++) { + int nextCellId; + + float bytes_dl; + float bytes_ul; + int prb_dl; + int prb_ul; + int cellid; + + json::json_pointer p00(std::string("/cellMeasReport/cellMeasReportList/") + std::to_string(i) +"/nrCellIdentity"); + cellid = all_ues_json[p00].get(); + + LOG_I("Preparing report data for Cell %d with id %d", i, cellid); + + json::json_pointer p0(std::string("/cellMeasReport/cellMeasReportList/") + std::to_string(i) +"/pdcpByteMeasReport/pdcpBytesDl"); + bytes_dl = all_ues_json[p0].get(); + + json::json_pointer p1(std::string("/cellMeasReport/cellMeasReportList/") + std::to_string(i) +"/pdcpByteMeasReport/pdcpBytesUl"); + bytes_ul = all_ues_json[p1].get(); + + json::json_pointer p2(std::string("/cellMeasReport/cellMeasReportList/") + std::to_string(i) +"/prbMeasReport/availPrbDl"); + prb_dl = all_ues_json[p2].get(); + + json::json_pointer p3(std::string("/cellMeasReport/cellMeasReportList/") + std::to_string(i) +"/prbMeasReport/availPrbUl"); + prb_ul = all_ues_json[p3].get(); + + + uint8_t *sst_buf = (uint8_t*)"1"; + uint8_t *sd_buf = (uint8_t*)"100"; + uint8_t *plmnid_buf = (uint8_t*)"747"; + + uint8_t nrcellid_buf[6] = {0, }; + nrcellid_buf[0] = 0x22; + nrcellid_buf[1] = 0x5B; + nrcellid_buf[2] = 0xD6; + nrcellid_buf[3] = cellid; + nrcellid_buf[4] = 0x70; + + uint8_t gnbid_buf[4] = {0, }; + gnbid_buf[0] = 0x22; + gnbid_buf[1] = 0x5B; + gnbid_buf[2] = 0xD6; + + uint8_t cuupid_buf[2] = {0, }; + cuupid_buf[0] = 20000; + + uint8_t duid_buf[2] = {0, }; + duid_buf[0] = 20000; + + uint8_t *cuupname_buf = (uint8_t*)"GNBCUUP5"; + + //Encoding Style 1 Message Body + + LOG_I("Encoding Style 1 Message body"); + asn_codec_ctx_t *opt_cod2; + + E2SM_KPM_IndicationMessage_t *ind_message_style1 = + (E2SM_KPM_IndicationMessage_t*)calloc(1,sizeof(E2SM_KPM_IndicationMessage_t)); + E2AP_PDU *pdu_style1 = (E2AP_PDU*)calloc(1,sizeof(E2AP_PDU)); + + long fiveqi = 7; + long *l_dl_prbs = (long*)calloc(1, sizeof(long)); + long *l_ul_prbs = (long*)calloc(1, sizeof(long)); + *l_dl_prbs = (long)prb_dl; + *l_ul_prbs = (long)prb_ul; + + cell_meas_kpm_report_indication_message_style_1_initialized(ind_message_style1, fiveqi, + prb_dl, prb_ul, nrcellid_buf, l_dl_prbs, l_ul_prbs); + + uint8_t e2sm_message_buf_style1[8192] = {0, }; + size_t e2sm_message_buf_size_style1 = 8192; + + asn_enc_rval_t er_message_style1 = asn_encode_to_buffer(opt_cod2, + ATS_ALIGNED_BASIC_PER, + &asn_DEF_E2SM_KPM_IndicationMessage, + ind_message_style1, + e2sm_message_buf_style1, e2sm_message_buf_size_style1); + + if(er_message_style1.encoded == -1) { + LOG_I("Failed to serialize data. Detail: %s.\n", asn_DEF_E2SM_KPM_IndicationMessage.name); + exit(1); + } else if(er_message_style1.encoded > e2sm_message_buf_size_style1) { + LOG_I("Buffer of size %zu is too small for %s, need %zu\n", e2sm_message_buf_size_style1, asn_DEF_E2SM_KPM_IndicationMessage.name, er_message_style1.encoded); + exit(1); + } else { + LOG_I("Encoded Cell indication message succesfully, size in bytes: %d", er_message_style1.encoded) + } + + ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationMessage, ind_message_style1); + + uint8_t *cpid_buf2 = (uint8_t*)"CPID"; + + E2SM_KPM_IndicationHeader_t* ind_header_style1 = + (E2SM_KPM_IndicationHeader_t*)calloc(1,sizeof(E2SM_KPM_IndicationHeader_t)); + kpm_report_indication_header_initialized(ind_header_style1, plmnid_buf, sst_buf, sd_buf, fqival, qcival, nrcellid_buf, gnbid_buf, 0, cuupid_buf, duid_buf, cuupname_buf); + + uint8_t e2sm_header_buf_style1[8192] = {0, }; + size_t e2sm_header_buf_size_style1 = 8192; + + asn_enc_rval_t er_header_style1 = asn_encode_to_buffer(opt_cod2, + ATS_ALIGNED_BASIC_PER, + &asn_DEF_E2SM_KPM_IndicationHeader, + ind_header_style1, + e2sm_header_buf_style1, e2sm_header_buf_size_style1); + + if(er_header_style1.encoded == -1) { + LOG_I("Failed to serialize data. Detail: %s.\n", asn_DEF_E2SM_KPM_IndicationHeader.name); + exit(1); + } else if(er_header_style1.encoded > e2sm_header_buf_size_style1) { + LOG_I("Buffer of size %zu is too small for %s, need %zu\n", e2sm_header_buf_size_style1, asn_DEF_E2SM_KPM_IndicationHeader.name, er_header_style1.encoded); + exit(1); + } else { + LOG_I("Encoded Cell indication header succesfully, size in bytes: %d", er_header_style1.encoded) + } + + ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationHeader, ind_header_style1); + + encoding::generate_e2apv1_indication_request_parameterized(pdu_style1, requestorId, + instanceId, ranFunctionId, + actionId, seqNum, e2sm_header_buf_style1, + er_header_style1.encoded, + e2sm_message_buf_style1, er_message_style1.encoded); + + e2sim.encode_and_send_sctp_data(pdu_style1); + seqNum++; + LOG_I("Measurement report for Cell %d has been sent\n", i); + std::this_thread::sleep_for (std::chrono::milliseconds(50)); + + } + } } } } @@ -713,7 +531,7 @@ void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long void callback_kpm_subscription_request(E2AP_PDU_t *sub_req_pdu) { - fprintf(stderr, "Calling callback_kpm_subscription_request\n"); + fprintf(stderr, "[%s:%d]Calling callback_kpm_subscription_request"); //Record RIC Request ID //Go through RIC action to be Setup List @@ -732,9 +550,6 @@ void callback_kpm_subscription_request(E2AP_PDU_t *sub_req_pdu) { RICsubscriptionRequest_IEs_t **ies = (RICsubscriptionRequest_IEs_t**)orig_req.protocolIEs.list.array; - fprintf(stderr, "count%d\n", count); - fprintf(stderr, "size%d\n", size); - RICsubscriptionRequest_IEs__value_PR pres; long reqRequestorId; @@ -748,17 +563,17 @@ void callback_kpm_subscription_request(E2AP_PDU_t *sub_req_pdu) { RICsubscriptionRequest_IEs_t *next_ie = ies[i]; pres = next_ie->value.present; - fprintf(stderr, "The next present value %d\n", pres); + LOG_I("The next present value %d\n", pres); switch(pres) { case RICsubscriptionRequest_IEs__value_PR_RICrequestID: { - fprintf(stderr,"in case request id\n"); + LOG_I("in case request id"); RICrequestID_t reqId = next_ie->value.choice.RICrequestID; long requestorId = reqId.ricRequestorID; long instanceId = reqId.ricInstanceID; - fprintf(stderr, "requestorId %d\n", requestorId); - fprintf(stderr, "instanceId %d\n", instanceId); + LOG_I("requestorId %d\n", requestorId); + LOG_I("instanceId %d\n", instanceId); reqRequestorId = requestorId; reqInstanceId = instanceId; @@ -766,25 +581,21 @@ void callback_kpm_subscription_request(E2AP_PDU_t *sub_req_pdu) { } case RICsubscriptionRequest_IEs__value_PR_RANfunctionID: { - fprintf(stderr,"in case ran func id\n"); + LOG_I("in case ran func id"); break; } case RICsubscriptionRequest_IEs__value_PR_RICsubscriptionDetails: { - fprintf(stderr,"in case subscription details\n"); RICsubscriptionDetails_t subDetails = next_ie->value.choice.RICsubscriptionDetails; - fprintf(stderr,"in case subscription details 1\n"); RICeventTriggerDefinition_t triggerDef = subDetails.ricEventTriggerDefinition; - fprintf(stderr,"in case subscription details 2\n"); RICactions_ToBeSetup_List_t actionList = subDetails.ricAction_ToBeSetup_List; - fprintf(stderr,"in case subscription details 3\n"); //We are ignoring the trigger definition //We identify the first action whose type is REPORT //That is the only one accepted; all others are rejected int actionCount = actionList.list.count; - fprintf(stderr, "action count%d\n", actionCount); + LOG_I("Action count%d\n", actionCount); auto **item_array = actionList.list.array; @@ -799,11 +610,9 @@ void callback_kpm_subscription_request(E2AP_PDU_t *sub_req_pdu) { if (!foundAction && actionType == RICactionType_report) { reqActionId = actionId; actionIdsAccept.push_back(reqActionId); - printf("adding accept\n"); foundAction = true; } else { reqActionId = actionId; - printf("adding reject\n"); actionIdsReject.push_back(reqActionId); } } @@ -812,21 +621,20 @@ void callback_kpm_subscription_request(E2AP_PDU_t *sub_req_pdu) { } default: { - fprintf(stderr,"in case default\n"); break; } } } - fprintf(stderr, "After Processing Subscription Request\n"); + LOG_I("After Processing Subscription Request"); - fprintf(stderr, "requestorId %d\n", reqRequestorId); - fprintf(stderr, "instanceId %d\n", reqInstanceId); + LOG_I("requestorId %d\n", reqRequestorId); + LOG_I("instanceId %d\n", reqInstanceId); for (int i=0; i < actionIdsAccept.size(); i++) { - fprintf(stderr, "Action ID %d %ld\n", i, actionIdsAccept.at(i)); + LOG_I("Action ID %d %ld\n", i, actionIdsAccept.at(i)); } @@ -838,17 +646,12 @@ void callback_kpm_subscription_request(E2AP_PDU_t *sub_req_pdu) { int reject_size = actionIdsReject.size(); encoding::generate_e2apv1_subscription_response_success(e2ap_pdu, accept_array, reject_array, accept_size, reject_size, reqRequestorId, reqInstanceId); - + + LOG_I("Encode and sending E2AP subscription success response via SCTP"); e2sim.encode_and_send_sctp_data(e2ap_pdu); - //Start thread for sending REPORT messages - - // std::thread loop_thread; - long funcId = 0; run_report_loop(reqRequestorId, reqInstanceId, funcId, reqActionId); - // loop_thread = std::thread(&run_report_loop); - } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/kpm/kpm_callbacks.hpp b/e2sim/e2sm_examples/kpm_e2sm/src/kpm/kpm_callbacks.hpp old mode 100644 new mode 100755 diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/kpm/viavi_connector.hpp b/e2sim/e2sm_examples/kpm_e2sm/src/kpm/viavi_connector.hpp old mode 100644 new mode 100755 diff --git a/e2sim/src/ASN1c/AMFName.c b/e2sim/src/ASN1c/AMFName.c deleted file mode 100644 index 77dc9c6..0000000 --- a/e2sim/src/ASN1c/AMFName.c +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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. - */ -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 */ - { 0, &asn_PER_type_AMFName_constr_1, AMFName_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/src/ASN1c/AMFName.h b/e2sim/src/ASN1c/AMFName.h deleted file mode 100644 index 1c6d3d0..0000000 --- a/e2sim/src/ASN1c/AMFName.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _AMFName_H_ -#define _AMFName_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PrintableString.h" - -#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; -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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/ANY.c b/e2sim/src/ASN1c/ANY.c deleted file mode 100644 index 0b81557..0000000 --- a/e2sim/src/ASN1c/ANY.c +++ /dev/null @@ -1,450 +0,0 @@ -/* - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -asn_OCTET_STRING_specifics_t asn_SPC_ANY_specs = { - sizeof(ANY_t), - offsetof(ANY_t, _asn_ctx), - ASN_OSUBV_ANY -}; -asn_TYPE_operation_t asn_OP_ANY = { - OCTET_STRING_free, - OCTET_STRING_print, - OCTET_STRING_compare, - OCTET_STRING_decode_ber, - OCTET_STRING_encode_der, - OCTET_STRING_decode_xer_hex, - ANY_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - 0, - 0, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, 0, 0, 0, -#else - ANY_decode_uper, - ANY_encode_uper, - ANY_decode_aper, - ANY_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - 0, /* Random fill is not defined for ANY type */ - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_ANY = { - "ANY", - "ANY", - &asn_OP_ANY, - 0, 0, 0, 0, - { 0, 0, asn_generic_no_constraint }, /* No constraints */ - 0, 0, /* No members */ - &asn_SPC_ANY_specs, -}; - -#undef RETURN -#define RETURN(_code) \ - do { \ - asn_dec_rval_t tmprval; \ - tmprval.code = _code; \ - tmprval.consumed = consumed_myself; \ - return tmprval; \ - } while(0) - -asn_enc_rval_t -ANY_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, - void *app_key) { - if(flags & XER_F_CANONICAL) { - /* - * Canonical XER-encoding of ANY type is not supported. - */ - ASN__ENCODE_FAILED; - } - - /* Dump as binary */ - return OCTET_STRING_encode_xer(td, sptr, ilevel, flags, cb, app_key); -} - -struct _callback_arg { - uint8_t *buffer; - size_t offset; - size_t size; -}; - -static int ANY__consume_bytes(const void *buffer, size_t size, void *key); - -int -ANY_fromType(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr) { - struct _callback_arg arg; - asn_enc_rval_t erval = {0,0,0}; - - if(!st || !td) { - errno = EINVAL; - return -1; - } - - if(!sptr) { - if(st->buf) FREEMEM(st->buf); - st->size = 0; - return 0; - } - - arg.offset = arg.size = 0; - arg.buffer = 0; - - erval = der_encode(td, sptr, ANY__consume_bytes, &arg); - if(erval.encoded == -1) { - if(arg.buffer) FREEMEM(arg.buffer); - return -1; - } - assert((size_t)erval.encoded == arg.offset); - - if(st->buf) FREEMEM(st->buf); - st->buf = arg.buffer; - st->size = arg.offset; - - return 0; -} - -int -ANY_fromType_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr) { - uint8_t *buffer = NULL; - ssize_t erval; - - if(!st || !td) { - errno = EINVAL; - return -1; - } - - if(!sptr) { - if(st->buf) FREEMEM(st->buf); - st->size = 0; - return 0; - } - - erval = aper_encode_to_new_buffer(td, td->encoding_constraints.per_constraints, sptr, (void**)&buffer); - - if(erval == -1) { - if(buffer) FREEMEM(buffer); - return -1; - } - assert((size_t)erval > 0); - - if(st->buf) FREEMEM(st->buf); - st->buf = buffer; - st->size = erval; - - return 0; -} - -ANY_t * -ANY_new_fromType(asn_TYPE_descriptor_t *td, void *sptr) { - ANY_t tmp; - ANY_t *st; - - if(!td || !sptr) { - errno = EINVAL; - return 0; - } - - memset(&tmp, 0, sizeof(tmp)); - - if(ANY_fromType(&tmp, td, sptr)) return 0; - - st = (ANY_t *)CALLOC(1, sizeof(ANY_t)); - if(st) { - *st = tmp; - return st; - } else { - FREEMEM(tmp.buf); - return 0; - } -} - -ANY_t * -ANY_new_fromType_aper(asn_TYPE_descriptor_t *td, void *sptr) { - ANY_t tmp; - ANY_t *st; - - if(!td || !sptr) { - errno = EINVAL; - return 0; - } - - memset(&tmp, 0, sizeof(tmp)); - - if(ANY_fromType_aper(&tmp, td, sptr)) return 0; - - st = (ANY_t *)CALLOC(1, sizeof(ANY_t)); - if(st) { - *st = tmp; - return st; - } else { - FREEMEM(tmp.buf); - return 0; - } -} - -int -ANY_to_type(ANY_t *st, asn_TYPE_descriptor_t *td, void **struct_ptr) { - asn_dec_rval_t rval; - void *newst = 0; - - if(!st || !td || !struct_ptr) { - errno = EINVAL; - return -1; - } - - if(st->buf == 0) { - /* Nothing to convert, make it empty. */ - *struct_ptr = (void *)0; - return 0; - } - - rval = ber_decode(0, td, (void **)&newst, st->buf, st->size); - if(rval.code == RC_OK) { - *struct_ptr = newst; - return 0; - } else { - /* Remove possibly partially decoded data. */ - ASN_STRUCT_FREE(*td, newst); - return -1; - } -} - -int -ANY_to_type_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void **struct_ptr) { - asn_dec_rval_t rval; - void *newst = 0; - - if(!st || !td || !struct_ptr) { - errno = EINVAL; - return -1; - } - - if(st->buf == 0) { - /* Nothing to convert, make it empty. */ - *struct_ptr = (void *)0; - return 0; - } - - rval = aper_decode(0, td, (void **)&newst, st->buf, st->size, 0, 0); - if(rval.code == RC_OK) { - *struct_ptr = newst; - return 0; - } else { - /* Remove possibly partially decoded data. */ - ASN_STRUCT_FREE(*td, newst); - return -1; - } -} - -static int ANY__consume_bytes(const void *buffer, size_t size, void *key) { - struct _callback_arg *arg = (struct _callback_arg *)key; - - if((arg->offset + size) >= arg->size) { - size_t nsize = (arg->size ? arg->size << 2 : 16) + size; - void *p = REALLOC(arg->buffer, nsize); - if(!p) return -1; - arg->buffer = (uint8_t *)p; - arg->size = nsize; - } - - memcpy(arg->buffer + arg->offset, buffer, size); - arg->offset += size; - assert(arg->offset < arg->size); - - return 0; -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -ANY_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_ANY_specs; - size_t consumed_myself = 0; - int repeat; - ANY_t *st = (ANY_t *)*sptr; - - (void)opt_codec_ctx; - (void)constraints; - - /* - * Allocate the structure. - */ - if(!st) { - st = (ANY_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("UPER Decoding ANY type"); - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - ssize_t len_bits; - void *p; - int ret; - - /* Get the PER length */ - raw_len = uper_get_length(pd, -1, 0, &repeat); - if(raw_len < 0) RETURN(RC_WMORE); - if(raw_len == 0 && st->buf) break; - - ASN_DEBUG("Got PER length len %" ASN_PRI_SIZE ", %s (%s)", raw_len, - repeat ? "repeat" : "once", td->name); - len_bytes = raw_len; - len_bits = len_bytes * 8; - - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += len_bits; - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - RETURN(RC_OK); -} - -asn_enc_rval_t -ANY_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const ANY_t *st = (const ANY_t *)sptr; - asn_enc_rval_t er = {0, 0, 0}; - const uint8_t *buf; - size_t size; - int ret; - - (void)constraints; - - if(!st || (!st->buf && st->size)) ASN__ENCODE_FAILED; - - buf = st->buf; - size = st->size; - do { - int need_eom = 0; - ssize_t may_save = uper_put_length(po, size, &need_eom); - if(may_save < 0) ASN__ENCODE_FAILED; - - ret = per_put_many_bits(po, buf, may_save * 8); - if(ret) ASN__ENCODE_FAILED; - - buf += may_save; - size -= may_save; - assert(!(may_save & 0x07) || !size); - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - } while(size); - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -ANY_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_ANY_specs; - size_t consumed_myself = 0; - int repeat; - ANY_t *st = (ANY_t *)*sptr; - - (void)opt_codec_ctx; - (void)constraints; - - /* - * Allocate the structure. - */ - if(!st) { - st = (ANY_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("APER Decoding ANY type"); - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - ssize_t len_bits; - void *p; - int ret; - - /* Get the PER length */ - raw_len = aper_get_length(pd, -1, 0, &repeat); - if(raw_len < 0) RETURN(RC_WMORE); - if(raw_len == 0 && st->buf) break; - - ASN_DEBUG("Got PER length len %" ASN_PRI_SIZE ", %s (%s)", raw_len, - repeat ? "repeat" : "once", td->name); - len_bytes = raw_len; - len_bits = len_bytes * 8; - - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += len_bits; - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - RETURN(RC_OK); -} - -asn_enc_rval_t -ANY_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const ANY_t *st = (const ANY_t *)sptr; - asn_enc_rval_t er = {0, 0, 0}; - const uint8_t *buf; - size_t size; - int ret; - - (void)constraints; - - if(!st || (!st->buf && st->size)) ASN__ENCODE_FAILED; - - buf = st->buf; - size = st->size; - do { - int need_eom = 0; - ssize_t may_save = uper_put_length(po, size, &need_eom); - if(may_save < 0) ASN__ENCODE_FAILED; - - ret = per_put_many_bits(po, buf, may_save * 8); - if(ret) ASN__ENCODE_FAILED; - - buf += may_save; - size -= may_save; - assert(!(may_save & 0x07) || !size); - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - } while(size); - - ASN__ENCODED_OK(er); -} -#endif /* ASN_DISABLE_PER_SUPPORT */ - diff --git a/e2sim/src/ASN1c/ANY.h b/e2sim/src/ASN1c/ANY.h deleted file mode 100644 index b30381f..0000000 --- a/e2sim/src/ASN1c/ANY.h +++ /dev/null @@ -1,65 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_TYPE_ANY_H -#define ASN_TYPE_ANY_H - -#include /* Implemented via OCTET STRING type */ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct ANY { - uint8_t *buf; /* BER-encoded ANY contents */ - int size; /* Size of the above buffer */ - - asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ -} ANY_t; - -extern asn_TYPE_descriptor_t asn_DEF_ANY; -extern asn_TYPE_operation_t asn_OP_ANY; -extern asn_OCTET_STRING_specifics_t asn_SPC_ANY_specs; - -asn_struct_free_f ANY_free; -asn_struct_print_f ANY_print; -ber_type_decoder_f ANY_decode_ber; -der_type_encoder_f ANY_encode_der; -xer_type_encoder_f ANY_encode_xer; -per_type_decoder_f ANY_decode_uper; -per_type_encoder_f ANY_encode_uper; -per_type_decoder_f ANY_decode_aper; -per_type_encoder_f ANY_encode_aper; - -#define ANY_free OCTET_STRING_free -#define ANY_print OCTET_STRING_print -#define ANY_compare OCTET_STRING_compare -#define ANY_constraint asn_generic_no_constraint -#define ANY_decode_ber OCTET_STRING_decode_ber -#define ANY_encode_der OCTET_STRING_encode_der -#define ANY_decode_xer OCTET_STRING_decode_xer_hex - -/****************************** - * Handy conversion routines. * - ******************************/ - -/* Convert another ASN.1 type into the ANY. This implies DER encoding. */ -int ANY_fromType(ANY_t *, asn_TYPE_descriptor_t *td, void *struct_ptr); -int ANY_fromType_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr); -ANY_t *ANY_new_fromType(asn_TYPE_descriptor_t *td, void *struct_ptr); -ANY_t *ANY_new_fromType_aper(asn_TYPE_descriptor_t *td, void *sptr); - -/* Convert the contents of the ANY type into the specified type. */ -int ANY_to_type(ANY_t *, asn_TYPE_descriptor_t *td, void **struct_ptr); -int ANY_to_type_aper(ANY_t *, asn_TYPE_descriptor_t *td, void **struct_ptr); - -#define ANY_fromBuf(s, buf, size) OCTET_STRING_fromBuf((s), (buf), (size)) -#define ANY_new_fromBuf(buf, size) OCTET_STRING_new_fromBuf( \ - &asn_DEF_ANY, (buf), (size)) - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_TYPE_ANY_H */ diff --git a/e2sim/src/ASN1c/BIT_STRING.c b/e2sim/src/ASN1c/BIT_STRING.c deleted file mode 100644 index e8d7354..0000000 --- a/e2sim/src/ASN1c/BIT_STRING.c +++ /dev/null @@ -1,656 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * BIT STRING basic type description. - */ -static const ber_tlv_tag_t asn_DEF_BIT_STRING_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_OCTET_STRING_specifics_t asn_SPC_BIT_STRING_specs = { - sizeof(BIT_STRING_t), - offsetof(BIT_STRING_t, _asn_ctx), - ASN_OSUBV_BIT -}; -asn_TYPE_operation_t asn_OP_BIT_STRING = { - OCTET_STRING_free, /* Implemented in terms of OCTET STRING */ - BIT_STRING_print, - BIT_STRING_compare, - OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ - OCTET_STRING_encode_der, /* Implemented in terms of OCTET STRING */ - OCTET_STRING_decode_xer_binary, - BIT_STRING_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - BIT_STRING_decode_oer, - BIT_STRING_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - BIT_STRING_decode_uper, /* Unaligned PER decoder */ - BIT_STRING_encode_uper, /* Unaligned PER encoder */ - OCTET_STRING_decode_aper, /* Aligned PER decoder */ - OCTET_STRING_encode_aper, /* Aligned PER encoder */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - BIT_STRING_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_BIT_STRING = { - "BIT STRING", - "BIT_STRING", - &asn_OP_BIT_STRING, - asn_DEF_BIT_STRING_tags, - sizeof(asn_DEF_BIT_STRING_tags) - / sizeof(asn_DEF_BIT_STRING_tags[0]), - asn_DEF_BIT_STRING_tags, /* Same as above */ - sizeof(asn_DEF_BIT_STRING_tags) - / sizeof(asn_DEF_BIT_STRING_tags[0]), - { 0, 0, BIT_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs -}; - -/* - * BIT STRING generic constraint. - */ -int -BIT_STRING_constraint(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; - - if(st && st->buf) { - if((st->size == 0 && st->bits_unused) - || st->bits_unused < 0 || st->bits_unused > 7) { - ASN__CTFAIL(app_key, td, sptr, - "%s: invalid padding byte (%s:%d)", - td->name, __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; -} - -static const char *_bit_pattern[16] = { - "0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", - "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111" -}; - -asn_enc_rval_t -BIT_STRING_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t er = {0, 0, 0}; - char scratch[128]; - char *p = scratch; - char *scend = scratch + (sizeof(scratch) - 10); - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - int xcan = (flags & XER_F_CANONICAL); - uint8_t *buf; - uint8_t *end; - - if(!st || !st->buf) - ASN__ENCODE_FAILED; - - er.encoded = 0; - - buf = st->buf; - end = buf + st->size - 1; /* Last byte is special */ - - /* - * Binary dump - */ - for(; buf < end; buf++) { - int v = *buf; - int nline = xcan?0:(((buf - st->buf) % 8) == 0); - if(p >= scend || nline) { - ASN__CALLBACK(scratch, p - scratch); - p = scratch; - if(nline) ASN__TEXT_INDENT(1, ilevel); - } - memcpy(p + 0, _bit_pattern[v >> 4], 4); - memcpy(p + 4, _bit_pattern[v & 0x0f], 4); - p += 8; - } - - if(!xcan && ((buf - st->buf) % 8) == 0) - ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK(scratch, p - scratch); - p = scratch; - - if(buf == end) { - int v = *buf; - int ubits = st->bits_unused; - int i; - for(i = 7; i >= ubits; i--) - *p++ = (v & (1 << i)) ? 0x31 : 0x30; - ASN__CALLBACK(scratch, p - scratch); - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - - -/* - * BIT STRING specific contents printer. - */ -int -BIT_STRING_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - const char * const h2c = "0123456789ABCDEF"; - char scratch[64]; - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - uint8_t *buf; - uint8_t *end; - char *p = scratch; - - (void)td; /* Unused argument */ - - if(!st || !st->buf) - return (cb("", 8, app_key) < 0) ? -1 : 0; - - ilevel++; - buf = st->buf; - end = buf + st->size; - - /* - * Hexadecimal dump. - */ - for(; buf < end; buf++) { - if((buf - st->buf) % 16 == 0 && (st->size > 16) - && buf != st->buf) { - _i_INDENT(1); - /* Dump the string */ - if(cb(scratch, p - scratch, app_key) < 0) return -1; - p = scratch; - } - *p++ = h2c[*buf >> 4]; - *p++ = h2c[*buf & 0x0F]; - *p++ = 0x20; - } - - if(p > scratch) { - p--; /* Eat the tailing space */ - - if((st->size > 16)) { - _i_INDENT(1); - } - - /* Dump the incomplete 16-bytes row */ - if(cb(scratch, p - scratch, app_key) < 0) - return -1; - } - - if(st->bits_unused) { - int ret = snprintf(scratch, sizeof(scratch), " (%d bit%s unused)", - st->bits_unused, st->bits_unused == 1 ? "" : "s"); - assert(ret > 0 && ret < (ssize_t)sizeof(scratch)); - if(ret > 0 && ret < (ssize_t)sizeof(scratch) - && cb(scratch, ret, app_key) < 0) - return -1; - } - - return 0; -} - -/* - * Non-destructively remove the trailing 0-bits from the given bit string. - */ -static const BIT_STRING_t * -BIT_STRING__compactify(const BIT_STRING_t *st, BIT_STRING_t *tmp) { - const uint8_t *b; - union { - const uint8_t *c_buf; - uint8_t *nc_buf; - } unconst; - - if(st->size == 0) { - assert(st->bits_unused == 0); - return st; - } else { - for(b = &st->buf[st->size - 1]; b > st->buf && *b == 0; b--) { - ; - } - /* b points to the last byte which may contain data */ - if(*b) { - int unused = 7; - uint8_t v = *b; - v &= -(int8_t)v; - if(v & 0x0F) unused -= 4; - if(v & 0x33) unused -= 2; - if(v & 0x55) unused -= 1; - tmp->size = b-st->buf + 1; - tmp->bits_unused = unused; - } else { - tmp->size = b-st->buf; - tmp->bits_unused = 0; - } - - assert(b >= st->buf); - } - - unconst.c_buf = st->buf; - tmp->buf = unconst.nc_buf; - return tmp; -} - -/* - * Lexicographically compare the common prefix of both strings, - * and if it is the same return -1 for the smallest string. - */ -int -BIT_STRING_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - /* - * Remove information about trailing bits, since - * X.680 (08/2015) #22.7 "ensure that different semantics are not" - * "associated with [values that differ only in] the trailing 0 bits." - */ - BIT_STRING_t compact_a, compact_b; - const BIT_STRING_t *a = BIT_STRING__compactify(aptr, &compact_a); - const BIT_STRING_t *b = BIT_STRING__compactify(bptr, &compact_b); - const asn_OCTET_STRING_specifics_t *specs = td->specifics; - - assert(specs && specs->subvariant == ASN_OSUBV_BIT); - - if(a && b) { - size_t common_prefix_size = a->size <= b->size ? a->size : b->size; - int ret = memcmp(a->buf, b->buf, common_prefix_size); - if(ret == 0) { - /* Figure out which string with equal prefixes is longer. */ - if(a->size < b->size) { - return -1; - } else if(a->size > b->size) { - return 1; - } else { - /* Figure out how many unused bits */ - if(a->bits_unused > b->bits_unused) { - return -1; - } else if(a->bits_unused < b->bits_unused) { - return 1; - } else { - return 0; - } - } - } else { - return ret; - } - } else if(!a && !b) { - return 0; - } else if(!a) { - return -1; - } else { - return 1; - } -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -#undef RETURN -#define RETURN(_code) \ - do { \ - asn_dec_rval_t tmprval; \ - tmprval.code = _code; \ - tmprval.consumed = consumed_myself; \ - return tmprval; \ - } while(0) - -static asn_per_constraint_t asn_DEF_BIT_STRING_constraint_size = { - APC_SEMI_CONSTRAINED, -1, -1, 0, 0}; - -asn_dec_rval_t -BIT_STRING_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_BIT_STRING_specs; - const asn_per_constraints_t *pc = - constraints ? constraints : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *csiz; - asn_dec_rval_t rval = { RC_OK, 0 }; - BIT_STRING_t *st = (BIT_STRING_t *)*sptr; - ssize_t consumed_myself = 0; - int repeat; - - (void)opt_codec_ctx; - - if(pc) { - csiz = &pc->size; - } else { - csiz = &asn_DEF_BIT_STRING_constraint_size; - } - - if(specs->subvariant != ASN_OSUBV_BIT) { - ASN_DEBUG("Subvariant %d is not BIT OSUBV_BIT", specs->subvariant); - RETURN(RC_FAIL); - } - - /* - * Allocate the string. - */ - if(!st) { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d", - csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", - csiz->lower_bound, csiz->upper_bound, csiz->effective_bits); - - if(csiz->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) RETURN(RC_WMORE); - if(inext) { - csiz = &asn_DEF_BIT_STRING_constraint_size; - } - } - - if(csiz->effective_bits >= 0) { - FREEMEM(st->buf); - st->size = (csiz->upper_bound + 7) >> 3; - st->buf = (uint8_t *)MALLOC(st->size + 1); - if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } - } - - /* X.691, #16.5: zero-length encoding */ - /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ - /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ - if(csiz->effective_bits == 0) { - int ret; - ASN_DEBUG("Encoding BIT STRING size %ld", csiz->upper_bound); - ret = per_get_many_bits(pd, st->buf, 0, csiz->upper_bound); - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += csiz->upper_bound; - st->buf[st->size] = 0; - st->bits_unused = (8 - (csiz->upper_bound & 0x7)) & 0x7; - RETURN(RC_OK); - } - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - ssize_t len_bits; - void *p; - int ret; - - /* Get the PER length */ - raw_len = uper_get_length(pd, csiz->effective_bits, csiz->lower_bound, - &repeat); - if(raw_len < 0) RETURN(RC_WMORE); - if(raw_len == 0 && st->buf) break; - - ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", - (long)csiz->effective_bits, (long)raw_len, - repeat ? "repeat" : "once", td->name); - len_bits = raw_len; - len_bytes = (len_bits + 7) >> 3; - if(len_bits & 0x7) st->bits_unused = 8 - (len_bits & 0x7); - /* len_bits be multiple of 16K if repeat is set */ - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); - if(ret < 0) RETURN(RC_WMORE); - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - return rval; -} - -asn_enc_rval_t -BIT_STRING_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_BIT_STRING_specs; - const asn_per_constraints_t *pc = - constraints ? constraints : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *csiz; - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - BIT_STRING_t compact_bstr; /* Do not modify this directly! */ - asn_enc_rval_t er = { 0, 0, 0 }; - int inext = 0; /* Lies not within extension root */ - size_t size_in_bits; - const uint8_t *buf; - int ret; - int ct_extensible; - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - if(specs->subvariant == ASN_OSUBV_BIT) { - if((st->size == 0 && st->bits_unused) || (st->bits_unused & ~7)) - ASN__ENCODE_FAILED; - } else { - ASN__ENCODE_FAILED; - } - - if(pc) { - csiz = &pc->size; - } else { - csiz = &asn_DEF_BIT_STRING_constraint_size; - } - ct_extensible = csiz->flags & APC_EXTENSIBLE; - - /* Figure out the size without the trailing bits */ - st = BIT_STRING__compactify(st, &compact_bstr); - size_in_bits = 8 * st->size - st->bits_unused; - - ASN_DEBUG( - "Encoding %s into %" ASN_PRI_SIZE " bits" - " (%ld..%ld, effective %d)%s", - td->name, size_in_bits, csiz->lower_bound, csiz->upper_bound, - csiz->effective_bits, ct_extensible ? " EXT" : ""); - - /* Figure out whether size lies within PER visible constraint */ - - if(csiz->effective_bits >= 0) { - if((ssize_t)size_in_bits > csiz->upper_bound) { - if(ct_extensible) { - csiz = &asn_DEF_BIT_STRING_constraint_size; - inext = 1; - } else { - ASN__ENCODE_FAILED; - } - } - } else { - inext = 0; - } - - if(ct_extensible) { - /* Declare whether length is [not] within extension root */ - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - } - - if(csiz->effective_bits >= 0 && !inext) { - int add_trailer = (ssize_t)size_in_bits < csiz->lower_bound; - ASN_DEBUG( - "Encoding %" ASN_PRI_SIZE " bytes (%ld), length (in %d bits) trailer %d; actual " - "value %" ASN_PRI_SSIZE "", - st->size, size_in_bits - csiz->lower_bound, csiz->effective_bits, - add_trailer, - add_trailer ? 0 : (ssize_t)size_in_bits - csiz->lower_bound); - ret = per_put_few_bits( - po, add_trailer ? 0 : (ssize_t)size_in_bits - csiz->lower_bound, - csiz->effective_bits); - if(ret) ASN__ENCODE_FAILED; - ret = per_put_many_bits(po, st->buf, size_in_bits); - if(ret) ASN__ENCODE_FAILED; - if(add_trailer) { - static const uint8_t zeros[16]; - size_t trailing_zero_bits = csiz->lower_bound - size_in_bits; - while(trailing_zero_bits > 0) { - if(trailing_zero_bits > 8 * sizeof(zeros)) { - ret = per_put_many_bits(po, zeros, 8 * sizeof(zeros)); - trailing_zero_bits -= 8 * sizeof(zeros); - } else { - ret = per_put_many_bits(po, zeros, trailing_zero_bits); - trailing_zero_bits = 0; - } - if(ret) ASN__ENCODE_FAILED; - } - } - ASN__ENCODED_OK(er); - } - - ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes", st->size); - - buf = st->buf; - do { - int need_eom = 0; - ssize_t maySave = uper_put_length(po, size_in_bits, &need_eom); - if(maySave < 0) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %" ASN_PRI_SSIZE " of %" ASN_PRI_SIZE "", maySave, size_in_bits); - - ret = per_put_many_bits(po, buf, maySave); - if(ret) ASN__ENCODE_FAILED; - - buf += maySave >> 3; - size_in_bits -= maySave; - assert(!(maySave & 0x07) || !size_in_bits); - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - } while(size_in_bits); - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -asn_random_fill_result_t -BIT_STRING_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_BIT_STRING_specs; - asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - static unsigned lengths[] = {0, 1, 2, 3, 4, 8, - 126, 127, 128, 16383, 16384, 16385, - 65534, 65535, 65536, 65537}; - uint8_t *buf; - uint8_t *bend; - uint8_t *b; - size_t rnd_bits, rnd_len; - BIT_STRING_t *st; - - if(max_length == 0) return result_skipped; - - switch(specs->subvariant) { - case ASN_OSUBV_ANY: - return result_failed; - case ASN_OSUBV_BIT: - break; - default: - break; - } - - /* Figure out how far we should go */ - rnd_bits = lengths[asn_random_between( - 0, sizeof(lengths) / sizeof(lengths[0]) - 1)]; - if(!constraints || !constraints->per_constraints) - constraints = &td->encoding_constraints; - if(constraints->per_constraints) { - const asn_per_constraint_t *pc = &constraints->per_constraints->size; - if(pc->flags & APC_CONSTRAINED) { - long suggested_upper_bound = pc->upper_bound < (ssize_t)max_length - ? pc->upper_bound - : (ssize_t)max_length; - if(max_length < (size_t)pc->lower_bound) { - return result_skipped; - } - if(pc->flags & APC_EXTENSIBLE) { - switch(asn_random_between(0, 5)) { - case 0: - if(pc->lower_bound > 0) { - rnd_bits = pc->lower_bound - 1; - break; - } - /* Fall through */ - case 1: - rnd_bits = pc->upper_bound + 1; - break; - case 2: - /* Keep rnd_bits from the table */ - if(rnd_bits < max_length) { - break; - } - /* Fall through */ - default: - rnd_bits = asn_random_between(pc->lower_bound, - suggested_upper_bound); - } - } else { - rnd_bits = - asn_random_between(pc->lower_bound, suggested_upper_bound); - } - } else { - rnd_bits = asn_random_between(0, max_length - 1); - } - } else if(rnd_bits >= max_length) { - rnd_bits = asn_random_between(0, max_length - 1); - } - - rnd_len = (rnd_bits + 7) / 8; - buf = CALLOC(1, rnd_len + 1); - if(!buf) return result_failed; - - bend = &buf[rnd_len]; - - for(b = buf; b < bend; b++) { - *(uint8_t *)b = asn_random_between(0, 255); - } - *b = 0; /* Zero-terminate just in case. */ - - if(*sptr) { - st = *sptr; - FREEMEM(st->buf); - } else { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) { - FREEMEM(buf); - return result_failed; - } - } - - st->buf = buf; - st->size = rnd_len; - st->bits_unused = (8 - (rnd_bits & 0x7)) & 0x7; - if(st->bits_unused) { - assert(st->size > 0); - st->buf[st->size-1] &= 0xff << st->bits_unused; - } - - result_ok.length = st->size; - return result_ok; -} diff --git a/e2sim/src/ASN1c/BIT_STRING.h b/e2sim/src/ASN1c/BIT_STRING.h deleted file mode 100644 index c1bdbbc..0000000 --- a/e2sim/src/ASN1c/BIT_STRING.h +++ /dev/null @@ -1,48 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _BIT_STRING_H_ -#define _BIT_STRING_H_ - -#include /* Some help from OCTET STRING */ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct BIT_STRING_s { - uint8_t *buf; /* BIT STRING body */ - size_t size; /* Size of the above buffer */ - - int bits_unused;/* Unused trailing bits in the last octet (0..7) */ - - asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ -} BIT_STRING_t; - -extern asn_TYPE_descriptor_t asn_DEF_BIT_STRING; -extern asn_TYPE_operation_t asn_OP_BIT_STRING; -extern asn_OCTET_STRING_specifics_t asn_SPC_BIT_STRING_specs; - -asn_struct_print_f BIT_STRING_print; /* Human-readable output */ -asn_struct_compare_f BIT_STRING_compare; -asn_constr_check_f BIT_STRING_constraint; -xer_type_encoder_f BIT_STRING_encode_xer; -oer_type_decoder_f BIT_STRING_decode_oer; -oer_type_encoder_f BIT_STRING_encode_oer; -per_type_decoder_f BIT_STRING_decode_uper; -per_type_encoder_f BIT_STRING_encode_uper; -asn_random_fill_f BIT_STRING_random_fill; - -#define BIT_STRING_free OCTET_STRING_free -#define BIT_STRING_decode_ber OCTET_STRING_decode_ber -#define BIT_STRING_encode_der OCTET_STRING_encode_der -#define BIT_STRING_decode_xer OCTET_STRING_decode_xer_binary -#define BIT_STRING_decode_aper OCTET_STRING_decode_aper -#define BIT_STRING_encode_aper OCTET_STRING_encode_aper - -#ifdef __cplusplus -} -#endif - -#endif /* _BIT_STRING_H_ */ diff --git a/e2sim/src/ASN1c/Cause.c b/e2sim/src/ASN1c/Cause.c deleted file mode 100644 index 1f084cd..0000000 --- a/e2sim/src/ASN1c/Cause.c +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "Cause.h" - -asn_per_constraints_t asn_PER_type_Cause_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_Cause_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.ricRequest), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseRICrequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.ricService), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseRICservice, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricService" - }, - { ATF_NOFLAGS, 0, offsetof(struct Cause, 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 Cause, choice.transport), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseTransport, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "transport" - }, - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.protocol), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseProtocol, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocol" - }, - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.misc), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseMisc, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "misc" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_Cause_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 }, /* 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_Cause_specs_1 = { - sizeof(struct Cause), - offsetof(struct Cause, _asn_ctx), - offsetof(struct Cause, present), - sizeof(((struct Cause *)0)->present), - asn_MAP_Cause_tag2el_1, - 6, /* Count of tags in the map */ - 0, 0, - 6 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_Cause = { - "Cause", - "Cause", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_Cause_constr_1, CHOICE_constraint }, - asn_MBR_Cause_1, - 6, /* Elements count */ - &asn_SPC_Cause_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/Cause.h b/e2sim/src/ASN1c/Cause.h deleted file mode 100644 index 16d4373..0000000 --- a/e2sim/src/ASN1c/Cause.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _Cause_H_ -#define _Cause_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "CauseRICrequest.h" -#include "CauseRICservice.h" -#include "CauseE2node.h" -#include "CauseTransport.h" -#include "CauseProtocol.h" -#include "CauseMisc.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum Cause_PR { - Cause_PR_NOTHING, /* No components present */ - Cause_PR_ricRequest, - Cause_PR_ricService, - Cause_PR_e2Node, - Cause_PR_transport, - Cause_PR_protocol, - Cause_PR_misc - /* Extensions may appear below */ - -} Cause_PR; - -/* Cause */ -typedef struct Cause { - Cause_PR present; - union Cause_u { - CauseRICrequest_t ricRequest; - CauseRICservice_t ricService; - CauseE2node_t e2Node; - CauseTransport_t transport; - CauseProtocol_t protocol; - CauseMisc_t misc; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} Cause_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_Cause; -extern asn_CHOICE_specifics_t asn_SPC_Cause_specs_1; -extern asn_TYPE_member_t asn_MBR_Cause_1[6]; -extern asn_per_constraints_t asn_PER_type_Cause_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _Cause_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/CauseE2node.c b/e2sim/src/ASN1c/CauseE2node.c deleted file mode 100644 index 8fcb57b..0000000 --- a/e2sim/src/ASN1c/CauseE2node.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "CauseE2node.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -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 */ - { 0, &asn_PER_type_CauseE2node_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseE2node_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/CauseE2node.h b/e2sim/src/ASN1c/CauseE2node.h deleted file mode 100644 index 8c818fb..0000000 --- a/e2sim/src/ASN1c/CauseE2node.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _CauseE2node_H_ -#define _CauseE2node_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#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; -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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/CauseMisc.c b/e2sim/src/ASN1c/CauseMisc.c deleted file mode 100644 index 9ed8c24..0000000 --- a/e2sim/src/ASN1c/CauseMisc.c +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "CauseMisc.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CauseMisc_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CauseMisc_value2enum_1[] = { - { 0, 27, "control-processing-overload" }, - { 1, 16, "hardware-failure" }, - { 2, 15, "om-intervention" }, - { 3, 11, "unspecified" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CauseMisc_enum2value_1[] = { - 0, /* control-processing-overload(0) */ - 1, /* hardware-failure(1) */ - 2, /* om-intervention(2) */ - 3 /* unspecified(3) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseMisc_specs_1 = { - asn_MAP_CauseMisc_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseMisc_enum2value_1, /* N => "tag"; sorted by N */ - 4, /* Number of elements in the maps */ - 5, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_CauseMisc_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseMisc = { - "CauseMisc", - "CauseMisc", - &asn_OP_NativeEnumerated, - asn_DEF_CauseMisc_tags_1, - sizeof(asn_DEF_CauseMisc_tags_1) - /sizeof(asn_DEF_CauseMisc_tags_1[0]), /* 1 */ - asn_DEF_CauseMisc_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseMisc_tags_1) - /sizeof(asn_DEF_CauseMisc_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseMisc_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseMisc_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/CauseMisc.h b/e2sim/src/ASN1c/CauseMisc.h deleted file mode 100644 index bd12d02..0000000 --- a/e2sim/src/ASN1c/CauseMisc.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _CauseMisc_H_ -#define _CauseMisc_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseMisc { - CauseMisc_control_processing_overload = 0, - CauseMisc_hardware_failure = 1, - CauseMisc_om_intervention = 2, - CauseMisc_unspecified = 3 - /* - * Enumeration is extensible - */ -} e_CauseMisc; - -/* CauseMisc */ -typedef long CauseMisc_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseMisc_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseMisc; -extern const asn_INTEGER_specifics_t asn_SPC_CauseMisc_specs_1; -asn_struct_free_f CauseMisc_free; -asn_struct_print_f CauseMisc_print; -asn_constr_check_f CauseMisc_constraint; -ber_type_decoder_f CauseMisc_decode_ber; -der_type_encoder_f CauseMisc_encode_der; -xer_type_decoder_f CauseMisc_decode_xer; -xer_type_encoder_f CauseMisc_encode_xer; -per_type_decoder_f CauseMisc_decode_uper; -per_type_encoder_f CauseMisc_encode_uper; -per_type_decoder_f CauseMisc_decode_aper; -per_type_encoder_f CauseMisc_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseMisc_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/CauseProtocol.c b/e2sim/src/ASN1c/CauseProtocol.c deleted file mode 100644 index 0fdb788..0000000 --- a/e2sim/src/ASN1c/CauseProtocol.c +++ /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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "CauseProtocol.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CauseProtocol_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_CauseProtocol_value2enum_1[] = { - { 0, 21, "transfer-syntax-error" }, - { 1, 28, "abstract-syntax-error-reject" }, - { 2, 39, "abstract-syntax-error-ignore-and-notify" }, - { 3, 42, "message-not-compatible-with-receiver-state" }, - { 4, 14, "semantic-error" }, - { 5, 49, "abstract-syntax-error-falsely-constructed-message" }, - { 6, 11, "unspecified" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CauseProtocol_enum2value_1[] = { - 5, /* abstract-syntax-error-falsely-constructed-message(5) */ - 2, /* abstract-syntax-error-ignore-and-notify(2) */ - 1, /* abstract-syntax-error-reject(1) */ - 3, /* message-not-compatible-with-receiver-state(3) */ - 4, /* semantic-error(4) */ - 0, /* transfer-syntax-error(0) */ - 6 /* unspecified(6) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseProtocol_specs_1 = { - asn_MAP_CauseProtocol_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseProtocol_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_CauseProtocol_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseProtocol = { - "CauseProtocol", - "CauseProtocol", - &asn_OP_NativeEnumerated, - asn_DEF_CauseProtocol_tags_1, - sizeof(asn_DEF_CauseProtocol_tags_1) - /sizeof(asn_DEF_CauseProtocol_tags_1[0]), /* 1 */ - asn_DEF_CauseProtocol_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseProtocol_tags_1) - /sizeof(asn_DEF_CauseProtocol_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseProtocol_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseProtocol_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/CauseProtocol.h b/e2sim/src/ASN1c/CauseProtocol.h deleted file mode 100644 index e4534f8..0000000 --- a/e2sim/src/ASN1c/CauseProtocol.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _CauseProtocol_H_ -#define _CauseProtocol_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseProtocol { - CauseProtocol_transfer_syntax_error = 0, - CauseProtocol_abstract_syntax_error_reject = 1, - CauseProtocol_abstract_syntax_error_ignore_and_notify = 2, - CauseProtocol_message_not_compatible_with_receiver_state = 3, - CauseProtocol_semantic_error = 4, - CauseProtocol_abstract_syntax_error_falsely_constructed_message = 5, - CauseProtocol_unspecified = 6 - /* - * Enumeration is extensible - */ -} e_CauseProtocol; - -/* CauseProtocol */ -typedef long CauseProtocol_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseProtocol_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseProtocol; -extern const asn_INTEGER_specifics_t asn_SPC_CauseProtocol_specs_1; -asn_struct_free_f CauseProtocol_free; -asn_struct_print_f CauseProtocol_print; -asn_constr_check_f CauseProtocol_constraint; -ber_type_decoder_f CauseProtocol_decode_ber; -der_type_encoder_f CauseProtocol_encode_der; -xer_type_decoder_f CauseProtocol_decode_xer; -xer_type_encoder_f CauseProtocol_encode_xer; -per_type_decoder_f CauseProtocol_decode_uper; -per_type_encoder_f CauseProtocol_encode_uper; -per_type_decoder_f CauseProtocol_decode_aper; -per_type_encoder_f CauseProtocol_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseProtocol_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/CauseRICrequest.c b/e2sim/src/ASN1c/CauseRICrequest.c deleted file mode 100644 index 7bceca5..0000000 --- a/e2sim/src/ASN1c/CauseRICrequest.c +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "CauseRICrequest.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -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 */ - { 0, &asn_PER_type_CauseRICrequest_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseRICrequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/CauseRICrequest.h b/e2sim/src/ASN1c/CauseRICrequest.h deleted file mode 100644 index 76294b6..0000000 --- a/e2sim/src/ASN1c/CauseRICrequest.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _CauseRICrequest_H_ -#define _CauseRICrequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#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; -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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/CauseRICservice.c b/e2sim/src/ASN1c/CauseRICservice.c deleted file mode 100644 index 9c08e57..0000000 --- a/e2sim/src/ASN1c/CauseRICservice.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "CauseRICservice.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CauseRICservice_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_CauseRICservice_value2enum_1[] = { - { 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, /* ran-function-not-supported(0) */ - 2 /* ric-resource-limit(2) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseRICservice_specs_1 = { - asn_MAP_CauseRICservice_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseRICservice_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_CauseRICservice_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseRICservice = { - "CauseRICservice", - "CauseRICservice", - &asn_OP_NativeEnumerated, - asn_DEF_CauseRICservice_tags_1, - sizeof(asn_DEF_CauseRICservice_tags_1) - /sizeof(asn_DEF_CauseRICservice_tags_1[0]), /* 1 */ - asn_DEF_CauseRICservice_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseRICservice_tags_1) - /sizeof(asn_DEF_CauseRICservice_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseRICservice_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseRICservice_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/CauseRICservice.h b/e2sim/src/ASN1c/CauseRICservice.h deleted file mode 100644 index d9b27ef..0000000 --- a/e2sim/src/ASN1c/CauseRICservice.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _CauseRICservice_H_ -#define _CauseRICservice_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseRICservice { - CauseRICservice_ran_function_not_supported = 0, - CauseRICservice_excessive_functions = 1, - CauseRICservice_ric_resource_limit = 2 - /* - * Enumeration is extensible - */ -} e_CauseRICservice; - -/* CauseRICservice */ -typedef long CauseRICservice_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseRICservice_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseRICservice; -extern const asn_INTEGER_specifics_t asn_SPC_CauseRICservice_specs_1; -asn_struct_free_f CauseRICservice_free; -asn_struct_print_f CauseRICservice_print; -asn_constr_check_f CauseRICservice_constraint; -ber_type_decoder_f CauseRICservice_decode_ber; -der_type_encoder_f CauseRICservice_encode_der; -xer_type_decoder_f CauseRICservice_decode_xer; -xer_type_encoder_f CauseRICservice_encode_xer; -per_type_decoder_f CauseRICservice_decode_uper; -per_type_encoder_f CauseRICservice_encode_uper; -per_type_decoder_f CauseRICservice_decode_aper; -per_type_encoder_f CauseRICservice_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseRICservice_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/CauseTransport.c b/e2sim/src/ASN1c/CauseTransport.c deleted file mode 100644 index ce9d605..0000000 --- a/e2sim/src/ASN1c/CauseTransport.c +++ /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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "CauseTransport.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CauseTransport_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 */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CauseTransport_value2enum_1[] = { - { 0, 11, "unspecified" }, - { 1, 30, "transport-resource-unavailable" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CauseTransport_enum2value_1[] = { - 1, /* transport-resource-unavailable(1) */ - 0 /* unspecified(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseTransport_specs_1 = { - asn_MAP_CauseTransport_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseTransport_enum2value_1, /* 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_CauseTransport_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseTransport = { - "CauseTransport", - "CauseTransport", - &asn_OP_NativeEnumerated, - asn_DEF_CauseTransport_tags_1, - sizeof(asn_DEF_CauseTransport_tags_1) - /sizeof(asn_DEF_CauseTransport_tags_1[0]), /* 1 */ - asn_DEF_CauseTransport_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseTransport_tags_1) - /sizeof(asn_DEF_CauseTransport_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseTransport_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseTransport_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/CauseTransport.h b/e2sim/src/ASN1c/CauseTransport.h deleted file mode 100644 index 8e926f3..0000000 --- a/e2sim/src/ASN1c/CauseTransport.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _CauseTransport_H_ -#define _CauseTransport_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseTransport { - CauseTransport_unspecified = 0, - CauseTransport_transport_resource_unavailable = 1 - /* - * Enumeration is extensible - */ -} e_CauseTransport; - -/* CauseTransport */ -typedef long CauseTransport_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseTransport_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseTransport; -extern const asn_INTEGER_specifics_t asn_SPC_CauseTransport_specs_1; -asn_struct_free_f CauseTransport_free; -asn_struct_print_f CauseTransport_print; -asn_constr_check_f CauseTransport_constraint; -ber_type_decoder_f CauseTransport_decode_ber; -der_type_encoder_f CauseTransport_encode_der; -xer_type_decoder_f CauseTransport_decode_xer; -xer_type_encoder_f CauseTransport_encode_xer; -per_type_decoder_f CauseTransport_decode_uper; -per_type_encoder_f CauseTransport_encode_uper; -per_type_decoder_f CauseTransport_decode_aper; -per_type_encoder_f CauseTransport_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseTransport_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/Criticality.c b/e2sim/src/ASN1c/Criticality.c deleted file mode 100644 index 5b8c367..0000000 --- a/e2sim/src/ASN1c/Criticality.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "Criticality.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_Criticality_constr_1 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_INTEGER_enum_map_t asn_MAP_Criticality_value2enum_1[] = { - { 0, 6, "reject" }, - { 1, 6, "ignore" }, - { 2, 6, "notify" } -}; -static const unsigned int asn_MAP_Criticality_enum2value_1[] = { - 1, /* ignore(1) */ - 2, /* notify(2) */ - 0 /* reject(0) */ -}; -const asn_INTEGER_specifics_t asn_SPC_Criticality_specs_1 = { - asn_MAP_Criticality_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_Criticality_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 0, /* Enumeration is not extensible */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_Criticality_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Criticality = { - "Criticality", - "Criticality", - &asn_OP_NativeEnumerated, - asn_DEF_Criticality_tags_1, - sizeof(asn_DEF_Criticality_tags_1) - /sizeof(asn_DEF_Criticality_tags_1[0]), /* 1 */ - asn_DEF_Criticality_tags_1, /* Same as above */ - sizeof(asn_DEF_Criticality_tags_1) - /sizeof(asn_DEF_Criticality_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Criticality_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_Criticality_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/Criticality.h b/e2sim/src/ASN1c/Criticality.h deleted file mode 100644 index 64e46bb..0000000 --- a/e2sim/src/ASN1c/Criticality.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _Criticality_H_ -#define _Criticality_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum Criticality { - Criticality_reject = 0, - Criticality_ignore = 1, - Criticality_notify = 2 -} e_Criticality; - -/* Criticality */ -typedef long Criticality_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Criticality_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Criticality; -extern const asn_INTEGER_specifics_t asn_SPC_Criticality_specs_1; -asn_struct_free_f Criticality_free; -asn_struct_print_f Criticality_print; -asn_constr_check_f Criticality_constraint; -ber_type_decoder_f Criticality_decode_ber; -der_type_encoder_f Criticality_encode_der; -xer_type_decoder_f Criticality_decode_xer; -xer_type_encoder_f Criticality_encode_xer; -per_type_decoder_f Criticality_decode_uper; -per_type_encoder_f Criticality_encode_uper; -per_type_decoder_f Criticality_decode_aper; -per_type_encoder_f Criticality_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Criticality_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/CriticalityDiagnostics-IE-Item.c b/e2sim/src/ASN1c/CriticalityDiagnostics-IE-Item.c deleted file mode 100644 index 5b5c32a..0000000 --- a/e2sim/src/ASN1c/CriticalityDiagnostics-IE-Item.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "CriticalityDiagnostics-IE-Item.h" - -asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_Item, iECriticality), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iECriticality" - }, - { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_Item, iE_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_Item, typeOfError), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TypeOfError, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "typeOfError" - }, -}; -static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_IE_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CriticalityDiagnostics_IE_Item_tag2el_1[] = { - { (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 */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_IE_Item_specs_1 = { - sizeof(struct CriticalityDiagnostics_IE_Item), - offsetof(struct CriticalityDiagnostics_IE_Item, _asn_ctx), - asn_MAP_CriticalityDiagnostics_IE_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_CriticalityDiagnostics_IE_Item = { - "CriticalityDiagnostics-IE-Item", - "CriticalityDiagnostics-IE-Item", - &asn_OP_SEQUENCE, - asn_DEF_CriticalityDiagnostics_IE_Item_tags_1, - sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_tags_1[0]), /* 1 */ - asn_DEF_CriticalityDiagnostics_IE_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CriticalityDiagnostics_IE_Item_1, - 3, /* Elements count */ - &asn_SPC_CriticalityDiagnostics_IE_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/CriticalityDiagnostics-IE-Item.h b/e2sim/src/ASN1c/CriticalityDiagnostics-IE-Item.h deleted file mode 100644 index e0b769b..0000000 --- a/e2sim/src/ASN1c/CriticalityDiagnostics-IE-Item.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _CriticalityDiagnostics_IE_Item_H_ -#define _CriticalityDiagnostics_IE_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "Criticality.h" -#include "ProtocolIE-ID.h" -#include "TypeOfError.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* CriticalityDiagnostics-IE-Item */ -typedef struct CriticalityDiagnostics_IE_Item { - Criticality_t iECriticality; - ProtocolIE_ID_t iE_ID; - TypeOfError_t typeOfError; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CriticalityDiagnostics_IE_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_IE_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_Item_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _CriticalityDiagnostics_IE_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/CriticalityDiagnostics-IE-List.c b/e2sim/src/ASN1c/CriticalityDiagnostics-IE-List.c deleted file mode 100644 index f8a7630..0000000 --- a/e2sim/src/ASN1c/CriticalityDiagnostics-IE-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "CriticalityDiagnostics-IE-List.h" - -#include "CriticalityDiagnostics-IE-Item.h" -asn_per_constraints_t asn_PER_type_CriticalityDiagnostics_IE_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics_IE_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_IE_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_CriticalityDiagnostics_IE_List_specs_1 = { - sizeof(struct CriticalityDiagnostics_IE_List), - offsetof(struct CriticalityDiagnostics_IE_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_List = { - "CriticalityDiagnostics-IE-List", - "CriticalityDiagnostics-IE-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_CriticalityDiagnostics_IE_List_tags_1, - sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1[0]), /* 1 */ - asn_DEF_CriticalityDiagnostics_IE_List_tags_1, /* Same as above */ - sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CriticalityDiagnostics_IE_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_CriticalityDiagnostics_IE_List_1, - 1, /* Single element */ - &asn_SPC_CriticalityDiagnostics_IE_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/CriticalityDiagnostics-IE-List.h b/e2sim/src/ASN1c/CriticalityDiagnostics-IE-List.h deleted file mode 100644 index 65d4ef0..0000000 --- a/e2sim/src/ASN1c/CriticalityDiagnostics-IE-List.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _CriticalityDiagnostics_IE_List_H_ -#define _CriticalityDiagnostics_IE_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CriticalityDiagnostics_IE_Item; - -/* CriticalityDiagnostics-IE-List */ -typedef struct CriticalityDiagnostics_IE_List { - A_SEQUENCE_OF(struct CriticalityDiagnostics_IE_Item) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CriticalityDiagnostics_IE_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_List; -extern asn_SET_OF_specifics_t asn_SPC_CriticalityDiagnostics_IE_List_specs_1; -extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_List_1[1]; -extern asn_per_constraints_t asn_PER_type_CriticalityDiagnostics_IE_List_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _CriticalityDiagnostics_IE_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/CriticalityDiagnostics.c b/e2sim/src/ASN1c/CriticalityDiagnostics.c deleted file mode 100644 index 5a9e07d..0000000 --- a/e2sim/src/ASN1c/CriticalityDiagnostics.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "CriticalityDiagnostics.h" - -#include "RICrequestID.h" -#include "CriticalityDiagnostics-IE-List.h" -static asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_1[] = { - { ATF_POINTER, 5, offsetof(struct CriticalityDiagnostics, procedureCode), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProcedureCode, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "procedureCode" - }, - { ATF_POINTER, 4, offsetof(struct CriticalityDiagnostics, triggeringMessage), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TriggeringMessage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "triggeringMessage" - }, - { ATF_POINTER, 3, offsetof(struct CriticalityDiagnostics, procedureCriticality), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "procedureCriticality" - }, - { ATF_POINTER, 2, offsetof(struct CriticalityDiagnostics, ricRequestorID), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricRequestorID" - }, - { ATF_POINTER, 1, offsetof(struct CriticalityDiagnostics, iEsCriticalityDiagnostics), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CriticalityDiagnostics_IE_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iEsCriticalityDiagnostics" - }, -}; -static const int asn_MAP_CriticalityDiagnostics_oms_1[] = { 0, 1, 2, 3, 4 }; -static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CriticalityDiagnostics_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* triggeringMessage */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* procedureCriticality */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ricRequestorID */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iEsCriticalityDiagnostics */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_specs_1 = { - sizeof(struct CriticalityDiagnostics), - offsetof(struct CriticalityDiagnostics, _asn_ctx), - asn_MAP_CriticalityDiagnostics_tag2el_1, - 5, /* Count of tags in the map */ - asn_MAP_CriticalityDiagnostics_oms_1, /* Optional members */ - 5, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics = { - "CriticalityDiagnostics", - "CriticalityDiagnostics", - &asn_OP_SEQUENCE, - asn_DEF_CriticalityDiagnostics_tags_1, - sizeof(asn_DEF_CriticalityDiagnostics_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_tags_1[0]), /* 1 */ - asn_DEF_CriticalityDiagnostics_tags_1, /* Same as above */ - sizeof(asn_DEF_CriticalityDiagnostics_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CriticalityDiagnostics_1, - 5, /* Elements count */ - &asn_SPC_CriticalityDiagnostics_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/CriticalityDiagnostics.h b/e2sim/src/ASN1c/CriticalityDiagnostics.h deleted file mode 100644 index cf33265..0000000 --- a/e2sim/src/ASN1c/CriticalityDiagnostics.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _CriticalityDiagnostics_H_ -#define _CriticalityDiagnostics_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProcedureCode.h" -#include "TriggeringMessage.h" -#include "Criticality.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct RICrequestID; -struct CriticalityDiagnostics_IE_List; - -/* CriticalityDiagnostics */ -typedef struct CriticalityDiagnostics { - ProcedureCode_t *procedureCode; /* OPTIONAL */ - TriggeringMessage_t *triggeringMessage; /* OPTIONAL */ - Criticality_t *procedureCriticality; /* OPTIONAL */ - struct RICrequestID *ricRequestorID; /* OPTIONAL */ - struct CriticalityDiagnostics_IE_List *iEsCriticalityDiagnostics; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CriticalityDiagnostics_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics; - -#ifdef __cplusplus -} -#endif - -#endif /* _CriticalityDiagnostics_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2AP-PDU.c b/e2sim/src/ASN1c/E2AP-PDU.c deleted file mode 100644 index 5042ad2..0000000 --- a/e2sim/src/ASN1c/E2AP-PDU.c +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "E2AP-PDU.h" - -#include "InitiatingMessage.h" -#include "SuccessfulOutcome.h" -#include "UnsuccessfulOutcome.h" -static asn_per_constraints_t asn_PER_type_E2AP_PDU_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 asn_TYPE_member_t asn_MBR_E2AP_PDU_1[] = { - { ATF_POINTER, 0, offsetof(struct E2AP_PDU, choice.initiatingMessage), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_InitiatingMessage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "initiatingMessage" - }, - { ATF_POINTER, 0, offsetof(struct E2AP_PDU, choice.successfulOutcome), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SuccessfulOutcome, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "successfulOutcome" - }, - { ATF_POINTER, 0, offsetof(struct E2AP_PDU, choice.unsuccessfulOutcome), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UnsuccessfulOutcome, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "unsuccessfulOutcome" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_E2AP_PDU_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* initiatingMessage */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* successfulOutcome */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* unsuccessfulOutcome */ -}; -static asn_CHOICE_specifics_t asn_SPC_E2AP_PDU_specs_1 = { - sizeof(struct E2AP_PDU), - offsetof(struct E2AP_PDU, _asn_ctx), - offsetof(struct E2AP_PDU, present), - sizeof(((struct E2AP_PDU *)0)->present), - asn_MAP_E2AP_PDU_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, - 3 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_E2AP_PDU = { - "E2AP-PDU", - "E2AP-PDU", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_E2AP_PDU_constr_1, CHOICE_constraint }, - asn_MBR_E2AP_PDU_1, - 3, /* Elements count */ - &asn_SPC_E2AP_PDU_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/E2AP-PDU.h b/e2sim/src/ASN1c/E2AP-PDU.h deleted file mode 100644 index 977ba71..0000000 --- a/e2sim/src/ASN1c/E2AP-PDU.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2AP_PDU_H_ -#define _E2AP_PDU_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E2AP_PDU_PR { - E2AP_PDU_PR_NOTHING, /* No components present */ - E2AP_PDU_PR_initiatingMessage, - E2AP_PDU_PR_successfulOutcome, - E2AP_PDU_PR_unsuccessfulOutcome - /* Extensions may appear below */ - -} E2AP_PDU_PR; - -/* Forward declarations */ -struct InitiatingMessage; -struct SuccessfulOutcome; -struct UnsuccessfulOutcome; - -/* E2AP-PDU */ -typedef struct E2AP_PDU { - E2AP_PDU_PR present; - union E2AP_PDU_u { - struct InitiatingMessage *initiatingMessage; - struct SuccessfulOutcome *successfulOutcome; - struct UnsuccessfulOutcome *unsuccessfulOutcome; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2AP_PDU_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2AP_PDU; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2AP_PDU_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2connectionSetupFailed-Item.c b/e2sim/src/ASN1c/E2connectionSetupFailed-Item.c deleted file mode 100644 index 1bc9bb9..0000000 --- a/e2sim/src/ASN1c/E2connectionSetupFailed-Item.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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_Cause, - 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/e2sim/src/ASN1c/E2connectionSetupFailed-Item.h b/e2sim/src/ASN1c/E2connectionSetupFailed-Item.h deleted file mode 100644 index 0109037..0000000 --- a/e2sim/src/ASN1c/E2connectionSetupFailed-Item.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2connectionSetupFailed_Item_H_ -#define _E2connectionSetupFailed_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "TNLinformation.h" -#include "Cause.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2connectionSetupFailed-Item */ -typedef struct E2connectionSetupFailed_Item { - TNLinformation_t tnlInformation; - Cause_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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2connectionSetupFailed-List.c b/e2sim/src/ASN1c/E2connectionSetupFailed-List.c deleted file mode 100644 index d06cdfd..0000000 --- a/e2sim/src/ASN1c/E2connectionSetupFailed-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "E2connectionSetupFailed-List.h" - -#include "ProtocolIE-SingleContainer.h" -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_SingleContainer_1920P6, - 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 */ - { 0, &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/e2sim/src/ASN1c/E2connectionSetupFailed-List.h b/e2sim/src/ASN1c/E2connectionSetupFailed-List.h deleted file mode 100644 index 7e14810..0000000 --- a/e2sim/src/ASN1c/E2connectionSetupFailed-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2connectionSetupFailed_List_H_ -#define _E2connectionSetupFailed_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* E2connectionSetupFailed-List */ -typedef struct E2connectionSetupFailed_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) 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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2connectionUpdate-Item.c b/e2sim/src/ASN1c/E2connectionUpdate-Item.c deleted file mode 100644 index fa59079..0000000 --- a/e2sim/src/ASN1c/E2connectionUpdate-Item.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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/e2sim/src/ASN1c/E2connectionUpdate-Item.h b/e2sim/src/ASN1c/E2connectionUpdate-Item.h deleted file mode 100644 index e312331..0000000 --- a/e2sim/src/ASN1c/E2connectionUpdate-Item.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2connectionUpdate_Item_H_ -#define _E2connectionUpdate_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "TNLinformation.h" -#include "TNLusage.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2connectionUpdate-List.c b/e2sim/src/ASN1c/E2connectionUpdate-List.c deleted file mode 100644 index eef607d..0000000 --- a/e2sim/src/ASN1c/E2connectionUpdate-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "E2connectionUpdate-List.h" - -#include "ProtocolIE-SingleContainer.h" -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_SingleContainer_1920P4, - 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 */ - { 0, &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/e2sim/src/ASN1c/E2connectionUpdate-List.h b/e2sim/src/ASN1c/E2connectionUpdate-List.h deleted file mode 100644 index 845bd84..0000000 --- a/e2sim/src/ASN1c/E2connectionUpdate-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2connectionUpdate_List_H_ -#define _E2connectionUpdate_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* E2connectionUpdate-List */ -typedef struct E2connectionUpdate_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) 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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2connectionUpdate.c b/e2sim/src/ASN1c/E2connectionUpdate.c deleted file mode 100644 index 59c7253..0000000 --- a/e2sim/src/ASN1c/E2connectionUpdate.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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_Container_1917P15, - 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/e2sim/src/ASN1c/E2connectionUpdate.h b/e2sim/src/ASN1c/E2connectionUpdate.h deleted file mode 100644 index 60a143f..0000000 --- a/e2sim/src/ASN1c/E2connectionUpdate.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2connectionUpdate_H_ -#define _E2connectionUpdate_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2connectionUpdate */ -typedef struct E2connectionUpdate { - ProtocolIE_Container_1917P15_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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2connectionUpdateAcknowledge.c b/e2sim/src/ASN1c/E2connectionUpdateAcknowledge.c deleted file mode 100644 index ad48b95..0000000 --- a/e2sim/src/ASN1c/E2connectionUpdateAcknowledge.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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_Container_1917P16, - 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/e2sim/src/ASN1c/E2connectionUpdateAcknowledge.h b/e2sim/src/ASN1c/E2connectionUpdateAcknowledge.h deleted file mode 100644 index a03dca2..0000000 --- a/e2sim/src/ASN1c/E2connectionUpdateAcknowledge.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2connectionUpdateAcknowledge_H_ -#define _E2connectionUpdateAcknowledge_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2connectionUpdateAcknowledge */ -typedef struct E2connectionUpdateAcknowledge { - ProtocolIE_Container_1917P16_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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2connectionUpdateFailure.c b/e2sim/src/ASN1c/E2connectionUpdateFailure.c deleted file mode 100644 index 35235a8..0000000 --- a/e2sim/src/ASN1c/E2connectionUpdateFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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_Container_1917P17, - 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/e2sim/src/ASN1c/E2connectionUpdateFailure.h b/e2sim/src/ASN1c/E2connectionUpdateFailure.h deleted file mode 100644 index 8cf0d7a..0000000 --- a/e2sim/src/ASN1c/E2connectionUpdateFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2connectionUpdateFailure_H_ -#define _E2connectionUpdateFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2connectionUpdateFailure */ -typedef struct E2connectionUpdateFailure { - ProtocolIE_Container_1917P17_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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2connectionUpdateRemove-Item.c b/e2sim/src/ASN1c/E2connectionUpdateRemove-Item.c deleted file mode 100644 index ebac20d..0000000 --- a/e2sim/src/ASN1c/E2connectionUpdateRemove-Item.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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/e2sim/src/ASN1c/E2connectionUpdateRemove-Item.h b/e2sim/src/ASN1c/E2connectionUpdateRemove-Item.h deleted file mode 100644 index 76669fa..0000000 --- a/e2sim/src/ASN1c/E2connectionUpdateRemove-Item.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2connectionUpdateRemove_Item_H_ -#define _E2connectionUpdateRemove_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "TNLinformation.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2connectionUpdateRemove-List.c b/e2sim/src/ASN1c/E2connectionUpdateRemove-List.c deleted file mode 100644 index 500a81e..0000000 --- a/e2sim/src/ASN1c/E2connectionUpdateRemove-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "E2connectionUpdateRemove-List.h" - -#include "ProtocolIE-SingleContainer.h" -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_SingleContainer_1920P5, - 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 */ - { 0, &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/e2sim/src/ASN1c/E2connectionUpdateRemove-List.h b/e2sim/src/ASN1c/E2connectionUpdateRemove-List.h deleted file mode 100644 index ec80ae8..0000000 --- a/e2sim/src/ASN1c/E2connectionUpdateRemove-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2connectionUpdateRemove_List_H_ -#define _E2connectionUpdateRemove_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* E2connectionUpdateRemove-List */ -typedef struct E2connectionUpdateRemove_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) 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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigAddition-Item.c b/e2sim/src/ASN1c/E2nodeComponentConfigAddition-Item.c deleted file mode 100644 index 45cfa47..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigAddition-Item.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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/e2sim/src/ASN1c/E2nodeComponentConfigAddition-Item.h b/e2sim/src/ASN1c/E2nodeComponentConfigAddition-Item.h deleted file mode 100644 index 009d0ad..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigAddition-Item.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2nodeComponentConfigAddition_Item_H_ -#define _E2nodeComponentConfigAddition_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E2nodeComponentInterfaceType.h" -#include "E2nodeComponentID.h" -#include "E2nodeComponentConfiguration.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigAddition-List.c b/e2sim/src/ASN1c/E2nodeComponentConfigAddition-List.c deleted file mode 100644 index 8175003..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigAddition-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "E2nodeComponentConfigAddition-List.h" - -#include "ProtocolIE-SingleContainer.h" -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_SingleContainer_1920P7, - 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 */ - { 0, &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/e2sim/src/ASN1c/E2nodeComponentConfigAddition-List.h b/e2sim/src/ASN1c/E2nodeComponentConfigAddition-List.h deleted file mode 100644 index 62747cb..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigAddition-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2nodeComponentConfigAddition_List_H_ -#define _E2nodeComponentConfigAddition_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* E2nodeComponentConfigAddition-List */ -typedef struct E2nodeComponentConfigAddition_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) 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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigAdditionAck-Item.c b/e2sim/src/ASN1c/E2nodeComponentConfigAdditionAck-Item.c deleted file mode 100644 index 29cef18..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigAdditionAck-Item.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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/e2sim/src/ASN1c/E2nodeComponentConfigAdditionAck-Item.h b/e2sim/src/ASN1c/E2nodeComponentConfigAdditionAck-Item.h deleted file mode 100644 index eb62eb7..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigAdditionAck-Item.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2nodeComponentConfigAdditionAck_Item_H_ -#define _E2nodeComponentConfigAdditionAck_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E2nodeComponentInterfaceType.h" -#include "E2nodeComponentID.h" -#include "E2nodeComponentConfigurationAck.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigAdditionAck-List.c b/e2sim/src/ASN1c/E2nodeComponentConfigAdditionAck-List.c deleted file mode 100644 index 70f51bb..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigAdditionAck-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "E2nodeComponentConfigAdditionAck-List.h" - -#include "ProtocolIE-SingleContainer.h" -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_SingleContainer_1920P11, - 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 */ - { 0, &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/e2sim/src/ASN1c/E2nodeComponentConfigAdditionAck-List.h b/e2sim/src/ASN1c/E2nodeComponentConfigAdditionAck-List.h deleted file mode 100644 index 9a77b8b..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigAdditionAck-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2nodeComponentConfigAdditionAck_List_H_ -#define _E2nodeComponentConfigAdditionAck_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* E2nodeComponentConfigAdditionAck-List */ -typedef struct E2nodeComponentConfigAdditionAck_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) 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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigRemoval-Item.c b/e2sim/src/ASN1c/E2nodeComponentConfigRemoval-Item.c deleted file mode 100644 index 6b60e12..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigRemoval-Item.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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/e2sim/src/ASN1c/E2nodeComponentConfigRemoval-Item.h b/e2sim/src/ASN1c/E2nodeComponentConfigRemoval-Item.h deleted file mode 100644 index 36c86d5..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigRemoval-Item.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2nodeComponentConfigRemoval_Item_H_ -#define _E2nodeComponentConfigRemoval_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E2nodeComponentInterfaceType.h" -#include "E2nodeComponentID.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigRemoval-List.c b/e2sim/src/ASN1c/E2nodeComponentConfigRemoval-List.c deleted file mode 100644 index dc48d0f..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigRemoval-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "E2nodeComponentConfigRemoval-List.h" - -#include "ProtocolIE-SingleContainer.h" -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_SingleContainer_1920P9, - 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 */ - { 0, &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/e2sim/src/ASN1c/E2nodeComponentConfigRemoval-List.h b/e2sim/src/ASN1c/E2nodeComponentConfigRemoval-List.h deleted file mode 100644 index 944a61a..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigRemoval-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2nodeComponentConfigRemoval_List_H_ -#define _E2nodeComponentConfigRemoval_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* E2nodeComponentConfigRemoval-List */ -typedef struct E2nodeComponentConfigRemoval_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) 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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigRemovalAck-Item.c b/e2sim/src/ASN1c/E2nodeComponentConfigRemovalAck-Item.c deleted file mode 100644 index a07a8bb..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigRemovalAck-Item.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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/e2sim/src/ASN1c/E2nodeComponentConfigRemovalAck-Item.h b/e2sim/src/ASN1c/E2nodeComponentConfigRemovalAck-Item.h deleted file mode 100644 index 6ab5a05..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigRemovalAck-Item.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2nodeComponentConfigRemovalAck_Item_H_ -#define _E2nodeComponentConfigRemovalAck_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E2nodeComponentInterfaceType.h" -#include "E2nodeComponentID.h" -#include "E2nodeComponentConfigurationAck.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigRemovalAck-List.c b/e2sim/src/ASN1c/E2nodeComponentConfigRemovalAck-List.c deleted file mode 100644 index ed1c6c7..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigRemovalAck-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "E2nodeComponentConfigRemovalAck-List.h" - -#include "ProtocolIE-SingleContainer.h" -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_SingleContainer_1920P13, - 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 */ - { 0, &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/e2sim/src/ASN1c/E2nodeComponentConfigRemovalAck-List.h b/e2sim/src/ASN1c/E2nodeComponentConfigRemovalAck-List.h deleted file mode 100644 index fc59258..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigRemovalAck-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2nodeComponentConfigRemovalAck_List_H_ -#define _E2nodeComponentConfigRemovalAck_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* E2nodeComponentConfigRemovalAck-List */ -typedef struct E2nodeComponentConfigRemovalAck_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) 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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigUpdate-Item.c b/e2sim/src/ASN1c/E2nodeComponentConfigUpdate-Item.c deleted file mode 100644 index 295bf5d..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigUpdate-Item.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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/e2sim/src/ASN1c/E2nodeComponentConfigUpdate-Item.h b/e2sim/src/ASN1c/E2nodeComponentConfigUpdate-Item.h deleted file mode 100644 index f78ddbe..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigUpdate-Item.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2nodeComponentConfigUpdate_Item_H_ -#define _E2nodeComponentConfigUpdate_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E2nodeComponentInterfaceType.h" -#include "E2nodeComponentID.h" -#include "E2nodeComponentConfiguration.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigUpdate-List.c b/e2sim/src/ASN1c/E2nodeComponentConfigUpdate-List.c deleted file mode 100644 index 7a49f73..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigUpdate-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "E2nodeComponentConfigUpdate-List.h" - -#include "ProtocolIE-SingleContainer.h" -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_SingleContainer_1920P8, - 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 */ - { 0, &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/e2sim/src/ASN1c/E2nodeComponentConfigUpdate-List.h b/e2sim/src/ASN1c/E2nodeComponentConfigUpdate-List.h deleted file mode 100644 index ee79073..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigUpdate-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2nodeComponentConfigUpdate_List_H_ -#define _E2nodeComponentConfigUpdate_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* E2nodeComponentConfigUpdate-List */ -typedef struct E2nodeComponentConfigUpdate_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) 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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck-Item.c b/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck-Item.c deleted file mode 100644 index 8b33328..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck-Item.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck-Item.h b/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck-Item.h deleted file mode 100644 index 8fede58..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck-Item.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2nodeComponentConfigUpdateAck_Item_H_ -#define _E2nodeComponentConfigUpdateAck_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E2nodeComponentInterfaceType.h" -#include "E2nodeComponentID.h" -#include "E2nodeComponentConfigurationAck.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck-List.c b/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck-List.c deleted file mode 100644 index d25030a..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "E2nodeComponentConfigUpdateAck-List.h" - -#include "ProtocolIE-SingleContainer.h" -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_SingleContainer_1920P12, - 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 */ - { 0, &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/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck-List.h b/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck-List.h deleted file mode 100644 index 8d33460..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2nodeComponentConfigUpdateAck_List_H_ -#define _E2nodeComponentConfigUpdateAck_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* E2nodeComponentConfigUpdateAck-List */ -typedef struct E2nodeComponentConfigUpdateAck_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) 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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentConfiguration.c b/e2sim/src/ASN1c/E2nodeComponentConfiguration.c deleted file mode 100644 index 375f39b..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfiguration.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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/e2sim/src/ASN1c/E2nodeComponentConfiguration.h b/e2sim/src/ASN1c/E2nodeComponentConfiguration.h deleted file mode 100644 index b9c9277..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfiguration.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2nodeComponentConfiguration_H_ -#define _E2nodeComponentConfiguration_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigurationAck.c b/e2sim/src/ASN1c/E2nodeComponentConfigurationAck.c deleted file mode 100644 index c17ceb2..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigurationAck.c +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "E2nodeComponentConfigurationAck.h" - -#include "Cause.h" -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -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 */ - { 0, &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_Cause, - 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/e2sim/src/ASN1c/E2nodeComponentConfigurationAck.h b/e2sim/src/ASN1c/E2nodeComponentConfigurationAck.h deleted file mode 100644 index b29691d..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigurationAck.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2nodeComponentConfigurationAck_H_ -#define _E2nodeComponentConfigurationAck_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" -#include "constr_SEQUENCE.h" - -#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 Cause; - -/* E2nodeComponentConfigurationAck */ -typedef struct E2nodeComponentConfigurationAck { - long updateOutcome; - struct Cause *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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentID.c b/e2sim/src/ASN1c/E2nodeComponentID.c deleted file mode 100644 index ce3697d..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentID.c +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "E2nodeComponentID.h" - -#include "E2nodeComponentInterfaceNG.h" -#include "E2nodeComponentInterfaceXn.h" -#include "E2nodeComponentInterfaceE1.h" -#include "E2nodeComponentInterfaceF1.h" -#include "E2nodeComponentInterfaceW1.h" -#include "E2nodeComponentInterfaceS1.h" -#include "E2nodeComponentInterfaceX2.h" -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) */ - { 0, &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/e2sim/src/ASN1c/E2nodeComponentID.h b/e2sim/src/ASN1c/E2nodeComponentID.h deleted file mode 100644 index 1e76e9f..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentID.h +++ /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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2nodeComponentID_H_ -#define _E2nodeComponentID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentInterfaceE1.c b/e2sim/src/ASN1c/E2nodeComponentInterfaceE1.c deleted file mode 100644 index 7183e8d..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentInterfaceE1.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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/e2sim/src/ASN1c/E2nodeComponentInterfaceE1.h b/e2sim/src/ASN1c/E2nodeComponentInterfaceE1.h deleted file mode 100644 index 813fe07..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentInterfaceE1.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2nodeComponentInterfaceE1_H_ -#define _E2nodeComponentInterfaceE1_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GNB-CU-UP-ID.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentInterfaceF1.c b/e2sim/src/ASN1c/E2nodeComponentInterfaceF1.c deleted file mode 100644 index 6ede91a..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentInterfaceF1.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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/e2sim/src/ASN1c/E2nodeComponentInterfaceF1.h b/e2sim/src/ASN1c/E2nodeComponentInterfaceF1.h deleted file mode 100644 index b9867b9..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentInterfaceF1.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2nodeComponentInterfaceF1_H_ -#define _E2nodeComponentInterfaceF1_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GNB-DU-ID.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentInterfaceNG.c b/e2sim/src/ASN1c/E2nodeComponentInterfaceNG.c deleted file mode 100644 index 7d92f9f..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentInterfaceNG.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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/e2sim/src/ASN1c/E2nodeComponentInterfaceNG.h b/e2sim/src/ASN1c/E2nodeComponentInterfaceNG.h deleted file mode 100644 index cc366c3..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentInterfaceNG.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2nodeComponentInterfaceNG_H_ -#define _E2nodeComponentInterfaceNG_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "AMFName.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentInterfaceS1.c b/e2sim/src/ASN1c/E2nodeComponentInterfaceS1.c deleted file mode 100644 index d85197a..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentInterfaceS1.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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/e2sim/src/ASN1c/E2nodeComponentInterfaceS1.h b/e2sim/src/ASN1c/E2nodeComponentInterfaceS1.h deleted file mode 100644 index 56a4b2c..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentInterfaceS1.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2nodeComponentInterfaceS1_H_ -#define _E2nodeComponentInterfaceS1_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "MMEname.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentInterfaceType.c b/e2sim/src/ASN1c/E2nodeComponentInterfaceType.c deleted file mode 100644 index 24794d4..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentInterfaceType.c +++ /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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "E2nodeComponentInterfaceType.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -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 */ - { 0, &asn_PER_type_E2nodeComponentInterfaceType_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_E2nodeComponentInterfaceType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/E2nodeComponentInterfaceType.h b/e2sim/src/ASN1c/E2nodeComponentInterfaceType.h deleted file mode 100644 index d6f0bdc..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentInterfaceType.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2nodeComponentInterfaceType_H_ -#define _E2nodeComponentInterfaceType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#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; -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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentInterfaceW1.c b/e2sim/src/ASN1c/E2nodeComponentInterfaceW1.c deleted file mode 100644 index c3e2af1..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentInterfaceW1.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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/e2sim/src/ASN1c/E2nodeComponentInterfaceW1.h b/e2sim/src/ASN1c/E2nodeComponentInterfaceW1.h deleted file mode 100644 index 84fc6ef..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentInterfaceW1.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2nodeComponentInterfaceW1_H_ -#define _E2nodeComponentInterfaceW1_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NGENB-DU-ID.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentInterfaceX2.c b/e2sim/src/ASN1c/E2nodeComponentInterfaceX2.c deleted file mode 100644 index 182ef1e..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentInterfaceX2.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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/e2sim/src/ASN1c/E2nodeComponentInterfaceX2.h b/e2sim/src/ASN1c/E2nodeComponentInterfaceX2.h deleted file mode 100644 index 3182830..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentInterfaceX2.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2nodeComponentInterfaceX2_H_ -#define _E2nodeComponentInterfaceX2_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentInterfaceXn.c b/e2sim/src/ASN1c/E2nodeComponentInterfaceXn.c deleted file mode 100644 index 68f8846..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentInterfaceXn.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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/e2sim/src/ASN1c/E2nodeComponentInterfaceXn.h b/e2sim/src/ASN1c/E2nodeComponentInterfaceXn.h deleted file mode 100644 index 896eea2..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentInterfaceXn.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2nodeComponentInterfaceXn_H_ -#define _E2nodeComponentInterfaceXn_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GlobalNG-RANNode-ID.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeConfigurationUpdate.c b/e2sim/src/ASN1c/E2nodeConfigurationUpdate.c deleted file mode 100644 index f40909c..0000000 --- a/e2sim/src/ASN1c/E2nodeConfigurationUpdate.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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_Container_1917P18, - 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/e2sim/src/ASN1c/E2nodeConfigurationUpdate.h b/e2sim/src/ASN1c/E2nodeConfigurationUpdate.h deleted file mode 100644 index 60e609d..0000000 --- a/e2sim/src/ASN1c/E2nodeConfigurationUpdate.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2nodeConfigurationUpdate_H_ -#define _E2nodeConfigurationUpdate_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2nodeConfigurationUpdate */ -typedef struct E2nodeConfigurationUpdate { - ProtocolIE_Container_1917P18_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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeConfigurationUpdateAcknowledge.c b/e2sim/src/ASN1c/E2nodeConfigurationUpdateAcknowledge.c deleted file mode 100644 index 4586653..0000000 --- a/e2sim/src/ASN1c/E2nodeConfigurationUpdateAcknowledge.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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_Container_1917P19, - 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/e2sim/src/ASN1c/E2nodeConfigurationUpdateAcknowledge.h b/e2sim/src/ASN1c/E2nodeConfigurationUpdateAcknowledge.h deleted file mode 100644 index dd820a8..0000000 --- a/e2sim/src/ASN1c/E2nodeConfigurationUpdateAcknowledge.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2nodeConfigurationUpdateAcknowledge_H_ -#define _E2nodeConfigurationUpdateAcknowledge_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2nodeConfigurationUpdateAcknowledge */ -typedef struct E2nodeConfigurationUpdateAcknowledge { - ProtocolIE_Container_1917P19_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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeConfigurationUpdateFailure.c b/e2sim/src/ASN1c/E2nodeConfigurationUpdateFailure.c deleted file mode 100644 index 7de3e76..0000000 --- a/e2sim/src/ASN1c/E2nodeConfigurationUpdateFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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_Container_1917P20, - 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/e2sim/src/ASN1c/E2nodeConfigurationUpdateFailure.h b/e2sim/src/ASN1c/E2nodeConfigurationUpdateFailure.h deleted file mode 100644 index 781aef4..0000000 --- a/e2sim/src/ASN1c/E2nodeConfigurationUpdateFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2nodeConfigurationUpdateFailure_H_ -#define _E2nodeConfigurationUpdateFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2nodeConfigurationUpdateFailure */ -typedef struct E2nodeConfigurationUpdateFailure { - ProtocolIE_Container_1917P20_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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeTNLassociationRemoval-Item.c b/e2sim/src/ASN1c/E2nodeTNLassociationRemoval-Item.c deleted file mode 100644 index d547e80..0000000 --- a/e2sim/src/ASN1c/E2nodeTNLassociationRemoval-Item.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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/e2sim/src/ASN1c/E2nodeTNLassociationRemoval-Item.h b/e2sim/src/ASN1c/E2nodeTNLassociationRemoval-Item.h deleted file mode 100644 index e8763ee..0000000 --- a/e2sim/src/ASN1c/E2nodeTNLassociationRemoval-Item.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2nodeTNLassociationRemoval_Item_H_ -#define _E2nodeTNLassociationRemoval_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "TNLinformation.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeTNLassociationRemoval-List.c b/e2sim/src/ASN1c/E2nodeTNLassociationRemoval-List.c deleted file mode 100644 index e82f69c..0000000 --- a/e2sim/src/ASN1c/E2nodeTNLassociationRemoval-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "E2nodeTNLassociationRemoval-List.h" - -#include "ProtocolIE-SingleContainer.h" -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_SingleContainer_1920P10, - 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 */ - { 0, &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/e2sim/src/ASN1c/E2nodeTNLassociationRemoval-List.h b/e2sim/src/ASN1c/E2nodeTNLassociationRemoval-List.h deleted file mode 100644 index bba966b..0000000 --- a/e2sim/src/ASN1c/E2nodeTNLassociationRemoval-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2nodeTNLassociationRemoval_List_H_ -#define _E2nodeTNLassociationRemoval_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* E2nodeTNLassociationRemoval-List */ -typedef struct E2nodeTNLassociationRemoval_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) 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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2setupFailure.c b/e2sim/src/ASN1c/E2setupFailure.c deleted file mode 100644 index e521bc4..0000000 --- a/e2sim/src/ASN1c/E2setupFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "E2setupFailure.h" - -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_Container_1917P14, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2setupFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2setupFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2setupFailure_specs_1 = { - sizeof(struct E2setupFailure), - offsetof(struct E2setupFailure, _asn_ctx), - asn_MAP_E2setupFailure_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_E2setupFailure = { - "E2setupFailure", - "E2setupFailure", - &asn_OP_SEQUENCE, - asn_DEF_E2setupFailure_tags_1, - sizeof(asn_DEF_E2setupFailure_tags_1) - /sizeof(asn_DEF_E2setupFailure_tags_1[0]), /* 1 */ - asn_DEF_E2setupFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_E2setupFailure_tags_1) - /sizeof(asn_DEF_E2setupFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupFailure_1, - 1, /* Elements count */ - &asn_SPC_E2setupFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/E2setupFailure.h b/e2sim/src/ASN1c/E2setupFailure.h deleted file mode 100644 index b92899c..0000000 --- a/e2sim/src/ASN1c/E2setupFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2setupFailure_H_ -#define _E2setupFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2setupFailure */ -typedef struct E2setupFailure { - ProtocolIE_Container_1917P14_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2setupFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2setupFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_E2setupFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2setupFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2setupRequest.c b/e2sim/src/ASN1c/E2setupRequest.c deleted file mode 100644 index c34efea..0000000 --- a/e2sim/src/ASN1c/E2setupRequest.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "E2setupRequest.h" - -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_Container_1917P12, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2setupRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2setupRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2setupRequest_specs_1 = { - sizeof(struct E2setupRequest), - offsetof(struct E2setupRequest, _asn_ctx), - asn_MAP_E2setupRequest_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_E2setupRequest = { - "E2setupRequest", - "E2setupRequest", - &asn_OP_SEQUENCE, - asn_DEF_E2setupRequest_tags_1, - sizeof(asn_DEF_E2setupRequest_tags_1) - /sizeof(asn_DEF_E2setupRequest_tags_1[0]), /* 1 */ - asn_DEF_E2setupRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_E2setupRequest_tags_1) - /sizeof(asn_DEF_E2setupRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupRequest_1, - 1, /* Elements count */ - &asn_SPC_E2setupRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/E2setupRequest.h b/e2sim/src/ASN1c/E2setupRequest.h deleted file mode 100644 index 4f01328..0000000 --- a/e2sim/src/ASN1c/E2setupRequest.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2setupRequest_H_ -#define _E2setupRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2setupRequest */ -typedef struct E2setupRequest { - ProtocolIE_Container_1917P12_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2setupRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2setupRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_E2setupRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2setupRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2setupResponse.c b/e2sim/src/ASN1c/E2setupResponse.c deleted file mode 100644 index 46d708b..0000000 --- a/e2sim/src/ASN1c/E2setupResponse.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "E2setupResponse.h" - -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_Container_1917P13, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2setupResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2setupResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2setupResponse_specs_1 = { - sizeof(struct E2setupResponse), - offsetof(struct E2setupResponse, _asn_ctx), - asn_MAP_E2setupResponse_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_E2setupResponse = { - "E2setupResponse", - "E2setupResponse", - &asn_OP_SEQUENCE, - asn_DEF_E2setupResponse_tags_1, - sizeof(asn_DEF_E2setupResponse_tags_1) - /sizeof(asn_DEF_E2setupResponse_tags_1[0]), /* 1 */ - asn_DEF_E2setupResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_E2setupResponse_tags_1) - /sizeof(asn_DEF_E2setupResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupResponse_1, - 1, /* Elements count */ - &asn_SPC_E2setupResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/E2setupResponse.h b/e2sim/src/ASN1c/E2setupResponse.h deleted file mode 100644 index f380882..0000000 --- a/e2sim/src/ASN1c/E2setupResponse.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _E2setupResponse_H_ -#define _E2setupResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2setupResponse */ -typedef struct E2setupResponse { - ProtocolIE_Container_1917P13_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2setupResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2setupResponse; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupResponse_specs_1; -extern asn_TYPE_member_t asn_MBR_E2setupResponse_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2setupResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/ENB-ID-Choice.c b/e2sim/src/ASN1c/ENB-ID-Choice.c deleted file mode 100644 index f6d14e2..0000000 --- a/e2sim/src/ASN1c/ENB-ID-Choice.c +++ /dev/null @@ -1,180 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "ENB-ID-Choice.h" - -static int -memb_enb_ID_macro_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 == 20)) { - /* 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_enb_ID_shortmacro_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 == 18)) { - /* 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_enb_ID_longmacro_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 == 21)) { - /* 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_per_constraints_t asn_PER_memb_enb_ID_macro_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_enb_ID_shortmacro_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 18, 18 } /* (SIZE(18..18)) */, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_enb_ID_longmacro_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 21, 21 } /* (SIZE(21..21)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ENB_ID_Choice_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 */ -}; -asn_TYPE_member_t asn_MBR_ENB_ID_Choice_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID_Choice, choice.enb_ID_macro), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_enb_ID_macro_constr_2, memb_enb_ID_macro_constraint_1 }, - 0, 0, /* No default value */ - "enb-ID-macro" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID_Choice, choice.enb_ID_shortmacro), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_enb_ID_shortmacro_constr_3, memb_enb_ID_shortmacro_constraint_1 }, - 0, 0, /* No default value */ - "enb-ID-shortmacro" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID_Choice, choice.enb_ID_longmacro), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_enb_ID_longmacro_constr_4, memb_enb_ID_longmacro_constraint_1 }, - 0, 0, /* No default value */ - "enb-ID-longmacro" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_ENB_ID_Choice_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* enb-ID-macro */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* enb-ID-shortmacro */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* enb-ID-longmacro */ -}; -asn_CHOICE_specifics_t asn_SPC_ENB_ID_Choice_specs_1 = { - sizeof(struct ENB_ID_Choice), - offsetof(struct ENB_ID_Choice, _asn_ctx), - offsetof(struct ENB_ID_Choice, present), - sizeof(((struct ENB_ID_Choice *)0)->present), - asn_MAP_ENB_ID_Choice_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, - 3 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_ENB_ID_Choice = { - "ENB-ID-Choice", - "ENB-ID-Choice", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_ENB_ID_Choice_constr_1, CHOICE_constraint }, - asn_MBR_ENB_ID_Choice_1, - 3, /* Elements count */ - &asn_SPC_ENB_ID_Choice_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/ENB-ID-Choice.h b/e2sim/src/ASN1c/ENB-ID-Choice.h deleted file mode 100644 index 3785315..0000000 --- a/e2sim/src/ASN1c/ENB-ID-Choice.h +++ /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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _ENB_ID_Choice_H_ -#define _ENB_ID_Choice_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ENB_ID_Choice_PR { - ENB_ID_Choice_PR_NOTHING, /* No components present */ - ENB_ID_Choice_PR_enb_ID_macro, - ENB_ID_Choice_PR_enb_ID_shortmacro, - ENB_ID_Choice_PR_enb_ID_longmacro - /* Extensions may appear below */ - -} ENB_ID_Choice_PR; - -/* ENB-ID-Choice */ -typedef struct ENB_ID_Choice { - ENB_ID_Choice_PR present; - union ENB_ID_Choice_u { - BIT_STRING_t enb_ID_macro; - BIT_STRING_t enb_ID_shortmacro; - BIT_STRING_t enb_ID_longmacro; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENB_ID_Choice_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENB_ID_Choice; -extern asn_CHOICE_specifics_t asn_SPC_ENB_ID_Choice_specs_1; -extern asn_TYPE_member_t asn_MBR_ENB_ID_Choice_1[3]; -extern asn_per_constraints_t asn_PER_type_ENB_ID_Choice_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENB_ID_Choice_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/ENB-ID.c b/e2sim/src/ASN1c/ENB-ID.c deleted file mode 100644 index e231b10..0000000 --- a/e2sim/src/ASN1c/ENB-ID.c +++ /dev/null @@ -1,226 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "ENB-ID.h" - -static int -memb_macro_eNB_ID_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 == 20)) { - /* 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_home_eNB_ID_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 == 28)) { - /* 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_short_Macro_eNB_ID_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 == 18)) { - /* 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_long_Macro_eNB_ID_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 == 21)) { - /* 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_per_constraints_t asn_PER_memb_macro_eNB_ID_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_home_eNB_ID_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 28, 28 } /* (SIZE(28..28)) */, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_short_Macro_eNB_ID_constr_5 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 18, 18 } /* (SIZE(18..18)) */, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_long_Macro_eNB_ID_constr_6 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 21, 21 } /* (SIZE(21..21)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ENB_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_ENB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID, choice.macro_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_macro_eNB_ID_constr_2, memb_macro_eNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "macro-eNB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID, choice.home_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_home_eNB_ID_constr_3, memb_home_eNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "home-eNB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID, choice.short_Macro_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_short_Macro_eNB_ID_constr_5, memb_short_Macro_eNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "short-Macro-eNB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID, choice.long_Macro_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_long_Macro_eNB_ID_constr_6, memb_long_Macro_eNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "long-Macro-eNB-ID" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_ENB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* macro-eNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* home-eNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* short-Macro-eNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* long-Macro-eNB-ID */ -}; -asn_CHOICE_specifics_t asn_SPC_ENB_ID_specs_1 = { - sizeof(struct ENB_ID), - offsetof(struct ENB_ID, _asn_ctx), - offsetof(struct ENB_ID, present), - sizeof(((struct ENB_ID *)0)->present), - asn_MAP_ENB_ID_tag2el_1, - 4, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_ENB_ID = { - "ENB-ID", - "ENB-ID", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_ENB_ID_constr_1, CHOICE_constraint }, - asn_MBR_ENB_ID_1, - 4, /* Elements count */ - &asn_SPC_ENB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/ENB-ID.h b/e2sim/src/ASN1c/ENB-ID.h deleted file mode 100644 index a53fd6c..0000000 --- a/e2sim/src/ASN1c/ENB-ID.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _ENB_ID_H_ -#define _ENB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ENB_ID_PR { - ENB_ID_PR_NOTHING, /* No components present */ - ENB_ID_PR_macro_eNB_ID, - ENB_ID_PR_home_eNB_ID, - /* Extensions may appear below */ - ENB_ID_PR_short_Macro_eNB_ID, - ENB_ID_PR_long_Macro_eNB_ID -} ENB_ID_PR; - -/* ENB-ID */ -typedef struct ENB_ID { - ENB_ID_PR present; - union ENB_ID_u { - BIT_STRING_t macro_eNB_ID; - BIT_STRING_t home_eNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - BIT_STRING_t short_Macro_eNB_ID; - BIT_STRING_t long_Macro_eNB_ID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENB_ID; -extern asn_CHOICE_specifics_t asn_SPC_ENB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_ENB_ID_1[4]; -extern asn_per_constraints_t asn_PER_type_ENB_ID_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/ENGNB-ID.c b/e2sim/src/ASN1c/ENGNB-ID.c deleted file mode 100644 index 3eb4ac4..0000000 --- a/e2sim/src/ASN1c/ENGNB-ID.c +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "ENGNB-ID.h" - -static int -memb_gNB_ID_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 >= 22 && size <= 32)) { - /* 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_per_constraints_t asn_PER_memb_gNB_ID_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 22, 32 } /* (SIZE(22..32)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ENGNB_ID_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 */ -}; -asn_TYPE_member_t asn_MBR_ENGNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENGNB_ID, choice.gNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_gNB_ID_constr_2, memb_gNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "gNB-ID" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_ENGNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gNB-ID */ -}; -asn_CHOICE_specifics_t asn_SPC_ENGNB_ID_specs_1 = { - sizeof(struct ENGNB_ID), - offsetof(struct ENGNB_ID, _asn_ctx), - offsetof(struct ENGNB_ID, present), - sizeof(((struct ENGNB_ID *)0)->present), - asn_MAP_ENGNB_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, - 1 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_ENGNB_ID = { - "ENGNB-ID", - "ENGNB-ID", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_ENGNB_ID_constr_1, CHOICE_constraint }, - asn_MBR_ENGNB_ID_1, - 1, /* Elements count */ - &asn_SPC_ENGNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/ENGNB-ID.h b/e2sim/src/ASN1c/ENGNB-ID.h deleted file mode 100644 index 8d180c5..0000000 --- a/e2sim/src/ASN1c/ENGNB-ID.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _ENGNB_ID_H_ -#define _ENGNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ENGNB_ID_PR { - ENGNB_ID_PR_NOTHING, /* No components present */ - ENGNB_ID_PR_gNB_ID - /* Extensions may appear below */ - -} ENGNB_ID_PR; - -/* ENGNB-ID */ -typedef struct ENGNB_ID { - ENGNB_ID_PR present; - union ENGNB_ID_u { - BIT_STRING_t gNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENGNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENGNB_ID; -extern asn_CHOICE_specifics_t asn_SPC_ENGNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_ENGNB_ID_1[1]; -extern asn_per_constraints_t asn_PER_type_ENGNB_ID_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENGNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/ErrorIndication.c b/e2sim/src/ASN1c/ErrorIndication.c deleted file mode 100644 index 1a1ca01..0000000 --- a/e2sim/src/ASN1c/ErrorIndication.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "ErrorIndication.h" - -asn_TYPE_member_t asn_MBR_ErrorIndication_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1917P11, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ErrorIndication_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ErrorIndication_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_specs_1 = { - sizeof(struct ErrorIndication), - offsetof(struct ErrorIndication, _asn_ctx), - asn_MAP_ErrorIndication_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_ErrorIndication = { - "ErrorIndication", - "ErrorIndication", - &asn_OP_SEQUENCE, - asn_DEF_ErrorIndication_tags_1, - sizeof(asn_DEF_ErrorIndication_tags_1) - /sizeof(asn_DEF_ErrorIndication_tags_1[0]), /* 1 */ - asn_DEF_ErrorIndication_tags_1, /* Same as above */ - sizeof(asn_DEF_ErrorIndication_tags_1) - /sizeof(asn_DEF_ErrorIndication_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ErrorIndication_1, - 1, /* Elements count */ - &asn_SPC_ErrorIndication_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/ErrorIndication.h b/e2sim/src/ASN1c/ErrorIndication.h deleted file mode 100644 index 8af3f17..0000000 --- a/e2sim/src/ASN1c/ErrorIndication.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _ErrorIndication_H_ -#define _ErrorIndication_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ErrorIndication */ -typedef struct ErrorIndication { - ProtocolIE_Container_1917P11_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ErrorIndication_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ErrorIndication; -extern asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_specs_1; -extern asn_TYPE_member_t asn_MBR_ErrorIndication_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ErrorIndication_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/GNB-CU-UP-ID.c b/e2sim/src/ASN1c/GNB-CU-UP-ID.c deleted file mode 100644 index f5ab574..0000000 --- a/e2sim/src/ASN1c/GNB-CU-UP-ID.c +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "GNB-CU-UP-ID.h" - -int -GNB_CU_UP_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. - */ -asn_per_constraints_t asn_PER_type_GNB_CU_UP_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_CU_UP_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_GNB_CU_UP_ID = { - "GNB-CU-UP-ID", - "GNB-CU-UP-ID", - &asn_OP_INTEGER, - asn_DEF_GNB_CU_UP_ID_tags_1, - sizeof(asn_DEF_GNB_CU_UP_ID_tags_1) - /sizeof(asn_DEF_GNB_CU_UP_ID_tags_1[0]), /* 1 */ - asn_DEF_GNB_CU_UP_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GNB_CU_UP_ID_tags_1) - /sizeof(asn_DEF_GNB_CU_UP_ID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_GNB_CU_UP_ID_constr_1, GNB_CU_UP_ID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/src/ASN1c/GNB-CU-UP-ID.h b/e2sim/src/ASN1c/GNB-CU-UP-ID.h deleted file mode 100644 index 0e7bcbc..0000000 --- a/e2sim/src/ASN1c/GNB-CU-UP-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _GNB_CU_UP_ID_H_ -#define _GNB_CU_UP_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "INTEGER.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GNB-CU-UP-ID */ -typedef INTEGER_t GNB_CU_UP_ID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_GNB_CU_UP_ID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_UP_ID; -asn_struct_free_f GNB_CU_UP_ID_free; -asn_struct_print_f GNB_CU_UP_ID_print; -asn_constr_check_f GNB_CU_UP_ID_constraint; -ber_type_decoder_f GNB_CU_UP_ID_decode_ber; -der_type_encoder_f GNB_CU_UP_ID_encode_der; -xer_type_decoder_f GNB_CU_UP_ID_decode_xer; -xer_type_encoder_f GNB_CU_UP_ID_encode_xer; -per_type_decoder_f GNB_CU_UP_ID_decode_uper; -per_type_encoder_f GNB_CU_UP_ID_encode_uper; -per_type_decoder_f GNB_CU_UP_ID_decode_aper; -per_type_encoder_f GNB_CU_UP_ID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_CU_UP_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/GNB-DU-ID.c b/e2sim/src/ASN1c/GNB-DU-ID.c deleted file mode 100644 index 18e8b90..0000000 --- a/e2sim/src/ASN1c/GNB-DU-ID.c +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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. - */ -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 */ - { 0, &asn_PER_type_GNB_DU_ID_constr_1, GNB_DU_ID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/src/ASN1c/GNB-DU-ID.h b/e2sim/src/ASN1c/GNB-DU-ID.h deleted file mode 100644 index 0322d24..0000000 --- a/e2sim/src/ASN1c/GNB-DU-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _GNB_DU_ID_H_ -#define _GNB_DU_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "INTEGER.h" - -#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; -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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/GNB-ID-Choice.c b/e2sim/src/ASN1c/GNB-ID-Choice.c deleted file mode 100644 index 5a66e0a..0000000 --- a/e2sim/src/ASN1c/GNB-ID-Choice.c +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "GNB-ID-Choice.h" - -static int -memb_gnb_ID_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 >= 22 && size <= 32)) { - /* 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_per_constraints_t asn_PER_memb_gnb_ID_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 22, 32 } /* (SIZE(22..32)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_GNB_ID_Choice_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 */ -}; -asn_TYPE_member_t asn_MBR_GNB_ID_Choice_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GNB_ID_Choice, choice.gnb_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_gnb_ID_constr_2, memb_gnb_ID_constraint_1 }, - 0, 0, /* No default value */ - "gnb-ID" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_GNB_ID_Choice_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gnb-ID */ -}; -asn_CHOICE_specifics_t asn_SPC_GNB_ID_Choice_specs_1 = { - sizeof(struct GNB_ID_Choice), - offsetof(struct GNB_ID_Choice, _asn_ctx), - offsetof(struct GNB_ID_Choice, present), - sizeof(((struct GNB_ID_Choice *)0)->present), - asn_MAP_GNB_ID_Choice_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, - 1 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_GNB_ID_Choice = { - "GNB-ID-Choice", - "GNB-ID-Choice", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_GNB_ID_Choice_constr_1, CHOICE_constraint }, - asn_MBR_GNB_ID_Choice_1, - 1, /* Elements count */ - &asn_SPC_GNB_ID_Choice_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/GNB-ID-Choice.h b/e2sim/src/ASN1c/GNB-ID-Choice.h deleted file mode 100644 index 25d8de8..0000000 --- a/e2sim/src/ASN1c/GNB-ID-Choice.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _GNB_ID_Choice_H_ -#define _GNB_ID_Choice_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum GNB_ID_Choice_PR { - GNB_ID_Choice_PR_NOTHING, /* No components present */ - GNB_ID_Choice_PR_gnb_ID - /* Extensions may appear below */ - -} GNB_ID_Choice_PR; - -/* GNB-ID-Choice */ -typedef struct GNB_ID_Choice { - GNB_ID_Choice_PR present; - union GNB_ID_Choice_u { - BIT_STRING_t gnb_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GNB_ID_Choice_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GNB_ID_Choice; -extern asn_CHOICE_specifics_t asn_SPC_GNB_ID_Choice_specs_1; -extern asn_TYPE_member_t asn_MBR_GNB_ID_Choice_1[1]; -extern asn_per_constraints_t asn_PER_type_GNB_ID_Choice_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_ID_Choice_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/GlobalE2node-ID.c b/e2sim/src/ASN1c/GlobalE2node-ID.c deleted file mode 100644 index 159bd68..0000000 --- a/e2sim/src/ASN1c/GlobalE2node-ID.c +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "GlobalE2node-ID.h" - -#include "GlobalE2node-gNB-ID.h" -#include "GlobalE2node-en-gNB-ID.h" -#include "GlobalE2node-ng-eNB-ID.h" -#include "GlobalE2node-eNB-ID.h" -static asn_per_constraints_t asn_PER_type_GlobalE2node_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_GlobalE2node_ID_1[] = { - { ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.gNB), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalE2node_gNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB" - }, - { ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.en_gNB), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalE2node_en_gNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "en-gNB" - }, - { ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.ng_eNB), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalE2node_ng_eNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ng-eNB" - }, - { ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.eNB), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalE2node_eNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eNB" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-gNB */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ng-eNB */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* eNB */ -}; -static asn_CHOICE_specifics_t asn_SPC_GlobalE2node_ID_specs_1 = { - sizeof(struct GlobalE2node_ID), - offsetof(struct GlobalE2node_ID, _asn_ctx), - offsetof(struct GlobalE2node_ID, present), - sizeof(((struct GlobalE2node_ID *)0)->present), - asn_MAP_GlobalE2node_ID_tag2el_1, - 4, /* Count of tags in the map */ - 0, 0, - 4 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ID = { - "GlobalE2node-ID", - "GlobalE2node-ID", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_GlobalE2node_ID_constr_1, CHOICE_constraint }, - asn_MBR_GlobalE2node_ID_1, - 4, /* Elements count */ - &asn_SPC_GlobalE2node_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/GlobalE2node-ID.h b/e2sim/src/ASN1c/GlobalE2node-ID.h deleted file mode 100644 index 5d7f455..0000000 --- a/e2sim/src/ASN1c/GlobalE2node-ID.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _GlobalE2node_ID_H_ -#define _GlobalE2node_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum GlobalE2node_ID_PR { - GlobalE2node_ID_PR_NOTHING, /* No components present */ - GlobalE2node_ID_PR_gNB, - GlobalE2node_ID_PR_en_gNB, - GlobalE2node_ID_PR_ng_eNB, - GlobalE2node_ID_PR_eNB - /* Extensions may appear below */ - -} GlobalE2node_ID_PR; - -/* Forward declarations */ -struct GlobalE2node_gNB_ID; -struct GlobalE2node_en_gNB_ID; -struct GlobalE2node_ng_eNB_ID; -struct GlobalE2node_eNB_ID; - -/* GlobalE2node-ID */ -typedef struct GlobalE2node_ID { - GlobalE2node_ID_PR present; - union GlobalE2node_ID_u { - struct GlobalE2node_gNB_ID *gNB; - struct GlobalE2node_en_gNB_ID *en_gNB; - struct GlobalE2node_ng_eNB_ID *ng_eNB; - struct GlobalE2node_eNB_ID *eNB; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalE2node_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ID; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalE2node_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/GlobalE2node-eNB-ID.c b/e2sim/src/ASN1c/GlobalE2node-eNB-ID.c deleted file mode 100644 index 8f7b1da..0000000 --- a/e2sim/src/ASN1c/GlobalE2node-eNB-ID.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "GlobalE2node-eNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalE2node_eNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_eNB_ID, 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" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalE2node_eNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_eNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-eNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_eNB_ID_specs_1 = { - sizeof(struct GlobalE2node_eNB_ID), - offsetof(struct GlobalE2node_eNB_ID, _asn_ctx), - asn_MAP_GlobalE2node_eNB_ID_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_GlobalE2node_eNB_ID = { - "GlobalE2node-eNB-ID", - "GlobalE2node-eNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalE2node_eNB_ID_tags_1, - sizeof(asn_DEF_GlobalE2node_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_eNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalE2node_eNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalE2node_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_eNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalE2node_eNB_ID_1, - 1, /* Elements count */ - &asn_SPC_GlobalE2node_eNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/GlobalE2node-eNB-ID.h b/e2sim/src/ASN1c/GlobalE2node-eNB-ID.h deleted file mode 100644 index 1f6ac5e..0000000 --- a/e2sim/src/ASN1c/GlobalE2node-eNB-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _GlobalE2node_eNB_ID_H_ -#define _GlobalE2node_eNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GlobalENB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalE2node-eNB-ID */ -typedef struct GlobalE2node_eNB_ID { - GlobalENB_ID_t global_eNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalE2node_eNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_eNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_eNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalE2node_eNB_ID_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalE2node_eNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/GlobalE2node-en-gNB-ID.c b/e2sim/src/ASN1c/GlobalE2node-en-gNB-ID.c deleted file mode 100644 index 864a2a1..0000000 --- a/e2sim/src/ASN1c/GlobalE2node-en-gNB-ID.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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_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-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-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, - 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", - "GlobalE2node-en-gNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalE2node_en_gNB_ID_tags_1, - sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalE2node_en_gNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalE2node_en_gNB_ID_1, - 3, /* Elements count */ - &asn_SPC_GlobalE2node_en_gNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/GlobalE2node-en-gNB-ID.h b/e2sim/src/ASN1c/GlobalE2node-en-gNB-ID.h deleted file mode 100644 index 7c15577..0000000 --- a/e2sim/src/ASN1c/GlobalE2node-en-gNB-ID.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _GlobalE2node_en_gNB_ID_H_ -#define _GlobalE2node_en_gNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GlobalenGNB-ID.h" -#include "GNB-CU-UP-ID.h" -#include "GNB-DU-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalE2node-en-gNB-ID */ -typedef struct GlobalE2node_en_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. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalE2node_en_gNB_ID_t; - -/* 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[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalE2node_en_gNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/GlobalE2node-gNB-ID.c b/e2sim/src/ASN1c/GlobalE2node-gNB-ID.c deleted file mode 100644 index 050265b..0000000 --- a/e2sim/src/ASN1c/GlobalE2node-gNB-ID.c +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalgNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-gNB-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 }, - 0, 0, /* No default value */ - "gNB-CU-UP-ID" - }, - { ATF_POINTER, 1, offsetof(struct GlobalE2node_gNB_ID, gNB_DU_ID), - (ASN_TAG_CLASS_CONTEXT | (3 << 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 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 }, /* 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, - 4, /* Count of tags in the map */ - asn_MAP_GlobalE2node_gNB_ID_oms_1, /* Optional members */ - 3, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalE2node_gNB_ID = { - "GlobalE2node-gNB-ID", - "GlobalE2node-gNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalE2node_gNB_ID_tags_1, - sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalE2node_gNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalE2node_gNB_ID_1, - 4, /* Elements count */ - &asn_SPC_GlobalE2node_gNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/GlobalE2node-gNB-ID.h b/e2sim/src/ASN1c/GlobalE2node-gNB-ID.h deleted file mode 100644 index bed418d..0000000 --- a/e2sim/src/ASN1c/GlobalE2node-gNB-ID.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _GlobalE2node_gNB_ID_H_ -#define _GlobalE2node_gNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GlobalgNB-ID.h" -#include "GNB-CU-UP-ID.h" -#include "GNB-DU-ID.h" -#include "constr_SEQUENCE.h" - -#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_ID_t *gNB_DU_ID; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalE2node_gNB_ID_t; - -/* 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[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalE2node_gNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/GlobalE2node-ng-eNB-ID.c b/e2sim/src/ASN1c/GlobalE2node-ng-eNB-ID.c deleted file mode 100644 index 313e953..0000000 --- a/e2sim/src/ASN1c/GlobalE2node-ng-eNB-ID.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalngeNB_ID, - 0, - { 0, 0, 0 }, - 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 | (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, - 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", - "GlobalE2node-ng-eNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalE2node_ng_eNB_ID_tags_1, - sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalE2node_ng_eNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalE2node_ng_eNB_ID_1, - 3, /* Elements count */ - &asn_SPC_GlobalE2node_ng_eNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/GlobalE2node-ng-eNB-ID.h b/e2sim/src/ASN1c/GlobalE2node-ng-eNB-ID.h deleted file mode 100644 index 05ca8a1..0000000 --- a/e2sim/src/ASN1c/GlobalE2node-ng-eNB-ID.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _GlobalE2node_ng_eNB_ID_H_ -#define _GlobalE2node_ng_eNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GlobalngeNB-ID.h" -#include "NGENB-DU-ID.h" -#include "constr_SEQUENCE.h" - -#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. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalE2node_ng_eNB_ID_t; - -/* 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[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalE2node_ng_eNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/GlobalENB-ID.c b/e2sim/src/ASN1c/GlobalENB-ID.c deleted file mode 100644 index d9d140a..0000000 --- a/e2sim/src/ASN1c/GlobalENB-ID.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "GlobalENB-ID.h" - -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_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalENB_ID, eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_ENB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eNB-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalENB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalENB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* eNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalENB_ID_specs_1 = { - sizeof(struct GlobalENB_ID), - offsetof(struct GlobalENB_ID, _asn_ctx), - asn_MAP_GlobalENB_ID_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_GlobalENB_ID = { - "GlobalENB-ID", - "GlobalENB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalENB_ID_tags_1, - sizeof(asn_DEF_GlobalENB_ID_tags_1) - /sizeof(asn_DEF_GlobalENB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalENB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalENB_ID_tags_1) - /sizeof(asn_DEF_GlobalENB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalENB_ID_1, - 2, /* Elements count */ - &asn_SPC_GlobalENB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/GlobalENB-ID.h b/e2sim/src/ASN1c/GlobalENB-ID.h deleted file mode 100644 index 822ac42..0000000 --- a/e2sim/src/ASN1c/GlobalENB-ID.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _GlobalENB_ID_H_ -#define _GlobalENB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "ENB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalENB-ID */ -typedef struct GlobalENB_ID { - PLMN_Identity_t pLMN_Identity; - ENB_ID_t eNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalENB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalENB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalENB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalENB_ID_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalENB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/GlobalNG-RANNode-ID.c b/e2sim/src/ASN1c/GlobalNG-RANNode-ID.c deleted file mode 100644 index 0541f38..0000000 --- a/e2sim/src/ASN1c/GlobalNG-RANNode-ID.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "GlobalNG-RANNode-ID.h" - -#include "GlobalgNB-ID.h" -#include "GlobalngeNB-ID.h" -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) */ - { 0, &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/e2sim/src/ASN1c/GlobalNG-RANNode-ID.h b/e2sim/src/ASN1c/GlobalNG-RANNode-ID.h deleted file mode 100644 index 325cb50..0000000 --- a/e2sim/src/ASN1c/GlobalNG-RANNode-ID.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _GlobalNG_RANNode_ID_H_ -#define _GlobalNG_RANNode_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/GlobalRIC-ID.c b/e2sim/src/ASN1c/GlobalRIC-ID.c deleted file mode 100644 index 5a4ef97..0000000 --- a/e2sim/src/ASN1c/GlobalRIC-ID.c +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "GlobalRIC-ID.h" - -static int -memb_ric_ID_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 == 20)) { - /* 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_per_constraints_t asn_PER_memb_ric_ID_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, - 0, 0 /* No PER value map */ -}; -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_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalRIC_ID, ric_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_ric_ID_constr_3, memb_ric_ID_constraint_1 }, - 0, 0, /* No default value */ - "ric-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalRIC_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalRIC_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ric-ID */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_GlobalRIC_ID_specs_1 = { - sizeof(struct GlobalRIC_ID), - offsetof(struct GlobalRIC_ID, _asn_ctx), - asn_MAP_GlobalRIC_ID_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_GlobalRIC_ID = { - "GlobalRIC-ID", - "GlobalRIC-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalRIC_ID_tags_1, - sizeof(asn_DEF_GlobalRIC_ID_tags_1) - /sizeof(asn_DEF_GlobalRIC_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalRIC_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalRIC_ID_tags_1) - /sizeof(asn_DEF_GlobalRIC_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalRIC_ID_1, - 2, /* Elements count */ - &asn_SPC_GlobalRIC_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/GlobalRIC-ID.h b/e2sim/src/ASN1c/GlobalRIC-ID.h deleted file mode 100644 index 93ccdb0..0000000 --- a/e2sim/src/ASN1c/GlobalRIC-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _GlobalRIC_ID_H_ -#define _GlobalRIC_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "BIT_STRING.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalRIC-ID */ -typedef struct GlobalRIC_ID { - PLMN_Identity_t pLMN_Identity; - BIT_STRING_t ric_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalRIC_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalRIC_ID; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalRIC_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/GlobalenGNB-ID.c b/e2sim/src/ASN1c/GlobalenGNB-ID.c deleted file mode 100644 index 412df59..0000000 --- a/e2sim/src/ASN1c/GlobalenGNB-ID.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "GlobalenGNB-ID.h" - -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_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalenGNB_ID, gNB_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_ENGNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalenGNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalenGNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* gNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalenGNB_ID_specs_1 = { - sizeof(struct GlobalenGNB_ID), - offsetof(struct GlobalenGNB_ID, _asn_ctx), - asn_MAP_GlobalenGNB_ID_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_GlobalenGNB_ID = { - "GlobalenGNB-ID", - "GlobalenGNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalenGNB_ID_tags_1, - sizeof(asn_DEF_GlobalenGNB_ID_tags_1) - /sizeof(asn_DEF_GlobalenGNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalenGNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalenGNB_ID_tags_1) - /sizeof(asn_DEF_GlobalenGNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalenGNB_ID_1, - 2, /* Elements count */ - &asn_SPC_GlobalenGNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/GlobalenGNB-ID.h b/e2sim/src/ASN1c/GlobalenGNB-ID.h deleted file mode 100644 index b32cebe..0000000 --- a/e2sim/src/ASN1c/GlobalenGNB-ID.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _GlobalenGNB_ID_H_ -#define _GlobalenGNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "ENGNB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalenGNB-ID */ -typedef struct GlobalenGNB_ID { - PLMN_Identity_t pLMN_Identity; - ENGNB_ID_t gNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalenGNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalenGNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalenGNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalenGNB_ID_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalenGNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/GlobalgNB-ID.c b/e2sim/src/ASN1c/GlobalgNB-ID.c deleted file mode 100644 index 5b756ef..0000000 --- a/e2sim/src/ASN1c/GlobalgNB-ID.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "GlobalgNB-ID.h" - -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_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "plmn-id" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalgNB_ID, gnb_id), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_GNB_ID_Choice, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gnb-id" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalgNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalgNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* plmn-id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* gnb-id */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalgNB_ID_specs_1 = { - sizeof(struct GlobalgNB_ID), - offsetof(struct GlobalgNB_ID, _asn_ctx), - asn_MAP_GlobalgNB_ID_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_GlobalgNB_ID = { - "GlobalgNB-ID", - "GlobalgNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalgNB_ID_tags_1, - sizeof(asn_DEF_GlobalgNB_ID_tags_1) - /sizeof(asn_DEF_GlobalgNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalgNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalgNB_ID_tags_1) - /sizeof(asn_DEF_GlobalgNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalgNB_ID_1, - 2, /* Elements count */ - &asn_SPC_GlobalgNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/GlobalgNB-ID.h b/e2sim/src/ASN1c/GlobalgNB-ID.h deleted file mode 100644 index 9287069..0000000 --- a/e2sim/src/ASN1c/GlobalgNB-ID.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _GlobalgNB_ID_H_ -#define _GlobalgNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "GNB-ID-Choice.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalgNB-ID */ -typedef struct GlobalgNB_ID { - PLMN_Identity_t plmn_id; - GNB_ID_Choice_t gnb_id; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalgNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalgNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalgNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalgNB_ID_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalgNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/GlobalngeNB-ID.c b/e2sim/src/ASN1c/GlobalngeNB-ID.c deleted file mode 100644 index f4ba963..0000000 --- a/e2sim/src/ASN1c/GlobalngeNB-ID.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "GlobalngeNB-ID.h" - -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_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "plmn-id" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalngeNB_ID, enb_id), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_ENB_ID_Choice, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "enb-id" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalngeNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalngeNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* plmn-id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* enb-id */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalngeNB_ID_specs_1 = { - sizeof(struct GlobalngeNB_ID), - offsetof(struct GlobalngeNB_ID, _asn_ctx), - asn_MAP_GlobalngeNB_ID_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_GlobalngeNB_ID = { - "GlobalngeNB-ID", - "GlobalngeNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalngeNB_ID_tags_1, - sizeof(asn_DEF_GlobalngeNB_ID_tags_1) - /sizeof(asn_DEF_GlobalngeNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalngeNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalngeNB_ID_tags_1) - /sizeof(asn_DEF_GlobalngeNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalngeNB_ID_1, - 2, /* Elements count */ - &asn_SPC_GlobalngeNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/GlobalngeNB-ID.h b/e2sim/src/ASN1c/GlobalngeNB-ID.h deleted file mode 100644 index 5ca930f..0000000 --- a/e2sim/src/ASN1c/GlobalngeNB-ID.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _GlobalngeNB_ID_H_ -#define _GlobalngeNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "ENB-ID-Choice.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalngeNB-ID */ -typedef struct GlobalngeNB_ID { - PLMN_Identity_t plmn_id; - ENB_ID_Choice_t enb_id; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalngeNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalngeNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalngeNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalngeNB_ID_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalngeNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/INTEGER.c b/e2sim/src/ASN1c/INTEGER.c deleted file mode 100644 index 2a2f4d7..0000000 --- a/e2sim/src/ASN1c/INTEGER.c +++ /dev/null @@ -1,1735 +0,0 @@ -/*- - * Copyright (c) 2003-2014 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include /* Encoder and decoder of a primitive type */ -#include - -/* - * INTEGER basic type description. - */ -static const ber_tlv_tag_t asn_DEF_INTEGER_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_operation_t asn_OP_INTEGER = { - INTEGER_free, - INTEGER_print, - INTEGER_compare, - ber_decode_primitive, - INTEGER_encode_der, - INTEGER_decode_xer, - INTEGER_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - INTEGER_decode_oer, /* OER decoder */ - INTEGER_encode_oer, /* Canonical OER encoder */ -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - INTEGER_decode_uper, /* Unaligned PER decoder */ - INTEGER_encode_uper, /* Unaligned PER encoder */ - INTEGER_decode_aper, /* Aligned PER decoder */ - INTEGER_encode_aper, /* Aligned PER encoder */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - INTEGER_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_INTEGER = { - "INTEGER", - "INTEGER", - &asn_OP_INTEGER, - asn_DEF_INTEGER_tags, - sizeof(asn_DEF_INTEGER_tags) / sizeof(asn_DEF_INTEGER_tags[0]), - asn_DEF_INTEGER_tags, /* Same as above */ - sizeof(asn_DEF_INTEGER_tags) / sizeof(asn_DEF_INTEGER_tags[0]), - { 0, 0, asn_generic_no_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - -/* - * Encode INTEGER type using DER. - */ -asn_enc_rval_t -INTEGER_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, - void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - asn_enc_rval_t rval; - INTEGER_t effective_integer; - - ASN_DEBUG("%s %s as INTEGER (tm=%d)", - cb?"Encoding":"Estimating", td->name, tag_mode); - - /* - * Canonicalize integer in the buffer. - * (Remove too long sign extension, remove some first 0x00 bytes) - */ - if(st->buf) { - uint8_t *buf = st->buf; - uint8_t *end1 = buf + st->size - 1; - int shift; - - /* Compute the number of superfluous leading bytes */ - for(; buf < end1; buf++) { - /* - * If the contents octets of an integer value encoding - * consist of more than one octet, then the bits of the - * first octet and bit 8 of the second octet: - * a) shall not all be ones; and - * b) shall not all be zero. - */ - switch(*buf) { - case 0x00: if((buf[1] & 0x80) == 0) - continue; - break; - case 0xff: if((buf[1] & 0x80)) - continue; - break; - } - break; - } - - /* Remove leading superfluous bytes from the integer */ - shift = buf - st->buf; - if(shift) { - union { - const uint8_t *c_buf; - uint8_t *nc_buf; - } unconst; - unconst.c_buf = st->buf; - effective_integer.buf = unconst.nc_buf + shift; - effective_integer.size = st->size - shift; - - st = &effective_integer; - } - } - - rval = der_encode_primitive(td, st, tag_mode, tag, cb, app_key); - if(rval.structure_ptr == &effective_integer) { - rval.structure_ptr = sptr; - } - return rval; -} - -static const asn_INTEGER_enum_map_t *INTEGER_map_enum2value( - const asn_INTEGER_specifics_t *specs, const char *lstart, - const char *lstop); - -/* - * INTEGER specific human-readable output. - */ -static ssize_t -INTEGER__dump(const asn_TYPE_descriptor_t *td, const INTEGER_t *st, asn_app_consume_bytes_f *cb, void *app_key, int plainOrXER) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - char scratch[32]; - uint8_t *buf = st->buf; - uint8_t *buf_end = st->buf + st->size; - intmax_t value; - ssize_t wrote = 0; - char *p; - int ret; - - if(specs && specs->field_unsigned) - ret = asn_INTEGER2umax(st, (uintmax_t *)&value); - else - ret = asn_INTEGER2imax(st, &value); - - /* Simple case: the integer size is small */ - if(ret == 0) { - const asn_INTEGER_enum_map_t *el; - el = (value >= 0 || !specs || !specs->field_unsigned) - ? INTEGER_map_value2enum(specs, value) : 0; - if(el) { - if(plainOrXER == 0) - return asn__format_to_callback(cb, app_key, - "%" ASN_PRIdMAX " (%s)", value, el->enum_name); - else - return asn__format_to_callback(cb, app_key, - "<%s/>", el->enum_name); - } else if(plainOrXER && specs && specs->strict_enumeration) { - ASN_DEBUG("ASN.1 forbids dealing with " - "unknown value of ENUMERATED type"); - errno = EPERM; - return -1; - } else { - return asn__format_to_callback(cb, app_key, - (specs && specs->field_unsigned) - ? "%" ASN_PRIuMAX - : "%" ASN_PRIdMAX, - value); - } - } else if(plainOrXER && specs && specs->strict_enumeration) { - /* - * Here and earlier, we cannot encode the ENUMERATED values - * if there is no corresponding identifier. - */ - ASN_DEBUG("ASN.1 forbids dealing with " - "unknown value of ENUMERATED type"); - errno = EPERM; - return -1; - } - - /* Output in the long xx:yy:zz... format */ - /* TODO: replace with generic algorithm (Knuth TAOCP Vol 2, 4.3.1) */ - for(p = scratch; buf < buf_end; buf++) { - const char * const h2c = "0123456789ABCDEF"; - if((p - scratch) >= (ssize_t)(sizeof(scratch) - 4)) { - /* Flush buffer */ - if(cb(scratch, p - scratch, app_key) < 0) - return -1; - wrote += p - scratch; - p = scratch; - } - *p++ = h2c[*buf >> 4]; - *p++ = h2c[*buf & 0x0F]; - *p++ = 0x3a; /* ":" */ - } - if(p != scratch) - p--; /* Remove the last ":" */ - - wrote += p - scratch; - return (cb(scratch, p - scratch, app_key) < 0) ? -1 : wrote; -} - -/* - * INTEGER specific human-readable output. - */ -int -INTEGER_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - ssize_t ret; - - (void)ilevel; - - if(!st || !st->buf) - ret = cb("", 8, app_key); - else - ret = INTEGER__dump(td, st, cb, app_key, 0); - - return (ret < 0) ? -1 : 0; -} - -struct e2v_key { - const char *start; - const char *stop; - const asn_INTEGER_enum_map_t *vemap; - const unsigned int *evmap; -}; -static int -INTEGER__compar_enum2value(const void *kp, const void *am) { - const struct e2v_key *key = (const struct e2v_key *)kp; - const asn_INTEGER_enum_map_t *el = (const asn_INTEGER_enum_map_t *)am; - const char *ptr, *end, *name; - - /* Remap the element (sort by different criterion) */ - el = key->vemap + key->evmap[el - key->vemap]; - - /* Compare strings */ - for(ptr = key->start, end = key->stop, name = el->enum_name; - ptr < end; ptr++, name++) { - if(*ptr != *name || !*name) - return *(const unsigned char *)ptr - - *(const unsigned char *)name; - } - return name[0] ? -1 : 0; -} - -static const asn_INTEGER_enum_map_t * -INTEGER_map_enum2value(const asn_INTEGER_specifics_t *specs, const char *lstart, - const char *lstop) { - const asn_INTEGER_enum_map_t *el_found; - int count = specs ? specs->map_count : 0; - struct e2v_key key; - const char *lp; - - if(!count) return NULL; - - /* Guaranteed: assert(lstart < lstop); */ - /* Figure out the tag name */ - for(lstart++, lp = lstart; lp < lstop; lp++) { - switch(*lp) { - case 9: case 10: case 11: case 12: case 13: case 32: /* WSP */ - case 0x2f: /* '/' */ case 0x3e: /* '>' */ - break; - default: - continue; - } - break; - } - if(lp == lstop) return NULL; /* No tag found */ - lstop = lp; - - key.start = lstart; - key.stop = lstop; - key.vemap = specs->value2enum; - key.evmap = specs->enum2value; - el_found = (asn_INTEGER_enum_map_t *)bsearch(&key, - specs->value2enum, count, sizeof(specs->value2enum[0]), - INTEGER__compar_enum2value); - if(el_found) { - /* Remap enum2value into value2enum */ - el_found = key.vemap + key.evmap[el_found - key.vemap]; - } - return el_found; -} - -static int -INTEGER__compar_value2enum(const void *kp, const void *am) { - long a = *(const long *)kp; - const asn_INTEGER_enum_map_t *el = (const asn_INTEGER_enum_map_t *)am; - long b = el->nat_value; - if(a < b) return -1; - else if(a == b) return 0; - else return 1; -} - -const asn_INTEGER_enum_map_t * -INTEGER_map_value2enum(const asn_INTEGER_specifics_t *specs, long value) { - int count = specs ? specs->map_count : 0; - if(!count) return 0; - return (asn_INTEGER_enum_map_t *)bsearch(&value, specs->value2enum, - count, sizeof(specs->value2enum[0]), - INTEGER__compar_value2enum); -} - -static int -INTEGER_st_prealloc(INTEGER_t *st, int min_size) { - void *p = MALLOC(min_size + 1); - if(p) { - void *b = st->buf; - st->size = 0; - st->buf = p; - FREEMEM(b); - return 0; - } else { - return -1; - } -} - -/* - * Decode the chunk of XML text encoding INTEGER. - */ -static enum xer_pbd_rval -INTEGER__xer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr, - const void *chunk_buf, size_t chunk_size) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - INTEGER_t *st = (INTEGER_t *)sptr; - intmax_t dec_value; - intmax_t hex_value = 0; - const char *lp; - const char *lstart = (const char *)chunk_buf; - const char *lstop = lstart + chunk_size; - enum { - ST_LEADSPACE, - ST_SKIPSPHEX, - ST_WAITDIGITS, - ST_DIGITS, - ST_DIGITS_TRAILSPACE, - ST_HEXDIGIT1, - ST_HEXDIGIT2, - ST_HEXDIGITS_TRAILSPACE, - ST_HEXCOLON, - ST_END_ENUM, - ST_UNEXPECTED - } state = ST_LEADSPACE; - const char *dec_value_start = 0; /* INVARIANT: always !0 in ST_DIGITS */ - const char *dec_value_end = 0; - - if(chunk_size) - ASN_DEBUG("INTEGER body %ld 0x%2x..0x%2x", - (long)chunk_size, *lstart, lstop[-1]); - - if(INTEGER_st_prealloc(st, (chunk_size/3) + 1)) - return XPBD_SYSTEM_FAILURE; - - /* - * We may have received a tag here. It will be processed inline. - * Use strtoul()-like code and serialize the result. - */ - for(lp = lstart; lp < lstop; lp++) { - int lv = *lp; - switch(lv) { - case 0x09: case 0x0a: case 0x0d: case 0x20: - switch(state) { - case ST_LEADSPACE: - case ST_DIGITS_TRAILSPACE: - case ST_HEXDIGITS_TRAILSPACE: - case ST_SKIPSPHEX: - continue; - case ST_DIGITS: - dec_value_end = lp; - state = ST_DIGITS_TRAILSPACE; - continue; - case ST_HEXCOLON: - state = ST_HEXDIGITS_TRAILSPACE; - continue; - default: - break; - } - break; - case 0x2d: /* '-' */ - if(state == ST_LEADSPACE) { - dec_value = 0; - dec_value_start = lp; - state = ST_WAITDIGITS; - continue; - } - break; - case 0x2b: /* '+' */ - if(state == ST_LEADSPACE) { - dec_value = 0; - dec_value_start = lp; - state = ST_WAITDIGITS; - continue; - } - break; - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: - switch(state) { - case ST_DIGITS: continue; - case ST_SKIPSPHEX: /* Fall through */ - case ST_HEXDIGIT1: - hex_value = (lv - 0x30) << 4; - state = ST_HEXDIGIT2; - continue; - case ST_HEXDIGIT2: - hex_value += (lv - 0x30); - state = ST_HEXCOLON; - st->buf[st->size++] = (uint8_t)hex_value; - continue; - case ST_HEXCOLON: - return XPBD_BROKEN_ENCODING; - case ST_LEADSPACE: - dec_value = 0; - dec_value_start = lp; - /* FALL THROUGH */ - case ST_WAITDIGITS: - state = ST_DIGITS; - continue; - default: - break; - } - break; - case 0x3c: /* '<', start of XML encoded enumeration */ - if(state == ST_LEADSPACE) { - const asn_INTEGER_enum_map_t *el; - el = INTEGER_map_enum2value( - (const asn_INTEGER_specifics_t *) - td->specifics, lstart, lstop); - if(el) { - ASN_DEBUG("Found \"%s\" => %ld", - el->enum_name, el->nat_value); - dec_value = el->nat_value; - state = ST_END_ENUM; - lp = lstop - 1; - continue; - } - ASN_DEBUG("Unknown identifier for INTEGER"); - } - return XPBD_BROKEN_ENCODING; - case 0x3a: /* ':' */ - if(state == ST_HEXCOLON) { - /* This colon is expected */ - state = ST_HEXDIGIT1; - continue; - } else if(state == ST_DIGITS) { - /* The colon here means that we have - * decoded the first two hexadecimal - * places as a decimal value. - * Switch decoding mode. */ - ASN_DEBUG("INTEGER re-evaluate as hex form"); - state = ST_SKIPSPHEX; - dec_value_start = 0; - lp = lstart - 1; - continue; - } else { - ASN_DEBUG("state %d at %ld", state, (long)(lp - lstart)); - break; - } - /* [A-Fa-f] */ - case 0x41:case 0x42:case 0x43:case 0x44:case 0x45:case 0x46: - case 0x61:case 0x62:case 0x63:case 0x64:case 0x65:case 0x66: - switch(state) { - case ST_SKIPSPHEX: - case ST_LEADSPACE: /* Fall through */ - case ST_HEXDIGIT1: - hex_value = lv - ((lv < 0x61) ? 0x41 : 0x61); - hex_value += 10; - hex_value <<= 4; - state = ST_HEXDIGIT2; - continue; - case ST_HEXDIGIT2: - hex_value += lv - ((lv < 0x61) ? 0x41 : 0x61); - hex_value += 10; - st->buf[st->size++] = (uint8_t)hex_value; - state = ST_HEXCOLON; - continue; - case ST_DIGITS: - ASN_DEBUG("INTEGER re-evaluate as hex form"); - state = ST_SKIPSPHEX; - dec_value_start = 0; - lp = lstart - 1; - continue; - default: - break; - } - break; - } - - /* Found extra non-numeric stuff */ - ASN_DEBUG("INTEGER :: Found non-numeric 0x%2x at %ld", - lv, (long)(lp - lstart)); - state = ST_UNEXPECTED; - break; - } - - switch(state) { - case ST_END_ENUM: - /* Got a complete and valid enumeration encoded as a tag. */ - break; - case ST_DIGITS: - dec_value_end = lstop; - /* FALL THROUGH */ - case ST_DIGITS_TRAILSPACE: - /* The last symbol encountered was a digit. */ - switch(asn_strtoimax_lim(dec_value_start, &dec_value_end, &dec_value)) { - case ASN_STRTOX_OK: - if(specs && specs->field_unsigned && (uintmax_t) dec_value <= ULONG_MAX) { - break; - } else if(dec_value >= LONG_MIN && dec_value <= LONG_MAX) { - break; - } else { - /* - * We model INTEGER on long for XER, - * to avoid rewriting all the tests at once. - */ - ASN_DEBUG("INTEGER exceeds long range"); - } - /* Fall through */ - case ASN_STRTOX_ERROR_RANGE: - ASN_DEBUG("INTEGER decode %s hit range limit", td->name); - return XPBD_DECODER_LIMIT; - case ASN_STRTOX_ERROR_INVAL: - case ASN_STRTOX_EXPECT_MORE: - case ASN_STRTOX_EXTRA_DATA: - return XPBD_BROKEN_ENCODING; - } - break; - case ST_HEXCOLON: - case ST_HEXDIGITS_TRAILSPACE: - st->buf[st->size] = 0; /* Just in case termination */ - return XPBD_BODY_CONSUMED; - case ST_HEXDIGIT1: - case ST_HEXDIGIT2: - case ST_SKIPSPHEX: - return XPBD_BROKEN_ENCODING; - case ST_LEADSPACE: - /* Content not found */ - return XPBD_NOT_BODY_IGNORE; - case ST_WAITDIGITS: - case ST_UNEXPECTED: - ASN_DEBUG("INTEGER: No useful digits (state %d)", state); - return XPBD_BROKEN_ENCODING; /* No digits */ - } - - /* - * Convert the result of parsing of enumeration or a straight - * decimal value into a BER representation. - */ - if(asn_imax2INTEGER(st, dec_value)) { - ASN_DEBUG("INTEGER decode %s conversion failed", td->name); - return XPBD_SYSTEM_FAILURE; - } - - return XPBD_BODY_CONSUMED; -} - -asn_dec_rval_t -INTEGER_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, size_t size) { - return xer_decode_primitive(opt_codec_ctx, td, - sptr, sizeof(INTEGER_t), opt_mname, - buf_ptr, size, INTEGER__xer_body_decode); -} - -asn_enc_rval_t -INTEGER_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - asn_enc_rval_t er = {0,0,0}; - - (void)ilevel; - (void)flags; - - if(!st || !st->buf) - ASN__ENCODE_FAILED; - - er.encoded = INTEGER__dump(td, st, cb, app_key, 1); - if(er.encoded < 0) ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -INTEGER_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval = { RC_OK, 0 }; - INTEGER_t *st = (INTEGER_t *)*sptr; - const asn_per_constraint_t *ct; - int repeat; - - (void)opt_codec_ctx; - - if(!st) { - st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st))); - if(!st) ASN__DECODE_FAILED; - } - - if(!constraints) constraints = td->encoding_constraints.per_constraints; - ct = constraints ? &constraints->value : 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) ASN__DECODE_STARVED; - if(inext) ct = 0; - } - - FREEMEM(st->buf); - st->buf = 0; - st->size = 0; - if(ct) { - if(ct->flags & APC_SEMI_CONSTRAINED) { - st->buf = (uint8_t *)CALLOC(1, 2); - if(!st->buf) ASN__DECODE_FAILED; - st->size = 1; - } else if(ct->flags & APC_CONSTRAINED && ct->range_bits >= 0) { - size_t size = (ct->range_bits + 7) >> 3; - st->buf = (uint8_t *)MALLOC(1 + size + 1); - if(!st->buf) ASN__DECODE_FAILED; - st->size = size; - } - } - - /* X.691-2008/11, #13.2.2, constrained whole number */ - if(ct && ct->flags != APC_UNCONSTRAINED) { - /* #11.5.6 */ - ASN_DEBUG("Integer with range %d bits", ct->range_bits); - if(ct->range_bits >= 0) { - if((size_t)ct->range_bits > 8 * sizeof(unsigned long)) - ASN__DECODE_FAILED; - - if(specs && specs->field_unsigned) { - unsigned long uvalue = 0; - if(uper_get_constrained_whole_number(pd, - &uvalue, ct->range_bits)) - ASN__DECODE_STARVED; - ASN_DEBUG("Got value %lu + low %ld", - uvalue, ct->lower_bound); - uvalue += ct->lower_bound; - if(asn_ulong2INTEGER(st, uvalue)) - ASN__DECODE_FAILED; - } else { - unsigned long uvalue = 0; - long svalue; - if(uper_get_constrained_whole_number(pd, - &uvalue, ct->range_bits)) - ASN__DECODE_STARVED; - ASN_DEBUG("Got value %lu + low %ld", - uvalue, ct->lower_bound); - if(per_long_range_unrebase(uvalue, ct->lower_bound, - ct->upper_bound, &svalue) - || asn_long2INTEGER(st, svalue)) { - ASN__DECODE_FAILED; - } - } - return rval; - } - } else { - ASN_DEBUG("Decoding unconstrained integer %s", td->name); - } - - /* X.691, #12.2.3, #12.2.4 */ - do { - ssize_t len = 0; - void *p = NULL; - int ret = 0; - - /* Get the PER length */ - len = uper_get_length(pd, -1, 0, &repeat); - if(len < 0) ASN__DECODE_STARVED; - - p = REALLOC(st->buf, st->size + len + 1); - if(!p) ASN__DECODE_FAILED; - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, 8 * len); - if(ret < 0) ASN__DECODE_STARVED; - st->size += len; - } while(repeat); - st->buf[st->size] = 0; /* JIC */ - - /* #12.2.3 */ - if(ct && ct->lower_bound) { - /* - * TODO: replace by in-place arithmetics. - */ - long value = 0; - if(asn_INTEGER2long(st, &value)) - ASN__DECODE_FAILED; - if(asn_imax2INTEGER(st, value + ct->lower_bound)) - ASN__DECODE_FAILED; - } - - return rval; -} - -asn_enc_rval_t -INTEGER_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - const INTEGER_t *st = (const INTEGER_t *)sptr; - const uint8_t *buf; - const uint8_t *end; - const asn_per_constraint_t *ct; - long value = 0; - - if(!st || st->size == 0) ASN__ENCODE_FAILED; - - if(!constraints) constraints = td->encoding_constraints.per_constraints; - ct = constraints ? &constraints->value : 0; - - er.encoded = 0; - - if(ct) { - int inext = 0; - if(specs && specs->field_unsigned) { - unsigned long uval; - if(asn_INTEGER2ulong(st, &uval)) - ASN__ENCODE_FAILED; - /* Check proper range */ - if(ct->flags & APC_SEMI_CONSTRAINED) { - if(uval < (unsigned long)ct->lower_bound) - inext = 1; - } else if(ct->range_bits >= 0) { - if(uval < (unsigned long)ct->lower_bound - || uval > (unsigned long)ct->upper_bound) - inext = 1; - } - ASN_DEBUG("Value %lu (%02x/%" ASN_PRI_SIZE ") lb %lu ub %lu %s", - uval, st->buf[0], st->size, - ct->lower_bound, ct->upper_bound, - inext ? "ext" : "fix"); - value = uval; - } else { - if(asn_INTEGER2long(st, &value)) - ASN__ENCODE_FAILED; - /* Check proper range */ - if(ct->flags & APC_SEMI_CONSTRAINED) { - if(value < ct->lower_bound) - inext = 1; - } else if(ct->range_bits >= 0) { - if(value < ct->lower_bound - || value > ct->upper_bound) - inext = 1; - } - ASN_DEBUG("Value %ld (%02x/%" ASN_PRI_SIZE ") lb %ld ub %ld %s", - value, st->buf[0], st->size, - ct->lower_bound, ct->upper_bound, - inext ? "ext" : "fix"); - } - if(ct->flags & APC_EXTENSIBLE) { - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - if(inext) ct = 0; - } else if(inext) { - ASN__ENCODE_FAILED; - } - } - - - /* X.691-11/2008, #13.2.2, test if constrained whole number */ - if(ct && ct->range_bits >= 0) { - unsigned long v; - /* #11.5.6 -> #11.3 */ - ASN_DEBUG("Encoding integer %ld (%lu) with range %d bits", - value, value - ct->lower_bound, ct->range_bits); - if(specs && specs->field_unsigned) { - if ( ((unsigned long)ct->lower_bound > (unsigned long)(ct->upper_bound) - || ((unsigned long)value < (unsigned long)ct->lower_bound)) - || ((unsigned long)value > (unsigned long)ct->upper_bound) - ) { - ASN_DEBUG("Value %lu to-be-encoded is outside the bounds [%lu, %lu]!", - value, ct->lower_bound, ct->upper_bound); - ASN__ENCODE_FAILED; - } - v = (unsigned long)value - (unsigned long)ct->lower_bound; - } else { - if(per_long_range_rebase(value, ct->lower_bound, ct->upper_bound, &v)) { - ASN__ENCODE_FAILED; - } - } - if(uper_put_constrained_whole_number_u(po, v, ct->range_bits)) - ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - if(ct && ct->lower_bound) { - ASN_DEBUG("Adjust lower bound to %ld", ct->lower_bound); - /* TODO: adjust lower bound */ - ASN__ENCODE_FAILED; - } - - for(buf = st->buf, end = st->buf + st->size; buf < end;) { - int need_eom = 0; - ssize_t mayEncode = uper_put_length(po, end - buf, &need_eom); - if(mayEncode < 0) - ASN__ENCODE_FAILED; - if(per_put_many_bits(po, buf, 8 * mayEncode)) - ASN__ENCODE_FAILED; - buf += mayEncode; - if(need_eom && uper_put_length(po, 0, 0)) ASN__ENCODE_FAILED; - } - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -INTEGER_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval = { RC_OK, 0 }; - INTEGER_t *st = (INTEGER_t *)*sptr; - const asn_per_constraint_t *ct; - int repeat; - - (void)opt_codec_ctx; - - if(!st) { - st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st))); - if(!st) ASN__DECODE_FAILED; - } - - if(!constraints) constraints = td->encoding_constraints.per_constraints; - ct = constraints ? &constraints->value : 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) ASN__DECODE_STARVED; - if(inext) ct = 0; - } - - FREEMEM(st->buf); - st->buf = 0; - st->size = 0; - if(ct) { - if(ct->flags & APC_SEMI_CONSTRAINED) { - st->buf = (uint8_t *)CALLOC(1, 2); - if(!st->buf) ASN__DECODE_FAILED; - st->size = 1; - } else if(ct->flags & APC_CONSTRAINED && ct->range_bits >= 0) { - size_t size = (ct->range_bits + 7) >> 3; - st->buf = (uint8_t *)MALLOC(1 + size + 1); - if(!st->buf) ASN__DECODE_FAILED; - st->size = size; - } - } - - /* X.691, #12.2.2 */ - if(ct && ct->flags != APC_UNCONSTRAINED) { - /* #10.5.6 */ - ASN_DEBUG("Integer with range %d bits", ct->range_bits); - if(ct->range_bits >= 0) { - if (ct->range_bits > 16) { - int max_range_bytes = (ct->range_bits >> 3) + - (((ct->range_bits % 8) > 0) ? 1 : 0); - int length = 0, i; - long value = 0; - - for (i = 1; ; i++) { - int upper = 1 << i; - if (upper >= max_range_bytes) - break; - } - ASN_DEBUG("Can encode %d (%d bytes) in %d bits", ct->range_bits, - max_range_bytes, i); - - if ((length = per_get_few_bits(pd, i)) < 0) - ASN__DECODE_FAILED; - - /* X.691 #12.2.6 length determinant + lb (1) */ - length += 1; - ASN_DEBUG("Got length %d", length); - if (aper_get_align(pd) != 0) - ASN__DECODE_FAILED; - while (length--) { - int buf = per_get_few_bits(pd, 8); - if (buf < 0) - ASN__DECODE_FAILED; - value += (((long)buf) << (8 * length)); - } - - value += ct->lower_bound; - if((specs && specs->field_unsigned) - ? asn_uint642INTEGER(st, (unsigned long)value) - : asn_int642INTEGER(st, value)) - ASN__DECODE_FAILED; - ASN_DEBUG("Got value %ld + low %ld", - value, ct->lower_bound); - } else { - long value = 0; - if (ct->range_bits < 8) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - } else if (ct->range_bits == 8) { - if (aper_get_align(pd) < 0) - ASN__DECODE_FAILED; - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - } else { - /* Align */ - if (aper_get_align(pd) < 0) - ASN__DECODE_FAILED; - value = per_get_few_bits(pd, 16); - if(value < 0) ASN__DECODE_STARVED; - } - value += ct->lower_bound; - if((specs && specs->field_unsigned) - ? asn_ulong2INTEGER(st, value) - : asn_long2INTEGER(st, value)) - ASN__DECODE_FAILED; - ASN_DEBUG("Got value %ld + low %ld", - value, ct->lower_bound); - } - return rval; - } else { - ASN__DECODE_FAILED; - } - } else { - ASN_DEBUG("Decoding unconstrained integer %s", td->name); - } - - /* X.691, #12.2.3, #12.2.4 */ - do { - ssize_t len; - void *p; - int ret; - - /* Get the PER length */ - len = aper_get_length(pd, -1, -1, &repeat); - if(len < 0) ASN__DECODE_STARVED; - - p = REALLOC(st->buf, st->size + len + 1); - if(!p) ASN__DECODE_FAILED; - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, 8 * len); - if(ret < 0) ASN__DECODE_STARVED; - st->size += len; - } while(repeat); - st->buf[st->size] = 0; /* JIC */ - - /* #12.2.3 */ - if(ct && ct->lower_bound) { - /* - * TODO: replace by in-place arithmetics. - */ - long value; - if(asn_INTEGER2long(st, &value)) - ASN__DECODE_FAILED; - if(asn_long2INTEGER(st, value + ct->lower_bound)) - ASN__DECODE_FAILED; - } - - return rval; -} - -asn_enc_rval_t -INTEGER_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - const INTEGER_t *st = (const INTEGER_t *)sptr; - const uint8_t *buf; - const uint8_t *end; - const asn_per_constraint_t *ct; - long value = 0; - - if(!st || st->size == 0) ASN__ENCODE_FAILED; - - if(!constraints) constraints = td->encoding_constraints.per_constraints; - ct = constraints ? &constraints->value : 0; - - er.encoded = 0; - - if(ct) { - int inext = 0; - if(specs && specs->field_unsigned) { - unsigned long uval; - if(asn_INTEGER2ulong(st, &uval)) - ASN__ENCODE_FAILED; - /* Check proper range */ - if(ct->flags & APC_SEMI_CONSTRAINED) { - if(uval < (unsigned long)ct->lower_bound) - inext = 1; - } else if(ct->range_bits >= 0) { - if(uval < (unsigned long)ct->lower_bound - || uval > (unsigned long)ct->upper_bound) - inext = 1; - } - ASN_DEBUG("Value %lu (%02x/%lu) lb %ld ub %ld %s", - uval, st->buf[0], st->size, - ct->lower_bound, ct->upper_bound, - inext ? "ext" : "fix"); - value = uval; - } else { - if(asn_INTEGER2long(st, &value)) ASN__ENCODE_FAILED; - /* Check proper range */ - if(ct->flags & APC_SEMI_CONSTRAINED) { - if(value < ct->lower_bound) - inext = 1; - } else if(ct->range_bits >= 0) { - if(value < ct->lower_bound - || value > ct->upper_bound) - inext = 1; - } - ASN_DEBUG("Value %lu (%02x/%lu) lb %ld ub %ld %s", - value, st->buf[0], st->size, - ct->lower_bound, ct->upper_bound, - inext ? "ext" : "fix"); - } - if(ct->flags & APC_EXTENSIBLE) { - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - if(inext) ct = 0; - } else if(inext) { - ASN__ENCODE_FAILED; - } - } - - /* X.691, #12.2.2 */ - if(ct && ct->range_bits >= 0) { - unsigned long v; - - /* #10.5.6 */ - ASN_DEBUG("Encoding integer %ld (%lu) with range %d bits", - value, value - ct->lower_bound, ct->range_bits); - - v = value - ct->lower_bound; - - /* #12 <= 8 -> alignment ? */ - if (ct->range_bits < 8) { - if(per_put_few_bits(po, 0x00 | v, ct->range_bits)) - ASN__ENCODE_FAILED; - } else if (ct->range_bits == 8) { - if(aper_put_align(po) < 0) - ASN__ENCODE_FAILED; - if(per_put_few_bits(po, 0x00 | v, ct->range_bits)) - ASN__ENCODE_FAILED; - } else if (ct->range_bits <= 16) { - /* Consume the bytes to align on octet */ - if(aper_put_align(po) < 0) - ASN__ENCODE_FAILED; - if(per_put_few_bits(po, 0x0000 | v, - 16)) - ASN__ENCODE_FAILED; - } else { - /* TODO: extend to >64 bits */ - int64_t v64 = v; - int i, j; - int max_range_bytes = (ct->range_bits >> 3) + - (((ct->range_bits % 8) > 0) ? 1 : 0); - - for (i = 1; ; i++) { - int upper = 1 << i; - if (upper >= max_range_bytes) - break; - } - - for (j = sizeof(int64_t) -1; j != 0; j--) { - int64_t val; - val = v64 >> (j * 8); - if (val != 0) - break; - } - - /* Putting length in the minimum number of bits ex: 5 = 3bits */ - if (per_put_few_bits(po, j, i)) - ASN__ENCODE_FAILED; - - /* Consume the bits to align on octet */ - if (aper_put_align(po) < 0) - ASN__ENCODE_FAILED; - /* Put the value */ - for (i = 0; i <= j; i++) { - if(per_put_few_bits(po, (v64 >> (8 * (j - i))) & 0xff, 8)) - ASN__ENCODE_FAILED; - } - } - ASN__ENCODED_OK(er); - } - - if(ct && ct->lower_bound) { - ASN_DEBUG("Adjust lower bound to %ld", ct->lower_bound); - /* TODO: adjust lower bound */ - ASN__ENCODE_FAILED; - } - - for(buf = st->buf, end = st->buf + st->size; buf < end;) { - ssize_t mayEncode = aper_put_length(po, -1, end - buf); - if(mayEncode < 0) - ASN__ENCODE_FAILED; - if(per_put_many_bits(po, buf, 8 * mayEncode)) - ASN__ENCODE_FAILED; - buf += mayEncode; - } - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -static intmax_t -asn__integer_convert(const uint8_t *b, const uint8_t *end) { - uintmax_t value; - - /* Perform the sign initialization */ - /* Actually value = -(*b >> 7); gains nothing, yet unreadable! */ - if((*b >> 7)) { - value = (uintmax_t)(-1); - } else { - value = 0; - } - - /* Conversion engine */ - for(; b < end; b++) { - value = (value << 8) | *b; - } - - return value; -} - -int -asn_INTEGER2imax(const INTEGER_t *iptr, intmax_t *lptr) { - uint8_t *b, *end; - size_t size; - - /* Sanity checking */ - if(!iptr || !iptr->buf || !lptr) { - errno = EINVAL; - return -1; - } - - /* Cache the begin/end of the buffer */ - b = iptr->buf; /* Start of the INTEGER buffer */ - size = iptr->size; - end = b + size; /* Where to stop */ - - if(size > sizeof(intmax_t)) { - uint8_t *end1 = end - 1; - /* - * Slightly more advanced processing, - * able to process INTEGERs with >sizeof(intmax_t) bytes - * when the actual value is small, e.g. for intmax_t == int32_t - * (0x0000000000abcdef INTEGER would yield a fine 0x00abcdef int32_t) - */ - /* Skip out the insignificant leading bytes */ - for(; b < end1; b++) { - switch(*b) { - case 0x00: if((b[1] & 0x80) == 0) continue; break; - case 0xff: if((b[1] & 0x80) != 0) continue; break; - } - break; - } - - size = end - b; - if(size > sizeof(intmax_t)) { - /* Still cannot fit the sizeof(intmax_t) */ - errno = ERANGE; - return -1; - } - } - - /* Shortcut processing of a corner case */ - if(end == b) { - *lptr = 0; - return 0; - } - - *lptr = asn__integer_convert(b, end); - return 0; -} - -/* FIXME: negative INTEGER values are silently interpreted as large unsigned ones. */ -int -asn_INTEGER2umax(const INTEGER_t *iptr, uintmax_t *lptr) { - uint8_t *b, *end; - uintmax_t value; - size_t size; - - if(!iptr || !iptr->buf || !lptr) { - errno = EINVAL; - return -1; - } - - b = iptr->buf; - size = iptr->size; - end = b + size; - - /* If all extra leading bytes are zeroes, ignore them */ - for(; size > sizeof(value); b++, size--) { - if(*b) { - /* Value won't fit into uintmax_t */ - errno = ERANGE; - return -1; - } - } - - /* Conversion engine */ - for(value = 0; b < end; b++) - value = (value << 8) | *b; - - *lptr = value; - return 0; -} - -int -asn_umax2INTEGER(INTEGER_t *st, uintmax_t value) { - uint8_t *buf; - uint8_t *end; - uint8_t *b; - int shr; - - if(value <= ((~(uintmax_t)0) >> 1)) { - return asn_imax2INTEGER(st, value); - } - - buf = (uint8_t *)MALLOC(1 + sizeof(value)); - if(!buf) return -1; - - end = buf + (sizeof(value) + 1); - buf[0] = 0; /* INTEGERs are signed. 0-byte indicates positive. */ - for(b = buf + 1, shr = (sizeof(value) - 1) * 8; b < end; shr -= 8, b++) - *b = (uint8_t)(value >> shr); - - if(st->buf) FREEMEM(st->buf); - st->buf = buf; - st->size = 1 + sizeof(value); - - return 0; -} - -int -asn_imax2INTEGER(INTEGER_t *st, intmax_t value) { - uint8_t *buf, *bp; - uint8_t *p; - uint8_t *pstart; - uint8_t *pend1; - int littleEndian = 1; /* Run-time detection */ - int add; - - if(!st) { - errno = EINVAL; - return -1; - } - - buf = (uint8_t *)(long *)MALLOC(sizeof(value)); - if(!buf) return -1; - - if(*(char *)&littleEndian) { - pstart = (uint8_t *)&value + sizeof(value) - 1; - pend1 = (uint8_t *)&value; - add = -1; - } else { - pstart = (uint8_t *)&value; - pend1 = pstart + sizeof(value) - 1; - add = 1; - } - - /* - * If the contents octet consists of more than one octet, - * then bits of the first octet and bit 8 of the second octet: - * a) shall not all be ones; and - * b) shall not all be zero. - */ - for(p = pstart; p != pend1; p += add) { - switch(*p) { - case 0x00: if((*(p+add) & 0x80) == 0) - continue; - break; - case 0xff: if((*(p+add) & 0x80)) - continue; - break; - } - break; - } - /* Copy the integer body */ - for(bp = buf, pend1 += add; p != pend1; p += add) - *bp++ = *p; - - if(st->buf) FREEMEM(st->buf); - st->buf = buf; - st->size = bp - buf; - - return 0; -} - -int -asn_INTEGER2long(const INTEGER_t *iptr, long *l) { - intmax_t v; - if(asn_INTEGER2imax(iptr, &v) == 0) { - if(v < LONG_MIN || v > LONG_MAX) { - errno = ERANGE; - return -1; - } - *l = v; - return 0; - } else { - return -1; - } -} - -int -asn_INTEGER2ulong(const INTEGER_t *iptr, unsigned long *l) { - uintmax_t v; - if(asn_INTEGER2umax(iptr, &v) == 0) { - if(v > ULONG_MAX) { - errno = ERANGE; - return -1; - } - *l = v; - return 0; - } else { - return -1; - } -} - -int -asn_long2INTEGER(INTEGER_t *st, long value) { - return asn_imax2INTEGER(st, value); -} - -int -asn_ulong2INTEGER(INTEGER_t *st, unsigned long value) { - return asn_imax2INTEGER(st, value); -} - - -int -asn_uint642INTEGER(INTEGER_t *st, uint64_t value) { - uint8_t *buf; - uint8_t *end; - uint8_t *b; - int shr; - - if(value <= INT64_MAX) - return asn_int642INTEGER(st, value); - - buf = (uint8_t *)MALLOC(1 + sizeof(value)); - if(!buf) return -1; - - end = buf + (sizeof(value) + 1); - buf[0] = 0; - for(b = buf + 1, shr = (sizeof(value)-1)*8; b < end; shr -= 8, b++) - *b = (uint8_t)(value >> shr); - - if(st->buf) FREEMEM(st->buf); - st->buf = buf; - st->size = 1 + sizeof(value); - - return 0; -} - -int -asn_int642INTEGER(INTEGER_t *st, int64_t value) { - uint8_t *buf, *bp; - uint8_t *p; - uint8_t *pstart; - uint8_t *pend1; - int littleEndian = 1; /* Run-time detection */ - int add; - - if(!st) { - errno = EINVAL; - return -1; - } - - buf = (uint8_t *)MALLOC(sizeof(value)); - if(!buf) return -1; - - if(*(char *)&littleEndian) { - pstart = (uint8_t *)&value + sizeof(value) - 1; - pend1 = (uint8_t *)&value; - add = -1; - } else { - pstart = (uint8_t *)&value; - pend1 = pstart + sizeof(value) - 1; - add = 1; - } - - /* - * If the contents octet consists of more than one octet, - * then bits of the first octet and bit 8 of the second octet: - * a) shall not all be ones; and - * b) shall not all be zero. - */ - for(p = pstart; p != pend1; p += add) { - switch(*p) { - case 0x00: if((*(p+add) & 0x80) == 0) - continue; - break; - case 0xff: if((*(p+add) & 0x80)) - continue; - break; - } - break; - } - /* Copy the integer body */ - for(pstart = p, bp = buf, pend1 += add; p != pend1; p += add) - *bp++ = *p; - - if(st->buf) FREEMEM(st->buf); - st->buf = buf; - st->size = bp - buf; - - return 0; -} - -/* - * Parse the number in the given string until the given *end position, - * returning the position after the last parsed character back using the - * same (*end) pointer. - * WARNING: This behavior is different from the standard strtol/strtoimax(3). - */ -enum asn_strtox_result_e -asn_strtoimax_lim(const char *str, const char **end, intmax_t *intp) { - int sign = 1; - intmax_t value; - -#define ASN1_INTMAX_MAX ((~(uintmax_t)0) >> 1) - const intmax_t upper_boundary = ASN1_INTMAX_MAX / 10; - intmax_t last_digit_max = ASN1_INTMAX_MAX % 10; -#undef ASN1_INTMAX_MAX - - if(str >= *end) return ASN_STRTOX_ERROR_INVAL; - - switch(*str) { - case '-': - last_digit_max++; - sign = -1; - /* FALL THROUGH */ - case '+': - str++; - if(str >= *end) { - *end = str; - return ASN_STRTOX_EXPECT_MORE; - } - } - - for(value = 0; str < (*end); str++) { - switch(*str) { - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: { - int d = *str - '0'; - if(value < upper_boundary) { - value = value * 10 + d; - } else if(value == upper_boundary) { - if(d <= last_digit_max) { - if(sign > 0) { - value = value * 10 + d; - } else { - sign = 1; - value = -value * 10 - d; - } - } else { - *end = str; - return ASN_STRTOX_ERROR_RANGE; - } - } else { - *end = str; - return ASN_STRTOX_ERROR_RANGE; - } - } - continue; - default: - *end = str; - *intp = sign * value; - return ASN_STRTOX_EXTRA_DATA; - } - } - - *end = str; - *intp = sign * value; - return ASN_STRTOX_OK; -} - -/* - * Parse the number in the given string until the given *end position, - * returning the position after the last parsed character back using the - * same (*end) pointer. - * WARNING: This behavior is different from the standard strtoul/strtoumax(3). - */ -enum asn_strtox_result_e -asn_strtoumax_lim(const char *str, const char **end, uintmax_t *uintp) { - uintmax_t value; - -#define ASN1_UINTMAX_MAX ((~(uintmax_t)0)) - const uintmax_t upper_boundary = ASN1_UINTMAX_MAX / 10; - uintmax_t last_digit_max = ASN1_UINTMAX_MAX % 10; -#undef ASN1_UINTMAX_MAX - - if(str >= *end) return ASN_STRTOX_ERROR_INVAL; - - switch(*str) { - case '-': - return ASN_STRTOX_ERROR_INVAL; - case '+': - str++; - if(str >= *end) { - *end = str; - return ASN_STRTOX_EXPECT_MORE; - } - } - - for(value = 0; str < (*end); str++) { - switch(*str) { - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: { - unsigned int d = *str - '0'; - if(value < upper_boundary) { - value = value * 10 + d; - } else if(value == upper_boundary) { - if(d <= last_digit_max) { - value = value * 10 + d; - } else { - *end = str; - return ASN_STRTOX_ERROR_RANGE; - } - } else { - *end = str; - return ASN_STRTOX_ERROR_RANGE; - } - } - continue; - default: - *end = str; - *uintp = value; - return ASN_STRTOX_EXTRA_DATA; - } - } - - *end = str; - *uintp = value; - return ASN_STRTOX_OK; -} - -enum asn_strtox_result_e -asn_strtol_lim(const char *str, const char **end, long *lp) { - intmax_t value; - switch(asn_strtoimax_lim(str, end, &value)) { - case ASN_STRTOX_ERROR_RANGE: - return ASN_STRTOX_ERROR_RANGE; - case ASN_STRTOX_ERROR_INVAL: - return ASN_STRTOX_ERROR_INVAL; - case ASN_STRTOX_EXPECT_MORE: - return ASN_STRTOX_EXPECT_MORE; - case ASN_STRTOX_OK: - if(value >= LONG_MIN && value <= LONG_MAX) { - *lp = value; - return ASN_STRTOX_OK; - } else { - return ASN_STRTOX_ERROR_RANGE; - } - case ASN_STRTOX_EXTRA_DATA: - if(value >= LONG_MIN && value <= LONG_MAX) { - *lp = value; - return ASN_STRTOX_EXTRA_DATA; - } else { - return ASN_STRTOX_ERROR_RANGE; - } - } - - assert(!"Unreachable"); - return ASN_STRTOX_ERROR_INVAL; -} - -enum asn_strtox_result_e -asn_strtoul_lim(const char *str, const char **end, unsigned long *ulp) { - uintmax_t value; - switch(asn_strtoumax_lim(str, end, &value)) { - case ASN_STRTOX_ERROR_RANGE: - return ASN_STRTOX_ERROR_RANGE; - case ASN_STRTOX_ERROR_INVAL: - return ASN_STRTOX_ERROR_INVAL; - case ASN_STRTOX_EXPECT_MORE: - return ASN_STRTOX_EXPECT_MORE; - case ASN_STRTOX_OK: - if(value <= ULONG_MAX) { - *ulp = value; - return ASN_STRTOX_OK; - } else { - return ASN_STRTOX_ERROR_RANGE; - } - case ASN_STRTOX_EXTRA_DATA: - if(value <= ULONG_MAX) { - *ulp = value; - return ASN_STRTOX_EXTRA_DATA; - } else { - return ASN_STRTOX_ERROR_RANGE; - } - } - - assert(!"Unreachable"); - return ASN_STRTOX_ERROR_INVAL; -} - -int -INTEGER_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - const INTEGER_t *a = aptr; - const INTEGER_t *b = bptr; - - (void)td; - - if(a && b) { - if(a->size && b->size) { - int sign_a = (a->buf[0] & 0x80) ? -1 : 1; - int sign_b = (b->buf[0] & 0x80) ? -1 : 1; - - if(sign_a < sign_b) return -1; - if(sign_a > sign_b) return 1; - - /* The shortest integer wins, unless comparing negatives */ - if(a->size < b->size) { - return -1 * sign_a; - } else if(a->size > b->size) { - return 1 * sign_b; - } - - return sign_a * memcmp(a->buf, b->buf, a->size); - } else if(a->size) { - int sign = (a->buf[0] & 0x80) ? -1 : 1; - return (1) * sign; - } else if(b->size) { - int sign = (a->buf[0] & 0x80) ? -1 : 1; - return (-1) * sign; - } else { - return 0; - } - } else if(!a && !b) { - return 0; - } else if(!a) { - return -1; - } else { - return 1; - } - -} - -asn_random_fill_result_t -INTEGER_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - INTEGER_t *st = *sptr; - const asn_INTEGER_enum_map_t *emap; - size_t emap_len; - intmax_t value; - int find_inside_map; - - if(max_length == 0) return result_skipped; - - if(st == NULL) { - st = (INTEGER_t *)CALLOC(1, sizeof(*st)); - if(st == NULL) { - return result_failed; - } - } - - if(specs) { - emap = specs->value2enum; - emap_len = specs->map_count; - if(specs->strict_enumeration) { - find_inside_map = emap_len > 0; - } else { - find_inside_map = emap_len ? asn_random_between(0, 1) : 0; - } - } else { - emap = 0; - emap_len = 0; - find_inside_map = 0; - } - - if(find_inside_map) { - assert(emap_len > 0); - value = emap[asn_random_between(0, emap_len - 1)].nat_value; - } else { - const asn_per_constraints_t *ct; - - static const long variants[] = { - -65536, -65535, -65534, -32769, -32768, -32767, -16385, -16384, - -16383, -257, -256, -255, -254, -129, -128, -127, - -126, -1, 0, 1, 126, 127, 128, 129, - 254, 255, 256, 257, 16383, 16384, 16385, 32767, - 32768, 32769, 65534, 65535, 65536, 65537}; - if(specs && specs->field_unsigned) { - assert(variants[18] == 0); - value = variants[asn_random_between( - 18, sizeof(variants) / sizeof(variants[0]) - 1)]; - } else { - value = variants[asn_random_between( - 0, sizeof(variants) / sizeof(variants[0]) - 1)]; - } - - if(!constraints) constraints = &td->encoding_constraints; - ct = constraints ? constraints->per_constraints : 0; - if(ct && (ct->value.flags & APC_CONSTRAINED)) { - if(value < ct->value.lower_bound || value > ct->value.upper_bound) { - value = asn_random_between(ct->value.lower_bound, - ct->value.upper_bound); - } - } - } - - if(asn_imax2INTEGER(st, value)) { - if(st == *sptr) { - ASN_STRUCT_RESET(*td, st); - } else { - ASN_STRUCT_FREE(*td, st); - } - return result_failed; - } else { - *sptr = st; - result_ok.length = st->size; - return result_ok; - } -} diff --git a/e2sim/src/ASN1c/INTEGER.h b/e2sim/src/ASN1c/INTEGER.h deleted file mode 100644 index f776c07..0000000 --- a/e2sim/src/ASN1c/INTEGER.h +++ /dev/null @@ -1,108 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _INTEGER_H_ -#define _INTEGER_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef ASN__PRIMITIVE_TYPE_t INTEGER_t; - -extern asn_TYPE_descriptor_t asn_DEF_INTEGER; -extern asn_TYPE_operation_t asn_OP_INTEGER; - -/* Map with to integer value association */ -typedef struct asn_INTEGER_enum_map_s { - long nat_value; /* associated native integer value */ - size_t enum_len; /* strlen("tag") */ - const char *enum_name; /* "tag" */ -} asn_INTEGER_enum_map_t; - -/* This type describes an enumeration for INTEGER and ENUMERATED types */ -typedef struct asn_INTEGER_specifics_s { - const asn_INTEGER_enum_map_t *value2enum; /* N -> "tag"; sorted by N */ - const unsigned int *enum2value; /* "tag" => N; sorted by tag */ - int map_count; /* Elements in either map */ - int extension; /* This map is extensible */ - int strict_enumeration; /* Enumeration set is fixed */ - int field_width; /* Size of native integer */ - int field_unsigned; /* Signed=0, unsigned=1 */ -} asn_INTEGER_specifics_t; - -#define INTEGER_free ASN__PRIMITIVE_TYPE_free -#define INTEGER_decode_ber ber_decode_primitive -#define INTEGER_constraint asn_generic_no_constraint -asn_struct_print_f INTEGER_print; -asn_struct_compare_f INTEGER_compare; -der_type_encoder_f INTEGER_encode_der; -xer_type_decoder_f INTEGER_decode_xer; -xer_type_encoder_f INTEGER_encode_xer; -oer_type_decoder_f INTEGER_decode_oer; -oer_type_encoder_f INTEGER_encode_oer; -per_type_decoder_f INTEGER_decode_uper; -per_type_encoder_f INTEGER_encode_uper; -per_type_decoder_f INTEGER_decode_aper; -per_type_encoder_f INTEGER_encode_aper; -asn_random_fill_f INTEGER_random_fill; - -/*********************************** - * Some handy conversion routines. * - ***********************************/ - -/* - * Natiwe size-independent conversion of native integers to/from INTEGER. - * (l_size) is in bytes. - * Returns 0 if it was possible to convert, -1 otherwise. - * -1/EINVAL: Mandatory argument missing - * -1/ERANGE: Value encoded is out of range for long representation - * -1/ENOMEM: Memory allocation failed (in asn_*2INTEGER()). - */ -int asn_INTEGER2imax(const INTEGER_t *i, intmax_t *l); -int asn_INTEGER2umax(const INTEGER_t *i, uintmax_t *l); -int asn_imax2INTEGER(INTEGER_t *i, intmax_t l); -int asn_umax2INTEGER(INTEGER_t *i, uintmax_t l); - -/* - * Size-specific conversion helpers. - */ -int asn_INTEGER2long(const INTEGER_t *i, long *l); -int asn_INTEGER2ulong(const INTEGER_t *i, unsigned long *l); -int asn_long2INTEGER(INTEGER_t *i, long l); -int asn_ulong2INTEGER(INTEGER_t *i, unsigned long l); -int asn_int642INTEGER(INTEGER_t *i, int64_t l); -int asn_uint642INTEGER(INTEGER_t *i, uint64_t l); - -/* A version of strtol/strtoimax(3) with nicer error reporting. */ -enum asn_strtox_result_e { - ASN_STRTOX_ERROR_RANGE = -3, /* Input outside of supported numeric range */ - ASN_STRTOX_ERROR_INVAL = -2, /* Invalid data encountered (e.g., "+-") */ - ASN_STRTOX_EXPECT_MORE = -1, /* More data expected (e.g. "+") */ - ASN_STRTOX_OK = 0, /* Conversion succeded, number ends at (*end) */ - ASN_STRTOX_EXTRA_DATA = 1 /* Conversion succeded, but the string has extra stuff */ -}; -enum asn_strtox_result_e asn_strtol_lim(const char *str, const char **end, - long *l); -enum asn_strtox_result_e asn_strtoul_lim(const char *str, const char **end, - unsigned long *l); -enum asn_strtox_result_e asn_strtoimax_lim(const char *str, const char **end, - intmax_t *l); -enum asn_strtox_result_e asn_strtoumax_lim(const char *str, const char **end, - uintmax_t *l); - -/* - * Convert the integer value into the corresponding enumeration map entry. - */ -const asn_INTEGER_enum_map_t *INTEGER_map_value2enum( - const asn_INTEGER_specifics_t *specs, long value); - -#ifdef __cplusplus -} -#endif - -#endif /* _INTEGER_H_ */ diff --git a/e2sim/src/ASN1c/InitiatingMessage.c b/e2sim/src/ASN1c/InitiatingMessage.c deleted file mode 100644 index bbe2e22..0000000 --- a/e2sim/src/ASN1c/InitiatingMessage.c +++ /dev/null @@ -1,440 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "InitiatingMessage.h" - -static const long asn_VAL_1_id_RICsubscription = 8; -static const long asn_VAL_1_reject = 0; -static const long asn_VAL_2_id_RICsubscriptionDelete = 9; -static const long asn_VAL_2_reject = 0; -static const long asn_VAL_3_id_RICserviceUpdate = 7; -static const long asn_VAL_3_reject = 0; -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_E2nodeConfigurationUpdate = 10; -static const long asn_VAL_6_reject = 0; -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_ErrorIndication = 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[] = { - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_RICsubscription }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_RICsubscriptionDelete }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_RICserviceUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICcontrolRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_RICcontrol }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_E2setupRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2setupResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2setupFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_E2setup }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_E2nodeConfigurationUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2nodeConfigurationUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2nodeConfigurationUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_E2nodeConfigurationUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_E2connectionUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2connectionUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2connectionUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_E2connectionUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ResetRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_Reset }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICindication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_RICindication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceQuery }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_10_id_RICserviceQuery }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_11_id_ErrorIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequired }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_12_id_RICsubscriptionDeleteRequired }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_ignore } -}; -static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { - { 12, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } -}; -static int -memb_procedureCode_constraint_1(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; - } -} - -static asn_type_selector_result_t -select_InitiatingMessage_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_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 4; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct InitiatingMessage, procedureCode)); - - 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_1(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_InitiatingMessage_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_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 0; /* &InitiatingMessage */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct InitiatingMessage, procedureCode)); - - 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_1(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_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -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_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_TYPE_member_t asn_MBR_value_4[] = { - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICsubscriptionRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICsubscriptionDeleteRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionDeleteRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICserviceUpdate), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdate, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICserviceUpdate" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICcontrolRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.E2setupRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2setupRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__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 InitiatingMessage__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 InitiatingMessage__value, choice.ResetRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResetRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ResetRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICindication), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICindication, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICindication" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICserviceQuery), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceQuery, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICserviceQuery" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.ErrorIndication), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ErrorIndication, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ErrorIndication" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__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, 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 }, /* ErrorIndication */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 11, -11, 0 } /* RICsubscriptionDeleteRequired */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { - sizeof(struct InitiatingMessage__value), - offsetof(struct InitiatingMessage__value, _asn_ctx), - offsetof(struct InitiatingMessage__value, present), - sizeof(((struct InitiatingMessage__value *)0)->present), - asn_MAP_value_tag2el_4, - 12, /* 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, - 12, /* Elements count */ - &asn_SPC_value_specs_4 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_InitiatingMessage_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage, procedureCode), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProcedureCode, - 0, - { 0, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, - 0, 0, /* No default value */ - "procedureCode" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_InitiatingMessage_criticality_type, - { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_4, - select_InitiatingMessage_value_type, - { 0, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_InitiatingMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_InitiatingMessage_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ - { (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_InitiatingMessage_specs_1 = { - sizeof(struct InitiatingMessage), - offsetof(struct InitiatingMessage, _asn_ctx), - asn_MAP_InitiatingMessage_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_InitiatingMessage = { - "InitiatingMessage", - "InitiatingMessage", - &asn_OP_SEQUENCE, - asn_DEF_InitiatingMessage_tags_1, - sizeof(asn_DEF_InitiatingMessage_tags_1) - /sizeof(asn_DEF_InitiatingMessage_tags_1[0]), /* 1 */ - asn_DEF_InitiatingMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_InitiatingMessage_tags_1) - /sizeof(asn_DEF_InitiatingMessage_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_InitiatingMessage_1, - 3, /* Elements count */ - &asn_SPC_InitiatingMessage_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/InitiatingMessage.h b/e2sim/src/ASN1c/InitiatingMessage.h deleted file mode 100644 index b4e4384..0000000 --- a/e2sim/src/ASN1c/InitiatingMessage.h +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _InitiatingMessage_H_ -#define _InitiatingMessage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProcedureCode.h" -#include "Criticality.h" -#include "ANY.h" -#include "asn_ioc.h" -#include "RICsubscriptionRequest.h" -#include "RICsubscriptionResponse.h" -#include "RICsubscriptionFailure.h" -#include "RICsubscriptionDeleteRequest.h" -#include "RICsubscriptionDeleteResponse.h" -#include "RICsubscriptionDeleteFailure.h" -#include "RICserviceUpdate.h" -#include "RICserviceUpdateAcknowledge.h" -#include "RICserviceUpdateFailure.h" -#include "RICcontrolRequest.h" -#include "RICcontrolAcknowledge.h" -#include "RICcontrolFailure.h" -#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 "ErrorIndication.h" -#include "RICsubscriptionDeleteRequired.h" -#include "OPEN_TYPE.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum InitiatingMessage__value_PR { - InitiatingMessage__value_PR_NOTHING, /* No components present */ - InitiatingMessage__value_PR_RICsubscriptionRequest, - InitiatingMessage__value_PR_RICsubscriptionDeleteRequest, - InitiatingMessage__value_PR_RICserviceUpdate, - InitiatingMessage__value_PR_RICcontrolRequest, - InitiatingMessage__value_PR_E2setupRequest, - InitiatingMessage__value_PR_E2nodeConfigurationUpdate, - InitiatingMessage__value_PR_E2connectionUpdate, - InitiatingMessage__value_PR_ResetRequest, - InitiatingMessage__value_PR_RICindication, - InitiatingMessage__value_PR_RICserviceQuery, - InitiatingMessage__value_PR_ErrorIndication, - InitiatingMessage__value_PR_RICsubscriptionDeleteRequired -} InitiatingMessage__value_PR; - -/* InitiatingMessage */ -typedef struct InitiatingMessage { - ProcedureCode_t procedureCode; - Criticality_t criticality; - struct InitiatingMessage__value { - InitiatingMessage__value_PR present; - union InitiatingMessage__value_u { - RICsubscriptionRequest_t RICsubscriptionRequest; - RICsubscriptionDeleteRequest_t RICsubscriptionDeleteRequest; - RICserviceUpdate_t RICserviceUpdate; - RICcontrolRequest_t RICcontrolRequest; - E2setupRequest_t E2setupRequest; - E2nodeConfigurationUpdate_t E2nodeConfigurationUpdate; - E2connectionUpdate_t E2connectionUpdate; - ResetRequest_t ResetRequest; - RICindication_t RICindication; - RICserviceQuery_t RICserviceQuery; - ErrorIndication_t ErrorIndication; - RICsubscriptionDeleteRequired_t RICsubscriptionDeleteRequired; - } 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; -} InitiatingMessage_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_InitiatingMessage; -extern asn_SEQUENCE_specifics_t asn_SPC_InitiatingMessage_specs_1; -extern asn_TYPE_member_t asn_MBR_InitiatingMessage_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _InitiatingMessage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/MMEname.c b/e2sim/src/ASN1c/MMEname.c deleted file mode 100644 index 92cf47a..0000000 --- a/e2sim/src/ASN1c/MMEname.c +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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. - */ -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 */ - { 0, &asn_PER_type_MMEname_constr_1, MMEname_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/src/ASN1c/MMEname.h b/e2sim/src/ASN1c/MMEname.h deleted file mode 100644 index 28137b0..0000000 --- a/e2sim/src/ASN1c/MMEname.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _MMEname_H_ -#define _MMEname_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PrintableString.h" - -#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; -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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/Makefile.am.libasncodec b/e2sim/src/ASN1c/Makefile.am.libasncodec deleted file mode 100644 index 6395c68..0000000 --- a/e2sim/src/ASN1c/Makefile.am.libasncodec +++ /dev/null @@ -1,371 +0,0 @@ -ASN_MODULE_SRCS= \ - E2AP-PDU.c \ - InitiatingMessage.c \ - SuccessfulOutcome.c \ - UnsuccessfulOutcome.c \ - RICsubscriptionRequest.c \ - RICsubscriptionDetails.c \ - RICactions-ToBeSetup-List.c \ - RICaction-ToBeSetup-Item.c \ - RICsubscriptionResponse.c \ - RICaction-Admitted-List.c \ - RICaction-Admitted-Item.c \ - RICaction-NotAdmitted-List.c \ - RICaction-NotAdmitted-Item.c \ - RICsubscriptionFailure.c \ - RICsubscriptionDeleteRequest.c \ - RICsubscriptionDeleteResponse.c \ - RICsubscriptionDeleteFailure.c \ - RICsubscriptionDeleteRequired.c \ - RICsubscription-List-withCause.c \ - RICsubscription-withCause-Item.c \ - RICindication.c \ - RICcontrolRequest.c \ - RICcontrolAcknowledge.c \ - RICcontrolFailure.c \ - ErrorIndication.c \ - E2setupRequest.c \ - E2setupResponse.c \ - E2setupFailure.c \ - E2connectionUpdate.c \ - E2connectionUpdate-List.c \ - E2connectionUpdate-Item.c \ - E2connectionUpdateRemove-List.c \ - E2connectionUpdateRemove-Item.c \ - E2connectionUpdateAcknowledge.c \ - E2connectionSetupFailed-List.c \ - E2connectionSetupFailed-Item.c \ - E2connectionUpdateFailure.c \ - E2nodeConfigurationUpdate.c \ - E2nodeComponentConfigAddition-List.c \ - E2nodeComponentConfigAddition-Item.c \ - E2nodeComponentConfigUpdate-List.c \ - E2nodeComponentConfigUpdate-Item.c \ - E2nodeComponentConfigRemoval-List.c \ - E2nodeComponentConfigRemoval-Item.c \ - E2nodeTNLassociationRemoval-List.c \ - E2nodeTNLassociationRemoval-Item.c \ - E2nodeConfigurationUpdateAcknowledge.c \ - E2nodeComponentConfigAdditionAck-List.c \ - E2nodeComponentConfigAdditionAck-Item.c \ - E2nodeComponentConfigUpdateAck-List.c \ - E2nodeComponentConfigUpdateAck-Item.c \ - E2nodeComponentConfigRemovalAck-List.c \ - E2nodeComponentConfigRemovalAck-Item.c \ - E2nodeConfigurationUpdateFailure.c \ - ResetRequest.c \ - ResetResponse.c \ - RICserviceUpdate.c \ - RANfunctions-List.c \ - RANfunction-Item.c \ - RANfunctionsID-List.c \ - RANfunctionID-Item.c \ - RICserviceUpdateAcknowledge.c \ - RANfunctionsIDcause-List.c \ - RANfunctionIDcause-Item.c \ - RICserviceUpdateFailure.c \ - RICserviceQuery.c \ - AMFName.c \ - Cause.c \ - CauseE2node.c \ - CauseMisc.c \ - CauseProtocol.c \ - CauseRICrequest.c \ - CauseRICservice.c \ - CauseTransport.c \ - CriticalityDiagnostics.c \ - CriticalityDiagnostics-IE-List.c \ - CriticalityDiagnostics-IE-Item.c \ - E2nodeComponentConfiguration.c \ - E2nodeComponentConfigurationAck.c \ - E2nodeComponentInterfaceType.c \ - E2nodeComponentID.c \ - E2nodeComponentInterfaceE1.c \ - E2nodeComponentInterfaceF1.c \ - E2nodeComponentInterfaceNG.c \ - E2nodeComponentInterfaceS1.c \ - E2nodeComponentInterfaceX2.c \ - E2nodeComponentInterfaceXn.c \ - E2nodeComponentInterfaceW1.c \ - ENB-ID.c \ - ENB-ID-Choice.c \ - ENGNB-ID.c \ - GlobalE2node-ID.c \ - GlobalE2node-en-gNB-ID.c \ - GlobalE2node-eNB-ID.c \ - GlobalE2node-gNB-ID.c \ - GlobalE2node-ng-eNB-ID.c \ - GlobalENB-ID.c \ - GlobalenGNB-ID.c \ - GlobalgNB-ID.c \ - GlobalngeNB-ID.c \ - GlobalNG-RANNode-ID.c \ - GlobalRIC-ID.c \ - GNB-CU-UP-ID.c \ - GNB-DU-ID.c \ - GNB-ID-Choice.c \ - MMEname.c \ - NGENB-DU-ID.c \ - PLMN-Identity.c \ - RANfunctionDefinition.c \ - RANfunctionID.c \ - RANfunctionOID.c \ - RANfunctionRevision.c \ - RICactionDefinition.c \ - RICactionID.c \ - RICactionType.c \ - RICcallProcessID.c \ - RICcontrolAckRequest.c \ - RICcontrolHeader.c \ - RICcontrolMessage.c \ - RICcontrolOutcome.c \ - RICeventTriggerDefinition.c \ - RICindicationHeader.c \ - RICindicationMessage.c \ - RICindicationSN.c \ - RICindicationType.c \ - RICrequestID.c \ - RICsubsequentAction.c \ - RICsubsequentActionType.c \ - RICtimeToWait.c \ - TimeToWait.c \ - TNLinformation.c \ - TNLusage.c \ - TransactionID.c \ - TypeOfError.c \ - Criticality.c \ - Presence.c \ - ProcedureCode.c \ - ProtocolIE-ID.c \ - TriggeringMessage.c \ - ProtocolIE-Container.c \ - ProtocolIE-SingleContainer.c \ - ProtocolIE-Field.c \ - ProtocolIE-ContainerPair.c \ - ProtocolIE-FieldPair.c \ - ProtocolIE-ContainerList.c \ - ProtocolIE-ContainerPairList.c - -ASN_MODULE_HDRS= \ - E2AP-PDU.h \ - InitiatingMessage.h \ - SuccessfulOutcome.h \ - UnsuccessfulOutcome.h \ - RICsubscriptionRequest.h \ - RICsubscriptionDetails.h \ - RICactions-ToBeSetup-List.h \ - RICaction-ToBeSetup-Item.h \ - RICsubscriptionResponse.h \ - RICaction-Admitted-List.h \ - RICaction-Admitted-Item.h \ - RICaction-NotAdmitted-List.h \ - RICaction-NotAdmitted-Item.h \ - RICsubscriptionFailure.h \ - RICsubscriptionDeleteRequest.h \ - RICsubscriptionDeleteResponse.h \ - RICsubscriptionDeleteFailure.h \ - RICsubscriptionDeleteRequired.h \ - RICsubscription-List-withCause.h \ - RICsubscription-withCause-Item.h \ - RICindication.h \ - RICcontrolRequest.h \ - RICcontrolAcknowledge.h \ - RICcontrolFailure.h \ - ErrorIndication.h \ - E2setupRequest.h \ - E2setupResponse.h \ - E2setupFailure.h \ - E2connectionUpdate.h \ - E2connectionUpdate-List.h \ - E2connectionUpdate-Item.h \ - E2connectionUpdateRemove-List.h \ - E2connectionUpdateRemove-Item.h \ - E2connectionUpdateAcknowledge.h \ - E2connectionSetupFailed-List.h \ - E2connectionSetupFailed-Item.h \ - E2connectionUpdateFailure.h \ - E2nodeConfigurationUpdate.h \ - E2nodeComponentConfigAddition-List.h \ - E2nodeComponentConfigAddition-Item.h \ - E2nodeComponentConfigUpdate-List.h \ - E2nodeComponentConfigUpdate-Item.h \ - E2nodeComponentConfigRemoval-List.h \ - E2nodeComponentConfigRemoval-Item.h \ - E2nodeTNLassociationRemoval-List.h \ - E2nodeTNLassociationRemoval-Item.h \ - E2nodeConfigurationUpdateAcknowledge.h \ - E2nodeComponentConfigAdditionAck-List.h \ - E2nodeComponentConfigAdditionAck-Item.h \ - E2nodeComponentConfigUpdateAck-List.h \ - E2nodeComponentConfigUpdateAck-Item.h \ - E2nodeComponentConfigRemovalAck-List.h \ - E2nodeComponentConfigRemovalAck-Item.h \ - E2nodeConfigurationUpdateFailure.h \ - ResetRequest.h \ - ResetResponse.h \ - RICserviceUpdate.h \ - RANfunctions-List.h \ - RANfunction-Item.h \ - RANfunctionsID-List.h \ - RANfunctionID-Item.h \ - RICserviceUpdateAcknowledge.h \ - RANfunctionsIDcause-List.h \ - RANfunctionIDcause-Item.h \ - RICserviceUpdateFailure.h \ - RICserviceQuery.h \ - AMFName.h \ - Cause.h \ - CauseE2node.h \ - CauseMisc.h \ - CauseProtocol.h \ - CauseRICrequest.h \ - CauseRICservice.h \ - CauseTransport.h \ - CriticalityDiagnostics.h \ - CriticalityDiagnostics-IE-List.h \ - CriticalityDiagnostics-IE-Item.h \ - E2nodeComponentConfiguration.h \ - E2nodeComponentConfigurationAck.h \ - E2nodeComponentInterfaceType.h \ - E2nodeComponentID.h \ - E2nodeComponentInterfaceE1.h \ - E2nodeComponentInterfaceF1.h \ - E2nodeComponentInterfaceNG.h \ - E2nodeComponentInterfaceS1.h \ - E2nodeComponentInterfaceX2.h \ - E2nodeComponentInterfaceXn.h \ - E2nodeComponentInterfaceW1.h \ - ENB-ID.h \ - ENB-ID-Choice.h \ - ENGNB-ID.h \ - GlobalE2node-ID.h \ - GlobalE2node-en-gNB-ID.h \ - GlobalE2node-eNB-ID.h \ - GlobalE2node-gNB-ID.h \ - GlobalE2node-ng-eNB-ID.h \ - GlobalENB-ID.h \ - GlobalenGNB-ID.h \ - GlobalgNB-ID.h \ - GlobalngeNB-ID.h \ - GlobalNG-RANNode-ID.h \ - GlobalRIC-ID.h \ - GNB-CU-UP-ID.h \ - GNB-DU-ID.h \ - GNB-ID-Choice.h \ - MMEname.h \ - NGENB-DU-ID.h \ - PLMN-Identity.h \ - RANfunctionDefinition.h \ - RANfunctionID.h \ - RANfunctionOID.h \ - RANfunctionRevision.h \ - RICactionDefinition.h \ - RICactionID.h \ - RICactionType.h \ - RICcallProcessID.h \ - RICcontrolAckRequest.h \ - RICcontrolHeader.h \ - RICcontrolMessage.h \ - RICcontrolOutcome.h \ - RICeventTriggerDefinition.h \ - RICindicationHeader.h \ - RICindicationMessage.h \ - RICindicationSN.h \ - RICindicationType.h \ - RICrequestID.h \ - RICsubsequentAction.h \ - RICsubsequentActionType.h \ - RICtimeToWait.h \ - TimeToWait.h \ - TNLinformation.h \ - TNLusage.h \ - TransactionID.h \ - TypeOfError.h \ - Criticality.h \ - Presence.h \ - ProcedureCode.h \ - ProtocolIE-ID.h \ - TriggeringMessage.h \ - ProtocolIE-Container.h \ - ProtocolIE-SingleContainer.h \ - ProtocolIE-Field.h \ - ProtocolIE-ContainerPair.h \ - ProtocolIE-FieldPair.h \ - ProtocolIE-ContainerList.h \ - ProtocolIE-ContainerPairList.h - -ASN_MODULE_HDRS+=ANY.h -ASN_MODULE_SRCS+=ANY.c -ASN_MODULE_HDRS+=OCTET_STRING.h -ASN_MODULE_HDRS+=OPEN_TYPE.h -ASN_MODULE_SRCS+=OPEN_TYPE.c -ASN_MODULE_HDRS+=constr_CHOICE.h -ASN_MODULE_HDRS+=INTEGER.h -ASN_MODULE_SRCS+=INTEGER.c -ASN_MODULE_HDRS+=NativeEnumerated.h -ASN_MODULE_SRCS+=NativeEnumerated.c -ASN_MODULE_HDRS+=NativeInteger.h -ASN_MODULE_SRCS+=NativeInteger.c -ASN_MODULE_HDRS+=PrintableString.h -ASN_MODULE_SRCS+=PrintableString.c -ASN_MODULE_HDRS+=asn_SEQUENCE_OF.h -ASN_MODULE_SRCS+=asn_SEQUENCE_OF.c -ASN_MODULE_HDRS+=asn_SET_OF.h -ASN_MODULE_SRCS+=asn_SET_OF.c -ASN_MODULE_SRCS+=constr_CHOICE.c -ASN_MODULE_HDRS+=constr_SEQUENCE.h -ASN_MODULE_SRCS+=constr_SEQUENCE.c -ASN_MODULE_HDRS+=constr_SEQUENCE_OF.h -ASN_MODULE_SRCS+=constr_SEQUENCE_OF.c -ASN_MODULE_HDRS+=constr_SET_OF.h -ASN_MODULE_SRCS+=constr_SET_OF.c -ASN_MODULE_HDRS+=asn_application.h -ASN_MODULE_SRCS+=asn_application.c -ASN_MODULE_HDRS+=asn_ioc.h -ASN_MODULE_HDRS+=asn_system.h -ASN_MODULE_HDRS+=asn_codecs.h -ASN_MODULE_HDRS+=asn_internal.h -ASN_MODULE_SRCS+=asn_internal.c -ASN_MODULE_HDRS+=asn_random_fill.h -ASN_MODULE_SRCS+=asn_random_fill.c -ASN_MODULE_HDRS+=asn_bit_data.h -ASN_MODULE_SRCS+=asn_bit_data.c -ASN_MODULE_SRCS+=OCTET_STRING.c -ASN_MODULE_HDRS+=BIT_STRING.h -ASN_MODULE_SRCS+=BIT_STRING.c -ASN_MODULE_SRCS+=asn_codecs_prim.c -ASN_MODULE_HDRS+=asn_codecs_prim.h -ASN_MODULE_HDRS+=ber_tlv_length.h -ASN_MODULE_SRCS+=ber_tlv_length.c -ASN_MODULE_HDRS+=ber_tlv_tag.h -ASN_MODULE_SRCS+=ber_tlv_tag.c -ASN_MODULE_HDRS+=ber_decoder.h -ASN_MODULE_SRCS+=ber_decoder.c -ASN_MODULE_HDRS+=der_encoder.h -ASN_MODULE_SRCS+=der_encoder.c -ASN_MODULE_HDRS+=constr_TYPE.h -ASN_MODULE_SRCS+=constr_TYPE.c -ASN_MODULE_HDRS+=constraints.h -ASN_MODULE_SRCS+=constraints.c -ASN_MODULE_HDRS+=xer_support.h -ASN_MODULE_SRCS+=xer_support.c -ASN_MODULE_HDRS+=xer_decoder.h -ASN_MODULE_SRCS+=xer_decoder.c -ASN_MODULE_HDRS+=xer_encoder.h -ASN_MODULE_SRCS+=xer_encoder.c -ASN_MODULE_HDRS+=per_support.h -ASN_MODULE_SRCS+=per_support.c -ASN_MODULE_HDRS+=per_decoder.h -ASN_MODULE_SRCS+=per_decoder.c -ASN_MODULE_HDRS+=per_encoder.h -ASN_MODULE_SRCS+=per_encoder.c -ASN_MODULE_HDRS+=per_opentype.h -ASN_MODULE_SRCS+=per_opentype.c - -ASN_MODULE_CFLAGS=-DASN_DISABLE_OER_SUPPORT - -lib_LTLIBRARIES+=libasncodec.la -libasncodec_la_SOURCES=$(ASN_MODULE_SRCS) $(ASN_MODULE_HDRS) -libasncodec_la_CPPFLAGS=-I$(top_srcdir)/ -libasncodec_la_CFLAGS=$(ASN_MODULE_CFLAGS) -libasncodec_la_LDFLAGS=-lm diff --git a/e2sim/src/ASN1c/NGENB-DU-ID.c b/e2sim/src/ASN1c/NGENB-DU-ID.c deleted file mode 100644 index 7842307..0000000 --- a/e2sim/src/ASN1c/NGENB-DU-ID.c +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "NGENB-DU-ID.h" - -int -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; - - 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. - */ -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_NGENB_DU_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_NGENB_DU_ID = { - "NGENB-DU-ID", - "NGENB-DU-ID", - &asn_OP_INTEGER, - 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 */ - { 0, &asn_PER_type_NGENB_DU_ID_constr_1, NGENB_DU_ID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/src/ASN1c/NGENB-DU-ID.h b/e2sim/src/ASN1c/NGENB-DU-ID.h deleted file mode 100644 index cb33684..0000000 --- a/e2sim/src/ASN1c/NGENB-DU-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _NGENB_DU_ID_H_ -#define _NGENB_DU_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "INTEGER.h" - -#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; -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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/NativeEnumerated.c b/e2sim/src/ASN1c/NativeEnumerated.c deleted file mode 100644 index 50ffb1d..0000000 --- a/e2sim/src/ASN1c/NativeEnumerated.c +++ /dev/null @@ -1,367 +0,0 @@ -/*- - * Copyright (c) 2004, 2007 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Read the NativeInteger.h for the explanation wrt. differences between - * INTEGER and NativeInteger. - * Basically, both are decoders and encoders of ASN.1 INTEGER type, but this - * implementation deals with the standard (machine-specific) representation - * of them instead of using the platform-independent buffer. - */ -#include -#include - -/* - * NativeEnumerated basic type description. - */ -static const ber_tlv_tag_t asn_DEF_NativeEnumerated_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_operation_t asn_OP_NativeEnumerated = { - NativeInteger_free, - NativeInteger_print, - NativeInteger_compare, - NativeInteger_decode_ber, - NativeInteger_encode_der, - NativeInteger_decode_xer, - NativeEnumerated_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - NativeEnumerated_decode_oer, - NativeEnumerated_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - NativeEnumerated_decode_uper, - NativeEnumerated_encode_uper, - NativeEnumerated_decode_aper, - NativeEnumerated_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - NativeEnumerated_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_NativeEnumerated = { - "ENUMERATED", /* The ASN.1 type is still ENUMERATED */ - "ENUMERATED", - &asn_OP_NativeEnumerated, - asn_DEF_NativeEnumerated_tags, - sizeof(asn_DEF_NativeEnumerated_tags) / sizeof(asn_DEF_NativeEnumerated_tags[0]), - asn_DEF_NativeEnumerated_tags, /* Same as above */ - sizeof(asn_DEF_NativeEnumerated_tags) / sizeof(asn_DEF_NativeEnumerated_tags[0]), - { 0, 0, asn_generic_no_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - -asn_enc_rval_t -NativeEnumerated_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - const long *native = (const long *)sptr; - const asn_INTEGER_enum_map_t *el; - - (void)ilevel; - (void)flags; - - if(!native) ASN__ENCODE_FAILED; - - el = INTEGER_map_value2enum(specs, *native); - if(el) { - er.encoded = - asn__format_to_callback(cb, app_key, "<%s/>", el->enum_name); - if(er.encoded < 0) ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } else { - ASN_DEBUG( - "ASN.1 forbids dealing with " - "unknown value of ENUMERATED type"); - ASN__ENCODE_FAILED; - } -} - -asn_dec_rval_t -NativeEnumerated_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = td->specifics; - asn_dec_rval_t rval = { RC_OK, 0 }; - long *native = (long *)*sptr; - const asn_per_constraint_t *ct = NULL; - long value; - - (void)opt_codec_ctx; - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ASN__DECODE_FAILED; /* Mandatory! */ - if(!specs) ASN__DECODE_FAILED; - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - ASN_DEBUG("Decoding %s as NativeEnumerated", td->name); - - if(ct && ct->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) ASN__DECODE_STARVED; - if(inext) ct = 0; - } - - if(ct && ct->range_bits >= 0) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - if(value >= (specs->extension - ? specs->extension - 1 : specs->map_count)) - ASN__DECODE_FAILED; - } else { - if(!specs->extension) - ASN__DECODE_FAILED; - /* - * X.691, #10.6: normally small non-negative whole number; - */ - value = uper_get_nsnnwn(pd); - if(value < 0) ASN__DECODE_STARVED; - value += specs->extension - 1; - if(value >= specs->map_count) - ASN__DECODE_FAILED; - } - - *native = specs->value2enum[value].nat_value; - ASN_DEBUG("Decoded %s = %ld", td->name, *native); - - return rval; -} - -static int -NativeEnumerated__compar_value2enum(const void *ap, const void *bp) { - const asn_INTEGER_enum_map_t *a = ap; - const asn_INTEGER_enum_map_t *b = bp; - if(a->nat_value == b->nat_value) - return 0; - if(a->nat_value < b->nat_value) - return -1; - return 1; -} - -asn_enc_rval_t -NativeEnumerated_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - long native, value; - const asn_per_constraint_t *ct = NULL; - int inext = 0; - asn_INTEGER_enum_map_t key; - const asn_INTEGER_enum_map_t *kf; - - if(!sptr) ASN__ENCODE_FAILED; - if(!specs) ASN__ENCODE_FAILED; - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ASN__ENCODE_FAILED; /* Mandatory! */ - - ASN_DEBUG("Encoding %s as NativeEnumerated", td->name); - - er.encoded = 0; - - native = *(const long *)sptr; - - key.nat_value = native; - kf = bsearch(&key, specs->value2enum, specs->map_count, - sizeof(key), NativeEnumerated__compar_value2enum); - if(!kf) { - ASN_DEBUG("No element corresponds to %ld", native); - ASN__ENCODE_FAILED; - } - value = kf - specs->value2enum; - - if(ct && ct->range_bits >= 0) { - int cmpWith = specs->extension - ? specs->extension - 1 : specs->map_count; - if(value >= cmpWith) - inext = 1; - } - if(ct && ct->flags & APC_EXTENSIBLE) { - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - if(inext) ct = 0; - } else if(inext) { - ASN__ENCODE_FAILED; - } - - if(ct && ct->range_bits >= 0) { - if(per_put_few_bits(po, value, ct->range_bits)) - ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - if(!specs->extension) - ASN__ENCODE_FAILED; - - /* - * X.691, #10.6: normally small non-negative whole number; - */ - ASN_DEBUG("value = %ld, ext = %d, inext = %d, res = %ld", - value, specs->extension, inext, - value - (inext ? (specs->extension - 1) : 0)); - if(uper_put_nsnnwn(po, value - (inext ? (specs->extension - 1) : 0))) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -NativeEnumerated_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval = { RC_OK, 0 }; - long *native = (long *)*sptr; - const asn_per_constraint_t *ct = NULL; - long value; - - (void)opt_codec_ctx; - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ASN__DECODE_FAILED; /* Mandatory! */ - if(!specs) ASN__DECODE_FAILED; - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - ASN_DEBUG("Decoding %s as NativeEnumerated", td->name); - - if(ct && ct->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) ASN__DECODE_STARVED; - if(inext) ct = 0; - } - - /* Deal with APER padding */ - if(ct && ct->upper_bound >= 255) { - int padding = 0; - padding = (8 - (pd->moved % 8)) % 8; - ASN_DEBUG("For NativeEnumerated %s,offset= %lu Padding bits = %d", td->name, pd->moved, padding); - ASN_DEBUG("For NativeEnumerated %s, upper bound = %lu", td->name, ct->upper_bound); - if(padding > 0) - per_get_few_bits(pd, padding); - } - - if(ct && ct->range_bits >= 0) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - if(value >= (specs->extension - ? specs->extension - 1 : specs->map_count)) - ASN__DECODE_FAILED; - } else { - if(!specs->extension) - ASN__DECODE_FAILED; - /* - * X.691, #10.6: normally small non-negative whole number; - */ - value = uper_get_nsnnwn(pd); - if(value < 0) ASN__DECODE_STARVED; - value += specs->extension - 1; - if(value >= specs->map_count) - ASN__DECODE_FAILED; - } - - *native = specs->value2enum[value].nat_value; - ASN_DEBUG("Decoded %s = %ld", td->name, *native); - - return rval; -} - -asn_enc_rval_t -NativeEnumerated_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - long native, value; - const asn_per_constraint_t *ct = NULL; - int inext = 0; - asn_INTEGER_enum_map_t key; - asn_INTEGER_enum_map_t *kf; - - if(!sptr) ASN__ENCODE_FAILED; - if(!specs) ASN__ENCODE_FAILED; - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ASN__ENCODE_FAILED; /* Mandatory! */ - - ASN_DEBUG("Encoding %s as NativeEnumerated", td->name); - - er.encoded = 0; - - native = *(const long *)sptr; - if(native < 0) ASN__ENCODE_FAILED; - - key.nat_value = native; - kf = bsearch(&key, specs->value2enum, specs->map_count, - sizeof(key), NativeEnumerated__compar_value2enum); - if(!kf) { - ASN_DEBUG("No element corresponds to %ld", native); - ASN__ENCODE_FAILED; - } - value = kf - specs->value2enum; - - if(ct && ct->range_bits >= 0) { - int cmpWith = specs->extension - ? specs->extension - 1 : specs->map_count; - if(value >= cmpWith) - inext = 1; - } - if(ct && ct->flags & APC_EXTENSIBLE) { - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - if(inext) ct = 0; - } else if(inext) { - ASN__ENCODE_FAILED; - } - - if(ct && ct->range_bits >= 0) { - if(per_put_few_bits(po, value, ct->range_bits)) - ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - if(!specs->extension) - ASN__ENCODE_FAILED; - - /* - * X.691, #10.6: normally small non-negative whole number; - */ - ASN_DEBUG("value = %ld, ext = %d, inext = %d, res = %ld", - value, specs->extension, inext, - value - (inext ? (specs->extension - 1) : 0)); - if(uper_put_nsnnwn(po, value - (inext ? (specs->extension - 1) : 0))) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} diff --git a/e2sim/src/ASN1c/NativeEnumerated.h b/e2sim/src/ASN1c/NativeEnumerated.h deleted file mode 100644 index 459f0e6..0000000 --- a/e2sim/src/ASN1c/NativeEnumerated.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * This type differs from the standard ENUMERATED in that it is modelled using - * the fixed machine type (long, int, short), so it can hold only values of - * limited length. There is no type (i.e., NativeEnumerated_t, any integer type - * will do). - * This type may be used when integer range is limited by subtype constraints. - */ -#ifndef _NativeEnumerated_H_ -#define _NativeEnumerated_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern asn_TYPE_descriptor_t asn_DEF_NativeEnumerated; -extern asn_TYPE_operation_t asn_OP_NativeEnumerated; - -xer_type_encoder_f NativeEnumerated_encode_xer; -oer_type_decoder_f NativeEnumerated_decode_oer; -oer_type_encoder_f NativeEnumerated_encode_oer; -per_type_decoder_f NativeEnumerated_decode_uper; -per_type_encoder_f NativeEnumerated_encode_uper; -per_type_decoder_f NativeEnumerated_decode_aper; -per_type_encoder_f NativeEnumerated_encode_aper; - -#define NativeEnumerated_free NativeInteger_free -#define NativeEnumerated_print NativeInteger_print -#define NativeEnumerated_compare NativeInteger_compare -#define NativeEnumerated_random_fill NativeInteger_random_fill -#define NativeEnumerated_constraint asn_generic_no_constraint -#define NativeEnumerated_decode_ber NativeInteger_decode_ber -#define NativeEnumerated_encode_der NativeInteger_encode_der -#define NativeEnumerated_decode_xer NativeInteger_decode_xer - -#ifdef __cplusplus -} -#endif - -#endif /* _NativeEnumerated_H_ */ diff --git a/e2sim/src/ASN1c/NativeInteger.c b/e2sim/src/ASN1c/NativeInteger.c deleted file mode 100644 index 316e872..0000000 --- a/e2sim/src/ASN1c/NativeInteger.c +++ /dev/null @@ -1,550 +0,0 @@ -/*- - * Copyright (c) 2004, 2005, 2006 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Read the NativeInteger.h for the explanation wrt. differences between - * INTEGER and NativeInteger. - * Basically, both are decoders and encoders of ASN.1 INTEGER type, but this - * implementation deals with the standard (machine-specific) representation - * of them instead of using the platform-independent buffer. - */ -#include -#include - -/* - * NativeInteger basic type description. - */ -static const ber_tlv_tag_t asn_DEF_NativeInteger_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_operation_t asn_OP_NativeInteger = { - NativeInteger_free, - NativeInteger_print, - NativeInteger_compare, - NativeInteger_decode_ber, - NativeInteger_encode_der, - NativeInteger_decode_xer, - NativeInteger_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - NativeInteger_decode_oer, /* OER decoder */ - NativeInteger_encode_oer, /* Canonical OER encoder */ -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - NativeInteger_decode_uper, /* Unaligned PER decoder */ - NativeInteger_encode_uper, /* Unaligned PER encoder */ - NativeInteger_decode_aper, /* Aligned PER decoder */ - NativeInteger_encode_aper, /* Aligned PER encoder */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - NativeInteger_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_NativeInteger = { - "INTEGER", /* The ASN.1 type is still INTEGER */ - "INTEGER", - &asn_OP_NativeInteger, - asn_DEF_NativeInteger_tags, - sizeof(asn_DEF_NativeInteger_tags) / sizeof(asn_DEF_NativeInteger_tags[0]), - asn_DEF_NativeInteger_tags, /* Same as above */ - sizeof(asn_DEF_NativeInteger_tags) / sizeof(asn_DEF_NativeInteger_tags[0]), - { 0, 0, asn_generic_no_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - -/* - * Decode INTEGER type. - */ -asn_dec_rval_t -NativeInteger_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **nint_ptr, - const void *buf_ptr, size_t size, int tag_mode) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - long *native = (long *)*nint_ptr; - asn_dec_rval_t rval; - ber_tlv_len_t length; - - /* - * If the structure is not there, allocate it. - */ - if(native == NULL) { - native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); - if(native == NULL) { - rval.code = RC_FAIL; - rval.consumed = 0; - return rval; - } - } - - ASN_DEBUG("Decoding %s as INTEGER (tm=%d)", - td->name, tag_mode); - - /* - * Check tags. - */ - rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size, - tag_mode, 0, &length, 0); - if(rval.code != RC_OK) - return rval; - - ASN_DEBUG("%s length is %d bytes", td->name, (int)length); - - /* - * Make sure we have this length. - */ - buf_ptr = ((const char *)buf_ptr) + rval.consumed; - size -= rval.consumed; - if(length > (ber_tlv_len_t)size) { - rval.code = RC_WMORE; - rval.consumed = 0; - return rval; - } - - /* - * ASN.1 encoded INTEGER: buf_ptr, length - * Fill the native, at the same time checking for overflow. - * If overflow occured, return with RC_FAIL. - */ - { - INTEGER_t tmp; - union { - const void *constbuf; - void *nonconstbuf; - } unconst_buf; - long l; - - unconst_buf.constbuf = buf_ptr; - tmp.buf = (uint8_t *)unconst_buf.nonconstbuf; - tmp.size = length; - - if((specs&&specs->field_unsigned) - ? asn_INTEGER2ulong(&tmp, (unsigned long *)&l) /* sic */ - : asn_INTEGER2long(&tmp, &l)) { - rval.code = RC_FAIL; - rval.consumed = 0; - return rval; - } - - *native = l; - } - - rval.code = RC_OK; - rval.consumed += length; - - ASN_DEBUG("Took %ld/%ld bytes to encode %s (%ld)", - (long)rval.consumed, (long)length, td->name, (long)*native); - - return rval; -} - -/* - * Encode the NativeInteger using the standard INTEGER type DER encoder. - */ -asn_enc_rval_t -NativeInteger_encode_der(const asn_TYPE_descriptor_t *sd, const void *ptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - unsigned long native = *(const unsigned long *)ptr; /* Disable sign ext. */ - asn_enc_rval_t erval = {0,0,0}; - INTEGER_t tmp; - -#ifdef WORDS_BIGENDIAN /* Opportunistic optimization */ - - tmp.buf = (uint8_t *)&native; - tmp.size = sizeof(native); - -#else /* Works even if WORDS_BIGENDIAN is not set where should've been */ - uint8_t buf[sizeof(native)]; - uint8_t *p; - - /* Prepare a fake INTEGER */ - for(p = buf + sizeof(buf) - 1; p >= buf; p--, native >>= 8) - *p = (uint8_t)native; - - tmp.buf = buf; - tmp.size = sizeof(buf); -#endif /* WORDS_BIGENDIAN */ - - /* Encode fake INTEGER */ - erval = INTEGER_encode_der(sd, &tmp, tag_mode, tag, cb, app_key); - if(erval.structure_ptr == &tmp) { - erval.structure_ptr = ptr; - } - return erval; -} - -/* - * Decode the chunk of XML text encoding INTEGER. - */ -asn_dec_rval_t -NativeInteger_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, - size_t size) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval; - INTEGER_t st; - void *st_ptr = (void *)&st; - long *native = (long *)*sptr; - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - memset(&st, 0, sizeof(st)); - rval = INTEGER_decode_xer(opt_codec_ctx, td, &st_ptr, - opt_mname, buf_ptr, size); - if(rval.code == RC_OK) { - long l; - if((specs&&specs->field_unsigned) - ? asn_INTEGER2ulong(&st, (unsigned long *)&l) /* sic */ - : asn_INTEGER2long(&st, &l)) { - rval.code = RC_FAIL; - rval.consumed = 0; - } else { - *native = l; - } - } else { - /* - * Cannot restart from the middle; - * there is no place to save state in the native type. - * Request a continuation from the very beginning. - */ - rval.consumed = 0; - } - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &st); - return rval; -} - - -asn_enc_rval_t -NativeInteger_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - char scratch[32]; /* Enough for 64-bit int */ - asn_enc_rval_t er = {0,0,0}; - const long *native = (const long *)sptr; - - (void)ilevel; - (void)flags; - - if(!native) ASN__ENCODE_FAILED; - - er.encoded = snprintf(scratch, sizeof(scratch), - (specs && specs->field_unsigned) - ? "%lu" : "%ld", *native); - if(er.encoded <= 0 || (size_t)er.encoded >= sizeof(scratch) - || cb(scratch, er.encoded, app_key) < 0) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -NativeInteger_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval; - long *native = (long *)*sptr; - INTEGER_t tmpint; - void *tmpintptr = &tmpint; - - (void)opt_codec_ctx; - ASN_DEBUG("Decoding NativeInteger %s (UPER)", td->name); - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - memset(&tmpint, 0, sizeof tmpint); - rval = INTEGER_decode_uper(opt_codec_ctx, td, constraints, - &tmpintptr, pd); - if(rval.code == RC_OK) { - if((specs&&specs->field_unsigned) - ? asn_INTEGER2ulong(&tmpint, (unsigned long *)native) - : asn_INTEGER2long(&tmpint, native)) - rval.code = RC_FAIL; - else - ASN_DEBUG("NativeInteger %s got value %ld", - td->name, *native); - } - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - - return rval; -} - -asn_enc_rval_t -NativeInteger_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - long native; - INTEGER_t tmpint; - - if(!sptr) ASN__ENCODE_FAILED; - - native = *(const long *)sptr; - - ASN_DEBUG("Encoding NativeInteger %s %ld (UPER)", td->name, native); - - memset(&tmpint, 0, sizeof(tmpint)); - if((specs&&specs->field_unsigned) - ? asn_ulong2INTEGER(&tmpint, native) - : asn_long2INTEGER(&tmpint, native)) - ASN__ENCODE_FAILED; - er = INTEGER_encode_uper(td, constraints, &tmpint, po); - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - return er; -} - -asn_dec_rval_t -NativeInteger_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval; - long *native = (long *)*sptr; - INTEGER_t tmpint; - void *tmpintptr = &tmpint; - - (void)opt_codec_ctx; - ASN_DEBUG("Decoding NativeInteger %s (APER)", td->name); - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - memset(&tmpint, 0, sizeof tmpint); - rval = INTEGER_decode_aper(opt_codec_ctx, td, constraints, - &tmpintptr, pd); - if(rval.code == RC_OK) { - if((specs&&specs->field_unsigned) - ? asn_INTEGER2ulong(&tmpint, (unsigned long *)native) - : asn_INTEGER2long(&tmpint, native)) - rval.code = RC_FAIL; - else - ASN_DEBUG("NativeInteger %s got value %ld", - td->name, *native); - } - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - - return rval; -} - -asn_enc_rval_t -NativeInteger_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - long native; - INTEGER_t tmpint; - - if(!sptr) ASN__ENCODE_FAILED; - - native = *(const long *)sptr; - - ASN_DEBUG("Encoding NativeInteger %s %ld (APER)", td->name, native); - - memset(&tmpint, 0, sizeof(tmpint)); - if((specs&&specs->field_unsigned) - ? asn_ulong2INTEGER(&tmpint, (unsigned long)native) - : asn_long2INTEGER(&tmpint, native)) - ASN__ENCODE_FAILED; - er = INTEGER_encode_aper(td, constraints, &tmpint, po); - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - return er; -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -/* - * INTEGER specific human-readable output. - */ -int -NativeInteger_print(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - const long *native = (const long *)sptr; - char scratch[32]; /* Enough for 64-bit int */ - int ret; - - (void)td; /* Unused argument */ - (void)ilevel; /* Unused argument */ - - if(native) { - long value = *native; - ret = snprintf(scratch, sizeof(scratch), - (specs && specs->field_unsigned) ? "%lu" : "%ld", value); - assert(ret > 0 && (size_t)ret < sizeof(scratch)); - if(cb(scratch, ret, app_key) < 0) return -1; - if(specs && (value >= 0 || !specs->field_unsigned)) { - const asn_INTEGER_enum_map_t *el = - INTEGER_map_value2enum(specs, value); - if(el) { - if(cb(" (", 2, app_key) < 0) return -1; - if(cb(el->enum_name, el->enum_len, app_key) < 0) return -1; - if(cb(")", 1, app_key) < 0) return -1; - } - } - return 0; - } else { - return (cb("", 8, app_key) < 0) ? -1 : 0; - } -} - -void -NativeInteger_free(const asn_TYPE_descriptor_t *td, void *ptr, - enum asn_struct_free_method method) { - if(!td || !ptr) - return; - - ASN_DEBUG("Freeing %s as INTEGER (%d, %p, Native)", - td->name, method, ptr); - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(ptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(ptr, 0, sizeof(long)); - break; - } -} - -int -NativeInteger_compare(const asn_TYPE_descriptor_t *td, const void *aptr, const void *bptr) { - (void)td; - - if(aptr && bptr) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - if(specs && specs->field_unsigned) { - const unsigned long *a = aptr; - const unsigned long *b = bptr; - if(*a < *b) { - return -1; - } else if(*a > *b) { - return 1; - } else { - return 0; - } - } else { - const long *a = aptr; - const long *b = bptr; - if(*a < *b) { - return -1; - } else if(*a > *b) { - return 1; - } else { - return 0; - } - } - } else if(!aptr) { - return -1; - } else { - return 1; - } -} - -asn_random_fill_result_t -NativeInteger_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - long *st = *sptr; - const asn_INTEGER_enum_map_t *emap; - size_t emap_len; - intmax_t value; - int find_inside_map; - - if(max_length == 0) return result_skipped; - - if(st == NULL) { - st = (long *)CALLOC(1, sizeof(*st)); - if(st == NULL) { - return result_failed; - } - } - - if(specs) { - emap = specs->value2enum; - emap_len = specs->map_count; - if(specs->strict_enumeration) { - find_inside_map = emap_len > 0; - } else { - find_inside_map = emap_len ? asn_random_between(0, 1) : 0; - } - } else { - emap = 0; - emap_len = 0; - find_inside_map = 0; - } - - if(find_inside_map) { - assert(emap_len > 0); - value = emap[asn_random_between(0, emap_len - 1)].nat_value; - } else { - const asn_per_constraints_t *ct; - - static const long variants[] = { - -65536, -65535, -65534, -32769, -32768, -32767, -16385, -16384, - -16383, -257, -256, -255, -254, -129, -128, -127, - -126, -1, 0, 1, 126, 127, 128, 129, - 254, 255, 256, 257, 16383, 16384, 16385, 32767, - 32768, 32769, 65534, 65535, 65536, 65537}; - if(specs && specs->field_unsigned) { - assert(variants[18] == 0); - value = variants[asn_random_between( - 18, sizeof(variants) / sizeof(variants[0]) - 1)]; - } else { - value = variants[asn_random_between( - 0, sizeof(variants) / sizeof(variants[0]) - 1)]; - } - - if(!constraints) constraints = &td->encoding_constraints; - ct = constraints ? constraints->per_constraints : 0; - if(ct && (ct->value.flags & APC_CONSTRAINED)) { - if(value < ct->value.lower_bound || value > ct->value.upper_bound) { - value = asn_random_between(ct->value.lower_bound, - ct->value.upper_bound); - } - } - } - - *sptr = st; - *st = value; - return result_ok; -} diff --git a/e2sim/src/ASN1c/NativeInteger.h b/e2sim/src/ASN1c/NativeInteger.h deleted file mode 100644 index c74406a..0000000 --- a/e2sim/src/ASN1c/NativeInteger.h +++ /dev/null @@ -1,46 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * This type differs from the standard INTEGER in that it is modelled using - * the fixed machine type (long, int, short), so it can hold only values of - * limited length. There is no type (i.e., NativeInteger_t, any integer type - * will do). - * This type may be used when integer range is limited by subtype constraints. - */ -#ifndef _NativeInteger_H_ -#define _NativeInteger_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern asn_TYPE_descriptor_t asn_DEF_NativeInteger; -extern asn_TYPE_operation_t asn_OP_NativeInteger; - -asn_struct_free_f NativeInteger_free; -asn_struct_print_f NativeInteger_print; -asn_struct_compare_f NativeInteger_compare; -ber_type_decoder_f NativeInteger_decode_ber; -der_type_encoder_f NativeInteger_encode_der; -xer_type_decoder_f NativeInteger_decode_xer; -xer_type_encoder_f NativeInteger_encode_xer; -oer_type_decoder_f NativeInteger_decode_oer; -oer_type_encoder_f NativeInteger_encode_oer; -per_type_decoder_f NativeInteger_decode_uper; -per_type_encoder_f NativeInteger_encode_uper; -per_type_decoder_f NativeInteger_decode_aper; -per_type_encoder_f NativeInteger_encode_aper; -asn_random_fill_f NativeInteger_random_fill; - -#define NativeInteger_constraint asn_generic_no_constraint - -#ifdef __cplusplus -} -#endif - -#endif /* _NativeInteger_H_ */ diff --git a/e2sim/src/ASN1c/OCTET_STRING.c b/e2sim/src/ASN1c/OCTET_STRING.c deleted file mode 100644 index ae34c96..0000000 --- a/e2sim/src/ASN1c/OCTET_STRING.c +++ /dev/null @@ -1,2411 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include /* for .bits_unused member */ -#include - -/* - * OCTET STRING basic type description. - */ -static const ber_tlv_tag_t asn_DEF_OCTET_STRING_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_OCTET_STRING_specifics_t asn_SPC_OCTET_STRING_specs = { - sizeof(OCTET_STRING_t), - offsetof(OCTET_STRING_t, _asn_ctx), - ASN_OSUBV_STR -}; - -asn_TYPE_operation_t asn_OP_OCTET_STRING = { - OCTET_STRING_free, - OCTET_STRING_print, /* OCTET STRING generally means a non-ascii sequence */ - OCTET_STRING_compare, - OCTET_STRING_decode_ber, - OCTET_STRING_encode_der, - OCTET_STRING_decode_xer_hex, - OCTET_STRING_encode_xer, -#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, /* Unaligned PER decoder */ - OCTET_STRING_encode_uper, /* Unaligned PER encoder */ - OCTET_STRING_decode_aper, /* Aligned PER decoder */ - OCTET_STRING_encode_aper, /* Aligned PER encoder */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - OCTET_STRING_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_OCTET_STRING = { - "OCTET STRING", /* Canonical name */ - "OCTET_STRING", /* XML tag name */ - &asn_OP_OCTET_STRING, - asn_DEF_OCTET_STRING_tags, - sizeof(asn_DEF_OCTET_STRING_tags) - / sizeof(asn_DEF_OCTET_STRING_tags[0]), - asn_DEF_OCTET_STRING_tags, /* Same as above */ - sizeof(asn_DEF_OCTET_STRING_tags) - / sizeof(asn_DEF_OCTET_STRING_tags[0]), - { 0, 0, asn_generic_no_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs -}; - -#undef _CH_PHASE -#undef NEXT_PHASE -#undef PREV_PHASE -#define _CH_PHASE(ctx, inc) do { \ - if(ctx->phase == 0) \ - ctx->context = 0; \ - ctx->phase += inc; \ - } while(0) -#define NEXT_PHASE(ctx) _CH_PHASE(ctx, +1) -#define PREV_PHASE(ctx) _CH_PHASE(ctx, -1) - -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = (num_bytes); \ - buf_ptr = ((const char *)buf_ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -#undef RETURN -#define RETURN(_code) do { \ - asn_dec_rval_t tmprval; \ - tmprval.code = _code; \ - tmprval.consumed = consumed_myself; \ - return tmprval; \ - } while(0) - -#undef APPEND -#define APPEND(bufptr, bufsize) do { \ - size_t _bs = (bufsize); /* Append size */ \ - size_t _ns = ctx->context; /* Allocated now */ \ - size_t _es = st->size + _bs; /* Expected size */ \ - /* int is really a typeof(st->size): */ \ - if((int)_es < 0) RETURN(RC_FAIL); \ - if(_ns <= _es) { \ - void *ptr; \ - /* Be nice and round to the memory allocator */ \ - do { _ns = _ns ? _ns << 1 : 16; } \ - while(_ns <= _es); \ - /* int is really a typeof(st->size): */ \ - if((int)_ns < 0) RETURN(RC_FAIL); \ - ptr = REALLOC(st->buf, _ns); \ - if(ptr) { \ - st->buf = (uint8_t *)ptr; \ - ctx->context = _ns; \ - } else { \ - RETURN(RC_FAIL); \ - } \ - ASN_DEBUG("Reallocating into %ld", (long)_ns); \ - } \ - memcpy(st->buf + st->size, bufptr, _bs); \ - /* Convenient nul-termination */ \ - st->buf[_es] = '\0'; \ - st->size = _es; \ - } while(0) - -/* - * The main reason why ASN.1 is still alive is that too much time and effort - * is necessary for learning it more or less adequately, thus creating a gut - * necessity to demonstrate that aquired skill everywhere afterwards. - * No, I am not going to explain what the following stuff is. - */ -struct _stack_el { - ber_tlv_len_t left; /* What's left to read (or -1) */ - ber_tlv_len_t got; /* What was actually processed */ - unsigned cont_level; /* Depth of subcontainment */ - int want_nulls; /* Want null "end of content" octets? */ - int bits_chopped; /* Flag in BIT STRING mode */ - ber_tlv_tag_t tag; /* For debugging purposes */ - struct _stack_el *prev; - struct _stack_el *next; -}; -struct _stack { - struct _stack_el *tail; - struct _stack_el *cur_ptr; -}; - -static struct _stack_el * -OS__add_stack_el(struct _stack *st) { - struct _stack_el *nel; - - /* - * Reuse the old stack frame or allocate a new one. - */ - if(st->cur_ptr && st->cur_ptr->next) { - nel = st->cur_ptr->next; - nel->bits_chopped = 0; - nel->got = 0; - /* Retain the nel->cont_level, it's correct. */ - } else { - nel = (struct _stack_el *)CALLOC(1, sizeof(struct _stack_el)); - if(nel == NULL) - return NULL; - - if(st->tail) { - /* Increase a subcontainment depth */ - nel->cont_level = st->tail->cont_level + 1; - st->tail->next = nel; - } - nel->prev = st->tail; - st->tail = nel; - } - - st->cur_ptr = nel; - - return nel; -} - -static struct _stack * -_new_stack(void) { - return (struct _stack *)CALLOC(1, sizeof(struct _stack)); -} - -/* - * Decode OCTET STRING type. - */ -asn_dec_rval_t -OCTET_STRING_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const void *buf_ptr, size_t size, int tag_mode) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - BIT_STRING_t *st = (BIT_STRING_t *)*sptr; - asn_dec_rval_t rval; - asn_struct_ctx_t *ctx; - ssize_t consumed_myself = 0; - struct _stack *stck; /* Expectations stack structure */ - struct _stack_el *sel = 0; /* Stack element */ - int tlv_constr; - enum asn_OS_Subvariant type_variant = specs->subvariant; - - ASN_DEBUG("Decoding %s as %s (frame %ld)", - td->name, - (type_variant == ASN_OSUBV_STR) ? - "OCTET STRING" : "OS-SpecialCase", - (long)size); - - /* - * Create the string if does not exist. - */ - if(st == NULL) { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(st == NULL) RETURN(RC_FAIL); - } - - /* Restore parsing context */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - switch(ctx->phase) { - case 0: - /* - * Check tags. - */ - rval = ber_check_tags(opt_codec_ctx, td, ctx, - buf_ptr, size, tag_mode, -1, - &ctx->left, &tlv_constr); - if(rval.code != RC_OK) - return rval; - - if(tlv_constr) { - /* - * Complex operation, requires stack of expectations. - */ - ctx->ptr = _new_stack(); - if(!ctx->ptr) { - RETURN(RC_FAIL); - } - } else { - /* - * Jump into stackless primitive decoding. - */ - _CH_PHASE(ctx, 3); - if(type_variant == ASN_OSUBV_ANY && tag_mode != 1) - APPEND(buf_ptr, rval.consumed); - ADVANCE(rval.consumed); - goto phase3; - } - - NEXT_PHASE(ctx); - /* Fall through */ - case 1: - phase1: - /* - * Fill the stack with expectations. - */ - stck = (struct _stack *)ctx->ptr; - sel = stck->cur_ptr; - do { - ber_tlv_tag_t tlv_tag; - ber_tlv_len_t tlv_len; - ber_tlv_tag_t expected_tag; - ssize_t tl, ll, tlvl; - /* This one works even if (sel->left == -1) */ - size_t Left = ((!sel||(size_t)sel->left >= size) - ?size:(size_t)sel->left); - - - ASN_DEBUG("%p, s->l=%ld, s->wn=%ld, s->g=%ld\n", (void *)sel, - (long)(sel?sel->left:0), - (long)(sel?sel->want_nulls:0), - (long)(sel?sel->got:0) - ); - if(sel && sel->left <= 0 && sel->want_nulls == 0) { - if(sel->prev) { - struct _stack_el *prev = sel->prev; - if(prev->left != -1) { - if(prev->left < sel->got) - RETURN(RC_FAIL); - prev->left -= sel->got; - } - prev->got += sel->got; - sel = stck->cur_ptr = prev; - if(!sel) break; - tlv_constr = 1; - continue; - } else { - sel = stck->cur_ptr = 0; - break; /* Nothing to wait */ - } - } - - tl = ber_fetch_tag(buf_ptr, Left, &tlv_tag); - ASN_DEBUG("fetch tag(size=%ld,L=%ld), %sstack, left=%ld, wn=%ld, tl=%ld", - (long)size, (long)Left, sel?"":"!", - (long)(sel?sel->left:0), - (long)(sel?sel->want_nulls:0), - (long)tl); - switch(tl) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - - tlv_constr = BER_TLV_CONSTRUCTED(buf_ptr); - - ll = ber_fetch_length(tlv_constr, - (const char *)buf_ptr + tl,Left - tl,&tlv_len); - ASN_DEBUG("Got tag=%s, tc=%d, left=%ld, tl=%ld, len=%ld, ll=%ld", - ber_tlv_tag_string(tlv_tag), tlv_constr, - (long)Left, (long)tl, (long)tlv_len, (long)ll); - switch(ll) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - - if(sel && sel->want_nulls - && ((const uint8_t *)buf_ptr)[0] == 0 - && ((const uint8_t *)buf_ptr)[1] == 0) - { - - ASN_DEBUG("Eat EOC; wn=%d--", sel->want_nulls); - - if(type_variant == ASN_OSUBV_ANY - && (tag_mode != 1 || sel->cont_level)) - APPEND("\0\0", 2); - - ADVANCE(2); - sel->got += 2; - if(sel->left != -1) { - sel->left -= 2; /* assert(sel->left >= 2) */ - } - - sel->want_nulls--; - if(sel->want_nulls == 0) { - /* Move to the next expectation */ - sel->left = 0; - tlv_constr = 1; - } - - continue; - } - - /* - * Set up expected tags, - * depending on ASN.1 type being decoded. - */ - switch(type_variant) { - case ASN_OSUBV_BIT: - /* X.690: 8.6.4.1, NOTE 2 */ - /* Fall through */ - case ASN_OSUBV_STR: - default: - if(sel) { - unsigned level = sel->cont_level; - if(level < td->all_tags_count) { - expected_tag = td->all_tags[level]; - break; - } else if(td->all_tags_count) { - expected_tag = td->all_tags - [td->all_tags_count - 1]; - break; - } - /* else, Fall through */ - } - /* Fall through */ - case ASN_OSUBV_ANY: - expected_tag = tlv_tag; - break; - } - - - if(tlv_tag != expected_tag) { - char buf[2][32]; - ber_tlv_tag_snprint(tlv_tag, - buf[0], sizeof(buf[0])); - ber_tlv_tag_snprint(td->tags[td->tags_count-1], - buf[1], sizeof(buf[1])); - ASN_DEBUG("Tag does not match expectation: %s != %s", - buf[0], buf[1]); - RETURN(RC_FAIL); - } - - tlvl = tl + ll; /* Combined length of T and L encoding */ - if((tlv_len + tlvl) < 0) { - /* tlv_len value is too big */ - ASN_DEBUG("TLV encoding + length (%ld) is too big", - (long)tlv_len); - RETURN(RC_FAIL); - } - - /* - * Append a new expectation. - */ - sel = OS__add_stack_el(stck); - if(!sel) RETURN(RC_FAIL); - - sel->tag = tlv_tag; - - sel->want_nulls = (tlv_len==-1); - if(sel->prev && sel->prev->left != -1) { - /* Check that the parent frame is big enough */ - if(sel->prev->left < tlvl + (tlv_len==-1?0:tlv_len)) - RETURN(RC_FAIL); - if(tlv_len == -1) - sel->left = sel->prev->left - tlvl; - else - sel->left = tlv_len; - } else { - sel->left = tlv_len; - } - if(type_variant == ASN_OSUBV_ANY - && (tag_mode != 1 || sel->cont_level)) - APPEND(buf_ptr, tlvl); - sel->got += tlvl; - ADVANCE(tlvl); - - ASN_DEBUG("+EXPECT2 got=%ld left=%ld, wn=%d, clvl=%u", - (long)sel->got, (long)sel->left, - sel->want_nulls, sel->cont_level); - - } while(tlv_constr); - if(sel == NULL) { - /* Finished operation, "phase out" */ - ASN_DEBUG("Phase out"); - _CH_PHASE(ctx, +3); - break; - } - - NEXT_PHASE(ctx); - /* Fall through */ - case 2: - stck = (struct _stack *)ctx->ptr; - sel = stck->cur_ptr; - ASN_DEBUG("Phase 2: Need %ld bytes, size=%ld, alrg=%ld, wn=%d", - (long)sel->left, (long)size, (long)sel->got, - sel->want_nulls); - { - ber_tlv_len_t len; - - assert(sel->left >= 0); - - len = ((ber_tlv_len_t)size < sel->left) - ? (ber_tlv_len_t)size : sel->left; - if(len > 0) { - if(type_variant == ASN_OSUBV_BIT - && sel->bits_chopped == 0) { - /* Put the unused-bits-octet away */ - st->bits_unused = *(const uint8_t *)buf_ptr; - APPEND(((const char *)buf_ptr+1), (len - 1)); - sel->bits_chopped = 1; - } else { - APPEND(buf_ptr, len); - } - ADVANCE(len); - sel->left -= len; - sel->got += len; - } - - if(sel->left) { - ASN_DEBUG("OS left %ld, size = %ld, wn=%d\n", - (long)sel->left, (long)size, sel->want_nulls); - RETURN(RC_WMORE); - } - - PREV_PHASE(ctx); - goto phase1; - } - break; - case 3: - phase3: - /* - * Primitive form, no stack required. - */ - assert(ctx->left >= 0); - - if(size < (size_t)ctx->left) { - if(!size) RETURN(RC_WMORE); - if(type_variant == ASN_OSUBV_BIT && !ctx->context) { - st->bits_unused = *(const uint8_t *)buf_ptr; - ctx->left--; - ADVANCE(1); - } - APPEND(buf_ptr, size); - assert(ctx->context > 0); - ctx->left -= size; - ADVANCE(size); - RETURN(RC_WMORE); - } else { - if(type_variant == ASN_OSUBV_BIT - && !ctx->context && ctx->left) { - st->bits_unused = *(const uint8_t *)buf_ptr; - ctx->left--; - ADVANCE(1); - } - APPEND(buf_ptr, ctx->left); - ADVANCE(ctx->left); - ctx->left = 0; - - NEXT_PHASE(ctx); - } - break; - } - - if(sel) { - ASN_DEBUG("3sel p=%p, wn=%d, l=%ld, g=%ld, size=%ld", - (void *)sel->prev, sel->want_nulls, - (long)sel->left, (long)sel->got, (long)size); - if(sel->prev || sel->want_nulls > 1 || sel->left > 0) { - RETURN(RC_WMORE); - } - } - - /* - * BIT STRING-specific processing. - */ - if(type_variant == ASN_OSUBV_BIT) { - if(st->size) { - if(st->bits_unused < 0 || st->bits_unused > 7) { - RETURN(RC_FAIL); - } - /* Finalize BIT STRING: zero out unused bits. */ - st->buf[st->size-1] &= 0xff << st->bits_unused; - } else { - if(st->bits_unused) { - RETURN(RC_FAIL); - } - } - } - - ASN_DEBUG("Took %ld bytes to encode %s: [%s]:%ld", - (long)consumed_myself, td->name, - (type_variant == ASN_OSUBV_STR) ? (char *)st->buf : "", - (long)st->size); - - - RETURN(RC_OK); -} - -/* - * Encode OCTET STRING type using DER. - */ -asn_enc_rval_t -OCTET_STRING_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t er = { 0, 0, 0 }; - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - enum asn_OS_Subvariant type_variant = specs->subvariant; - int fix_last_byte = 0; - - ASN_DEBUG("%s %s as OCTET STRING", - cb?"Estimating":"Encoding", td->name); - - /* - * Write tags. - */ - if(type_variant != ASN_OSUBV_ANY || tag_mode == 1) { - er.encoded = der_write_tags(td, - (type_variant == ASN_OSUBV_BIT) + st->size, - tag_mode, type_variant == ASN_OSUBV_ANY, tag, - cb, app_key); - if(er.encoded == -1) { - er.failed_type = td; - er.structure_ptr = sptr; - return er; - } - } else { - /* Disallow: [] IMPLICIT ANY */ - assert(type_variant != ASN_OSUBV_ANY || tag_mode != -1); - er.encoded = 0; - } - - if(!cb) { - er.encoded += (type_variant == ASN_OSUBV_BIT) + st->size; - ASN__ENCODED_OK(er); - } - - /* - * Prepare to deal with the last octet of BIT STRING. - */ - if(type_variant == ASN_OSUBV_BIT) { - uint8_t b = st->bits_unused & 0x07; - if(b && st->size) fix_last_byte = 1; - ASN__CALLBACK(&b, 1); - } - - /* Invoke callback for the main part of the buffer */ - ASN__CALLBACK(st->buf, st->size - fix_last_byte); - - /* The last octet should be stripped off the unused bits */ - if(fix_last_byte) { - uint8_t b = st->buf[st->size-1] & (0xff << st->bits_unused); - ASN__CALLBACK(&b, 1); - } - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -asn_enc_rval_t -OCTET_STRING_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const char * const h2c = "0123456789ABCDEF"; - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - asn_enc_rval_t er = { 0, 0, 0 }; - char scratch[16 * 3 + 4]; - char *p = scratch; - uint8_t *buf; - uint8_t *end; - size_t i; - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - er.encoded = 0; - - /* - * Dump the contents of the buffer in hexadecimal. - */ - buf = st->buf; - end = buf + st->size; - if(flags & XER_F_CANONICAL) { - char *scend = scratch + (sizeof(scratch) - 2); - for(; buf < end; buf++) { - if(p >= scend) { - ASN__CALLBACK(scratch, p - scratch); - p = scratch; - } - *p++ = h2c[(*buf >> 4) & 0x0F]; - *p++ = h2c[*buf & 0x0F]; - } - - ASN__CALLBACK(scratch, p-scratch); /* Dump the rest */ - } else { - for(i = 0; buf < end; buf++, i++) { - if(!(i % 16) && (i || st->size > 16)) { - ASN__CALLBACK(scratch, p-scratch); - p = scratch; - ASN__TEXT_INDENT(1, ilevel); - } - *p++ = h2c[(*buf >> 4) & 0x0F]; - *p++ = h2c[*buf & 0x0F]; - *p++ = 0x20; - } - if(p - scratch) { - p--; /* Remove the tail space */ - ASN__CALLBACK(scratch, p-scratch); /* Dump the rest */ - if(st->size > 16) - ASN__TEXT_INDENT(1, ilevel-1); - } - } - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -static const struct OCTET_STRING__xer_escape_table_s { - const char *string; - int size; -} OCTET_STRING__xer_escape_table[] = { -#define OSXET(s) { s, sizeof(s) - 1 } - OSXET("\074\156\165\154\057\076"), /* */ - OSXET("\074\163\157\150\057\076"), /* */ - OSXET("\074\163\164\170\057\076"), /* */ - OSXET("\074\145\164\170\057\076"), /* */ - OSXET("\074\145\157\164\057\076"), /* */ - OSXET("\074\145\156\161\057\076"), /* */ - OSXET("\074\141\143\153\057\076"), /* */ - OSXET("\074\142\145\154\057\076"), /* */ - OSXET("\074\142\163\057\076"), /* */ - OSXET("\011"), /* \t */ - OSXET("\012"), /* \n */ - OSXET("\074\166\164\057\076"), /* */ - OSXET("\074\146\146\057\076"), /* */ - OSXET("\015"), /* \r */ - OSXET("\074\163\157\057\076"), /* */ - OSXET("\074\163\151\057\076"), /* */ - OSXET("\074\144\154\145\057\076"), /* */ - OSXET("\074\144\143\061\057\076"), /* */ - OSXET("\074\144\143\062\057\076"), /* */ - OSXET("\074\144\143\063\057\076"), /* */ - OSXET("\074\144\143\064\057\076"), /* */ - OSXET("\074\156\141\153\057\076"), /* */ - OSXET("\074\163\171\156\057\076"), /* */ - OSXET("\074\145\164\142\057\076"), /* */ - OSXET("\074\143\141\156\057\076"), /* */ - OSXET("\074\145\155\057\076"), /* */ - OSXET("\074\163\165\142\057\076"), /* */ - OSXET("\074\145\163\143\057\076"), /* */ - OSXET("\074\151\163\064\057\076"), /* */ - OSXET("\074\151\163\063\057\076"), /* */ - OSXET("\074\151\163\062\057\076"), /* */ - OSXET("\074\151\163\061\057\076"), /* */ - { 0, 0 }, /* " " */ - { 0, 0 }, /* ! */ - { 0, 0 }, /* \" */ - { 0, 0 }, /* # */ - { 0, 0 }, /* $ */ - { 0, 0 }, /* % */ - OSXET("\046\141\155\160\073"), /* & */ - { 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},{0,0}, /* 01234567 */ - {0,0},{0,0},{0,0},{0,0}, /* 89:; */ - OSXET("\046\154\164\073"), /* < */ - { 0, 0 }, /* = */ - OSXET("\046\147\164\073"), /* > */ -}; - -static int -OS__check_escaped_control_char(const void *buf, int size) { - size_t i; - /* - * Inefficient algorithm which translates the escape sequences - * defined above into characters. Returns -1 if not found. - * TODO: replace by a faster algorithm (bsearch(), hash or - * nested table lookups). - */ - for(i = 0; i < 32 /* Don't spend time on the bottom half */; i++) { - const struct OCTET_STRING__xer_escape_table_s *el; - el = &OCTET_STRING__xer_escape_table[i]; - if(el->size == size && memcmp(buf, el->string, size) == 0) - return i; - } - return -1; -} - -static int -OCTET_STRING__handle_control_chars(void *struct_ptr, const void *chunk_buf, size_t chunk_size) { - /* - * This might be one of the escape sequences - * for control characters. Check it out. - * #11.15.5 - */ - int control_char = OS__check_escaped_control_char(chunk_buf,chunk_size); - if(control_char >= 0) { - OCTET_STRING_t *st = (OCTET_STRING_t *)struct_ptr; - void *p = REALLOC(st->buf, st->size + 2); - if(p) { - st->buf = (uint8_t *)p; - st->buf[st->size++] = control_char; - st->buf[st->size] = '\0'; /* nul-termination */ - return 0; - } - } - - return -1; /* No, it's not */ -} - -asn_enc_rval_t -OCTET_STRING_encode_xer_utf8(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - asn_enc_rval_t er = { 0, 0, 0 }; - uint8_t *buf, *end; - uint8_t *ss; /* Sequence start */ - ssize_t encoded_len = 0; - - (void)ilevel; /* Unused argument */ - (void)flags; /* Unused argument */ - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - buf = st->buf; - end = buf + st->size; - for(ss = buf; buf < end; buf++) { - unsigned int ch = *buf; - int s_len; /* Special encoding sequence length */ - - /* - * Escape certain characters: X.680/11.15 - */ - if(ch < sizeof(OCTET_STRING__xer_escape_table) - /sizeof(OCTET_STRING__xer_escape_table[0]) - && (s_len = OCTET_STRING__xer_escape_table[ch].size)) { - if(((buf - ss) && cb(ss, buf - ss, app_key) < 0) - || cb(OCTET_STRING__xer_escape_table[ch].string, s_len, - app_key) < 0) - ASN__ENCODE_FAILED; - encoded_len += (buf - ss) + s_len; - ss = buf + 1; - } - } - - encoded_len += (buf - ss); - if((buf - ss) && cb(ss, buf - ss, app_key) < 0) - ASN__ENCODE_FAILED; - - er.encoded = encoded_len; - ASN__ENCODED_OK(er); -} - -/* - * Convert from hexadecimal format (cstring): "AB CD EF" - */ -static ssize_t OCTET_STRING__convert_hexadecimal(void *sptr, const void *chunk_buf, size_t chunk_size, int have_more) { - OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; - const char *chunk_stop = (const char *)chunk_buf; - const char *p = chunk_stop; - const char *pend = p + chunk_size; - unsigned int clv = 0; - int half = 0; /* Half bit */ - uint8_t *buf; - - /* Reallocate buffer according to high cap estimation */ - size_t new_size = st->size + (chunk_size + 1) / 2; - void *nptr = REALLOC(st->buf, new_size + 1); - if(!nptr) return -1; - st->buf = (uint8_t *)nptr; - buf = st->buf + st->size; - - /* - * If something like " a b c " appears here, the " a b":3 will be - * converted, and the rest skipped. That is, unless buf_size is greater - * than chunk_size, then it'll be equivalent to "ABC0". - */ - for(; p < pend; p++) { - int ch = *(const unsigned char *)p; - switch(ch) { - case 0x09: case 0x0a: case 0x0c: case 0x0d: - case 0x20: - /* Ignore whitespace */ - continue; - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: /*01234*/ - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: /*56789*/ - clv = (clv << 4) + (ch - 0x30); - break; - case 0x41: case 0x42: case 0x43: /* ABC */ - case 0x44: case 0x45: case 0x46: /* DEF */ - clv = (clv << 4) + (ch - 0x41 + 10); - break; - case 0x61: case 0x62: case 0x63: /* abc */ - case 0x64: case 0x65: case 0x66: /* def */ - clv = (clv << 4) + (ch - 0x61 + 10); - break; - default: - *buf = 0; /* JIC */ - return -1; - } - if(half++) { - half = 0; - *buf++ = clv; - chunk_stop = p + 1; - } - } - - /* - * Check partial decoding. - */ - if(half) { - if(have_more) { - /* - * Partial specification is fine, - * because no more more PXER_TEXT data is available. - */ - *buf++ = clv << 4; - chunk_stop = p; - } - } else { - chunk_stop = p; - } - - st->size = buf - st->buf; /* Adjust the buffer size */ - assert(st->size <= new_size); - st->buf[st->size] = 0; /* Courtesy termination */ - - return (chunk_stop - (const char *)chunk_buf); /* Converted size */ -} - -/* - * Convert from binary format: "00101011101" - */ -static ssize_t OCTET_STRING__convert_binary(void *sptr, const void *chunk_buf, size_t chunk_size, int have_more) { - BIT_STRING_t *st = (BIT_STRING_t *)sptr; - const char *p = (const char *)chunk_buf; - const char *pend = p + chunk_size; - int bits_unused = st->bits_unused & 0x7; - uint8_t *buf; - - /* Reallocate buffer according to high cap estimation */ - size_t new_size = st->size + (chunk_size + 7) / 8; - void *nptr = REALLOC(st->buf, new_size + 1); - if(!nptr) return -1; - st->buf = (uint8_t *)nptr; - buf = st->buf + st->size; - - (void)have_more; - - if(bits_unused == 0) - bits_unused = 8; - else if(st->size) - buf--; - - /* - * Convert series of 0 and 1 into the octet string. - */ - for(; p < pend; p++) { - int ch = *(const unsigned char *)p; - switch(ch) { - case 0x09: case 0x0a: case 0x0c: case 0x0d: - case 0x20: - /* Ignore whitespace */ - break; - case 0x30: - case 0x31: - if(bits_unused-- <= 0) { - *++buf = 0; /* Clean the cell */ - bits_unused = 7; - } - *buf |= (ch&1) << bits_unused; - break; - default: - st->bits_unused = bits_unused; - return -1; - } - } - - if(bits_unused == 8) { - st->size = buf - st->buf; - st->bits_unused = 0; - } else { - st->size = buf - st->buf + 1; - st->bits_unused = bits_unused; - } - - assert(st->size <= new_size); - st->buf[st->size] = 0; /* Courtesy termination */ - - return chunk_size; /* Converted in full */ -} - -/* - * Something like strtod(), but with stricter rules. - */ -static int -OS__strtoent(int base, const char *buf, const char *end, int32_t *ret_value) { - const int32_t last_unicode_codepoint = 0x10ffff; - int32_t val = 0; - const char *p; - - for(p = buf; p < end; p++) { - int ch = *p; - - switch(ch) { - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: /*01234*/ - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: /*56789*/ - val = val * base + (ch - 0x30); - break; - case 0x41: case 0x42: case 0x43: /* ABC */ - case 0x44: case 0x45: case 0x46: /* DEF */ - val = val * base + (ch - 0x41 + 10); - break; - case 0x61: case 0x62: case 0x63: /* abc */ - case 0x64: case 0x65: case 0x66: /* def */ - val = val * base + (ch - 0x61 + 10); - break; - case 0x3b: /* ';' */ - *ret_value = val; - return (p - buf) + 1; - default: - return -1; /* Character set error */ - } - - /* Value exceeds the Unicode range. */ - if(val > last_unicode_codepoint) { - return -1; - } - } - - *ret_value = -1; - return (p - buf); -} - -/* - * Convert from the plain UTF-8 format, expanding entity references: "2 < 3" - */ -static ssize_t -OCTET_STRING__convert_entrefs(void *sptr, const void *chunk_buf, - size_t chunk_size, int have_more) { - OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; - const char *p = (const char *)chunk_buf; - const char *pend = p + chunk_size; - uint8_t *buf; - - /* Reallocate buffer */ - size_t new_size = st->size + chunk_size; - void *nptr = REALLOC(st->buf, new_size + 1); - if(!nptr) return -1; - st->buf = (uint8_t *)nptr; - buf = st->buf + st->size; - - /* - * Convert series of 0 and 1 into the octet string. - */ - for(; p < pend; p++) { - int ch = *(const unsigned char *)p; - int len; /* Length of the rest of the chunk */ - - if(ch != 0x26 /* '&' */) { - *buf++ = ch; - continue; /* That was easy... */ - } - - /* - * Process entity reference. - */ - len = chunk_size - (p - (const char *)chunk_buf); - if(len == 1 /* "&" */) goto want_more; - if(p[1] == 0x23 /* '#' */) { - const char *pval; /* Pointer to start of digits */ - int32_t val = 0; /* Entity reference value */ - int base; - - if(len == 2 /* "&#" */) goto want_more; - if(p[2] == 0x78 /* 'x' */) - pval = p + 3, base = 16; - else - pval = p + 2, base = 10; - len = OS__strtoent(base, pval, p + len, &val); - if(len == -1) { - /* Invalid charset. Just copy verbatim. */ - *buf++ = ch; - continue; - } - if(!len || pval[len-1] != 0x3b) goto want_more; - assert(val > 0); - p += (pval - p) + len - 1; /* Advance past entref */ - - if(val < 0x80) { - *buf++ = (char)val; - } else if(val < 0x800) { - *buf++ = 0xc0 | ((val >> 6)); - *buf++ = 0x80 | ((val & 0x3f)); - } else if(val < 0x10000) { - *buf++ = 0xe0 | ((val >> 12)); - *buf++ = 0x80 | ((val >> 6) & 0x3f); - *buf++ = 0x80 | ((val & 0x3f)); - } else if(val < 0x200000) { - *buf++ = 0xf0 | ((val >> 18)); - *buf++ = 0x80 | ((val >> 12) & 0x3f); - *buf++ = 0x80 | ((val >> 6) & 0x3f); - *buf++ = 0x80 | ((val & 0x3f)); - } else if(val < 0x4000000) { - *buf++ = 0xf8 | ((val >> 24)); - *buf++ = 0x80 | ((val >> 18) & 0x3f); - *buf++ = 0x80 | ((val >> 12) & 0x3f); - *buf++ = 0x80 | ((val >> 6) & 0x3f); - *buf++ = 0x80 | ((val & 0x3f)); - } else { - *buf++ = 0xfc | ((val >> 30) & 0x1); - *buf++ = 0x80 | ((val >> 24) & 0x3f); - *buf++ = 0x80 | ((val >> 18) & 0x3f); - *buf++ = 0x80 | ((val >> 12) & 0x3f); - *buf++ = 0x80 | ((val >> 6) & 0x3f); - *buf++ = 0x80 | ((val & 0x3f)); - } - } else { - /* - * Ugly, limited parsing of & > < - */ - char *sc = (char *)memchr(p, 0x3b, len > 5 ? 5 : len); - if(!sc) goto want_more; - if((sc - p) == 4 - && p[1] == 0x61 /* 'a' */ - && p[2] == 0x6d /* 'm' */ - && p[3] == 0x70 /* 'p' */) { - *buf++ = 0x26; - p = sc; - continue; - } - if((sc - p) == 3) { - if(p[1] == 0x6c) { - *buf = 0x3c; /* '<' */ - } else if(p[1] == 0x67) { - *buf = 0x3e; /* '>' */ - } else { - /* Unsupported entity reference */ - *buf++ = ch; - continue; - } - if(p[2] != 0x74) { - /* Unsupported entity reference */ - *buf++ = ch; - continue; - } - buf++; - p = sc; - continue; - } - /* Unsupported entity reference */ - *buf++ = ch; - } - - continue; - want_more: - if(have_more) { - /* - * We know that no more data (of the same type) - * is coming. Copy the rest verbatim. - */ - *buf++ = ch; - continue; - } - chunk_size = (p - (const char *)chunk_buf); - /* Processing stalled: need more data */ - break; - } - - st->size = buf - st->buf; - assert(st->size <= new_size); - st->buf[st->size] = 0; /* Courtesy termination */ - - return chunk_size; /* Converted in full */ -} - -/* - * Decode OCTET STRING from the XML element's body. - */ -static asn_dec_rval_t -OCTET_STRING__decode_xer( - const asn_codec_ctx_t *opt_codec_ctx, const asn_TYPE_descriptor_t *td, - void **sptr, const char *opt_mname, const void *buf_ptr, size_t size, - int (*opt_unexpected_tag_decoder)(void *struct_ptr, const void *chunk_buf, - size_t chunk_size), - ssize_t (*body_receiver)(void *struct_ptr, const void *chunk_buf, - size_t chunk_size, int have_more)) { - OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr; - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - asn_struct_ctx_t *ctx; /* Per-structure parser context */ - asn_dec_rval_t rval; /* Return value from the decoder */ - int st_allocated; - - /* - * Create the string if does not exist. - */ - if(!st) { - st = (OCTET_STRING_t *)CALLOC(1, specs->struct_size); - *sptr = (void *)st; - if(!st) goto sta_failed; - st_allocated = 1; - } else { - st_allocated = 0; - } - if(!st->buf) { - /* This is separate from above section */ - st->buf = (uint8_t *)CALLOC(1, 1); - if(!st->buf) { - if(st_allocated) { - *sptr = 0; - goto stb_failed; - } else { - goto sta_failed; - } - } - } - - /* Restore parsing context */ - ctx = (asn_struct_ctx_t *)(((char *)*sptr) + specs->ctx_offset); - - return xer_decode_general(opt_codec_ctx, ctx, *sptr, xml_tag, - buf_ptr, size, opt_unexpected_tag_decoder, body_receiver); - -stb_failed: - FREEMEM(st); -sta_failed: - rval.code = RC_FAIL; - rval.consumed = 0; - return rval; -} - -/* - * Decode OCTET STRING from the hexadecimal data. - */ -asn_dec_rval_t -OCTET_STRING_decode_xer_hex(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, - size_t size) { - return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname, - buf_ptr, size, 0, OCTET_STRING__convert_hexadecimal); -} - -/* - * Decode OCTET STRING from the binary (0/1) data. - */ -asn_dec_rval_t -OCTET_STRING_decode_xer_binary(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, - size_t size) { - return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname, - buf_ptr, size, 0, OCTET_STRING__convert_binary); -} - -/* - * Decode OCTET STRING from the string (ASCII/UTF-8) data. - */ -asn_dec_rval_t -OCTET_STRING_decode_xer_utf8(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, - size_t size) { - return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname, - buf_ptr, size, - OCTET_STRING__handle_control_chars, - OCTET_STRING__convert_entrefs); -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -static int -OCTET_STRING_per_get_characters(asn_per_data_t *po, uint8_t *buf, - size_t units, unsigned int bpc, unsigned int unit_bits, - long lb, long ub, const asn_per_constraints_t *pc) { - uint8_t *end = buf + units * bpc; - - ASN_DEBUG("Expanding %d characters into (%ld..%ld):%d", - (int)units, lb, ub, unit_bits); - - /* X.691: 27.5.4 */ - if((unsigned long)ub <= ((unsigned long)2 << (unit_bits - 1))) { - /* Decode without translation */ - lb = 0; - } else if(pc && pc->code2value) { - if(unit_bits > 16) - return 1; /* FATAL: can't have constrained - * UniversalString with more than - * 16 million code points */ - for(; buf < end; buf += bpc) { - int value; - int code = per_get_few_bits(po, unit_bits); - if(code < 0) return -1; /* WMORE */ - value = pc->code2value(code); - if(value < 0) { - ASN_DEBUG("Code %d (0x%02x) is" - " not in map (%ld..%ld)", - code, code, lb, ub); - return 1; /* FATAL */ - } - switch(bpc) { - case 1: *buf = value; break; - case 2: buf[0] = value >> 8; buf[1] = value; break; - case 4: buf[0] = value >> 24; buf[1] = value >> 16; - buf[2] = value >> 8; buf[3] = value; break; - } - } - return 0; - } - - /* Shortcut the no-op copying to the aligned structure */ - if(lb == 0 && (unit_bits == 8 * bpc)) { - return per_get_many_bits(po, buf, 0, unit_bits * units); - } - - for(; buf < end; buf += bpc) { - int32_t code = per_get_few_bits(po, unit_bits); - int32_t ch = code + lb; - if(code < 0) return -1; /* WMORE */ - if(ch > ub) { - ASN_DEBUG("Code %d is out of range (%ld..%ld)", - ch, lb, ub); - return 1; /* FATAL */ - } - switch(bpc) { - case 1: *buf = ch; break; - case 2: buf[0] = ch >> 8; buf[1] = ch; break; - case 4: buf[0] = ch >> 24; buf[1] = ch >> 16; - buf[2] = ch >> 8; buf[3] = ch; break; - } - } - - return 0; -} - -static int -OCTET_STRING_per_put_characters(asn_per_outp_t *po, const uint8_t *buf, - size_t units, unsigned int bpc, unsigned int unit_bits, - long lb, long ub, const asn_per_constraints_t *pc) { - const uint8_t *end = buf + units * bpc; - - ASN_DEBUG("Squeezing %d characters into (%ld..%ld):%d (%d bpc)", - (int)units, lb, ub, unit_bits, bpc); - - /* X.691: 27.5.4 */ - if((unsigned long)ub <= ((unsigned long)2 << (unit_bits - 1))) { - /* Encode as is */ - lb = 0; - } else if(pc && pc->value2code) { - for(; buf < end; buf += bpc) { - int code; - uint32_t value; - switch(bpc) { - case 1: value = *(const uint8_t *)buf; break; - case 2: value = (buf[0] << 8) | buf[1]; break; - case 4: value = (buf[0] << 24) | (buf[1] << 16) - | (buf[2] << 8) | buf[3]; break; - default: return -1; - } - code = pc->value2code(value); - if(code < 0) { - ASN_DEBUG("Character %d (0x%02x) is" - " not in map (%ld..%ld)", - *buf, *buf, lb, ub); - return -1; - } - if(per_put_few_bits(po, code, unit_bits)) - return -1; - } - } - - /* Shortcut the no-op copying to the aligned structure */ - if(lb == 0 && (unit_bits == 8 * bpc)) { - return per_put_many_bits(po, buf, unit_bits * units); - } - - for(ub -= lb; buf < end; buf += bpc) { - int ch; - uint32_t value; - switch(bpc) { - case 1: - value = *(const uint8_t *)buf; - break; - case 2: - value = (buf[0] << 8) | buf[1]; - break; - case 4: - value = (buf[0] << 24) | (buf[1] << 16) | (buf[2] << 8) | buf[3]; - break; - default: - return -1; - } - ch = value - lb; - if(ch < 0 || ch > ub) { - ASN_DEBUG("Character %d (0x%02x) is out of range (%ld..%ld)", *buf, - value, lb, ub + lb); - return -1; - } - if(per_put_few_bits(po, ch, unit_bits)) return -1; - } - - return 0; -} - -static asn_per_constraints_t asn_DEF_OCTET_STRING_constraints = { - { APC_CONSTRAINED, 8, 8, 0, 255 }, - { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, - 0, 0 -}; - -asn_dec_rval_t -OCTET_STRING_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const asn_per_constraints_t *pc = - constraints ? constraints : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *cval; - const asn_per_constraint_t *csiz; - asn_dec_rval_t rval = { RC_OK, 0 }; - OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr; - ssize_t consumed_myself = 0; - int repeat; - enum { - OS__BPC_CHAR = 1, - OS__BPC_U16 = 2, - OS__BPC_U32 = 4 - } bpc; /* Bytes per character */ - unsigned int unit_bits; - unsigned int canonical_unit_bits; - - (void)opt_codec_ctx; - - if(pc) { - cval = &pc->value; - csiz = &pc->size; - } else { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - } - - switch(specs->subvariant) { - default: - case ASN_OSUBV_ANY: - case ASN_OSUBV_BIT: - ASN_DEBUG("Unrecognized subvariant %d", specs->subvariant); - RETURN(RC_FAIL); - break; - case ASN_OSUBV_STR: - canonical_unit_bits = unit_bits = 8; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_CHAR; - break; - case ASN_OSUBV_U16: - canonical_unit_bits = unit_bits = 16; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U16; - break; - case ASN_OSUBV_U32: - canonical_unit_bits = unit_bits = 32; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U32; - break; - } - - /* - * Allocate the string. - */ - if(!st) { - st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d", - csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", - csiz->lower_bound, csiz->upper_bound, csiz->effective_bits); - - if(csiz->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) RETURN(RC_WMORE); - if(inext) { - csiz = &asn_DEF_OCTET_STRING_constraints.size; - unit_bits = canonical_unit_bits; - } - } - - if(csiz->effective_bits >= 0) { - FREEMEM(st->buf); - if(bpc) { - st->size = csiz->upper_bound * bpc; - } else { - st->size = (csiz->upper_bound + 7) >> 3; - } - st->buf = (uint8_t *)MALLOC(st->size + 1); - if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } - } - - /* X.691, #16.5: zero-length encoding */ - /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ - /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ - if(csiz->effective_bits == 0) { - int ret; - if(bpc) { - ASN_DEBUG("Encoding OCTET STRING size %ld", - csiz->upper_bound); - ret = OCTET_STRING_per_get_characters(pd, st->buf, - csiz->upper_bound, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - if(ret > 0) RETURN(RC_FAIL); - } else { - ASN_DEBUG("Encoding BIT STRING size %ld", - csiz->upper_bound); - ret = per_get_many_bits(pd, st->buf, 0, - unit_bits * csiz->upper_bound); - } - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += unit_bits * csiz->upper_bound; - st->buf[st->size] = 0; - RETURN(RC_OK); - } - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - void *p; - int ret; - - /* Get the PER length */ - raw_len = uper_get_length(pd, csiz->effective_bits, csiz->lower_bound, - &repeat); - if(raw_len < 0) RETURN(RC_WMORE); - if(raw_len == 0 && st->buf) break; - - ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", - (long)csiz->effective_bits, (long)raw_len, - repeat ? "repeat" : "once", td->name); - len_bytes = raw_len * bpc; - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - ret = OCTET_STRING_per_get_characters(pd, &st->buf[st->size], raw_len, - bpc, unit_bits, cval->lower_bound, - cval->upper_bound, pc); - if(ret > 0) RETURN(RC_FAIL); - if(ret < 0) RETURN(RC_WMORE); - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - return rval; -} - -asn_enc_rval_t -OCTET_STRING_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const asn_per_constraints_t *pc = constraints ? constraints - : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *cval; - const asn_per_constraint_t *csiz; - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - asn_enc_rval_t er = { 0, 0, 0 }; - int inext = 0; /* Lies not within extension root */ - unsigned int unit_bits; - unsigned int canonical_unit_bits; - size_t size_in_units; - const uint8_t *buf; - int ret; - enum { - OS__BPC_CHAR = 1, - OS__BPC_U16 = 2, - OS__BPC_U32 = 4 - } bpc; /* Bytes per character */ - int ct_extensible; - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - if(pc) { - cval = &pc->value; - csiz = &pc->size; - } else { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - } - ct_extensible = csiz->flags & APC_EXTENSIBLE; - - switch(specs->subvariant) { - default: - case ASN_OSUBV_ANY: - case ASN_OSUBV_BIT: - ASN__ENCODE_FAILED; - case ASN_OSUBV_STR: - canonical_unit_bits = unit_bits = 8; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_CHAR; - size_in_units = st->size; - break; - case ASN_OSUBV_U16: - canonical_unit_bits = unit_bits = 16; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U16; - size_in_units = st->size >> 1; - if(st->size & 1) { - ASN_DEBUG("%s string size is not modulo 2", td->name); - ASN__ENCODE_FAILED; - } - break; - case ASN_OSUBV_U32: - canonical_unit_bits = unit_bits = 32; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U32; - size_in_units = st->size >> 2; - if(st->size & 3) { - ASN_DEBUG("%s string size is not modulo 4", td->name); - ASN__ENCODE_FAILED; - } - break; - } - - ASN_DEBUG("Encoding %s into %" ASN_PRI_SIZE " units of %d bits" - " (%ld..%ld, effective %d)%s", - td->name, size_in_units, unit_bits, - csiz->lower_bound, csiz->upper_bound, - csiz->effective_bits, ct_extensible ? " EXT" : ""); - - /* Figure out whether size lies within PER visible constraint */ - - if(csiz->effective_bits >= 0) { - if((ssize_t)size_in_units < csiz->lower_bound - || (ssize_t)size_in_units > csiz->upper_bound) { - if(ct_extensible) { - csiz = &asn_DEF_OCTET_STRING_constraints.size; - unit_bits = canonical_unit_bits; - inext = 1; - } else { - ASN__ENCODE_FAILED; - } - } - } else { - inext = 0; - } - - if(ct_extensible) { - /* Declare whether length is [not] within extension root */ - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - } - - if(csiz->effective_bits >= 0 && !inext) { - ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes (%ld), length in %d bits", st->size, - size_in_units - csiz->lower_bound, csiz->effective_bits); - ret = per_put_few_bits(po, size_in_units - csiz->lower_bound, - csiz->effective_bits); - if(ret) ASN__ENCODE_FAILED; - ret = OCTET_STRING_per_put_characters(po, st->buf, size_in_units, bpc, - unit_bits, cval->lower_bound, - cval->upper_bound, pc); - if(ret) ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes", st->size); - - buf = st->buf; - ASN_DEBUG("Encoding %" ASN_PRI_SIZE " in units", size_in_units); - do { - int need_eom = 0; - ssize_t may_save = uper_put_length(po, size_in_units, &need_eom); - if(may_save < 0) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %" ASN_PRI_SSIZE " of %" ASN_PRI_SIZE "%s", may_save, size_in_units, - need_eom ? ",+EOM" : ""); - - ret = OCTET_STRING_per_put_characters(po, buf, may_save, bpc, unit_bits, - cval->lower_bound, - cval->upper_bound, pc); - if(ret) ASN__ENCODE_FAILED; - - buf += may_save * bpc; - size_in_units -= may_save; - assert(!(may_save & 0x07) || !size_in_units); - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - } while(size_in_units); - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -OCTET_STRING_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd) { - - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const asn_per_constraints_t *pc = constraints ? constraints - : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *cval; - const asn_per_constraint_t *csiz; - asn_dec_rval_t rval = { RC_OK, 0 }; - BIT_STRING_t *st = (BIT_STRING_t *)*sptr; - ssize_t consumed_myself = 0; - int repeat; - enum { - OS__BPC_BIT = 0, - OS__BPC_CHAR = 1, - OS__BPC_U16 = 2, - OS__BPC_U32 = 4 - } bpc; /* Bytes per character */ - unsigned int unit_bits; - unsigned int canonical_unit_bits; - - (void)opt_codec_ctx; - - if(pc) { - cval = &pc->value; - csiz = &pc->size; - } else { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - } - - switch(specs->subvariant) { - default: -/* case ASN_OSUBV_ANY: - ASN_DEBUG("Unrecognized subvariant %d", specs->subvariant); - RETURN(RC_FAIL); -*/ - case ASN_OSUBV_BIT: - canonical_unit_bits = unit_bits = 1; - bpc = OS__BPC_BIT; - break; - case ASN_OSUBV_ANY: - case ASN_OSUBV_STR: - canonical_unit_bits = unit_bits = 8; -/* if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; -*/ - bpc = OS__BPC_CHAR; - break; - case ASN_OSUBV_U16: - canonical_unit_bits = unit_bits = 16; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U16; - break; - case ASN_OSUBV_U32: - canonical_unit_bits = unit_bits = 32; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U32; - break; - } - - /* - * Allocate the string. - */ - if(!st) { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d", - csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", - csiz->lower_bound, csiz->upper_bound, csiz->effective_bits); - - if(csiz->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) RETURN(RC_WMORE); - if(inext) { - csiz = &asn_DEF_OCTET_STRING_constraints.size; - cval = &asn_DEF_OCTET_STRING_constraints.value; - unit_bits = canonical_unit_bits; - } - } - - if(csiz->effective_bits >= 0) { - FREEMEM(st->buf); - if(bpc) { - st->size = csiz->upper_bound * bpc; - } else { - st->size = (csiz->upper_bound + 7) >> 3; - } - st->buf = (uint8_t *)MALLOC(st->size + 1); - if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } - } - - /* X.691, #16.5: zero-length encoding */ - /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ - /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ - if(csiz->effective_bits == 0) { - int ret; - if (st->size > 2) { /* X.691 #16 NOTE 1 */ - if (aper_get_align(pd) < 0) - RETURN(RC_FAIL); - } - if(bpc) { - ASN_DEBUG("Decoding OCTET STRING size %ld", - csiz->upper_bound); - ret = OCTET_STRING_per_get_characters(pd, st->buf, - csiz->upper_bound, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - if(ret > 0) RETURN(RC_FAIL); - } else { - ASN_DEBUG("Decoding BIT STRING size %ld", - csiz->upper_bound); - ret = per_get_many_bits(pd, st->buf, 0, - unit_bits * csiz->upper_bound); - } - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += unit_bits * csiz->upper_bound; - st->buf[st->size] = 0; - if(bpc == 0) { - int ubs = (csiz->upper_bound & 0x7); - st->bits_unused = ubs ? 8 - ubs : 0; - } - RETURN(RC_OK); - } - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - ssize_t len_bits; - void *p; - int ret; - - /* Get the PER length */ - if (csiz->upper_bound - csiz->lower_bound == 0) - /* Indefinite length case */ - raw_len = aper_get_length(pd, -1, csiz->effective_bits, &repeat); - else - raw_len = aper_get_length(pd, csiz->upper_bound - csiz->lower_bound + 1, csiz->effective_bits, &repeat); - repeat = 0; - if(raw_len < 0) RETURN(RC_WMORE); - raw_len += csiz->lower_bound; - - ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", - (long)csiz->effective_bits, (long)raw_len, - repeat ? "repeat" : "once", td->name); - - if (raw_len > 2) { /* X.691 #16 NOTE 1 */ - if (aper_get_align(pd) < 0) - RETURN(RC_FAIL); - } - - if(bpc) { - len_bytes = raw_len * bpc; - len_bits = len_bytes * unit_bits; - } else { - len_bits = raw_len; - len_bytes = (len_bits + 7) >> 3; - if(len_bits & 0x7) - st->bits_unused = 8 - (len_bits & 0x7); - /* len_bits be multiple of 16K if repeat is set */ - } - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - if(bpc) { - ret = OCTET_STRING_per_get_characters(pd, - &st->buf[st->size], raw_len, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - if(ret > 0) RETURN(RC_FAIL); - } else { - ret = per_get_many_bits(pd, &st->buf[st->size], - 0, len_bits); - } - if(ret < 0) RETURN(RC_WMORE); - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - return rval; -} - -asn_enc_rval_t -OCTET_STRING_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const asn_per_constraints_t *pc = constraints ? constraints - : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *cval; - const asn_per_constraint_t *csiz; - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - asn_enc_rval_t er = { 0, 0, 0 }; - int inext = 0; /* Lies not within extension root */ - unsigned int unit_bits; - unsigned int canonical_unit_bits; - unsigned int sizeinunits; - const uint8_t *buf; - int ret; - enum { - OS__BPC_BIT = 0, - OS__BPC_CHAR = 1, - OS__BPC_U16 = 2, - OS__BPC_U32 = 4 - } bpc; /* Bytes per character */ - int ct_extensible; - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - if(pc) { - cval = &pc->value; - csiz = &pc->size; - } else { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - } - ct_extensible = csiz->flags & APC_EXTENSIBLE; - - switch(specs->subvariant) { - default: - /* case ASN_OSUBV_ANY: - ASN__ENCODE_FAILED; - */ - case ASN_OSUBV_BIT: - canonical_unit_bits = unit_bits = 1; - bpc = OS__BPC_BIT; - sizeinunits = st->size * 8 - (st->bits_unused & 0x07); - ASN_DEBUG("BIT STRING of %d bytes", - sizeinunits); - break; - case ASN_OSUBV_ANY: - case ASN_OSUBV_STR: - canonical_unit_bits = unit_bits = 8; -/* if(cval->flags & APC_CONSTRAINED) - unit_bits = 8; -*/ - bpc = OS__BPC_CHAR; - sizeinunits = st->size; - break; - case ASN_OSUBV_U16: - canonical_unit_bits = unit_bits = 16; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U16; - sizeinunits = st->size / 2; - break; - case ASN_OSUBV_U32: - canonical_unit_bits = unit_bits = 32; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U32; - sizeinunits = st->size / 4; - break; - } - - ASN_DEBUG("Encoding %s into %d units of %d bits" - " (%ld..%ld, effective %d)%s", - td->name, sizeinunits, unit_bits, - csiz->lower_bound, csiz->upper_bound, - csiz->effective_bits, ct_extensible ? " EXT" : ""); - - /* Figure out wheter size lies within PER visible constraint */ - - if(csiz->effective_bits >= 0) { - if((int)sizeinunits < csiz->lower_bound - || (int)sizeinunits > csiz->upper_bound) { - if(ct_extensible) { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - unit_bits = canonical_unit_bits; - inext = 1; - } else - ASN__ENCODE_FAILED; - } - } else { - inext = 0; - } - - - if(ct_extensible) { - /* Declare whether length is [not] within extension root */ - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - } - - /* X.691, #16.5: zero-length encoding */ - /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ - /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ - if(csiz->effective_bits >= 0) { - ASN_DEBUG("Encoding %lu bytes (%ld), length in %d bits", - st->size, sizeinunits - csiz->lower_bound, - csiz->effective_bits); - if (csiz->effective_bits > 0) { - ret = aper_put_length(po, csiz->upper_bound - csiz->lower_bound + 1, sizeinunits - csiz->lower_bound); - if(ret) ASN__ENCODE_FAILED; - } - /* EB MOD - AFAIU if lb != ub it is aligned whatever the number of bits */ - if ((st->size > 2) || (csiz->lower_bound != csiz->upper_bound)) { /* X.691 #16.11 */ - if (aper_put_align(po) < 0) - ASN__ENCODE_FAILED; - } - if(bpc) { - ret = OCTET_STRING_per_put_characters(po, st->buf, - sizeinunits, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - } else { - ret = per_put_many_bits(po, st->buf, - sizeinunits * unit_bits); - } - if(ret) ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - ASN_DEBUG("Encoding %lu bytes", st->size); - - if(sizeinunits == 0) { - if(aper_put_length(po, -1, 0)) - ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - buf = st->buf; - while(sizeinunits) { - ssize_t maySave = aper_put_length(po, -1, sizeinunits); - - if(maySave < 0) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %ld of %ld", - (long)maySave, (long)sizeinunits); - - if(bpc) { - ret = OCTET_STRING_per_put_characters(po, buf, - maySave, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - } else { - ret = per_put_many_bits(po, buf, maySave * unit_bits); - } - if(ret) ASN__ENCODE_FAILED; - - if(bpc) - buf += maySave * bpc; - else - buf += maySave >> 3; - sizeinunits -= maySave; - assert(!(maySave & 0x07) || !sizeinunits); - } - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -int -OCTET_STRING_print(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { - const char * const h2c = "0123456789ABCDEF"; - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - char scratch[16 * 3 + 4]; - char *p = scratch; - uint8_t *buf; - uint8_t *end; - size_t i; - - (void)td; /* Unused argument */ - - if(!st || (!st->buf && st->size)) - return (cb("", 8, app_key) < 0) ? -1 : 0; - - /* - * Dump the contents of the buffer in hexadecimal. - */ - buf = st->buf; - end = buf + st->size; - for(i = 0; buf < end; buf++, i++) { - if(!(i % 16) && (i || st->size > 16)) { - if(cb(scratch, p - scratch, app_key) < 0) - return -1; - _i_INDENT(1); - p = scratch; - } - *p++ = h2c[(*buf >> 4) & 0x0F]; - *p++ = h2c[*buf & 0x0F]; - *p++ = 0x20; - } - - if(p > scratch) { - p--; /* Remove the tail space */ - if(cb(scratch, p - scratch, app_key) < 0) - return -1; - } - - return 0; -} - -int -OCTET_STRING_print_utf8(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, asn_app_consume_bytes_f *cb, - void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - - (void)td; /* Unused argument */ - (void)ilevel; /* Unused argument */ - - if(st && (st->buf || !st->size)) { - return (cb(st->buf, st->size, app_key) < 0) ? -1 : 0; - } else { - return (cb("", 8, app_key) < 0) ? -1 : 0; - } -} - -void -OCTET_STRING_free(const asn_TYPE_descriptor_t *td, void *sptr, - enum asn_struct_free_method method) { - OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; - const asn_OCTET_STRING_specifics_t *specs; - asn_struct_ctx_t *ctx; - struct _stack *stck; - - if(!td || !st) - return; - - specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - ASN_DEBUG("Freeing %s as OCTET STRING", td->name); - - if(st->buf) { - FREEMEM(st->buf); - st->buf = 0; - } - - /* - * Remove decode-time stack. - */ - stck = (struct _stack *)ctx->ptr; - if(stck) { - while(stck->tail) { - struct _stack_el *sel = stck->tail; - stck->tail = sel->prev; - FREEMEM(sel); - } - FREEMEM(stck); - } - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(sptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(sptr, 0, - td->specifics - ? ((const asn_OCTET_STRING_specifics_t *)(td->specifics)) - ->struct_size - : sizeof(OCTET_STRING_t)); - break; - } -} - -/* - * Conversion routines. - */ -int -OCTET_STRING_fromBuf(OCTET_STRING_t *st, const char *str, int len) { - void *buf; - - if(st == 0 || (str == 0 && len)) { - errno = EINVAL; - return -1; - } - - /* - * Clear the OCTET STRING. - */ - if(str == NULL) { - FREEMEM(st->buf); - st->buf = 0; - st->size = 0; - return 0; - } - - /* Determine the original string size, if not explicitly given */ - if(len < 0) - len = strlen(str); - - /* Allocate and fill the memory */ - buf = MALLOC(len + 1); - if(buf == NULL) - return -1; - - memcpy(buf, str, len); - ((uint8_t *)buf)[len] = '\0'; /* Couldn't use memcpy(len+1)! */ - FREEMEM(st->buf); - st->buf = (uint8_t *)buf; - st->size = len; - - return 0; -} - -OCTET_STRING_t * -OCTET_STRING_new_fromBuf(const asn_TYPE_descriptor_t *td, const char *str, - int len) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - OCTET_STRING_t *st; - - st = (OCTET_STRING_t *)CALLOC(1, specs->struct_size); - if(st && str && OCTET_STRING_fromBuf(st, str, len)) { - FREEMEM(st); - st = NULL; - } - - return st; -} - -/* - * Lexicographically compare the common prefix of both strings, - * and if it is the same return -1 for the smallest string. - */ -int -OCTET_STRING_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics; - const OCTET_STRING_t *a = aptr; - const OCTET_STRING_t *b = bptr; - - assert(!specs || specs->subvariant != ASN_OSUBV_BIT); - - if(a && b) { - size_t common_prefix_size = a->size <= b->size ? a->size : b->size; - int ret = memcmp(a->buf, b->buf, common_prefix_size); - if(ret == 0) { - /* Figure out which string with equal prefixes is longer. */ - if(a->size < b->size) { - return -1; - } else if(a->size > b->size) { - return 1; - } else { - return 0; - } - } else { - return ret < 0 ? -1 : 1; - } - } else if(!a && !b) { - return 0; - } else if(!a) { - return -1; - } else { - return 1; - } - -} - -/* - * Biased function for randomizing character values around their limits. - */ -static uint32_t -OCTET_STRING__random_char(unsigned long lb, unsigned long ub) { - assert(lb <= ub); - switch(asn_random_between(0, 16)) { - case 0: - if(lb < ub) return lb + 1; - /* Fall through */ - case 1: - return lb; - case 2: - if(lb < ub) return ub - 1; - /* Fall through */ - case 3: - return ub; - default: - return asn_random_between(lb, ub); - } -} - - -size_t -OCTET_STRING_random_length_constrained( - const asn_TYPE_descriptor_t *td, - const asn_encoding_constraints_t *constraints, size_t max_length) { - const unsigned lengths[] = {0, 1, 2, 3, 4, 8, - 126, 127, 128, 16383, 16384, 16385, - 65534, 65535, 65536, 65537}; - size_t rnd_len; - - /* Figure out how far we should go */ - rnd_len = lengths[asn_random_between( - 0, sizeof(lengths) / sizeof(lengths[0]) - 1)]; - - if(!constraints || !constraints->per_constraints) - constraints = &td->encoding_constraints; - if(constraints->per_constraints) { - const asn_per_constraint_t *pc = &constraints->per_constraints->size; - if(pc->flags & APC_CONSTRAINED) { - long suggested_upper_bound = pc->upper_bound < (ssize_t)max_length - ? pc->upper_bound - : (ssize_t)max_length; - if(max_length <= (size_t)pc->lower_bound) { - return pc->lower_bound; - } - if(pc->flags & APC_EXTENSIBLE) { - switch(asn_random_between(0, 5)) { - case 0: - if(pc->lower_bound > 0) { - rnd_len = pc->lower_bound - 1; - break; - } - /* Fall through */ - case 1: - rnd_len = pc->upper_bound + 1; - break; - case 2: - /* Keep rnd_len from the table */ - if(rnd_len <= max_length) { - break; - } - /* Fall through */ - default: - rnd_len = asn_random_between(pc->lower_bound, - suggested_upper_bound); - } - } else { - rnd_len = - asn_random_between(pc->lower_bound, suggested_upper_bound); - } - } else { - rnd_len = asn_random_between(0, max_length); - } - } else if(rnd_len > max_length) { - rnd_len = asn_random_between(0, max_length); - } - - return rnd_len; -} - -asn_random_fill_result_t -OCTET_STRING_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - unsigned int unit_bytes = 1; - unsigned long clb = 0; /* Lower bound on char */ - unsigned long cub = 255; /* Higher bound on char value */ - uint8_t *buf; - uint8_t *bend; - uint8_t *b; - size_t rnd_len; - OCTET_STRING_t *st; - - if(max_length == 0 && !*sptr) return result_skipped; - - switch(specs->subvariant) { - default: - case ASN_OSUBV_ANY: - return result_failed; - case ASN_OSUBV_BIT: - /* Handled by BIT_STRING itself. */ - return result_failed; - case ASN_OSUBV_STR: - unit_bytes = 1; - clb = 0; - cub = 255; - break; - case ASN_OSUBV_U16: - unit_bytes = 2; - clb = 0; - cub = 65535; - break; - case ASN_OSUBV_U32: - unit_bytes = 4; - clb = 0; - cub = 0x10FFFF; - break; - } - - if(!constraints || !constraints->per_constraints) - constraints = &td->encoding_constraints; - if(constraints->per_constraints) { - const asn_per_constraint_t *pc = &constraints->per_constraints->value; - if(pc->flags & APC_SEMI_CONSTRAINED) { - clb = pc->lower_bound; - } else if(pc->flags & APC_CONSTRAINED) { - clb = pc->lower_bound; - cub = pc->upper_bound; - } - } - - rnd_len = - OCTET_STRING_random_length_constrained(td, constraints, max_length); - - buf = CALLOC(unit_bytes, rnd_len + 1); - if(!buf) return result_failed; - - bend = &buf[unit_bytes * rnd_len]; - - switch(unit_bytes) { - case 1: - for(b = buf; b < bend; b += unit_bytes) { - *(uint8_t *)b = OCTET_STRING__random_char(clb, cub); - } - *(uint8_t *)b = 0; - break; - case 2: - for(b = buf; b < bend; b += unit_bytes) { - uint32_t code = OCTET_STRING__random_char(clb, cub); - b[0] = code >> 8; - b[1] = code; - } - *(uint16_t *)b = 0; - break; - case 4: - for(b = buf; b < bend; b += unit_bytes) { - uint32_t code = OCTET_STRING__random_char(clb, cub); - b[0] = code >> 24; - b[1] = code >> 16; - b[2] = code >> 8; - b[3] = code; - } - *(uint32_t *)b = 0; - break; - } - - if(*sptr) { - st = *sptr; - FREEMEM(st->buf); - } else { - st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) { - FREEMEM(buf); - return result_failed; - } - } - - st->buf = buf; - st->size = unit_bytes * rnd_len; - - result_ok.length = st->size; - return result_ok; -} diff --git a/e2sim/src/ASN1c/OCTET_STRING.h b/e2sim/src/ASN1c/OCTET_STRING.h deleted file mode 100644 index c2f8bae..0000000 --- a/e2sim/src/ASN1c/OCTET_STRING.h +++ /dev/null @@ -1,102 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _OCTET_STRING_H_ -#define _OCTET_STRING_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct OCTET_STRING { - uint8_t *buf; /* Buffer with consecutive OCTET_STRING bits */ - size_t size; /* Size of the buffer */ - - asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ -} OCTET_STRING_t; - -extern asn_TYPE_descriptor_t asn_DEF_OCTET_STRING; -extern asn_TYPE_operation_t asn_OP_OCTET_STRING; - -asn_struct_free_f OCTET_STRING_free; -asn_struct_print_f OCTET_STRING_print; -asn_struct_print_f OCTET_STRING_print_utf8; -asn_struct_compare_f OCTET_STRING_compare; -ber_type_decoder_f OCTET_STRING_decode_ber; -der_type_encoder_f OCTET_STRING_encode_der; -xer_type_decoder_f OCTET_STRING_decode_xer_hex; /* Hexadecimal */ -xer_type_decoder_f OCTET_STRING_decode_xer_binary; /* 01010111010 */ -xer_type_decoder_f OCTET_STRING_decode_xer_utf8; /* ASCII/UTF-8 */ -xer_type_encoder_f OCTET_STRING_encode_xer; -xer_type_encoder_f OCTET_STRING_encode_xer_utf8; -oer_type_decoder_f OCTET_STRING_decode_oer; -oer_type_encoder_f OCTET_STRING_encode_oer; -per_type_decoder_f OCTET_STRING_decode_uper; -per_type_encoder_f OCTET_STRING_encode_uper; -per_type_decoder_f OCTET_STRING_decode_aper; -per_type_encoder_f OCTET_STRING_encode_aper; -asn_random_fill_f OCTET_STRING_random_fill; - -#define OCTET_STRING_constraint asn_generic_no_constraint -#define OCTET_STRING_decode_xer OCTET_STRING_decode_xer_hex - -/****************************** - * Handy conversion routines. * - ******************************/ - -/* - * This function clears the previous value of the OCTET STRING (if any) - * and then allocates a new memory with the specified content (str/size). - * If size = -1, the size of the original string will be determined - * using strlen(str). - * If str equals to NULL, the function will silently clear the - * current contents of the OCTET STRING. - * Returns 0 if it was possible to perform operation, -1 otherwise. - */ -int OCTET_STRING_fromBuf(OCTET_STRING_t *s, const char *str, int size); - -/* Handy conversion from the C string into the OCTET STRING. */ -#define OCTET_STRING_fromString(s, str) OCTET_STRING_fromBuf(s, str, -1) - -/* - * Allocate and fill the new OCTET STRING and return a pointer to the newly - * allocated object. NULL is permitted in str: the function will just allocate - * empty OCTET STRING. - */ -OCTET_STRING_t *OCTET_STRING_new_fromBuf(const asn_TYPE_descriptor_t *td, - const char *str, int size); - -/**************************** - * Internally useful stuff. * - ****************************/ - -typedef struct asn_OCTET_STRING_specifics_s { - /* - * Target structure description. - */ - unsigned struct_size; /* Size of the structure */ - unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ - - enum asn_OS_Subvariant { - ASN_OSUBV_ANY, /* The open type (ANY) */ - ASN_OSUBV_BIT, /* BIT STRING */ - ASN_OSUBV_STR, /* String types, not {BMP,Universal}String */ - ASN_OSUBV_U16, /* 16-bit character (BMPString) */ - ASN_OSUBV_U32 /* 32-bit character (UniversalString) */ - } subvariant; -} asn_OCTET_STRING_specifics_t; - -extern asn_OCTET_STRING_specifics_t asn_SPC_OCTET_STRING_specs; - -size_t OCTET_STRING_random_length_constrained( - const asn_TYPE_descriptor_t *, const asn_encoding_constraints_t *, - size_t max_length); - -#ifdef __cplusplus -} -#endif - -#endif /* _OCTET_STRING_H_ */ diff --git a/e2sim/src/ASN1c/OPEN_TYPE.c b/e2sim/src/ASN1c/OPEN_TYPE.c deleted file mode 100644 index a54e99c..0000000 --- a/e2sim/src/ASN1c/OPEN_TYPE.c +++ /dev/null @@ -1,509 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include -#include -#include - -asn_TYPE_operation_t asn_OP_OPEN_TYPE = { - OPEN_TYPE_free, - OPEN_TYPE_print, - OPEN_TYPE_compare, - OPEN_TYPE_decode_ber, - OPEN_TYPE_encode_der, - OPEN_TYPE_decode_xer, - OPEN_TYPE_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, 0, /* No OER support, use "-gen-OER" to enable */ -#else - OPEN_TYPE_decode_oer, - OPEN_TYPE_encode_oer, -#endif -#ifdef ASN_DISABLE_PER_SUPPORT - 0, 0, 0, 0, -#else - OPEN_TYPE_decode_uper, - OPEN_TYPE_encode_uper, - OPEN_TYPE_decode_aper, - OPEN_TYPE_encode_aper, -#endif - 0, /* Random fill is not supported for open type */ - 0 /* Use generic outmost tag fetcher */ -}; - -#undef ADVANCE -#define ADVANCE(num_bytes) \ - do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -asn_dec_rval_t -OPEN_TYPE_ber_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - const asn_TYPE_member_t *elm, const void *ptr, size_t size) { - size_t consumed_myself = 0; - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) != 0) { - ASN__DECODE_FAILED; - } - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - ASN_DEBUG("presence %d\n", selected.presence_index); - - rv = selected.type_descriptor->op->ber_decoder( - opt_codec_ctx, selected.type_descriptor, &inner_value, ptr, size, - elm->tag_mode); - ADVANCE(rv.consumed); - rv.consumed = 0; - switch(rv.code) { - case RC_OK: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - rv.code = RC_OK; - rv.consumed = consumed_myself; - return rv; - } else { - /* Oh, now a full-blown failure failure */ - } - /* Fall through */ - case RC_FAIL: - rv.consumed = consumed_myself; - /* Fall through */ - case RC_WMORE: - break; - } - - if(*memb_ptr2) { - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_RESET(*selected.type_descriptor, - inner_value); - } - } - return rv; -} - -asn_dec_rval_t -OPEN_TYPE_xer_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - const asn_TYPE_member_t *elm, const void *ptr, size_t size) { - size_t consumed_myself = 0; - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - - int xer_context = 0; - ssize_t ch_size; - pxer_chunk_type_e ch_type; - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - assert(elm->flags == ATF_OPEN_TYPE); - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) - != 0) { - ASN__DECODE_FAILED; - } - } - - /* - * Confirm wrapper. - */ - for(;;) { - ch_size = xer_next_token(&xer_context, ptr, size, &ch_type); - if(ch_size < 0) { - ASN__DECODE_FAILED; - } else { - switch(ch_type) { - case PXER_WMORE: - ASN__DECODE_STARVED; - case PXER_COMMENT: - case PXER_TEXT: - ADVANCE(ch_size); - continue; - case PXER_TAG: - break; - } - break; - } - } - - /* - * Wrapper value confirmed. - */ - switch(xer_check_tag(ptr, ch_size, elm->name)) { - case XCT_OPENING: - ADVANCE(ch_size); - break; - case XCT_BROKEN: - default: - ASN__DECODE_FAILED; - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - rv = selected.type_descriptor->op->xer_decoder( - opt_codec_ctx, selected.type_descriptor, &inner_value, NULL, ptr, size); - ADVANCE(rv.consumed); - rv.consumed = 0; - switch(rv.code) { - case RC_OK: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - break; - } else { - rv.code = RC_FAIL; - } - /* Fall through */ - case RC_FAIL: - /* Point to a best position where failure occurred */ - rv.consumed = consumed_myself; - /* Fall through */ - case RC_WMORE: - /* Wrt. rv.consumed==0: - * In case a genuine RC_WMORE, the whole Open Type decoding - * will have to be restarted. - */ - if(*memb_ptr2) { - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_RESET(*selected.type_descriptor, - inner_value); - } - } - return rv; - } - - /* - * Finalize wrapper. - */ - for(;;) { - ch_size = xer_next_token(&xer_context, ptr, size, &ch_type); - if(ch_size < 0) { - ASN__DECODE_FAILED; - } else { - switch(ch_type) { - case PXER_WMORE: - ASN__DECODE_STARVED; - case PXER_COMMENT: - case PXER_TEXT: - ADVANCE(ch_size); - continue; - case PXER_TAG: - break; - } - break; - } - } - - /* - * Wrapper value confirmed. - */ - switch(xer_check_tag(ptr, ch_size, elm->name)) { - case XCT_CLOSING: - ADVANCE(ch_size); - break; - case XCT_BROKEN: - default: - ASN__DECODE_FAILED; - } - - rv.consumed += consumed_myself; - - return rv; -} - - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -OPEN_TYPE_uper_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - const asn_TYPE_member_t *elm, asn_per_data_t *pd) { - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - assert(elm->flags == ATF_OPEN_TYPE); - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) - != 0) { - ASN__DECODE_FAILED; - } - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - rv = uper_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL, - &inner_value, pd); - switch(rv.code) { - case RC_OK: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - break; - } else { - rv.code = RC_FAIL; - } - /* Fall through */ - case RC_WMORE: - case RC_FAIL: - if(*memb_ptr2) { - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_RESET(*selected.type_descriptor, - inner_value); - } - } - } - return rv; -} - -asn_enc_rval_t -OPEN_TYPE_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const void *memb_ptr; /* Pointer to the member */ - asn_TYPE_member_t *elm; /* CHOICE's element */ - asn_enc_rval_t er = {0,0,0}; - unsigned present; - - (void)constraints; - - present = CHOICE_variant_get_presence(td, sptr); - if(present == 0 || present > td->elements_count) { - ASN__ENCODE_FAILED; - } else { - present--; - } - - ASN_DEBUG("Encoding %s OPEN TYPE element %d", td->name, present); - - elm = &td->elements[present]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const char *)sptr + elm->memb_offset; - } - - if(uper_open_type_put(elm->type, NULL, memb_ptr, po) < 0) { - ASN__ENCODE_FAILED; - } - - er.encoded = 0; - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -OPEN_TYPE_aper_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - const asn_TYPE_member_t *elm, asn_per_data_t *pd) { - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - assert(elm->flags == ATF_OPEN_TYPE); - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) - != 0) { - ASN__DECODE_FAILED; - } - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - rv = aper_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL, - &inner_value, pd); - switch(rv.code) { - case RC_OK: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - break; - } else { - rv.code = RC_FAIL; - } - /* Fall through */ - case RC_WMORE: - case RC_FAIL: - if(*memb_ptr2) { - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_RESET(*selected.type_descriptor, - inner_value); - } - } - } - return rv; -} - -asn_enc_rval_t -OPEN_TYPE_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const void *memb_ptr; /* Pointer to the member */ - asn_TYPE_member_t *elm; /* CHOICE's element */ - asn_enc_rval_t er = {0,0,0}; - unsigned present; - - (void)constraints; - - present = CHOICE_variant_get_presence(td, sptr); - if(present == 0 || present > td->elements_count) { - ASN__ENCODE_FAILED; - } else { - present--; - } - - ASN_DEBUG("Encoding %s OPEN TYPE element %d", td->name, present); - - elm = &td->elements[present]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const char *)sptr + elm->memb_offset; - } - - if(aper_open_type_put(elm->type, NULL, memb_ptr, po) < 0) { - ASN__ENCODE_FAILED; - } - - er.encoded = 0; - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ diff --git a/e2sim/src/ASN1c/OPEN_TYPE.h b/e2sim/src/ASN1c/OPEN_TYPE.h deleted file mode 100644 index b0d023c..0000000 --- a/e2sim/src/ASN1c/OPEN_TYPE.h +++ /dev/null @@ -1,77 +0,0 @@ -/*- - * Copyright (c) 2017-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_OPEN_TYPE_H -#define ASN_OPEN_TYPE_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#define OPEN_TYPE_free CHOICE_free -#define OPEN_TYPE_print CHOICE_print -#define OPEN_TYPE_compare CHOICE_compare -#define OPEN_TYPE_constraint CHOICE_constraint -#define OPEN_TYPE_decode_ber NULL -#define OPEN_TYPE_encode_der CHOICE_encode_der -#define OPEN_TYPE_decode_xer NULL -#define OPEN_TYPE_encode_xer CHOICE_encode_xer -#define OPEN_TYPE_decode_oer NULL -#define OPEN_TYPE_encode_oer CHOICE_encode_oer -#define OPEN_TYPE_decode_uper NULL -#define OPEN_TYPE_decode_aper NULL - -extern asn_TYPE_operation_t asn_OP_OPEN_TYPE; - -/* - * Decode an Open Type which is potentially constraiend - * by the other members of the parent structure. - */ -asn_dec_rval_t OPEN_TYPE_ber_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - const asn_TYPE_member_t *element, - const void *ptr, size_t size); - -asn_dec_rval_t OPEN_TYPE_xer_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - const asn_TYPE_member_t *element, - const void *ptr, size_t size); - -asn_dec_rval_t OPEN_TYPE_oer_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - asn_TYPE_member_t *element, const void *ptr, - size_t size); - -asn_dec_rval_t OPEN_TYPE_uper_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - const asn_TYPE_member_t *element, - asn_per_data_t *pd); - -asn_dec_rval_t OPEN_TYPE_aper_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - const asn_TYPE_member_t *element, - asn_per_data_t *pd); - -asn_enc_rval_t OPEN_TYPE_encode_uper( - const asn_TYPE_descriptor_t *type_descriptor, - const asn_per_constraints_t *constraints, const void *struct_ptr, - asn_per_outp_t *per_output); - -asn_enc_rval_t OPEN_TYPE_encode_aper( - const asn_TYPE_descriptor_t *type_descriptor, - const asn_per_constraints_t *constraints, const void *struct_ptr, - asn_per_outp_t *per_output); - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_OPEN_TYPE_H */ diff --git a/e2sim/src/ASN1c/PLMN-Identity.c b/e2sim/src/ASN1c/PLMN-Identity.c deleted file mode 100644 index 25fb17d..0000000 --- a/e2sim/src/ASN1c/PLMN-Identity.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "PLMN-Identity.h" - -int -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; - - 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 == 3)) { - /* 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 OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -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_Identity_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_PLMN_Identity = { - "PLMN-Identity", - "PLMN-Identity", - &asn_OP_OCTET_STRING, - 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 */ - { 0, &asn_PER_type_PLMN_Identity_constr_1, PLMN_Identity_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/PLMN-Identity.h b/e2sim/src/ASN1c/PLMN-Identity.h deleted file mode 100644 index f8374fc..0000000 --- a/e2sim/src/ASN1c/PLMN-Identity.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _PLMN_Identity_H_ -#define _PLMN_Identity_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#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; -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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/Presence.c b/e2sim/src/ASN1c/Presence.c deleted file mode 100644 index 31a71b5..0000000 --- a/e2sim/src/ASN1c/Presence.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "Presence.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_Presence_constr_1 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_INTEGER_enum_map_t asn_MAP_Presence_value2enum_1[] = { - { 0, 8, "optional" }, - { 1, 11, "conditional" }, - { 2, 9, "mandatory" } -}; -static const unsigned int asn_MAP_Presence_enum2value_1[] = { - 1, /* conditional(1) */ - 2, /* mandatory(2) */ - 0 /* optional(0) */ -}; -const asn_INTEGER_specifics_t asn_SPC_Presence_specs_1 = { - asn_MAP_Presence_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_Presence_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 0, /* Enumeration is not extensible */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_Presence_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Presence = { - "Presence", - "Presence", - &asn_OP_NativeEnumerated, - asn_DEF_Presence_tags_1, - sizeof(asn_DEF_Presence_tags_1) - /sizeof(asn_DEF_Presence_tags_1[0]), /* 1 */ - asn_DEF_Presence_tags_1, /* Same as above */ - sizeof(asn_DEF_Presence_tags_1) - /sizeof(asn_DEF_Presence_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Presence_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_Presence_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/Presence.h b/e2sim/src/ASN1c/Presence.h deleted file mode 100644 index 3083f55..0000000 --- a/e2sim/src/ASN1c/Presence.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _Presence_H_ -#define _Presence_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum Presence { - Presence_optional = 0, - Presence_conditional = 1, - Presence_mandatory = 2 -} e_Presence; - -/* Presence */ -typedef long Presence_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Presence_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Presence; -extern const asn_INTEGER_specifics_t asn_SPC_Presence_specs_1; -asn_struct_free_f Presence_free; -asn_struct_print_f Presence_print; -asn_constr_check_f Presence_constraint; -ber_type_decoder_f Presence_decode_ber; -der_type_encoder_f Presence_encode_der; -xer_type_decoder_f Presence_decode_xer; -xer_type_encoder_f Presence_encode_xer; -per_type_decoder_f Presence_decode_uper; -per_type_encoder_f Presence_encode_uper; -per_type_decoder_f Presence_decode_aper; -per_type_encoder_f Presence_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Presence_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/PrintableString.c b/e2sim/src/ASN1c/PrintableString.c deleted file mode 100644 index 8fc3939..0000000 --- a/e2sim/src/ASN1c/PrintableString.c +++ /dev/null @@ -1,130 +0,0 @@ -/*- - * 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/e2sim/src/ASN1c/PrintableString.h b/e2sim/src/ASN1c/PrintableString.h deleted file mode 100644 index 8c2b61a..0000000 --- a/e2sim/src/ASN1c/PrintableString.h +++ /dev/null @@ -1,37 +0,0 @@ -/*- - * 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/e2sim/src/ASN1c/ProcedureCode.c b/e2sim/src/ASN1c/ProcedureCode.c deleted file mode 100644 index a2628dc..0000000 --- a/e2sim/src/ASN1c/ProcedureCode.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "ProcedureCode.h" - -int -ProcedureCode_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. - */ -asn_per_constraints_t asn_PER_type_ProcedureCode_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 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_ProcedureCode_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProcedureCode = { - "ProcedureCode", - "ProcedureCode", - &asn_OP_NativeInteger, - asn_DEF_ProcedureCode_tags_1, - sizeof(asn_DEF_ProcedureCode_tags_1) - /sizeof(asn_DEF_ProcedureCode_tags_1[0]), /* 1 */ - asn_DEF_ProcedureCode_tags_1, /* Same as above */ - sizeof(asn_DEF_ProcedureCode_tags_1) - /sizeof(asn_DEF_ProcedureCode_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ProcedureCode_constr_1, ProcedureCode_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/src/ASN1c/ProcedureCode.h b/e2sim/src/ASN1c/ProcedureCode.h deleted file mode 100644 index cc17d51..0000000 --- a/e2sim/src/ASN1c/ProcedureCode.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _ProcedureCode_H_ -#define _ProcedureCode_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ProcedureCode */ -typedef long ProcedureCode_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ProcedureCode_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ProcedureCode; -asn_struct_free_f ProcedureCode_free; -asn_struct_print_f ProcedureCode_print; -asn_constr_check_f ProcedureCode_constraint; -ber_type_decoder_f ProcedureCode_decode_ber; -der_type_encoder_f ProcedureCode_encode_der; -xer_type_decoder_f ProcedureCode_decode_xer; -xer_type_encoder_f ProcedureCode_encode_xer; -per_type_decoder_f ProcedureCode_decode_uper; -per_type_encoder_f ProcedureCode_encode_uper; -per_type_decoder_f ProcedureCode_decode_aper; -per_type_encoder_f ProcedureCode_encode_aper; -#define ProcedureCode_id_E2setup ((ProcedureCode_t)1) -#define ProcedureCode_id_ErrorIndication ((ProcedureCode_t)2) -#define ProcedureCode_id_Reset ((ProcedureCode_t)3) -#define ProcedureCode_id_RICcontrol ((ProcedureCode_t)4) -#define ProcedureCode_id_RICindication ((ProcedureCode_t)5) -#define ProcedureCode_id_RICserviceQuery ((ProcedureCode_t)6) -#define ProcedureCode_id_RICserviceUpdate ((ProcedureCode_t)7) -#define ProcedureCode_id_RICsubscription ((ProcedureCode_t)8) -#define ProcedureCode_id_RICsubscriptionDelete ((ProcedureCode_t)9) -#define ProcedureCode_id_E2nodeConfigurationUpdate ((ProcedureCode_t)10) -#define ProcedureCode_id_E2connectionUpdate ((ProcedureCode_t)11) -#define ProcedureCode_id_RICsubscriptionDeleteRequired ((ProcedureCode_t)12) - -#ifdef __cplusplus -} -#endif - -#endif /* _ProcedureCode_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/ProtocolIE-Container.c b/e2sim/src/ASN1c/ProtocolIE-Container.c deleted file mode 100644 index 05249bd..0000000 --- a/e2sim/src/ASN1c/ProtocolIE-Container.c +++ /dev/null @@ -1,1090 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "ProtocolIE-Container.h" - -#include "ProtocolIE-Field.h" -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P0_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P1_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P2_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P3_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P4_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P5_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P6_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P7_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P8_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P9_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P10_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P11_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P12_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P13_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P14_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P15_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P16_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P17_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P18_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P19_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_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P20_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P21_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P22_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P23_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P24_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P25_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 */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P26_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_Container_1917P0_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P0_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P0_specs_1 = { - sizeof(struct ProtocolIE_Container_1917P0), - offsetof(struct ProtocolIE_Container_1917P0, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P0 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P0_tags_1, - sizeof(asn_DEF_ProtocolIE_Container_1917P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_Container_1917P0_tags_1[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P0_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_Container_1917P0_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1917P0_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P0_1, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P0_specs_1 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P1_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionResponse_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P1_tags_3[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P1_specs_3 = { - sizeof(struct ProtocolIE_Container_1917P1), - offsetof(struct ProtocolIE_Container_1917P1, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P1 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P1_tags_3, - sizeof(asn_DEF_ProtocolIE_Container_1917P1_tags_3) - /sizeof(asn_DEF_ProtocolIE_Container_1917P1_tags_3[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P1_tags_3, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P1_tags_3) - /sizeof(asn_DEF_ProtocolIE_Container_1917P1_tags_3[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1917P1_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P1_3, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P1_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P2_5[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P2_tags_5[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P2_specs_5 = { - sizeof(struct ProtocolIE_Container_1917P2), - offsetof(struct ProtocolIE_Container_1917P2, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P2 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P2_tags_5, - sizeof(asn_DEF_ProtocolIE_Container_1917P2_tags_5) - /sizeof(asn_DEF_ProtocolIE_Container_1917P2_tags_5[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P2_tags_5, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P2_tags_5) - /sizeof(asn_DEF_ProtocolIE_Container_1917P2_tags_5[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1917P2_constr_5, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P2_5, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P2_specs_5 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P3_7[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P3_tags_7[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P3_specs_7 = { - sizeof(struct ProtocolIE_Container_1917P3), - offsetof(struct ProtocolIE_Container_1917P3, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P3 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P3_tags_7, - sizeof(asn_DEF_ProtocolIE_Container_1917P3_tags_7) - /sizeof(asn_DEF_ProtocolIE_Container_1917P3_tags_7[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P3_tags_7, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P3_tags_7) - /sizeof(asn_DEF_ProtocolIE_Container_1917P3_tags_7[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1917P3_constr_7, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P3_7, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P3_specs_7 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P4_9[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteResponse_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P4_tags_9[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P4_specs_9 = { - sizeof(struct ProtocolIE_Container_1917P4), - offsetof(struct ProtocolIE_Container_1917P4, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P4 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P4_tags_9, - sizeof(asn_DEF_ProtocolIE_Container_1917P4_tags_9) - /sizeof(asn_DEF_ProtocolIE_Container_1917P4_tags_9[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P4_tags_9, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P4_tags_9) - /sizeof(asn_DEF_ProtocolIE_Container_1917P4_tags_9[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1917P4_constr_9, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P4_9, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P4_specs_9 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P5_11[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P5_tags_11[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P5_specs_11 = { - sizeof(struct ProtocolIE_Container_1917P5), - offsetof(struct ProtocolIE_Container_1917P5, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P5 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P5_tags_11, - sizeof(asn_DEF_ProtocolIE_Container_1917P5_tags_11) - /sizeof(asn_DEF_ProtocolIE_Container_1917P5_tags_11[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P5_tags_11, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P5_tags_11) - /sizeof(asn_DEF_ProtocolIE_Container_1917P5_tags_11[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1917P5_constr_11, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P5_11, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P5_specs_11 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P6_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_Container_1917P6_tags_13[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P6_specs_13 = { - sizeof(struct ProtocolIE_Container_1917P6), - offsetof(struct ProtocolIE_Container_1917P6, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P6 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P6_tags_13, - sizeof(asn_DEF_ProtocolIE_Container_1917P6_tags_13) - /sizeof(asn_DEF_ProtocolIE_Container_1917P6_tags_13[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P6_tags_13, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P6_tags_13) - /sizeof(asn_DEF_ProtocolIE_Container_1917P6_tags_13[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1917P6_constr_13, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P6_13, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P6_specs_13 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P7_15[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICindication_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P7_tags_15[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P7_specs_15 = { - sizeof(struct ProtocolIE_Container_1917P7), - offsetof(struct ProtocolIE_Container_1917P7, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P7 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P7_tags_15, - sizeof(asn_DEF_ProtocolIE_Container_1917P7_tags_15) - /sizeof(asn_DEF_ProtocolIE_Container_1917P7_tags_15[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P7_tags_15, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P7_tags_15) - /sizeof(asn_DEF_ProtocolIE_Container_1917P7_tags_15[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1917P7_constr_15, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P7_15, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P7_specs_15 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P8_17[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P8_tags_17[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P8_specs_17 = { - sizeof(struct ProtocolIE_Container_1917P8), - offsetof(struct ProtocolIE_Container_1917P8, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P8 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P8_tags_17, - sizeof(asn_DEF_ProtocolIE_Container_1917P8_tags_17) - /sizeof(asn_DEF_ProtocolIE_Container_1917P8_tags_17[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P8_tags_17, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P8_tags_17) - /sizeof(asn_DEF_ProtocolIE_Container_1917P8_tags_17[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1917P8_constr_17, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P8_17, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P8_specs_17 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P9_19[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolAcknowledge_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P9_tags_19[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P9_specs_19 = { - sizeof(struct ProtocolIE_Container_1917P9), - offsetof(struct ProtocolIE_Container_1917P9, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P9 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P9_tags_19, - sizeof(asn_DEF_ProtocolIE_Container_1917P9_tags_19) - /sizeof(asn_DEF_ProtocolIE_Container_1917P9_tags_19[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P9_tags_19, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P9_tags_19) - /sizeof(asn_DEF_ProtocolIE_Container_1917P9_tags_19[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1917P9_constr_19, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P9_19, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P9_specs_19 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P10_21[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P10_tags_21[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P10_specs_21 = { - sizeof(struct ProtocolIE_Container_1917P10), - offsetof(struct ProtocolIE_Container_1917P10, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P10 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P10_tags_21, - sizeof(asn_DEF_ProtocolIE_Container_1917P10_tags_21) - /sizeof(asn_DEF_ProtocolIE_Container_1917P10_tags_21[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P10_tags_21, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P10_tags_21) - /sizeof(asn_DEF_ProtocolIE_Container_1917P10_tags_21[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1917P10_constr_21, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P10_21, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P10_specs_21 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P11_23[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ErrorIndication_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P11_tags_23[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P11_specs_23 = { - sizeof(struct ProtocolIE_Container_1917P11), - offsetof(struct ProtocolIE_Container_1917P11, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P11 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P11_tags_23, - sizeof(asn_DEF_ProtocolIE_Container_1917P11_tags_23) - /sizeof(asn_DEF_ProtocolIE_Container_1917P11_tags_23[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P11_tags_23, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P11_tags_23) - /sizeof(asn_DEF_ProtocolIE_Container_1917P11_tags_23[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1917P11_constr_23, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P11_23, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P11_specs_23 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P12_25[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupRequestIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P12_tags_25[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P12_specs_25 = { - sizeof(struct ProtocolIE_Container_1917P12), - offsetof(struct ProtocolIE_Container_1917P12, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P12 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P12_tags_25, - sizeof(asn_DEF_ProtocolIE_Container_1917P12_tags_25) - /sizeof(asn_DEF_ProtocolIE_Container_1917P12_tags_25[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P12_tags_25, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P12_tags_25) - /sizeof(asn_DEF_ProtocolIE_Container_1917P12_tags_25[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1917P12_constr_25, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P12_25, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P12_specs_25 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P13_27[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupResponseIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P13_tags_27[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P13_specs_27 = { - sizeof(struct ProtocolIE_Container_1917P13), - offsetof(struct ProtocolIE_Container_1917P13, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P13 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P13_tags_27, - sizeof(asn_DEF_ProtocolIE_Container_1917P13_tags_27) - /sizeof(asn_DEF_ProtocolIE_Container_1917P13_tags_27[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P13_tags_27, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P13_tags_27) - /sizeof(asn_DEF_ProtocolIE_Container_1917P13_tags_27[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1917P13_constr_27, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P13_27, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P13_specs_27 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P14_29[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupFailureIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P14_tags_29[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P14_specs_29 = { - sizeof(struct ProtocolIE_Container_1917P14), - offsetof(struct ProtocolIE_Container_1917P14, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P14 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P14_tags_29, - sizeof(asn_DEF_ProtocolIE_Container_1917P14_tags_29) - /sizeof(asn_DEF_ProtocolIE_Container_1917P14_tags_29[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P14_tags_29, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P14_tags_29) - /sizeof(asn_DEF_ProtocolIE_Container_1917P14_tags_29[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1917P14_constr_29, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P14_29, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P14_specs_29 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P15_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_Container_1917P15_tags_31[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P15_specs_31 = { - sizeof(struct ProtocolIE_Container_1917P15), - offsetof(struct ProtocolIE_Container_1917P15, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P15 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P15_tags_31, - sizeof(asn_DEF_ProtocolIE_Container_1917P15_tags_31) - /sizeof(asn_DEF_ProtocolIE_Container_1917P15_tags_31[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P15_tags_31, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P15_tags_31) - /sizeof(asn_DEF_ProtocolIE_Container_1917P15_tags_31[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1917P15_constr_31, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P15_31, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P15_specs_31 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P16_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_Container_1917P16_tags_33[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P16_specs_33 = { - sizeof(struct ProtocolIE_Container_1917P16), - offsetof(struct ProtocolIE_Container_1917P16, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P16 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P16_tags_33, - sizeof(asn_DEF_ProtocolIE_Container_1917P16_tags_33) - /sizeof(asn_DEF_ProtocolIE_Container_1917P16_tags_33[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P16_tags_33, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P16_tags_33) - /sizeof(asn_DEF_ProtocolIE_Container_1917P16_tags_33[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1917P16_constr_33, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P16_33, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P16_specs_33 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P17_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_Container_1917P17_tags_35[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P17_specs_35 = { - sizeof(struct ProtocolIE_Container_1917P17), - offsetof(struct ProtocolIE_Container_1917P17, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P17 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P17_tags_35, - sizeof(asn_DEF_ProtocolIE_Container_1917P17_tags_35) - /sizeof(asn_DEF_ProtocolIE_Container_1917P17_tags_35[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P17_tags_35, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P17_tags_35) - /sizeof(asn_DEF_ProtocolIE_Container_1917P17_tags_35[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1917P17_constr_35, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P17_35, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P17_specs_35 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P18_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_Container_1917P18_tags_37[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P18_specs_37 = { - sizeof(struct ProtocolIE_Container_1917P18), - offsetof(struct ProtocolIE_Container_1917P18, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P18 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P18_tags_37, - sizeof(asn_DEF_ProtocolIE_Container_1917P18_tags_37) - /sizeof(asn_DEF_ProtocolIE_Container_1917P18_tags_37[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P18_tags_37, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P18_tags_37) - /sizeof(asn_DEF_ProtocolIE_Container_1917P18_tags_37[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1917P18_constr_37, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P18_37, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P18_specs_37 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P19_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_Container_1917P19_tags_39[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P19_specs_39 = { - sizeof(struct ProtocolIE_Container_1917P19), - offsetof(struct ProtocolIE_Container_1917P19, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P19 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P19_tags_39, - sizeof(asn_DEF_ProtocolIE_Container_1917P19_tags_39) - /sizeof(asn_DEF_ProtocolIE_Container_1917P19_tags_39[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P19_tags_39, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P19_tags_39) - /sizeof(asn_DEF_ProtocolIE_Container_1917P19_tags_39[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1917P19_constr_39, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P19_39, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P19_specs_39 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P20_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_Container_1917P20_tags_41[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P20_specs_41 = { - sizeof(struct ProtocolIE_Container_1917P20), - offsetof(struct ProtocolIE_Container_1917P20, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P20 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P20_tags_41, - sizeof(asn_DEF_ProtocolIE_Container_1917P20_tags_41) - /sizeof(asn_DEF_ProtocolIE_Container_1917P20_tags_41[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P20_tags_41, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P20_tags_41) - /sizeof(asn_DEF_ProtocolIE_Container_1917P20_tags_41[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1917P20_constr_41, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P20_41, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P20_specs_41 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P21_43[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResetRequestIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P21_tags_43[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P21_specs_43 = { - sizeof(struct ProtocolIE_Container_1917P21), - offsetof(struct ProtocolIE_Container_1917P21, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P21 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P21_tags_43, - sizeof(asn_DEF_ProtocolIE_Container_1917P21_tags_43) - /sizeof(asn_DEF_ProtocolIE_Container_1917P21_tags_43[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P21_tags_43, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P21_tags_43) - /sizeof(asn_DEF_ProtocolIE_Container_1917P21_tags_43[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1917P21_constr_43, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P21_43, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P21_specs_43 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P22_45[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResetResponseIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P22_tags_45[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P22_specs_45 = { - sizeof(struct ProtocolIE_Container_1917P22), - offsetof(struct ProtocolIE_Container_1917P22, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P22 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P22_tags_45, - sizeof(asn_DEF_ProtocolIE_Container_1917P22_tags_45) - /sizeof(asn_DEF_ProtocolIE_Container_1917P22_tags_45[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P22_tags_45, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P22_tags_45) - /sizeof(asn_DEF_ProtocolIE_Container_1917P22_tags_45[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1917P22_constr_45, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P22_45, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P22_specs_45 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P23_47[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdate_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P23_tags_47[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P23_specs_47 = { - sizeof(struct ProtocolIE_Container_1917P23), - offsetof(struct ProtocolIE_Container_1917P23, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P23 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P23_tags_47, - sizeof(asn_DEF_ProtocolIE_Container_1917P23_tags_47) - /sizeof(asn_DEF_ProtocolIE_Container_1917P23_tags_47[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P23_tags_47, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P23_tags_47) - /sizeof(asn_DEF_ProtocolIE_Container_1917P23_tags_47[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1917P23_constr_47, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P23_47, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P23_specs_47 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P24_49[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdateAcknowledge_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P24_tags_49[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P24_specs_49 = { - sizeof(struct ProtocolIE_Container_1917P24), - offsetof(struct ProtocolIE_Container_1917P24, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P24 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P24_tags_49, - sizeof(asn_DEF_ProtocolIE_Container_1917P24_tags_49) - /sizeof(asn_DEF_ProtocolIE_Container_1917P24_tags_49[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P24_tags_49, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P24_tags_49) - /sizeof(asn_DEF_ProtocolIE_Container_1917P24_tags_49[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1917P24_constr_49, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P24_49, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P24_specs_49 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P25_51[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdateFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P25_tags_51[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P25_specs_51 = { - sizeof(struct ProtocolIE_Container_1917P25), - offsetof(struct ProtocolIE_Container_1917P25, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P25 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P25_tags_51, - sizeof(asn_DEF_ProtocolIE_Container_1917P25_tags_51) - /sizeof(asn_DEF_ProtocolIE_Container_1917P25_tags_51[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P25_tags_51, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P25_tags_51) - /sizeof(asn_DEF_ProtocolIE_Container_1917P25_tags_51[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1917P25_constr_51, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P25_51, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P25_specs_51 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P26_53[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceQuery_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P26_tags_53[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P26_specs_53 = { - sizeof(struct ProtocolIE_Container_1917P26), - offsetof(struct ProtocolIE_Container_1917P26, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P26 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1917P26_tags_53, - sizeof(asn_DEF_ProtocolIE_Container_1917P26_tags_53) - /sizeof(asn_DEF_ProtocolIE_Container_1917P26_tags_53[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1917P26_tags_53, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1917P26_tags_53) - /sizeof(asn_DEF_ProtocolIE_Container_1917P26_tags_53[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1917P26_constr_53, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1917P26_53, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1917P26_specs_53 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/ProtocolIE-Container.h b/e2sim/src/ASN1c/ProtocolIE-Container.h deleted file mode 100644 index 1406315..0000000 --- a/e2sim/src/ASN1c/ProtocolIE-Container.h +++ /dev/null @@ -1,330 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _ProtocolIE_Container_H_ -#define _ProtocolIE_Container_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct RICsubscriptionRequest_IEs; -struct RICsubscriptionResponse_IEs; -struct RICsubscriptionFailure_IEs; -struct RICsubscriptionDeleteRequest_IEs; -struct RICsubscriptionDeleteResponse_IEs; -struct RICsubscriptionDeleteFailure_IEs; -struct RICsubscriptionDeleteRequired_IEs; -struct RICindication_IEs; -struct RICcontrolRequest_IEs; -struct RICcontrolAcknowledge_IEs; -struct RICcontrolFailure_IEs; -struct ErrorIndication_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; -struct RICserviceUpdateAcknowledge_IEs; -struct RICserviceUpdateFailure_IEs; -struct RICserviceQuery_IEs; - -/* ProtocolIE-Container */ -typedef struct ProtocolIE_Container_1917P0 { - A_SEQUENCE_OF(struct RICsubscriptionRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P0_t; -typedef struct ProtocolIE_Container_1917P1 { - A_SEQUENCE_OF(struct RICsubscriptionResponse_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P1_t; -typedef struct ProtocolIE_Container_1917P2 { - A_SEQUENCE_OF(struct RICsubscriptionFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P2_t; -typedef struct ProtocolIE_Container_1917P3 { - A_SEQUENCE_OF(struct RICsubscriptionDeleteRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P3_t; -typedef struct ProtocolIE_Container_1917P4 { - A_SEQUENCE_OF(struct RICsubscriptionDeleteResponse_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P4_t; -typedef struct ProtocolIE_Container_1917P5 { - A_SEQUENCE_OF(struct RICsubscriptionDeleteFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P5_t; -typedef struct ProtocolIE_Container_1917P6 { - A_SEQUENCE_OF(struct RICsubscriptionDeleteRequired_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P6_t; -typedef struct ProtocolIE_Container_1917P7 { - A_SEQUENCE_OF(struct RICindication_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P7_t; -typedef struct ProtocolIE_Container_1917P8 { - A_SEQUENCE_OF(struct RICcontrolRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P8_t; -typedef struct ProtocolIE_Container_1917P9 { - A_SEQUENCE_OF(struct RICcontrolAcknowledge_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P9_t; -typedef struct ProtocolIE_Container_1917P10 { - A_SEQUENCE_OF(struct RICcontrolFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P10_t; -typedef struct ProtocolIE_Container_1917P11 { - A_SEQUENCE_OF(struct ErrorIndication_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P11_t; -typedef struct ProtocolIE_Container_1917P12 { - A_SEQUENCE_OF(struct E2setupRequestIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P12_t; -typedef struct ProtocolIE_Container_1917P13 { - A_SEQUENCE_OF(struct E2setupResponseIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P13_t; -typedef struct ProtocolIE_Container_1917P14 { - A_SEQUENCE_OF(struct E2setupFailureIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P14_t; -typedef struct ProtocolIE_Container_1917P15 { - A_SEQUENCE_OF(struct E2connectionUpdate_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P15_t; -typedef struct ProtocolIE_Container_1917P16 { - A_SEQUENCE_OF(struct E2connectionUpdateAck_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P16_t; -typedef struct ProtocolIE_Container_1917P17 { - A_SEQUENCE_OF(struct E2connectionUpdateFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P17_t; -typedef struct ProtocolIE_Container_1917P18 { - A_SEQUENCE_OF(struct E2nodeConfigurationUpdate_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P18_t; -typedef struct ProtocolIE_Container_1917P19 { - A_SEQUENCE_OF(struct E2nodeConfigurationUpdateAcknowledge_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P19_t; -typedef struct ProtocolIE_Container_1917P20 { - A_SEQUENCE_OF(struct E2nodeConfigurationUpdateFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P20_t; -typedef struct ProtocolIE_Container_1917P21 { - A_SEQUENCE_OF(struct ResetRequestIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P21_t; -typedef struct ProtocolIE_Container_1917P22 { - A_SEQUENCE_OF(struct ResetResponseIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P22_t; -typedef struct ProtocolIE_Container_1917P23 { - A_SEQUENCE_OF(struct RICserviceUpdate_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P23_t; -typedef struct ProtocolIE_Container_1917P24 { - A_SEQUENCE_OF(struct RICserviceUpdateAcknowledge_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P24_t; -typedef struct ProtocolIE_Container_1917P25 { - A_SEQUENCE_OF(struct RICserviceUpdateFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P25_t; -typedef struct ProtocolIE_Container_1917P26 { - A_SEQUENCE_OF(struct RICserviceQuery_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1917P26_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P0; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P0_specs_1; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P0_1[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P0_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P1; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P1_specs_3; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P1_3[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P1_constr_3; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P2; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P2_specs_5; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P2_5[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P2_constr_5; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P3; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P3_specs_7; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P3_7[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P3_constr_7; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P4; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P4_specs_9; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P4_9[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P4_constr_9; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P5; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P5_specs_11; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P5_11[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P5_constr_11; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P6; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P6_specs_13; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P6_13[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P6_constr_13; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P7; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P7_specs_15; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P7_15[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P7_constr_15; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P8; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P8_specs_17; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P8_17[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P8_constr_17; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P9; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P9_specs_19; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P9_19[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P9_constr_19; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P10; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P10_specs_21; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P10_21[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P10_constr_21; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P11; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P11_specs_23; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P11_23[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P11_constr_23; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P12; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P12_specs_25; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P12_25[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P12_constr_25; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P13; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P13_specs_27; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P13_27[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P13_constr_27; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P14; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P14_specs_29; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P14_29[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P14_constr_29; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P15; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P15_specs_31; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P15_31[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P15_constr_31; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P16; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P16_specs_33; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P16_33[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P16_constr_33; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P17; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P17_specs_35; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P17_35[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P17_constr_35; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P18; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P18_specs_37; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P18_37[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P18_constr_37; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P19; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P19_specs_39; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P19_39[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P19_constr_39; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P20; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P20_specs_41; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P20_41[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P20_constr_41; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P21; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P21_specs_43; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P21_43[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P21_constr_43; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P22; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P22_specs_45; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P22_45[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P22_constr_45; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P23; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P23_specs_47; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P23_47[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P23_constr_47; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P24; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P24_specs_49; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P24_49[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P24_constr_49; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P25; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P25_specs_51; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P25_51[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P25_constr_51; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P26; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P26_specs_53; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P26_53[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P26_constr_53; - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_Container_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/ProtocolIE-ContainerList.c b/e2sim/src/ASN1c/ProtocolIE-ContainerList.c deleted file mode 100644 index e97ca34..0000000 --- a/e2sim/src/ASN1c/ProtocolIE-ContainerList.c +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "ProtocolIE-ContainerList.h" - diff --git a/e2sim/src/ASN1c/ProtocolIE-ContainerList.h b/e2sim/src/ASN1c/ProtocolIE-ContainerList.h deleted file mode 100644 index f79eecc..0000000 --- a/e2sim/src/ASN1c/ProtocolIE-ContainerList.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _ProtocolIE_ContainerList_H_ -#define _ProtocolIE_ContainerList_H_ - - -#include "asn_application.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_ContainerList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/ProtocolIE-ContainerPair.c b/e2sim/src/ASN1c/ProtocolIE-ContainerPair.c deleted file mode 100644 index 1c1923e..0000000 --- a/e2sim/src/ASN1c/ProtocolIE-ContainerPair.c +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "ProtocolIE-ContainerPair.h" - diff --git a/e2sim/src/ASN1c/ProtocolIE-ContainerPair.h b/e2sim/src/ASN1c/ProtocolIE-ContainerPair.h deleted file mode 100644 index b6ac4f3..0000000 --- a/e2sim/src/ASN1c/ProtocolIE-ContainerPair.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _ProtocolIE_ContainerPair_H_ -#define _ProtocolIE_ContainerPair_H_ - - -#include "asn_application.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_ContainerPair_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/ProtocolIE-ContainerPairList.c b/e2sim/src/ASN1c/ProtocolIE-ContainerPairList.c deleted file mode 100644 index 3f82f58..0000000 --- a/e2sim/src/ASN1c/ProtocolIE-ContainerPairList.c +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "ProtocolIE-ContainerPairList.h" - diff --git a/e2sim/src/ASN1c/ProtocolIE-ContainerPairList.h b/e2sim/src/ASN1c/ProtocolIE-ContainerPairList.h deleted file mode 100644 index a555957..0000000 --- a/e2sim/src/ASN1c/ProtocolIE-ContainerPairList.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _ProtocolIE_ContainerPairList_H_ -#define _ProtocolIE_ContainerPairList_H_ - - -#include "asn_application.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_ContainerPairList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/ProtocolIE-Field.c b/e2sim/src/ASN1c/ProtocolIE-Field.c deleted file mode 100644 index 06ce54f..0000000 --- a/e2sim/src/ASN1c/ProtocolIE-Field.c +++ /dev/null @@ -1,12150 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "ProtocolIE-Field.h" - -static const long asn_VAL_4_id_RICaction_ToBeSetup_Item = 19; -static const long asn_VAL_4_ignore = 1; -static const long asn_VAL_4_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICaction_ToBeSetup_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_4_id_RICaction_ToBeSetup_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_ignore }, - { "&Value", aioc__type, &asn_DEF_RICaction_ToBeSetup_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_4_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICaction_ToBeSetup_ItemIEs_1[] = { - { 1, 4, asn_IOS_RICaction_ToBeSetup_ItemIEs_1_rows } -}; -static const long asn_VAL_9_id_RICaction_Admitted_Item = 14; -static const long asn_VAL_9_ignore = 1; -static const long asn_VAL_9_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICaction_Admitted_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_9_id_RICaction_Admitted_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore }, - { "&Value", aioc__type, &asn_DEF_RICaction_Admitted_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_9_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICaction_Admitted_ItemIEs_1[] = { - { 1, 4, asn_IOS_RICaction_Admitted_ItemIEs_1_rows } -}; -static const long asn_VAL_10_id_RICaction_NotAdmitted_Item = 16; -static const long asn_VAL_10_ignore = 1; -static const long asn_VAL_10_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICaction_NotAdmitted_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_10_id_RICaction_NotAdmitted_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_ignore }, - { "&Value", aioc__type, &asn_DEF_RICaction_NotAdmitted_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_10_mandatory } -}; -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_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_ID, &asn_VAL_24_id_RICsubscription_withCause_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_24_ignore }, - { "&Value", aioc__type, &asn_DEF_RICsubscription_withCause_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_ID, &asn_VAL_71_id_E2connectionUpdate_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_71_ignore }, - { "&Value", aioc__type, &asn_DEF_E2connectionUpdate_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_ID, &asn_VAL_72_id_E2connectionUpdateRemove_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_72_ignore }, - { "&Value", aioc__type, &asn_DEF_E2connectionUpdateRemove_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_ID, &asn_VAL_76_id_E2connectionSetupFailed_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_76_ignore }, - { "&Value", aioc__type, &asn_DEF_E2connectionSetupFailed_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_ID, &asn_VAL_87_id_E2nodeComponentConfigAddition_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_87_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAddition_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_ID, &asn_VAL_88_id_E2nodeComponentConfigUpdate_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_88_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigUpdate_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_ID, &asn_VAL_89_id_E2nodeComponentConfigRemoval_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_89_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigRemoval_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_ID, &asn_VAL_90_id_E2nodeTNLassociationRemoval_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_90_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeTNLassociationRemoval_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_ID, &asn_VAL_95_id_E2nodeComponentConfigAdditionAck_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_95_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAdditionAck_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_ID, &asn_VAL_96_id_E2nodeComponentConfigUpdateAck_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_96_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigUpdateAck_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_ID, &asn_VAL_97_id_E2nodeComponentConfigRemovalAck_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_97_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigRemovalAck_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_ID, &asn_VAL_110_id_RANfunction_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_110_ignore }, - { "&Value", aioc__type, &asn_DEF_RANfunction_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_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_ID, &asn_VAL_111_id_RANfunctionID_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_111_ignore }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_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_ID, &asn_VAL_115_id_RANfunctionIEcause_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_115_ignore }, - { "&Value", aioc__type, &asn_DEF_RANfunctionIDcause_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_115_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RANfunctionIDcause_ItemIEs_1[] = { - { 1, 4, asn_IOS_RANfunctionIDcause_ItemIEs_1_rows } -}; -static const long asn_VAL_1_id_RICrequestID = 29; -static const long asn_VAL_1_reject = 0; -static const long asn_VAL_1_mandatory = 2; -static const long asn_VAL_2_id_RANfunctionID = 5; -static const long asn_VAL_2_reject = 0; -static const long asn_VAL_2_mandatory = 2; -static const long asn_VAL_3_id_RICsubscriptionDetails = 30; -static const long asn_VAL_3_reject = 0; -static const long asn_VAL_3_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_1_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_1_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_2_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_2_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_3_id_RICsubscriptionDetails }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, - { "&Value", aioc__type, &asn_DEF_RICsubscriptionDetails }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_3_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionRequest_IEs_1[] = { - { 3, 4, asn_IOS_RICsubscriptionRequest_IEs_1_rows } -}; -static const long asn_VAL_5_id_RICrequestID = 29; -static const long asn_VAL_5_reject = 0; -static const long asn_VAL_5_mandatory = 2; -static const long asn_VAL_6_id_RANfunctionID = 5; -static const long asn_VAL_6_reject = 0; -static const long asn_VAL_6_mandatory = 2; -static const long asn_VAL_7_id_RICactions_Admitted = 17; -static const long asn_VAL_7_reject = 0; -static const long asn_VAL_7_mandatory = 2; -static const long asn_VAL_8_id_RICactions_NotAdmitted = 18; -static const long asn_VAL_8_reject = 0; -static const long asn_VAL_8_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionResponse_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_5_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_5_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_6_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_6_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_7_id_RICactions_Admitted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_reject }, - { "&Value", aioc__type, &asn_DEF_RICaction_Admitted_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_7_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_8_id_RICactions_NotAdmitted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_reject }, - { "&Value", aioc__type, &asn_DEF_RICaction_NotAdmitted_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_8_optional } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionResponse_IEs_1[] = { - { 4, 4, asn_IOS_RICsubscriptionResponse_IEs_1_rows } -}; -static const long asn_VAL_11_id_RICrequestID = 29; -static const long asn_VAL_11_reject = 0; -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_Cause = 1; -static const long asn_VAL_13_reject = 0; -static const long asn_VAL_13_mandatory = 2; -static const long asn_VAL_14_id_CriticalityDiagnostics = 2; -static const long asn_VAL_14_ignore = 1; -static const long asn_VAL_14_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_11_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_11_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_12_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_12_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_13_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_13_reject }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_13_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_14_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_14_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_14_optional } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionFailure_IEs_1[] = { - { 4, 4, asn_IOS_RICsubscriptionFailure_IEs_1_rows } -}; -static const long asn_VAL_15_id_RICrequestID = 29; -static const long asn_VAL_15_reject = 0; -static const long asn_VAL_15_mandatory = 2; -static const long asn_VAL_16_id_RANfunctionID = 5; -static const long asn_VAL_16_reject = 0; -static const long asn_VAL_16_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_15_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_15_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_15_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_16_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_16_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_16_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionDeleteRequest_IEs_1[] = { - { 2, 4, asn_IOS_RICsubscriptionDeleteRequest_IEs_1_rows } -}; -static const long asn_VAL_17_id_RICrequestID = 29; -static const long asn_VAL_17_reject = 0; -static const long asn_VAL_17_mandatory = 2; -static const long asn_VAL_18_id_RANfunctionID = 5; -static const long asn_VAL_18_reject = 0; -static const long asn_VAL_18_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteResponse_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_17_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_17_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_17_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_18_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_18_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_18_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionDeleteResponse_IEs_1[] = { - { 2, 4, asn_IOS_RICsubscriptionDeleteResponse_IEs_1_rows } -}; -static const long asn_VAL_19_id_RICrequestID = 29; -static const long asn_VAL_19_reject = 0; -static const long asn_VAL_19_mandatory = 2; -static const long asn_VAL_20_id_RANfunctionID = 5; -static const long asn_VAL_20_reject = 0; -static const long asn_VAL_20_mandatory = 2; -static const long asn_VAL_21_id_Cause = 1; -static const long asn_VAL_21_ignore = 1; -static const long asn_VAL_21_mandatory = 2; -static const long asn_VAL_22_id_CriticalityDiagnostics = 2; -static const long asn_VAL_22_ignore = 1; -static const long asn_VAL_22_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_19_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_19_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_19_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_20_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_20_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_20_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_21_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_21_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_21_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_22_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_22_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_22_optional } -}; -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_RICsubscriptionToBeRemoved = 50; -static const long asn_VAL_23_ignore = 1; -static const long asn_VAL_23_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteRequired_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_23_id_RICsubscriptionToBeRemoved }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_23_ignore }, - { "&Value", aioc__type, &asn_DEF_RICsubscription_List_withCause }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_RANfunctionID = 5; -static const long asn_VAL_26_reject = 0; -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_RICindicationSN = 27; -static const long asn_VAL_28_reject = 0; -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_RICindicationHeader = 25; -static const long asn_VAL_30_reject = 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_ID, &asn_VAL_25_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_25_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_25_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_26_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_26_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_26_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_27_id_RICactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_27_reject }, - { "&Value", aioc__type, &asn_DEF_RICactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_27_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_28_id_RICindicationSN }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_28_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationSN }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_28_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_29_id_RICindicationType }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_29_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationType }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_29_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_30_id_RICindicationHeader }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_30_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationHeader }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_30_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_31_id_RICindicationMessage }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_31_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationMessage }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_31_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_32_id_RICcallProcessID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_32_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_33_id_RICrequestID = 29; -static const long asn_VAL_33_reject = 0; -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_RICcallProcessID = 20; -static const long asn_VAL_35_reject = 0; -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_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_ID, &asn_VAL_33_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_33_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_33_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_34_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_34_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_34_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_35_id_RICcallProcessID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_35_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_35_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_36_id_RICcontrolHeader }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_36_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolHeader }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_36_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_37_id_RICcontrolMessage }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_37_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolMessage }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_37_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_38_id_RICcontrolAckRequest }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_38_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolAckRequest }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_39_id_RICrequestID = 29; -static const long asn_VAL_39_reject = 0; -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_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_ID, &asn_VAL_39_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_39_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_39_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_40_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_40_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_40_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_41_id_RICcallProcessID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_41_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_41_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_42_id_RICcontrolOutcome }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_42_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolOutcome }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_42_optional } -}; -static const asn_ioc_set_t asn_IOS_RICcontrolAcknowledge_IEs_1[] = { - { 4, 4, asn_IOS_RICcontrolAcknowledge_IEs_1_rows } -}; -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_RANfunctionID = 5; -static const long asn_VAL_44_reject = 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_Cause = 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_ID, &asn_VAL_43_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_43_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_43_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_44_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_44_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_44_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_45_id_RICcallProcessID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_45_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_45_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_46_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_46_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_46_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_47_id_RICcontrolOutcome }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_47_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolOutcome }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_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_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_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_Cause = 1; -static const long asn_VAL_51_ignore = 1; -static const long asn_VAL_51_optional = 0; -static const long asn_VAL_52_id_CriticalityDiagnostics = 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_ErrorIndication_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_48_id_TransactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_48_reject }, - { "&Value", aioc__type, &asn_DEF_TransactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_48_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_49_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_49_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_49_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_50_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_50_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_50_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_51_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_51_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_51_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_52_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_52_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_52_optional } -}; -static const asn_ioc_set_t asn_IOS_ErrorIndication_IEs_1[] = { - { 5, 4, asn_IOS_ErrorIndication_IEs_1_rows } -}; -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_GlobalE2node_ID = 3; -static const long asn_VAL_54_reject = 0; -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_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_ID, &asn_VAL_53_id_TransactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_53_reject }, - { "&Value", aioc__type, &asn_DEF_TransactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_53_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_54_id_GlobalE2node_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_54_reject }, - { "&Value", aioc__type, &asn_DEF_GlobalE2node_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_54_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_55_id_RANfunctionsAdded }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_55_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctions_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_55_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_56_id_E2nodeComponentConfigAddition }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_56_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAddition_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_ID, &asn_VAL_57_id_TransactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_57_reject }, - { "&Value", aioc__type, &asn_DEF_TransactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_57_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_58_id_GlobalRIC_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_58_reject }, - { "&Value", aioc__type, &asn_DEF_GlobalRIC_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_58_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_59_id_RANfunctionsAccepted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_59_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_59_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_60_id_RANfunctionsRejected }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_60_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_60_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_61_id_E2nodeComponentConfigAdditionAck }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_61_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAdditionAck_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_61_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E2setupResponseIEs_1[] = { - { 5, 4, asn_IOS_E2setupResponseIEs_1_rows } -}; -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_Cause = 1; -static const long asn_VAL_63_ignore = 1; -static const long asn_VAL_63_mandatory = 2; -static const long asn_VAL_64_id_TimeToWait = 31; -static const long asn_VAL_64_ignore = 1; -static const long asn_VAL_64_optional = 0; -static const long asn_VAL_65_id_CriticalityDiagnostics = 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_ID, &asn_VAL_62_id_TransactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_62_reject }, - { "&Value", aioc__type, &asn_DEF_TransactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_62_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_63_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_63_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_63_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_64_id_TimeToWait }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_64_ignore }, - { "&Value", aioc__type, &asn_DEF_TimeToWait }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_64_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_65_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_65_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_65_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_66_id_TNLinformation }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_66_ignore }, - { "&Value", aioc__type, &asn_DEF_TNLinformation }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_66_optional } -}; -static const asn_ioc_set_t asn_IOS_E2setupFailureIEs_1[] = { - { 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_ID, &asn_VAL_67_id_TransactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_67_reject }, - { "&Value", aioc__type, &asn_DEF_TransactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_67_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_68_id_E2connectionUpdateAdd }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_68_reject }, - { "&Value", aioc__type, &asn_DEF_E2connectionUpdate_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_68_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_69_id_E2connectionUpdateRemove }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_69_reject }, - { "&Value", aioc__type, &asn_DEF_E2connectionUpdateRemove_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_69_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_70_id_E2connectionUpdateModify }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_70_reject }, - { "&Value", aioc__type, &asn_DEF_E2connectionUpdate_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_ID, &asn_VAL_73_id_TransactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_73_reject }, - { "&Value", aioc__type, &asn_DEF_TransactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_73_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_74_id_E2connectionSetup }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_74_reject }, - { "&Value", aioc__type, &asn_DEF_E2connectionUpdate_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_74_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_75_id_E2connectionSetupFailed }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_75_reject }, - { "&Value", aioc__type, &asn_DEF_E2connectionSetupFailed_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_Cause = 1; -static const long asn_VAL_78_reject = 0; -static const long asn_VAL_78_optional = 0; -static const long asn_VAL_79_id_TimeToWait = 31; -static const long asn_VAL_79_ignore = 1; -static const long asn_VAL_79_optional = 0; -static const long asn_VAL_80_id_CriticalityDiagnostics = 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_ID, &asn_VAL_77_id_TransactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_77_reject }, - { "&Value", aioc__type, &asn_DEF_TransactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_77_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_78_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_78_reject }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_78_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_79_id_TimeToWait }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_79_ignore }, - { "&Value", aioc__type, &asn_DEF_TimeToWait }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_79_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_80_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_80_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_ID, &asn_VAL_81_id_TransactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_81_reject }, - { "&Value", aioc__type, &asn_DEF_TransactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_81_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_82_id_GlobalE2node_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_82_reject }, - { "&Value", aioc__type, &asn_DEF_GlobalE2node_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_82_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_83_id_E2nodeComponentConfigAddition }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_83_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAddition_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_83_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_84_id_E2nodeComponentConfigUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_84_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigUpdate_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_84_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_85_id_E2nodeComponentConfigRemoval }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_85_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigRemoval_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_85_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_86_id_E2nodeTNLassociationRemoval }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_86_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeTNLassociationRemoval_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_ID, &asn_VAL_91_id_TransactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_91_reject }, - { "&Value", aioc__type, &asn_DEF_TransactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_91_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_92_id_E2nodeComponentConfigAdditionAck }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_92_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAdditionAck_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_92_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_93_id_E2nodeComponentConfigUpdateAck }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_93_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigUpdateAck_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_93_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_94_id_E2nodeComponentConfigRemovalAck }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_94_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigRemovalAck_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &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_Cause = 1; -static const long asn_VAL_99_ignore = 1; -static const long asn_VAL_99_mandatory = 2; -static const long asn_VAL_100_id_TimeToWait = 31; -static const long asn_VAL_100_ignore = 1; -static const long asn_VAL_100_optional = 0; -static const long asn_VAL_101_id_CriticalityDiagnostics = 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_ID, &asn_VAL_98_id_TransactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_98_reject }, - { "&Value", aioc__type, &asn_DEF_TransactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_98_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_99_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_99_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_99_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_100_id_TimeToWait }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_100_ignore }, - { "&Value", aioc__type, &asn_DEF_TimeToWait }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_100_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_101_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_101_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_101_optional } -}; -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_Cause = 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_ID, &asn_VAL_102_id_TransactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_102_reject }, - { "&Value", aioc__type, &asn_DEF_TransactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_102_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_103_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_103_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_103_mandatory } -}; -static const asn_ioc_set_t asn_IOS_ResetRequestIEs_1[] = { - { 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_CriticalityDiagnostics = 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_ID, &asn_VAL_104_id_TransactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_104_reject }, - { "&Value", aioc__type, &asn_DEF_TransactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_104_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_105_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_105_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_105_optional } -}; -static const asn_ioc_set_t asn_IOS_ResetResponseIEs_1[] = { - { 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_ID, &asn_VAL_106_id_TransactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_106_reject }, - { "&Value", aioc__type, &asn_DEF_TransactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_106_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_107_id_RANfunctionsAdded }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_107_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctions_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_107_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_108_id_RANfunctionsModified }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_108_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctions_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_108_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_109_id_RANfunctionsDeleted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_109_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_109_optional } -}; -static const asn_ioc_set_t asn_IOS_RICserviceUpdate_IEs_1[] = { - { 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_ID, &asn_VAL_112_id_TransactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_112_reject }, - { "&Value", aioc__type, &asn_DEF_TransactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_112_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_113_id_RANfunctionsAccepted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_113_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_113_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_114_id_RANfunctionsRejected }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_114_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_114_optional } -}; -static const asn_ioc_set_t asn_IOS_RICserviceUpdateAcknowledge_IEs_1[] = { - { 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_Cause = 1; -static const long asn_VAL_117_reject = 0; -static const long asn_VAL_117_mandatory = 2; -static const long asn_VAL_118_id_TimeToWait = 31; -static const long asn_VAL_118_ignore = 1; -static const long asn_VAL_118_optional = 0; -static const long asn_VAL_119_id_CriticalityDiagnostics = 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_ID, &asn_VAL_116_id_TransactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_116_reject }, - { "&Value", aioc__type, &asn_DEF_TransactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_116_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_117_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_117_reject }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_117_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_118_id_TimeToWait }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_118_ignore }, - { "&Value", aioc__type, &asn_DEF_TimeToWait }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_118_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_119_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_119_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_119_optional } -}; -static const asn_ioc_set_t asn_IOS_RICserviceUpdateFailure_IEs_1[] = { - { 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_ID, &asn_VAL_120_id_TransactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_120_reject }, - { "&Value", aioc__type, &asn_DEF_TransactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_120_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_121_id_RANfunctionsAccepted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_121_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_121_optional } -}; -static const asn_ioc_set_t asn_IOS_RICserviceQuery_IEs_1[] = { - { 2, 4, asn_IOS_RICserviceQuery_IEs_1_rows } -}; -static int -memb_id_constraint_1(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_RICaction_ToBeSetup_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_RICaction_ToBeSetup_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 RICaction_ToBeSetup_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]; - 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_1(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_RICaction_ToBeSetup_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_RICaction_ToBeSetup_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 RICaction_ToBeSetup_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]; - 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_1(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_5(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_RICaction_Admitted_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_RICaction_Admitted_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 RICaction_Admitted_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]; - 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_5(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_RICaction_Admitted_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_RICaction_Admitted_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 RICaction_Admitted_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]; - 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_5(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_9(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_RICaction_NotAdmitted_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_RICaction_NotAdmitted_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 RICaction_NotAdmitted_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]; - 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_9(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_RICaction_NotAdmitted_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_RICaction_NotAdmitted_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 RICaction_NotAdmitted_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]; - 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_9(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_13(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_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_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 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]; - 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_13(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_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_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 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]; - 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_13(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_17(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_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_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 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]; - 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_17(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_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_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 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]; - 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_17(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_21(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_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_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 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]; - 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_21(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_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_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 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]; - 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_21(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_25(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_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_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 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]; - 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_25(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_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_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 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]; - 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_25(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_29(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_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_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 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]; - 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_29(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_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_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 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]; - 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_29(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_33(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_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_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 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]; - 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_33(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_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_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 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]; - 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_33(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_37(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_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_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 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]; - 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_37(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_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_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 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]; - 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_37(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_41(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_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_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 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]; - 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_41(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_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_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 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]; - 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_41(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_45(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_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_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 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]; - 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_45(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_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_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 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]; - 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_45(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_49(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_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_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 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]; - 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_49(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_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_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 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]; - 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_49(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_53(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_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_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 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]; - 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_53(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_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_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 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]; - 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_53(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_57(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_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_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 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]; - 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_57(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_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_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 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]; - 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_57(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_61(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_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_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 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]; - 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_61(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_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_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 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]; - 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_61(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_65(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_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_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 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]; - 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_65(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_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_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 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]; - 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_65(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_69(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_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_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 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]; - 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_69(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_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_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 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]; - 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_69(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_73(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_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_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 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]; - 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_73(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_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_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 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]; - 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_73(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_77(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_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_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 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]; - 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_77(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_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_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 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]; - 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_77(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_81(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_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_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 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]; - 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_81(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_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_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 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]; - 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_81(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_85(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_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_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 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]; - 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_85(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_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_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 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]; - 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_85(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_89(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_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_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 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]; - 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_89(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_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_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 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]; - 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_89(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_93(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_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_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 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]; - 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_93(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_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_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 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]; - 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_93(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_97(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_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_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 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]; - 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_97(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_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_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 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]; - 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_97(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_101(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_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_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 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]; - 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_101(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_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_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 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]; - 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_101(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_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_ErrorIndication_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_ErrorIndication_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 ErrorIndication_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_ErrorIndication_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_ErrorIndication_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 ErrorIndication_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)); - const int indexToPresence[5] = { - E2connectionUpdate_IEs__value_PR_NOTHING, - E2connectionUpdate_IEs__value_PR_TransactionID, - E2connectionUpdate_IEs__value_PR_E2connectionUpdate_List, - E2connectionUpdate_IEs__value_PR_E2connectionUpdateRemove_List, - E2connectionUpdate_IEs__value_PR_E2connectionUpdate_List - }; - - 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 = indexToPresence[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)); - const int indexToPresence[5] = { - RICserviceUpdate_IEs__value_PR_NOTHING, - RICserviceUpdate_IEs__value_PR_TransactionID, - RICserviceUpdate_IEs__value_PR_RANfunctions_List, - RICserviceUpdate_IEs__value_PR_RANfunctions_List, - RICserviceUpdate_IEs__value_PR_RANfunctionsID_List - }; - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - 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 = indexToPresence[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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_ID, - 0, - { 0, &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_Criticality, - select_RICaction_ToBeSetup_ItemIEs_criticality_type, - { 0, &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, - { 0, &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_ID, - 0, - { 0, &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_Criticality, - select_RICaction_Admitted_ItemIEs_criticality_type, - { 0, &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, - { 0, &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_ID, - 0, - { 0, &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_Criticality, - select_RICaction_NotAdmitted_ItemIEs_criticality_type, - { 0, &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, - { 0, &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_ID, - 0, - { 0, &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_Criticality, - select_RICsubscription_withCause_ItemIEs_criticality_type, - { 0, &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, - { 0, &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_ID, - 0, - { 0, &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_Criticality, - select_E2connectionUpdate_ItemIEs_criticality_type, - { 0, &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, - { 0, &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_ID, - 0, - { 0, &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_Criticality, - select_E2connectionUpdateRemove_ItemIEs_criticality_type, - { 0, &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, - { 0, &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_ID, - 0, - { 0, &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_Criticality, - select_E2connectionSetupFailed_ItemIEs_criticality_type, - { 0, &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, - { 0, &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_ID, - 0, - { 0, &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_Criticality, - select_E2nodeComponentConfigAddition_ItemIEs_criticality_type, - { 0, &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, - { 0, &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_ID, - 0, - { 0, &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_Criticality, - select_E2nodeComponentConfigUpdate_ItemIEs_criticality_type, - { 0, &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, - { 0, &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_ID, - 0, - { 0, &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_Criticality, - select_E2nodeComponentConfigRemoval_ItemIEs_criticality_type, - { 0, &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, - { 0, &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_ID, - 0, - { 0, &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_Criticality, - select_E2nodeTNLassociationRemoval_ItemIEs_criticality_type, - { 0, &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, - { 0, &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_ID, - 0, - { 0, &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_Criticality, - select_E2nodeComponentConfigAdditionAck_ItemIEs_criticality_type, - { 0, &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, - { 0, &asn_PER_memb_value_constr_48, memb_value_constraint_45 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_45[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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 */ -}; -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 */ -}; -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_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 const asn_TYPE_tag2member_t asn_MAP_value_tag2el_52[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigUpdateAck-Item */ -}; -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 /* 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 */ -}; - -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_ID, - 0, - { 0, &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_Criticality, - select_E2nodeComponentConfigUpdateAck_ItemIEs_criticality_type, - { 0, &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, - { 0, &asn_PER_memb_value_constr_52, memb_value_constraint_49 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_49[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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 */ -}; -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 */ -}; -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_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 const asn_TYPE_tag2member_t asn_MAP_value_tag2el_56[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigRemovalAck-Item */ -}; -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 /* 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 */ -}; - -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_ID, - 0, - { 0, &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_Criticality, - select_E2nodeComponentConfigRemovalAck_ItemIEs_criticality_type, - { 0, &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, - { 0, &asn_PER_memb_value_constr_56, memb_value_constraint_53 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_53[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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 */ -}; -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 */ -}; -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_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 const asn_TYPE_tag2member_t asn_MAP_value_tag2el_60[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunction-Item */ -}; -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 /* 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 */ -}; - -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_ID, - 0, - { 0, &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_Criticality, - select_RANfunction_ItemIEs_criticality_type, - { 0, &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, - { 0, &asn_PER_memb_value_constr_60, memb_value_constraint_57 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunction_ItemIEs_tags_57[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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 */ -}; -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 */ -}; -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_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 const asn_TYPE_tag2member_t asn_MAP_value_tag2el_64[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionID-Item */ -}; -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 /* 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 */ -}; - -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_ID, - 0, - { 0, &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_Criticality, - select_RANfunctionID_ItemIEs_criticality_type, - { 0, &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, - { 0, &asn_PER_memb_value_constr_64, memb_value_constraint_61 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionID_ItemIEs_tags_61[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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 */ -}; -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 */ -}; -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_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 const asn_TYPE_tag2member_t asn_MAP_value_tag2el_68[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionIDcause-Item */ -}; -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 /* 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 */ -}; - -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_ID, - 0, - { 0, &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_Criticality, - select_RANfunctionIDcause_ItemIEs_criticality_type, - { 0, &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, - { 0, &asn_PER_memb_value_constr_68, memb_value_constraint_65 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionIDcause_ItemIEs_tags_65[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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 */ -}; -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 */ -}; -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_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 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_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 /* 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 */ -}; - -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_ID, - 0, - { 0, &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_Criticality, - select_RICsubscriptionRequest_IEs_criticality_type, - { 0, &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, - { 0, &asn_PER_memb_value_constr_72, memb_value_constraint_69 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionRequest_IEs_tags_69[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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 */ -}; -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 */ -}; -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_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "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 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_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_76 = { - "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_76, - 4, /* Elements count */ - &asn_SPC_value_specs_76 /* Additional specs */ -}; - -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_ID, - 0, - { 0, &asn_PER_memb_id_constr_74, memb_id_constraint_73 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionResponse_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_75, memb_criticality_constraint_73 }, - 0, 0, /* No default value */ - "criticality" - }, - { 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_76, - select_RICsubscriptionResponse_IEs_value_type, - { 0, &asn_PER_memb_value_constr_76, memb_value_constraint_73 }, - 0, 0, /* No default value */ - "value" - }, -}; -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_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_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_RICsubscriptionResponse_IEs = { - "RICsubscriptionResponse-IEs", - "RICsubscriptionResponse-IEs", - &asn_OP_SEQUENCE, - 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_RICsubscriptionResponse_IEs_73, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionResponse_IEs_specs_73 /* Additional specs */ -}; - -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_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "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.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -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 }, /* CriticalityDiagnostics */ - { (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_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_80 = { - "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_80, - 4, /* Elements count */ - &asn_SPC_value_specs_80 /* Additional specs */ -}; - -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_ID, - 0, - { 0, &asn_PER_memb_id_constr_78, memb_id_constraint_77 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_79, memb_criticality_constraint_77 }, - 0, 0, /* No default value */ - "criticality" - }, - { 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_80, - select_RICsubscriptionFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_80, memb_value_constraint_77 }, - 0, 0, /* No default value */ - "value" - }, -}; -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_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_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_RICsubscriptionFailure_IEs = { - "RICsubscriptionFailure-IEs", - "RICsubscriptionFailure-IEs", - &asn_OP_SEQUENCE, - 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_RICsubscriptionFailure_IEs_77, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionFailure_IEs_specs_77 /* Additional specs */ -}; - -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_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "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 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_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_84 = { - "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_84, - 2, /* Elements count */ - &asn_SPC_value_specs_84 /* Additional specs */ -}; - -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_ID, - 0, - { 0, &asn_PER_memb_id_constr_82, memb_id_constraint_81 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionDeleteRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_83, memb_criticality_constraint_81 }, - 0, 0, /* No default value */ - "criticality" - }, - { 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_84, - select_RICsubscriptionDeleteRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_84, memb_value_constraint_81 }, - 0, 0, /* No default value */ - "value" - }, -}; -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_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_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_RICsubscriptionDeleteRequest_IEs = { - "RICsubscriptionDeleteRequest-IEs", - "RICsubscriptionDeleteRequest-IEs", - &asn_OP_SEQUENCE, - 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_RICsubscriptionDeleteRequest_IEs_81, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_81 /* Additional specs */ -}; - -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_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "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 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_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_88 = { - "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_88, - 2, /* Elements count */ - &asn_SPC_value_specs_88 /* Additional specs */ -}; - -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_ID, - 0, - { 0, &asn_PER_memb_id_constr_86, memb_id_constraint_85 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionDeleteResponse_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_87, memb_criticality_constraint_85 }, - 0, 0, /* No default value */ - "criticality" - }, - { 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_88, - select_RICsubscriptionDeleteResponse_IEs_value_type, - { 0, &asn_PER_memb_value_constr_88, memb_value_constraint_85 }, - 0, 0, /* No default value */ - "value" - }, -}; -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_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_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_RICsubscriptionDeleteResponse_IEs = { - "RICsubscriptionDeleteResponse-IEs", - "RICsubscriptionDeleteResponse-IEs", - &asn_OP_SEQUENCE, - 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_RICsubscriptionDeleteResponse_IEs_85, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_85 /* Additional specs */ -}; - -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.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -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 }, /* CriticalityDiagnostics */ - { (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_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_92 = { - "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_92, - 4, /* Elements count */ - &asn_SPC_value_specs_92 /* Additional specs */ -}; - -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_ID, - 0, - { 0, &asn_PER_memb_id_constr_90, memb_id_constraint_89 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionDeleteFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_91, memb_criticality_constraint_89 }, - 0, 0, /* No default value */ - "criticality" - }, - { 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_92, - select_RICsubscriptionDeleteFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_92, memb_value_constraint_89 }, - 0, 0, /* No default value */ - "value" - }, -}; -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_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_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_RICsubscriptionDeleteFailure_IEs = { - "RICsubscriptionDeleteFailure-IEs", - "RICsubscriptionDeleteFailure-IEs", - &asn_OP_SEQUENCE, - 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_RICsubscriptionDeleteFailure_IEs_89, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_89 /* Additional specs */ -}; - -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_RICsubscription_List_withCause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscription-List-withCause" - }, -}; -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_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_96 = { - "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_96, - 1, /* Elements count */ - &asn_SPC_value_specs_96 /* Additional specs */ -}; - -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_ID, - 0, - { 0, &asn_PER_memb_id_constr_94, memb_id_constraint_93 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequired_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionDeleteRequired_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_95, memb_criticality_constraint_93 }, - 0, 0, /* No default value */ - "criticality" - }, - { 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_96, - select_RICsubscriptionDeleteRequired_IEs_value_type, - { 0, &asn_PER_memb_value_constr_96, memb_value_constraint_93 }, - 0, 0, /* No default value */ - "value" - }, -}; -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_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_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_RICsubscriptionDeleteRequired_IEs = { - "RICsubscriptionDeleteRequired-IEs", - "RICsubscriptionDeleteRequired-IEs", - &asn_OP_SEQUENCE, - 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_RICsubscriptionDeleteRequired_IEs_93, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteRequired_IEs_specs_93 /* Additional specs */ -}; - -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, - 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), - (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_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_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_100 = { - "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_100, - 8, /* Elements count */ - &asn_SPC_value_specs_100 /* Additional specs */ -}; - -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_ID, - 0, - { 0, &asn_PER_memb_id_constr_98, memb_id_constraint_97 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICindication_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_99, memb_criticality_constraint_97 }, - 0, 0, /* No default value */ - "criticality" - }, - { 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_100, - select_RICindication_IEs_value_type, - { 0, &asn_PER_memb_value_constr_100, memb_value_constraint_97 }, - 0, 0, /* No default value */ - "value" - }, -}; -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_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_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_RICindication_IEs = { - "RICindication-IEs", - "RICindication-IEs", - &asn_OP_SEQUENCE, - 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_RICindication_IEs_97, - 3, /* Elements count */ - &asn_SPC_RICindication_IEs_specs_97 /* Additional specs */ -}; - -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, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_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 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_RICcontrolMessage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolMessage" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICcontrolAckRequest), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_RICcontrolAckRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolAckRequest" - }, -}; -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 | (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_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_104 = { - "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_104, - 6, /* Elements count */ - &asn_SPC_value_specs_104 /* Additional specs */ -}; - -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_ID, - 0, - { 0, &asn_PER_memb_id_constr_102, memb_id_constraint_101 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICcontrolRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_103, memb_criticality_constraint_101 }, - 0, 0, /* No default value */ - "criticality" - }, - { 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_104, - select_RICcontrolRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_104, memb_value_constraint_101 }, - 0, 0, /* No default value */ - "value" - }, -}; -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_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_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_RICcontrolRequest_IEs = { - "RICcontrolRequest-IEs", - "RICcontrolRequest-IEs", - &asn_OP_SEQUENCE, - 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_RICcontrolRequest_IEs_101, - 3, /* Elements count */ - &asn_SPC_RICcontrolRequest_IEs_specs_101 /* Additional specs */ -}; - -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, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_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 RICcontrolAcknowledge_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 RICcontrolAcknowledge_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_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 | (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_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_108, - asn_MAP_value_from_canonical_108, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_108 = { - "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_108, - 4, /* Elements count */ - &asn_SPC_value_specs_108 /* Additional specs */ -}; - -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_ID, - 0, - { 0, &asn_PER_memb_id_constr_106, memb_id_constraint_105 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICcontrolAcknowledge_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_107, memb_criticality_constraint_105 }, - 0, 0, /* No default value */ - "criticality" - }, - { 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_108, - select_RICcontrolAcknowledge_IEs_value_type, - { 0, &asn_PER_memb_value_constr_108, memb_value_constraint_105 }, - 0, 0, /* No default value */ - "value" - }, -}; -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_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_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_RICcontrolAcknowledge_IEs = { - "RICcontrolAcknowledge-IEs", - "RICcontrolAcknowledge-IEs", - &asn_OP_SEQUENCE, - 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_RICcontrolAcknowledge_IEs_105, - 3, /* Elements count */ - &asn_SPC_RICcontrolAcknowledge_IEs_specs_105 /* Additional specs */ -}; - -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, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_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 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.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { 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_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 | (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_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_112 = { - "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_112, - 5, /* Elements count */ - &asn_SPC_value_specs_112 /* Additional specs */ -}; - -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_ID, - 0, - { 0, &asn_PER_memb_id_constr_110, memb_id_constraint_109 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICcontrolFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_111, memb_criticality_constraint_109 }, - 0, 0, /* No default value */ - "criticality" - }, - { 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_112, - select_RICcontrolFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_112, memb_value_constraint_109 }, - 0, 0, /* No default value */ - "value" - }, -}; -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_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_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_RICcontrolFailure_IEs = { - "RICcontrolFailure-IEs", - "RICcontrolFailure-IEs", - &asn_OP_SEQUENCE, - 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_RICcontrolFailure_IEs_109, - 3, /* Elements count */ - &asn_SPC_RICcontrolFailure_IEs_specs_109 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_116[] = { - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_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 ErrorIndication_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 ErrorIndication_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 ErrorIndication_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -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 }, /* CriticalityDiagnostics */ - { (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 ErrorIndication_IEs__value), - offsetof(struct ErrorIndication_IEs__value, _asn_ctx), - offsetof(struct ErrorIndication_IEs__value, present), - sizeof(((struct ErrorIndication_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_116 = { - "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_116, - 5, /* Elements count */ - &asn_SPC_value_specs_116 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ErrorIndication_IEs_113[] = { - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_114, memb_id_constraint_113 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ErrorIndication_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_115, memb_criticality_constraint_113 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_116, - select_ErrorIndication_IEs_value_type, - { 0, &asn_PER_memb_value_constr_116, memb_value_constraint_113 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ErrorIndication_IEs_tags_113[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ErrorIndication_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_ErrorIndication_IEs_specs_113 = { - sizeof(struct ErrorIndication_IEs), - offsetof(struct ErrorIndication_IEs, _asn_ctx), - asn_MAP_ErrorIndication_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_ErrorIndication_IEs = { - "ErrorIndication-IEs", - "ErrorIndication-IEs", - &asn_OP_SEQUENCE, - asn_DEF_ErrorIndication_IEs_tags_113, - sizeof(asn_DEF_ErrorIndication_IEs_tags_113) - /sizeof(asn_DEF_ErrorIndication_IEs_tags_113[0]), /* 1 */ - asn_DEF_ErrorIndication_IEs_tags_113, /* Same as above */ - sizeof(asn_DEF_ErrorIndication_IEs_tags_113) - /sizeof(asn_DEF_ErrorIndication_IEs_tags_113[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ErrorIndication_IEs_113, - 3, /* Elements count */ - &asn_SPC_ErrorIndication_IEs_specs_113 /* Additional specs */ -}; - -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_TransactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TransactionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__value, choice.GlobalE2node_ID), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_GlobalE2node_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GlobalE2node-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__value, choice.RANfunctions_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctions_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctions-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__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" - }, -}; -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_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_120 = { - "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_120, - 4, /* Elements count */ - &asn_SPC_value_specs_120 /* Additional specs */ -}; - -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_ID, - 0, - { 0, &asn_PER_memb_id_constr_118, memb_id_constraint_117 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E2setupRequestIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_119, memb_criticality_constraint_117 }, - 0, 0, /* No default value */ - "criticality" - }, - { 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_120, - select_E2setupRequestIEs_value_type, - { 0, &asn_PER_memb_value_constr_120, memb_value_constraint_117 }, - 0, 0, /* No default value */ - "value" - }, -}; -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_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_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_E2setupRequestIEs = { - "E2setupRequestIEs", - "E2setupRequestIEs", - &asn_OP_SEQUENCE, - 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_E2setupRequestIEs_117, - 3, /* Elements count */ - &asn_SPC_E2setupRequestIEs_specs_117 /* Additional specs */ -}; - -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_TransactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TransactionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.GlobalRIC_ID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GlobalRIC_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GlobalRIC-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.RANfunctionsID_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsID_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsID-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.RANfunctionsIDcause_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsIDcause_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsIDcause-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.E2nodeComponentConfigAdditionAck_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2nodeComponentConfigAdditionAck_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2nodeComponentConfigAdditionAck-List" - }, -}; -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_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_124 = { - "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_124, - 5, /* Elements count */ - &asn_SPC_value_specs_124 /* Additional specs */ -}; - -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_ID, - 0, - { 0, &asn_PER_memb_id_constr_122, memb_id_constraint_121 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E2setupResponseIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_123, memb_criticality_constraint_121 }, - 0, 0, /* No default value */ - "criticality" - }, - { 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_124, - select_E2setupResponseIEs_value_type, - { 0, &asn_PER_memb_value_constr_124, memb_value_constraint_121 }, - 0, 0, /* No default value */ - "value" - }, -}; -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_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_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_E2setupResponseIEs = { - "E2setupResponseIEs", - "E2setupResponseIEs", - &asn_OP_SEQUENCE, - 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_E2setupResponseIEs_121, - 3, /* Elements count */ - &asn_SPC_E2setupResponseIEs_specs_121 /* Additional specs */ -}; - -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_TransactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TransactionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.TimeToWait), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_TimeToWait, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TimeToWait" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.TNLinformation), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_TNLinformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TNLinformation" - }, -}; -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 }, /* TimeToWait */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 1 }, /* CriticalityDiagnostics */ - { (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_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_128 = { - "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_128, - 5, /* Elements count */ - &asn_SPC_value_specs_128 /* Additional specs */ -}; - -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_ID, - 0, - { 0, &asn_PER_memb_id_constr_126, memb_id_constraint_125 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E2setupFailureIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_127, memb_criticality_constraint_125 }, - 0, 0, /* No default value */ - "criticality" - }, - { 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_128, - select_E2setupFailureIEs_value_type, - { 0, &asn_PER_memb_value_constr_128, memb_value_constraint_125 }, - 0, 0, /* No default value */ - "value" - }, -}; -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_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_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_E2setupFailureIEs = { - "E2setupFailureIEs", - "E2setupFailureIEs", - &asn_OP_SEQUENCE, - 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_E2setupFailureIEs_125, - 3, /* Elements count */ - &asn_SPC_E2setupFailureIEs_specs_125 /* Additional specs */ -}; - -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_TransactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TransactionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_IEs__value, choice.E2connectionUpdate_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2connectionUpdate_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2connectionUpdate-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_IEs__value, choice.E2connectionUpdateRemove_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2connectionUpdateRemove_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2connectionUpdateRemove-List" - }, -}; -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_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_132 = { - "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_132, - 3, /* Elements count */ - &asn_SPC_value_specs_132 /* Additional specs */ -}; - -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_ID, - 0, - { 0, &asn_PER_memb_id_constr_130, memb_id_constraint_129 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E2connectionUpdate_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_131, memb_criticality_constraint_129 }, - 0, 0, /* No default value */ - "criticality" - }, - { 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_132, - select_E2connectionUpdate_IEs_value_type, - { 0, &asn_PER_memb_value_constr_132, memb_value_constraint_129 }, - 0, 0, /* No default value */ - "value" - }, -}; -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_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_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_E2connectionUpdate_IEs = { - "E2connectionUpdate-IEs", - "E2connectionUpdate-IEs", - &asn_OP_SEQUENCE, - 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_E2connectionUpdate_IEs_129, - 3, /* Elements count */ - &asn_SPC_E2connectionUpdate_IEs_specs_129 /* Additional specs */ -}; - -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_TransactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TransactionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateAck_IEs__value, choice.E2connectionUpdate_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2connectionUpdate_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2connectionUpdate-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateAck_IEs__value, choice.E2connectionSetupFailed_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2connectionSetupFailed_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2connectionSetupFailed-List" - }, -}; -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_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_136 = { - "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_136, - 3, /* Elements count */ - &asn_SPC_value_specs_136 /* Additional specs */ -}; - -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_ID, - 0, - { 0, &asn_PER_memb_id_constr_134, memb_id_constraint_133 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateAck_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E2connectionUpdateAck_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_135, memb_criticality_constraint_133 }, - 0, 0, /* No default value */ - "criticality" - }, - { 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_136, - select_E2connectionUpdateAck_IEs_value_type, - { 0, &asn_PER_memb_value_constr_136, memb_value_constraint_133 }, - 0, 0, /* No default value */ - "value" - }, -}; -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_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_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_E2connectionUpdateAck_IEs = { - "E2connectionUpdateAck-IEs", - "E2connectionUpdateAck-IEs", - &asn_OP_SEQUENCE, - 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_E2connectionUpdateAck_IEs_133, - 3, /* Elements count */ - &asn_SPC_E2connectionUpdateAck_IEs_specs_133 /* Additional specs */ -}; - -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_TransactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TransactionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure_IEs__value, choice.TimeToWait), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_TimeToWait, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TimeToWait" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -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 }, /* TimeToWait */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */ - { (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_140 = { - "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_140, - 4, /* Elements count */ - &asn_SPC_value_specs_140 /* Additional specs */ -}; - -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_ID, - 0, - { 0, &asn_PER_memb_id_constr_138, memb_id_constraint_137 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E2connectionUpdateFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_139, memb_criticality_constraint_137 }, - 0, 0, /* No default value */ - "criticality" - }, - { 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_140, - select_E2connectionUpdateFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_140, memb_value_constraint_137 }, - 0, 0, /* No default value */ - "value" - }, -}; -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_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_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_E2connectionUpdateFailure_IEs = { - "E2connectionUpdateFailure-IEs", - "E2connectionUpdateFailure-IEs", - &asn_OP_SEQUENCE, - 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_E2connectionUpdateFailure_IEs_137, - 3, /* Elements count */ - &asn_SPC_E2connectionUpdateFailure_IEs_specs_137 /* Additional specs */ -}; - -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, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GlobalE2node-ID" - }, - { 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_E2nodeTNLassociationRemoval_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "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_144 = { - "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_144, - 6, /* Elements count */ - &asn_SPC_value_specs_144 /* Additional specs */ -}; - -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_ID, - 0, - { 0, &asn_PER_memb_id_constr_142, memb_id_constraint_141 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E2nodeConfigurationUpdate_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_143, memb_criticality_constraint_141 }, - 0, 0, /* No default value */ - "criticality" - }, - { 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_144, - select_E2nodeConfigurationUpdate_IEs_value_type, - { 0, &asn_PER_memb_value_constr_144, memb_value_constraint_141 }, - 0, 0, /* No default value */ - "value" - }, -}; -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_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_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_E2nodeConfigurationUpdate_IEs = { - "E2nodeConfigurationUpdate-IEs", - "E2nodeConfigurationUpdate-IEs", - &asn_OP_SEQUENCE, - 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_E2nodeConfigurationUpdate_IEs_141, - 3, /* Elements count */ - &asn_SPC_E2nodeConfigurationUpdate_IEs_specs_141 /* Additional specs */ -}; - -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_E2nodeComponentConfigAdditionAck_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2nodeComponentConfigAdditionAck-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value, choice.E2nodeComponentConfigUpdateAck_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2nodeComponentConfigUpdateAck_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2nodeComponentConfigUpdateAck-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value, choice.E2nodeComponentConfigRemovalAck_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2nodeComponentConfigRemovalAck_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2nodeComponentConfigRemovalAck-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_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_148 = { - "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_148, - 4, /* Elements count */ - &asn_SPC_value_specs_148 /* Additional specs */ -}; - -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_ID, - 0, - { 0, &asn_PER_memb_id_constr_146, memb_id_constraint_145 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E2nodeConfigurationUpdateAcknowledge_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_147, memb_criticality_constraint_145 }, - 0, 0, /* No default value */ - "criticality" - }, - { 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_148, - select_E2nodeConfigurationUpdateAcknowledge_IEs_value_type, - { 0, &asn_PER_memb_value_constr_148, memb_value_constraint_145 }, - 0, 0, /* No default value */ - "value" - }, -}; -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_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_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_E2nodeConfigurationUpdateAcknowledge_IEs = { - "E2nodeConfigurationUpdateAcknowledge-IEs", - "E2nodeConfigurationUpdateAcknowledge-IEs", - &asn_OP_SEQUENCE, - 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_E2nodeConfigurationUpdateAcknowledge_IEs_145, - 3, /* Elements count */ - &asn_SPC_E2nodeConfigurationUpdateAcknowledge_IEs_specs_145 /* Additional specs */ -}; - -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.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs__value, choice.TimeToWait), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_TimeToWait, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TimeToWait" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -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 }, /* TimeToWait */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */ - { (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_152 = { - "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_152, - 4, /* Elements count */ - &asn_SPC_value_specs_152 /* Additional specs */ -}; - -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_ID, - 0, - { 0, &asn_PER_memb_id_constr_150, memb_id_constraint_149 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E2nodeConfigurationUpdateFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_151, memb_criticality_constraint_149 }, - 0, 0, /* No default value */ - "criticality" - }, - { 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_152, - select_E2nodeConfigurationUpdateFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_152, memb_value_constraint_149 }, - 0, 0, /* No default value */ - "value" - }, -}; -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_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_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_E2nodeConfigurationUpdateFailure_IEs = { - "E2nodeConfigurationUpdateFailure-IEs", - "E2nodeConfigurationUpdateFailure-IEs", - &asn_OP_SEQUENCE, - 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_E2nodeConfigurationUpdateFailure_IEs_149, - 3, /* Elements count */ - &asn_SPC_E2nodeConfigurationUpdateFailure_IEs_specs_149 /* Additional specs */ -}; - -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.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, -}; -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_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_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_156 = { - "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_156, - 2, /* Elements count */ - &asn_SPC_value_specs_156 /* Additional specs */ -}; - -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_ID, - 0, - { 0, &asn_PER_memb_id_constr_154, memb_id_constraint_153 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ResetRequestIEs_criticality_type, - { 0, &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_156, - select_ResetRequestIEs_value_type, - { 0, &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_153[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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_153 = { - sizeof(struct ResetRequestIEs), - offsetof(struct ResetRequestIEs, _asn_ctx), - asn_MAP_ResetRequestIEs_tag2el_153, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResetRequestIEs = { - "ResetRequestIEs", - "ResetRequestIEs", - &asn_OP_SEQUENCE, - 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_153, - 3, /* Elements count */ - &asn_SPC_ResetRequestIEs_specs_153 /* Additional specs */ -}; - -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.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -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 } /* CriticalityDiagnostics */ -}; -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_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_160 = { - "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_160, - 2, /* Elements count */ - &asn_SPC_value_specs_160 /* Additional specs */ -}; - -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_ID, - 0, - { 0, &asn_PER_memb_id_constr_158, memb_id_constraint_157 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ResetResponseIEs_criticality_type, - { 0, &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_160, - select_ResetResponseIEs_value_type, - { 0, &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_157[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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_157 = { - sizeof(struct ResetResponseIEs), - offsetof(struct ResetResponseIEs, _asn_ctx), - asn_MAP_ResetResponseIEs_tag2el_157, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResetResponseIEs = { - "ResetResponseIEs", - "ResetResponseIEs", - &asn_OP_SEQUENCE, - 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_157, - 3, /* Elements count */ - &asn_SPC_ResetResponseIEs_specs_157 /* Additional specs */ -}; - -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, - &asn_DEF_RANfunctions_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctions-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs__value, choice.RANfunctionsID_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsID_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "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_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_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_164 = { - "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_164, - 3, /* Elements count */ - &asn_SPC_value_specs_164 /* Additional specs */ -}; - -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_ID, - 0, - { 0, &asn_PER_memb_id_constr_162, memb_id_constraint_161 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICserviceUpdate_IEs_criticality_type, - { 0, &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_164, - select_RICserviceUpdate_IEs_value_type, - { 0, &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_161[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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_161 = { - sizeof(struct RICserviceUpdate_IEs), - offsetof(struct RICserviceUpdate_IEs, _asn_ctx), - asn_MAP_RICserviceUpdate_IEs_tag2el_161, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate_IEs = { - "RICserviceUpdate-IEs", - "RICserviceUpdate-IEs", - &asn_OP_SEQUENCE, - 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_161, - 3, /* Elements count */ - &asn_SPC_RICserviceUpdate_IEs_specs_161 /* Additional specs */ -}; - -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, - &asn_DEF_RANfunctionsID_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsID-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs__value, choice.RANfunctionsIDcause_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsIDcause_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "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_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_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_168 = { - "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_168, - 3, /* Elements count */ - &asn_SPC_value_specs_168 /* Additional specs */ -}; - -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_ID, - 0, - { 0, &asn_PER_memb_id_constr_166, memb_id_constraint_165 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICserviceUpdateAcknowledge_IEs_criticality_type, - { 0, &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_168, - select_RICserviceUpdateAcknowledge_IEs_value_type, - { 0, &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_165[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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_165 = { - sizeof(struct RICserviceUpdateAcknowledge_IEs), - offsetof(struct RICserviceUpdateAcknowledge_IEs, _asn_ctx), - asn_MAP_RICserviceUpdateAcknowledge_IEs_tag2el_165, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge_IEs = { - "RICserviceUpdateAcknowledge-IEs", - "RICserviceUpdateAcknowledge-IEs", - &asn_OP_SEQUENCE, - 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_165, - 3, /* Elements count */ - &asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_165 /* Additional specs */ -}; - -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_TransactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TransactionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.TimeToWait), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_TimeToWait, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TimeToWait" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -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 }, /* TimeToWait */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */ - { (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_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_172 = { - "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_172, - 4, /* Elements count */ - &asn_SPC_value_specs_172 /* Additional specs */ -}; - -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_ID, - 0, - { 0, &asn_PER_memb_id_constr_170, memb_id_constraint_169 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICserviceUpdateFailure_IEs_criticality_type, - { 0, &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_172, - select_RICserviceUpdateFailure_IEs_value_type, - { 0, &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_169[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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_169 = { - sizeof(struct RICserviceUpdateFailure_IEs), - offsetof(struct RICserviceUpdateFailure_IEs, _asn_ctx), - asn_MAP_RICserviceUpdateFailure_IEs_tag2el_169, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure_IEs = { - "RICserviceUpdateFailure-IEs", - "RICserviceUpdateFailure-IEs", - &asn_OP_SEQUENCE, - 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_169, - 3, /* Elements count */ - &asn_SPC_RICserviceUpdateFailure_IEs_specs_169 /* Additional specs */ -}; - -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, - &asn_DEF_RANfunctionsID_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "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_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_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_176 = { - "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_176, - 2, /* Elements count */ - &asn_SPC_value_specs_176 /* Additional specs */ -}; - -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_ID, - 0, - { 0, &asn_PER_memb_id_constr_174, memb_id_constraint_173 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICserviceQuery_IEs_criticality_type, - { 0, &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_176, - select_RICserviceQuery_IEs_value_type, - { 0, &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_173[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -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_173 = { - sizeof(struct RICserviceQuery_IEs), - offsetof(struct RICserviceQuery_IEs, _asn_ctx), - asn_MAP_RICserviceQuery_IEs_tag2el_173, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceQuery_IEs = { - "RICserviceQuery-IEs", - "RICserviceQuery-IEs", - &asn_OP_SEQUENCE, - 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_173, - 3, /* Elements count */ - &asn_SPC_RICserviceQuery_IEs_specs_173 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/ProtocolIE-Field.h b/e2sim/src/ASN1c/ProtocolIE-Field.h deleted file mode 100644 index 1efc9c1..0000000 --- a/e2sim/src/ASN1c/ProtocolIE-Field.h +++ /dev/null @@ -1,1254 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _ProtocolIE_Field_H_ -#define _ProtocolIE_Field_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-ID.h" -#include "Criticality.h" -#include "ANY.h" -#include "asn_ioc.h" -#include "RICaction-ToBeSetup-Item.h" -#include "Presence.h" -#include "OPEN_TYPE.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" -#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" -#include "RICrequestID.h" -#include "RANfunctionID.h" -#include "RICsubscriptionDetails.h" -#include "RICaction-Admitted-List.h" -#include "RICaction-NotAdmitted-List.h" -#include "Cause.h" -#include "CriticalityDiagnostics.h" -#include "RICsubscription-List-withCause.h" -#include "RICactionID.h" -#include "RICindicationSN.h" -#include "RICindicationType.h" -#include "RICindicationHeader.h" -#include "RICindicationMessage.h" -#include "RICcallProcessID.h" -#include "RICcontrolHeader.h" -#include "RICcontrolMessage.h" -#include "RICcontrolAckRequest.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 "TimeToWait.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" { -#endif - -/* Dependencies */ -typedef enum RICaction_ToBeSetup_ItemIEs__value_PR { - RICaction_ToBeSetup_ItemIEs__value_PR_NOTHING, /* No components present */ - RICaction_ToBeSetup_ItemIEs__value_PR_RICaction_ToBeSetup_Item -} RICaction_ToBeSetup_ItemIEs__value_PR; -typedef enum RICaction_Admitted_ItemIEs__value_PR { - RICaction_Admitted_ItemIEs__value_PR_NOTHING, /* No components present */ - RICaction_Admitted_ItemIEs__value_PR_RICaction_Admitted_Item -} RICaction_Admitted_ItemIEs__value_PR; -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 -} RANfunction_ItemIEs__value_PR; -typedef enum RANfunctionID_ItemIEs__value_PR { - RANfunctionID_ItemIEs__value_PR_NOTHING, /* No components present */ - RANfunctionID_ItemIEs__value_PR_RANfunctionID_Item -} RANfunctionID_ItemIEs__value_PR; -typedef enum RANfunctionIDcause_ItemIEs__value_PR { - RANfunctionIDcause_ItemIEs__value_PR_NOTHING, /* No components present */ - RANfunctionIDcause_ItemIEs__value_PR_RANfunctionIDcause_Item -} RANfunctionIDcause_ItemIEs__value_PR; -typedef enum RICsubscriptionRequest_IEs__value_PR { - RICsubscriptionRequest_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionRequest_IEs__value_PR_RICrequestID, - RICsubscriptionRequest_IEs__value_PR_RANfunctionID, - RICsubscriptionRequest_IEs__value_PR_RICsubscriptionDetails -} RICsubscriptionRequest_IEs__value_PR; -typedef enum RICsubscriptionResponse_IEs__value_PR { - RICsubscriptionResponse_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionResponse_IEs__value_PR_RICrequestID, - RICsubscriptionResponse_IEs__value_PR_RANfunctionID, - RICsubscriptionResponse_IEs__value_PR_RICaction_Admitted_List, - RICsubscriptionResponse_IEs__value_PR_RICaction_NotAdmitted_List -} RICsubscriptionResponse_IEs__value_PR; -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_Cause, - RICsubscriptionFailure_IEs__value_PR_CriticalityDiagnostics -} RICsubscriptionFailure_IEs__value_PR; -typedef enum RICsubscriptionDeleteRequest_IEs__value_PR { - RICsubscriptionDeleteRequest_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionDeleteRequest_IEs__value_PR_RICrequestID, - RICsubscriptionDeleteRequest_IEs__value_PR_RANfunctionID -} RICsubscriptionDeleteRequest_IEs__value_PR; -typedef enum RICsubscriptionDeleteResponse_IEs__value_PR { - RICsubscriptionDeleteResponse_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionDeleteResponse_IEs__value_PR_RICrequestID, - RICsubscriptionDeleteResponse_IEs__value_PR_RANfunctionID -} RICsubscriptionDeleteResponse_IEs__value_PR; -typedef enum RICsubscriptionDeleteFailure_IEs__value_PR { - RICsubscriptionDeleteFailure_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionDeleteFailure_IEs__value_PR_RICrequestID, - RICsubscriptionDeleteFailure_IEs__value_PR_RANfunctionID, - RICsubscriptionDeleteFailure_IEs__value_PR_Cause, - RICsubscriptionDeleteFailure_IEs__value_PR_CriticalityDiagnostics -} 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, - RICindication_IEs__value_PR_RANfunctionID, - RICindication_IEs__value_PR_RICactionID, - RICindication_IEs__value_PR_RICindicationSN, - RICindication_IEs__value_PR_RICindicationType, - RICindication_IEs__value_PR_RICindicationHeader, - RICindication_IEs__value_PR_RICindicationMessage, - RICindication_IEs__value_PR_RICcallProcessID -} RICindication_IEs__value_PR; -typedef enum RICcontrolRequest_IEs__value_PR { - RICcontrolRequest_IEs__value_PR_NOTHING, /* No components present */ - RICcontrolRequest_IEs__value_PR_RICrequestID, - RICcontrolRequest_IEs__value_PR_RANfunctionID, - RICcontrolRequest_IEs__value_PR_RICcallProcessID, - RICcontrolRequest_IEs__value_PR_RICcontrolHeader, - RICcontrolRequest_IEs__value_PR_RICcontrolMessage, - RICcontrolRequest_IEs__value_PR_RICcontrolAckRequest -} RICcontrolRequest_IEs__value_PR; -typedef enum RICcontrolAcknowledge_IEs__value_PR { - RICcontrolAcknowledge_IEs__value_PR_NOTHING, /* No components present */ - RICcontrolAcknowledge_IEs__value_PR_RICrequestID, - RICcontrolAcknowledge_IEs__value_PR_RANfunctionID, - RICcontrolAcknowledge_IEs__value_PR_RICcallProcessID, - RICcontrolAcknowledge_IEs__value_PR_RICcontrolOutcome -} RICcontrolAcknowledge_IEs__value_PR; -typedef enum RICcontrolFailure_IEs__value_PR { - RICcontrolFailure_IEs__value_PR_NOTHING, /* No components present */ - RICcontrolFailure_IEs__value_PR_RICrequestID, - RICcontrolFailure_IEs__value_PR_RANfunctionID, - RICcontrolFailure_IEs__value_PR_RICcallProcessID, - RICcontrolFailure_IEs__value_PR_Cause, - RICcontrolFailure_IEs__value_PR_RICcontrolOutcome -} RICcontrolFailure_IEs__value_PR; -typedef enum ErrorIndication_IEs__value_PR { - ErrorIndication_IEs__value_PR_NOTHING, /* No components present */ - ErrorIndication_IEs__value_PR_TransactionID, - ErrorIndication_IEs__value_PR_RICrequestID, - ErrorIndication_IEs__value_PR_RANfunctionID, - ErrorIndication_IEs__value_PR_Cause, - ErrorIndication_IEs__value_PR_CriticalityDiagnostics -} ErrorIndication_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_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_E2nodeComponentConfigAdditionAck_List -} E2setupResponseIEs__value_PR; -typedef enum E2setupFailureIEs__value_PR { - E2setupFailureIEs__value_PR_NOTHING, /* No components present */ - E2setupFailureIEs__value_PR_TransactionID, - E2setupFailureIEs__value_PR_Cause, - E2setupFailureIEs__value_PR_TimeToWait, - E2setupFailureIEs__value_PR_CriticalityDiagnostics, - 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_Cause, - E2connectionUpdateFailure_IEs__value_PR_TimeToWait, - E2connectionUpdateFailure_IEs__value_PR_CriticalityDiagnostics -} 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_Cause, - E2nodeConfigurationUpdateFailure_IEs__value_PR_TimeToWait, - E2nodeConfigurationUpdateFailure_IEs__value_PR_CriticalityDiagnostics -} E2nodeConfigurationUpdateFailure_IEs__value_PR; -typedef enum ResetRequestIEs__value_PR { - ResetRequestIEs__value_PR_NOTHING, /* No components present */ - ResetRequestIEs__value_PR_TransactionID, - ResetRequestIEs__value_PR_Cause -} ResetRequestIEs__value_PR; -typedef enum ResetResponseIEs__value_PR { - ResetResponseIEs__value_PR_NOTHING, /* No components present */ - ResetResponseIEs__value_PR_TransactionID, - ResetResponseIEs__value_PR_CriticalityDiagnostics -} 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_TransactionID, - RICserviceUpdateFailure_IEs__value_PR_Cause, - RICserviceUpdateFailure_IEs__value_PR_TimeToWait, - RICserviceUpdateFailure_IEs__value_PR_CriticalityDiagnostics -} 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; - -/* ProtocolIE-Field */ -typedef struct RICaction_ToBeSetup_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICaction_ToBeSetup_ItemIEs__value { - RICaction_ToBeSetup_ItemIEs__value_PR present; - union RICaction_ToBeSetup_ItemIEs__value_u { - RICaction_ToBeSetup_Item_t RICaction_ToBeSetup_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; -} RICaction_ToBeSetup_ItemIEs_t; -typedef struct RICaction_Admitted_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICaction_Admitted_ItemIEs__value { - RICaction_Admitted_ItemIEs__value_PR present; - union RICaction_Admitted_ItemIEs__value_u { - RICaction_Admitted_Item_t RICaction_Admitted_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; -} RICaction_Admitted_ItemIEs_t; -typedef struct RICaction_NotAdmitted_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICaction_NotAdmitted_ItemIEs__value { - RICaction_NotAdmitted_ItemIEs__value_PR present; - union RICaction_NotAdmitted_ItemIEs__value_u { - RICaction_NotAdmitted_Item_t RICaction_NotAdmitted_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; -} RICaction_NotAdmitted_ItemIEs_t; -typedef struct RICsubscription_withCause_ItemIEs { - ProtocolIE_ID_t id; - Criticality_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_ID_t id; - Criticality_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_ID_t id; - Criticality_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_ID_t id; - Criticality_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_ID_t id; - Criticality_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_ID_t id; - Criticality_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_ID_t id; - Criticality_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_ID_t id; - Criticality_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_ID_t id; - Criticality_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_ID_t id; - Criticality_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_ID_t id; - Criticality_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_ID_t id; - Criticality_t criticality; - struct RANfunction_ItemIEs__value { - RANfunction_ItemIEs__value_PR present; - union RANfunction_ItemIEs__value_u { - RANfunction_Item_t RANfunction_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; -} RANfunction_ItemIEs_t; -typedef struct RANfunctionID_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RANfunctionID_ItemIEs__value { - RANfunctionID_ItemIEs__value_PR present; - union RANfunctionID_ItemIEs__value_u { - RANfunctionID_Item_t RANfunctionID_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; -} RANfunctionID_ItemIEs_t; -typedef struct RANfunctionIDcause_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RANfunctionIDcause_ItemIEs__value { - RANfunctionIDcause_ItemIEs__value_PR present; - union RANfunctionIDcause_ItemIEs__value_u { - RANfunctionIDcause_Item_t RANfunctionIDcause_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; -} RANfunctionIDcause_ItemIEs_t; -typedef struct RICsubscriptionRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionRequest_IEs__value { - RICsubscriptionRequest_IEs__value_PR present; - union RICsubscriptionRequest_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICsubscriptionDetails_t RICsubscriptionDetails; - } 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; -} RICsubscriptionRequest_IEs_t; -typedef struct RICsubscriptionResponse_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionResponse_IEs__value { - RICsubscriptionResponse_IEs__value_PR present; - union RICsubscriptionResponse_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICaction_Admitted_List_t RICaction_Admitted_List; - RICaction_NotAdmitted_List_t RICaction_NotAdmitted_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; -} RICsubscriptionResponse_IEs_t; -typedef struct RICsubscriptionFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionFailure_IEs__value { - RICsubscriptionFailure_IEs__value_PR present; - union RICsubscriptionFailure_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - Cause_t Cause; - CriticalityDiagnostics_t CriticalityDiagnostics; - } 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; -} RICsubscriptionFailure_IEs_t; -typedef struct RICsubscriptionDeleteRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionDeleteRequest_IEs__value { - RICsubscriptionDeleteRequest_IEs__value_PR present; - union RICsubscriptionDeleteRequest_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - } 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; -} RICsubscriptionDeleteRequest_IEs_t; -typedef struct RICsubscriptionDeleteResponse_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionDeleteResponse_IEs__value { - RICsubscriptionDeleteResponse_IEs__value_PR present; - union RICsubscriptionDeleteResponse_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - } 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; -} RICsubscriptionDeleteResponse_IEs_t; -typedef struct RICsubscriptionDeleteFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionDeleteFailure_IEs__value { - RICsubscriptionDeleteFailure_IEs__value_PR present; - union RICsubscriptionDeleteFailure_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - Cause_t Cause; - CriticalityDiagnostics_t CriticalityDiagnostics; - } 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; -} RICsubscriptionDeleteFailure_IEs_t; -typedef struct RICsubscriptionDeleteRequired_IEs { - ProtocolIE_ID_t id; - Criticality_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_ID_t id; - Criticality_t criticality; - struct RICindication_IEs__value { - RICindication_IEs__value_PR present; - union RICindication_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICactionID_t RICactionID; - RICindicationSN_t RICindicationSN; - RICindicationType_t RICindicationType; - RICindicationHeader_t RICindicationHeader; - RICindicationMessage_t RICindicationMessage; - RICcallProcessID_t RICcallProcessID; - } 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; -} RICindication_IEs_t; -typedef struct RICcontrolRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICcontrolRequest_IEs__value { - RICcontrolRequest_IEs__value_PR present; - union RICcontrolRequest_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICcallProcessID_t RICcallProcessID; - RICcontrolHeader_t RICcontrolHeader; - RICcontrolMessage_t RICcontrolMessage; - RICcontrolAckRequest_t RICcontrolAckRequest; - } 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; -} RICcontrolRequest_IEs_t; -typedef struct RICcontrolAcknowledge_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICcontrolAcknowledge_IEs__value { - RICcontrolAcknowledge_IEs__value_PR present; - union RICcontrolAcknowledge_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICcallProcessID_t RICcallProcessID; - RICcontrolOutcome_t RICcontrolOutcome; - } 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; -} RICcontrolAcknowledge_IEs_t; -typedef struct RICcontrolFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICcontrolFailure_IEs__value { - RICcontrolFailure_IEs__value_PR present; - union RICcontrolFailure_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICcallProcessID_t RICcallProcessID; - Cause_t Cause; - RICcontrolOutcome_t RICcontrolOutcome; - } 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; -} RICcontrolFailure_IEs_t; -typedef struct ErrorIndication_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ErrorIndication_IEs__value { - ErrorIndication_IEs__value_PR present; - union ErrorIndication_IEs__value_u { - TransactionID_t TransactionID; - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - Cause_t Cause; - CriticalityDiagnostics_t CriticalityDiagnostics; - } 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; -} ErrorIndication_IEs_t; -typedef struct E2setupRequestIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - 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 */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2setupRequestIEs_t; -typedef struct E2setupResponseIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - 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 */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2setupResponseIEs_t; -typedef struct E2setupFailureIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E2setupFailureIEs__value { - E2setupFailureIEs__value_PR present; - union E2setupFailureIEs__value_u { - TransactionID_t TransactionID; - Cause_t Cause; - TimeToWait_t TimeToWait; - CriticalityDiagnostics_t CriticalityDiagnostics; - TNLinformation_t TNLinformation; - } 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; -} E2setupFailureIEs_t; -typedef struct E2connectionUpdate_IEs { - ProtocolIE_ID_t id; - Criticality_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_ID_t id; - Criticality_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_ID_t id; - Criticality_t criticality; - struct E2connectionUpdateFailure_IEs__value { - E2connectionUpdateFailure_IEs__value_PR present; - union E2connectionUpdateFailure_IEs__value_u { - TransactionID_t TransactionID; - Cause_t Cause; - TimeToWait_t TimeToWait; - CriticalityDiagnostics_t CriticalityDiagnostics; - } 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_ID_t id; - Criticality_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_ID_t id; - Criticality_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_ID_t id; - Criticality_t criticality; - struct E2nodeConfigurationUpdateFailure_IEs__value { - E2nodeConfigurationUpdateFailure_IEs__value_PR present; - union E2nodeConfigurationUpdateFailure_IEs__value_u { - TransactionID_t TransactionID; - Cause_t Cause; - TimeToWait_t TimeToWait; - CriticalityDiagnostics_t CriticalityDiagnostics; - } 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_ID_t id; - Criticality_t criticality; - struct ResetRequestIEs__value { - ResetRequestIEs__value_PR present; - union ResetRequestIEs__value_u { - TransactionID_t TransactionID; - Cause_t Cause; - } 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; -} ResetRequestIEs_t; -typedef struct ResetResponseIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ResetResponseIEs__value { - ResetResponseIEs__value_PR present; - union ResetResponseIEs__value_u { - TransactionID_t TransactionID; - CriticalityDiagnostics_t CriticalityDiagnostics; - } 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; -} ResetResponseIEs_t; -typedef struct RICserviceUpdate_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - 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; - - /* 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; -} RICserviceUpdate_IEs_t; -typedef struct RICserviceUpdateAcknowledge_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - 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; - - /* 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; -} RICserviceUpdateAcknowledge_IEs_t; -typedef struct RICserviceUpdateFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICserviceUpdateFailure_IEs__value { - RICserviceUpdateFailure_IEs__value_PR present; - union RICserviceUpdateFailure_IEs__value_u { - TransactionID_t TransactionID; - Cause_t Cause; - TimeToWait_t TimeToWait; - CriticalityDiagnostics_t CriticalityDiagnostics; - } 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; -} RICserviceUpdateFailure_IEs_t; -typedef struct RICserviceQuery_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICserviceQuery_IEs__value { - RICserviceQuery_IEs__value_PR present; - union RICserviceQuery_IEs__value_u { - TransactionID_t TransactionID; - RANfunctionsID_List_t RANfunctionsID_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; -} RICserviceQuery_IEs_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1; -extern asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_ItemIEs_1[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_ItemIEs_specs_5; -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_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_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_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_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_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_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_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_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_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_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_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_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_109; -extern asn_TYPE_member_t asn_MBR_RICcontrolFailure_IEs_109[3]; -extern asn_TYPE_descriptor_t asn_DEF_ErrorIndication_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_IEs_specs_113; -extern asn_TYPE_member_t asn_MBR_ErrorIndication_IEs_113[3]; -extern asn_TYPE_descriptor_t asn_DEF_E2setupRequestIEs; -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_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_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_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_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_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_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_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_173; -extern asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_173[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_Field_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/ProtocolIE-FieldPair.c b/e2sim/src/ASN1c/ProtocolIE-FieldPair.c deleted file mode 100644 index 78bc305..0000000 --- a/e2sim/src/ASN1c/ProtocolIE-FieldPair.c +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "ProtocolIE-FieldPair.h" - diff --git a/e2sim/src/ASN1c/ProtocolIE-FieldPair.h b/e2sim/src/ASN1c/ProtocolIE-FieldPair.h deleted file mode 100644 index 843a218..0000000 --- a/e2sim/src/ASN1c/ProtocolIE-FieldPair.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _ProtocolIE_FieldPair_H_ -#define _ProtocolIE_FieldPair_H_ - - -#include "asn_application.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_FieldPair_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/ProtocolIE-ID.c b/e2sim/src/ASN1c/ProtocolIE-ID.c deleted file mode 100644 index c859d4e..0000000 --- a/e2sim/src/ASN1c/ProtocolIE-ID.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "ProtocolIE-ID.h" - -int -ProtocolIE_ID_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 <= 65535)) { - /* 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. - */ -asn_per_constraints_t asn_PER_type_ProtocolIE_ID_constr_1 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_ProtocolIE_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ID = { - "ProtocolIE-ID", - "ProtocolIE-ID", - &asn_OP_NativeInteger, - asn_DEF_ProtocolIE_ID_tags_1, - sizeof(asn_DEF_ProtocolIE_ID_tags_1) - /sizeof(asn_DEF_ProtocolIE_ID_tags_1[0]), /* 1 */ - asn_DEF_ProtocolIE_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_ID_tags_1) - /sizeof(asn_DEF_ProtocolIE_ID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_ID_constr_1, ProtocolIE_ID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/src/ASN1c/ProtocolIE-ID.h b/e2sim/src/ASN1c/ProtocolIE-ID.h deleted file mode 100644 index 697ebe3..0000000 --- a/e2sim/src/ASN1c/ProtocolIE-ID.h +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _ProtocolIE_ID_H_ -#define _ProtocolIE_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ProtocolIE-ID */ -typedef long ProtocolIE_ID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ProtocolIE_ID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ID; -asn_struct_free_f ProtocolIE_ID_free; -asn_struct_print_f ProtocolIE_ID_print; -asn_constr_check_f ProtocolIE_ID_constraint; -ber_type_decoder_f ProtocolIE_ID_decode_ber; -der_type_encoder_f ProtocolIE_ID_encode_der; -xer_type_decoder_f ProtocolIE_ID_decode_xer; -xer_type_encoder_f ProtocolIE_ID_encode_xer; -per_type_decoder_f ProtocolIE_ID_decode_uper; -per_type_encoder_f ProtocolIE_ID_encode_uper; -per_type_decoder_f ProtocolIE_ID_decode_aper; -per_type_encoder_f ProtocolIE_ID_encode_aper; -#define ProtocolIE_ID_id_Cause ((ProtocolIE_ID_t)1) -#define ProtocolIE_ID_id_CriticalityDiagnostics ((ProtocolIE_ID_t)2) -#define ProtocolIE_ID_id_GlobalE2node_ID ((ProtocolIE_ID_t)3) -#define ProtocolIE_ID_id_GlobalRIC_ID ((ProtocolIE_ID_t)4) -#define ProtocolIE_ID_id_RANfunctionID ((ProtocolIE_ID_t)5) -#define ProtocolIE_ID_id_RANfunctionID_Item ((ProtocolIE_ID_t)6) -#define ProtocolIE_ID_id_RANfunctionIEcause_Item ((ProtocolIE_ID_t)7) -#define ProtocolIE_ID_id_RANfunction_Item ((ProtocolIE_ID_t)8) -#define ProtocolIE_ID_id_RANfunctionsAccepted ((ProtocolIE_ID_t)9) -#define ProtocolIE_ID_id_RANfunctionsAdded ((ProtocolIE_ID_t)10) -#define ProtocolIE_ID_id_RANfunctionsDeleted ((ProtocolIE_ID_t)11) -#define ProtocolIE_ID_id_RANfunctionsModified ((ProtocolIE_ID_t)12) -#define ProtocolIE_ID_id_RANfunctionsRejected ((ProtocolIE_ID_t)13) -#define ProtocolIE_ID_id_RICaction_Admitted_Item ((ProtocolIE_ID_t)14) -#define ProtocolIE_ID_id_RICactionID ((ProtocolIE_ID_t)15) -#define ProtocolIE_ID_id_RICaction_NotAdmitted_Item ((ProtocolIE_ID_t)16) -#define ProtocolIE_ID_id_RICactions_Admitted ((ProtocolIE_ID_t)17) -#define ProtocolIE_ID_id_RICactions_NotAdmitted ((ProtocolIE_ID_t)18) -#define ProtocolIE_ID_id_RICaction_ToBeSetup_Item ((ProtocolIE_ID_t)19) -#define ProtocolIE_ID_id_RICcallProcessID ((ProtocolIE_ID_t)20) -#define ProtocolIE_ID_id_RICcontrolAckRequest ((ProtocolIE_ID_t)21) -#define ProtocolIE_ID_id_RICcontrolHeader ((ProtocolIE_ID_t)22) -#define ProtocolIE_ID_id_RICcontrolMessage ((ProtocolIE_ID_t)23) -#define ProtocolIE_ID_id_RICcontrolStatus ((ProtocolIE_ID_t)24) -#define ProtocolIE_ID_id_RICindicationHeader ((ProtocolIE_ID_t)25) -#define ProtocolIE_ID_id_RICindicationMessage ((ProtocolIE_ID_t)26) -#define ProtocolIE_ID_id_RICindicationSN ((ProtocolIE_ID_t)27) -#define ProtocolIE_ID_id_RICindicationType ((ProtocolIE_ID_t)28) -#define ProtocolIE_ID_id_RICrequestID ((ProtocolIE_ID_t)29) -#define ProtocolIE_ID_id_RICsubscriptionDetails ((ProtocolIE_ID_t)30) -#define ProtocolIE_ID_id_TimeToWait ((ProtocolIE_ID_t)31) -#define ProtocolIE_ID_id_RICcontrolOutcome ((ProtocolIE_ID_t)32) -#define ProtocolIE_ID_id_E2nodeComponentConfigUpdate ((ProtocolIE_ID_t)33) -#define ProtocolIE_ID_id_E2nodeComponentConfigUpdate_Item ((ProtocolIE_ID_t)34) -#define ProtocolIE_ID_id_E2nodeComponentConfigUpdateAck ((ProtocolIE_ID_t)35) -#define ProtocolIE_ID_id_E2nodeComponentConfigUpdateAck_Item ((ProtocolIE_ID_t)36) -#define ProtocolIE_ID_id_E2connectionSetup ((ProtocolIE_ID_t)39) -#define ProtocolIE_ID_id_E2connectionSetupFailed ((ProtocolIE_ID_t)40) -#define ProtocolIE_ID_id_E2connectionSetupFailed_Item ((ProtocolIE_ID_t)41) -#define ProtocolIE_ID_id_E2connectionFailed_Item ((ProtocolIE_ID_t)42) -#define ProtocolIE_ID_id_E2connectionUpdate_Item ((ProtocolIE_ID_t)43) -#define ProtocolIE_ID_id_E2connectionUpdateAdd ((ProtocolIE_ID_t)44) -#define ProtocolIE_ID_id_E2connectionUpdateModify ((ProtocolIE_ID_t)45) -#define ProtocolIE_ID_id_E2connectionUpdateRemove ((ProtocolIE_ID_t)46) -#define ProtocolIE_ID_id_E2connectionUpdateRemove_Item ((ProtocolIE_ID_t)47) -#define ProtocolIE_ID_id_TNLinformation ((ProtocolIE_ID_t)48) -#define ProtocolIE_ID_id_TransactionID ((ProtocolIE_ID_t)49) -#define ProtocolIE_ID_id_E2nodeComponentConfigAddition ((ProtocolIE_ID_t)50) -#define ProtocolIE_ID_id_E2nodeComponentConfigAddition_Item ((ProtocolIE_ID_t)51) -#define ProtocolIE_ID_id_E2nodeComponentConfigAdditionAck ((ProtocolIE_ID_t)52) -#define ProtocolIE_ID_id_E2nodeComponentConfigAdditionAck_Item ((ProtocolIE_ID_t)53) -#define ProtocolIE_ID_id_E2nodeComponentConfigRemoval ((ProtocolIE_ID_t)54) -#define ProtocolIE_ID_id_E2nodeComponentConfigRemoval_Item ((ProtocolIE_ID_t)55) -#define ProtocolIE_ID_id_E2nodeComponentConfigRemovalAck ((ProtocolIE_ID_t)56) -#define ProtocolIE_ID_id_E2nodeComponentConfigRemovalAck_Item ((ProtocolIE_ID_t)57) -#define ProtocolIE_ID_id_E2nodeTNLassociationRemoval ((ProtocolIE_ID_t)58) -#define ProtocolIE_ID_id_E2nodeTNLassociationRemoval_Item ((ProtocolIE_ID_t)59) -#define ProtocolIE_ID_id_RICsubscriptionToBeRemoved ((ProtocolIE_ID_t)50) -#define ProtocolIE_ID_id_RICsubscription_withCause_Item ((ProtocolIE_ID_t)51) - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/ProtocolIE-SingleContainer.c b/e2sim/src/ASN1c/ProtocolIE-SingleContainer.c deleted file mode 100644 index c9581cf..0000000 --- a/e2sim/src/ASN1c/ProtocolIE-SingleContainer.c +++ /dev/null @@ -1,400 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "ProtocolIE-SingleContainer.h" - -/* - * This type is implemented using RICaction_ToBeSetup_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using RICaction_Admitted_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * 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. - */ -/* - * This type is implemented using RANfunctionID_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using RANfunctionIDcause_ItemIEs, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P0_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P0 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P0_tags_1, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P0_tags_1[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P0_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P0_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_SingleContainer_1920P1_tags_2[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P1 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P1_tags_2, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P1_tags_2) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P1_tags_2[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P1_tags_2, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P1_tags_2) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P1_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_SingleContainer_1920P2_tags_3[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P2 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P2_tags_3, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P2_tags_3) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P2_tags_3[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P2_tags_3, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P2_tags_3) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P2_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_SingleContainer_1920P3_tags_4[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P3 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P3_tags_4, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P3_tags_4) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P3_tags_4[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P3_tags_4, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P3_tags_4) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P3_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_SingleContainer_1920P4_tags_5[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P4 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P4_tags_5, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P4_tags_5) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P4_tags_5[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P4_tags_5, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P4_tags_5) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P4_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_SingleContainer_1920P5_tags_6[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P5 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P5_tags_6, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P5_tags_6) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P5_tags_6[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P5_tags_6, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P5_tags_6) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P5_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_SingleContainer_1920P6_tags_7[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P6 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P6_tags_7, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P6_tags_7) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P6_tags_7[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P6_tags_7, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P6_tags_7) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P6_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_SingleContainer_1920P7_tags_8[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P7 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P7_tags_8, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P7_tags_8) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P7_tags_8[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P7_tags_8, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P7_tags_8) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P7_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_SingleContainer_1920P8_tags_9[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P8 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P8_tags_9, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P8_tags_9) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P8_tags_9[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P8_tags_9, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P8_tags_9) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P8_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_SingleContainer_1920P9_tags_10[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P9 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P9_tags_10, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P9_tags_10) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P9_tags_10[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P9_tags_10, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P9_tags_10) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P9_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_SingleContainer_1920P10_tags_11[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P10 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P10_tags_11, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P10_tags_11) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P10_tags_11[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P10_tags_11, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P10_tags_11) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P10_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_SingleContainer_1920P11_tags_12[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P11 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P11_tags_12, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P11_tags_12) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P11_tags_12[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P11_tags_12, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P11_tags_12) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P11_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_SingleContainer_1920P12_tags_13[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P12 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P12_tags_13, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P12_tags_13) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P12_tags_13[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P12_tags_13, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P12_tags_13) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P12_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_SingleContainer_1920P13_tags_14[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P13 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P13_tags_14, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P13_tags_14) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P13_tags_14[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P13_tags_14, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P13_tags_14) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P13_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_SingleContainer_1920P14_tags_15[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P14 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P14_tags_15, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P14_tags_15) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P14_tags_15[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P14_tags_15, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P14_tags_15) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P14_tags_15[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunction_ItemIEs_57, - 3, /* Elements count */ - &asn_SPC_RANfunction_ItemIEs_specs_57 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P15_tags_16[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P15 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P15_tags_16, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P15_tags_16) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P15_tags_16[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P15_tags_16, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P15_tags_16) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P15_tags_16[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionID_ItemIEs_61, - 3, /* Elements count */ - &asn_SPC_RANfunctionID_ItemIEs_specs_61 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P16_tags_17[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P16 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1920P16_tags_17, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P16_tags_17) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P16_tags_17[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1920P16_tags_17, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P16_tags_17) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P16_tags_17[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionIDcause_ItemIEs_65, - 3, /* Elements count */ - &asn_SPC_RANfunctionIDcause_ItemIEs_specs_65 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/ProtocolIE-SingleContainer.h b/e2sim/src/ASN1c/ProtocolIE-SingleContainer.h deleted file mode 100644 index 99dd596..0000000 --- a/e2sim/src/ASN1c/ProtocolIE-SingleContainer.h +++ /dev/null @@ -1,251 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _ProtocolIE_SingleContainer_H_ -#define _ProtocolIE_SingleContainer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Field.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ProtocolIE-SingleContainer */ -typedef RICaction_ToBeSetup_ItemIEs_t ProtocolIE_SingleContainer_1920P0_t; -typedef RICaction_Admitted_ItemIEs_t ProtocolIE_SingleContainer_1920P1_t; -typedef RICaction_NotAdmitted_ItemIEs_t ProtocolIE_SingleContainer_1920P2_t; -typedef RICsubscription_withCause_ItemIEs_t ProtocolIE_SingleContainer_1920P3_t; -typedef E2connectionUpdate_ItemIEs_t ProtocolIE_SingleContainer_1920P4_t; -typedef E2connectionUpdateRemove_ItemIEs_t ProtocolIE_SingleContainer_1920P5_t; -typedef E2connectionSetupFailed_ItemIEs_t ProtocolIE_SingleContainer_1920P6_t; -typedef E2nodeComponentConfigAddition_ItemIEs_t ProtocolIE_SingleContainer_1920P7_t; -typedef E2nodeComponentConfigUpdate_ItemIEs_t ProtocolIE_SingleContainer_1920P8_t; -typedef E2nodeComponentConfigRemoval_ItemIEs_t ProtocolIE_SingleContainer_1920P9_t; -typedef E2nodeTNLassociationRemoval_ItemIEs_t ProtocolIE_SingleContainer_1920P10_t; -typedef E2nodeComponentConfigAdditionAck_ItemIEs_t ProtocolIE_SingleContainer_1920P11_t; -typedef E2nodeComponentConfigUpdateAck_ItemIEs_t ProtocolIE_SingleContainer_1920P12_t; -typedef E2nodeComponentConfigRemovalAck_ItemIEs_t ProtocolIE_SingleContainer_1920P13_t; -typedef RANfunction_ItemIEs_t ProtocolIE_SingleContainer_1920P14_t; -typedef RANfunctionID_ItemIEs_t ProtocolIE_SingleContainer_1920P15_t; -typedef RANfunctionIDcause_ItemIEs_t ProtocolIE_SingleContainer_1920P16_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P0; -asn_struct_free_f ProtocolIE_SingleContainer_1920P0_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P0_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P0_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P0_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P0_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P0_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P0_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P0_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P0_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P0_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P0_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P1; -asn_struct_free_f ProtocolIE_SingleContainer_1920P1_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P1_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P1_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P1_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P1_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P1_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P1_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P1_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P1_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P1_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P1_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P2; -asn_struct_free_f ProtocolIE_SingleContainer_1920P2_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P2_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P2_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P2_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P2_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P2_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P2_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P2_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P2_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P2_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P2_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P3; -asn_struct_free_f ProtocolIE_SingleContainer_1920P3_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P3_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P3_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P3_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P3_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P3_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P3_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P3_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P3_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P3_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P3_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P4; -asn_struct_free_f ProtocolIE_SingleContainer_1920P4_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P4_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P4_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P4_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P4_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P4_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P4_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P4_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P4_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P4_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P4_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P5; -asn_struct_free_f ProtocolIE_SingleContainer_1920P5_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P5_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P5_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P5_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P5_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P5_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P5_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P5_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P5_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P5_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P5_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P6; -asn_struct_free_f ProtocolIE_SingleContainer_1920P6_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P6_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P6_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P6_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P6_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P6_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P6_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P6_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P6_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P6_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P6_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P7; -asn_struct_free_f ProtocolIE_SingleContainer_1920P7_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P7_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P7_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P7_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P7_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P7_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P7_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P7_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P7_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P7_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P7_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P8; -asn_struct_free_f ProtocolIE_SingleContainer_1920P8_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P8_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P8_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P8_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P8_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P8_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P8_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P8_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P8_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P8_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P8_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P9; -asn_struct_free_f ProtocolIE_SingleContainer_1920P9_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P9_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P9_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P9_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P9_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P9_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P9_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P9_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P9_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P9_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P9_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P10; -asn_struct_free_f ProtocolIE_SingleContainer_1920P10_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P10_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P10_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P10_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P10_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P10_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P10_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P10_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P10_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P10_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P10_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P11; -asn_struct_free_f ProtocolIE_SingleContainer_1920P11_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P11_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P11_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P11_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P11_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P11_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P11_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P11_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P11_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P11_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P11_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P12; -asn_struct_free_f ProtocolIE_SingleContainer_1920P12_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P12_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P12_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P12_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P12_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P12_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P12_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P12_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P12_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P12_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P12_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P13; -asn_struct_free_f ProtocolIE_SingleContainer_1920P13_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P13_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P13_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P13_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P13_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P13_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P13_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P13_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P13_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P13_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P13_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P14; -asn_struct_free_f ProtocolIE_SingleContainer_1920P14_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P14_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P14_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P14_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P14_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P14_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P14_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P14_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P14_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P14_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P14_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P15; -asn_struct_free_f ProtocolIE_SingleContainer_1920P15_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P15_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P15_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P15_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P15_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P15_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P15_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P15_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P15_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P15_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P15_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P16; -asn_struct_free_f ProtocolIE_SingleContainer_1920P16_free; -asn_struct_print_f ProtocolIE_SingleContainer_1920P16_print; -asn_constr_check_f ProtocolIE_SingleContainer_1920P16_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1920P16_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1920P16_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1920P16_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1920P16_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1920P16_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P16_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1920P16_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1920P16_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_SingleContainer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RANfunction-Item.c b/e2sim/src/ASN1c/RANfunction-Item.c deleted file mode 100644 index 9b52991..0000000 --- a/e2sim/src/ASN1c/RANfunction-Item.c +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RANfunction-Item.h" - -static asn_TYPE_member_t asn_MBR_RANfunction_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Item, ranFunctionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 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 RANfunction_Item, ranFunctionDefinition), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunctionDefinition, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunctionDefinition" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Item, ranFunctionRevision), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunctionRevision, - 0, - { 0, 0, 0 }, - 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)) -}; -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 | (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, - 4, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunction_Item = { - "RANfunction-Item", - "RANfunction-Item", - &asn_OP_SEQUENCE, - asn_DEF_RANfunction_Item_tags_1, - sizeof(asn_DEF_RANfunction_Item_tags_1) - /sizeof(asn_DEF_RANfunction_Item_tags_1[0]), /* 1 */ - asn_DEF_RANfunction_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunction_Item_tags_1) - /sizeof(asn_DEF_RANfunction_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunction_Item_1, - 4, /* Elements count */ - &asn_SPC_RANfunction_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RANfunction-Item.h b/e2sim/src/ASN1c/RANfunction-Item.h deleted file mode 100644 index 172e34f..0000000 --- a/e2sim/src/ASN1c/RANfunction-Item.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RANfunction_Item_H_ -#define _RANfunction_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RANfunctionID.h" -#include "RANfunctionDefinition.h" -#include "RANfunctionRevision.h" -#include "RANfunctionOID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunction-Item */ -typedef struct RANfunction_Item { - RANfunctionID_t ranFunctionID; - RANfunctionDefinition_t ranFunctionDefinition; - RANfunctionRevision_t ranFunctionRevision; - RANfunctionOID_t ranFunctionOID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunction_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunction_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunction_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RANfunctionDefinition.c b/e2sim/src/ASN1c/RANfunctionDefinition.c deleted file mode 100644 index 0243686..0000000 --- a/e2sim/src/ASN1c/RANfunctionDefinition.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RANfunctionDefinition.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RANfunctionDefinition_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionDefinition = { - "RANfunctionDefinition", - "RANfunctionDefinition", - &asn_OP_OCTET_STRING, - asn_DEF_RANfunctionDefinition_tags_1, - sizeof(asn_DEF_RANfunctionDefinition_tags_1) - /sizeof(asn_DEF_RANfunctionDefinition_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionDefinition_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionDefinition_tags_1) - /sizeof(asn_DEF_RANfunctionDefinition_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RANfunctionDefinition.h b/e2sim/src/ASN1c/RANfunctionDefinition.h deleted file mode 100644 index c10ca55..0000000 --- a/e2sim/src/ASN1c/RANfunctionDefinition.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RANfunctionDefinition_H_ -#define _RANfunctionDefinition_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionDefinition */ -typedef OCTET_STRING_t RANfunctionDefinition_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionDefinition; -asn_struct_free_f RANfunctionDefinition_free; -asn_struct_print_f RANfunctionDefinition_print; -asn_constr_check_f RANfunctionDefinition_constraint; -ber_type_decoder_f RANfunctionDefinition_decode_ber; -der_type_encoder_f RANfunctionDefinition_encode_der; -xer_type_decoder_f RANfunctionDefinition_decode_xer; -xer_type_encoder_f RANfunctionDefinition_encode_xer; -per_type_decoder_f RANfunctionDefinition_decode_uper; -per_type_encoder_f RANfunctionDefinition_encode_uper; -per_type_decoder_f RANfunctionDefinition_decode_aper; -per_type_encoder_f RANfunctionDefinition_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionDefinition_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RANfunctionID-Item.c b/e2sim/src/ASN1c/RANfunctionID-Item.c deleted file mode 100644 index 9b88717..0000000 --- a/e2sim/src/ASN1c/RANfunctionID-Item.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RANfunctionID-Item.h" - -static asn_TYPE_member_t asn_MBR_RANfunctionID_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_Item, ranFunctionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 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 RANfunctionID_Item, ranFunctionRevision), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunctionRevision, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunctionRevision" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionID_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunctionID_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunctionID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ranFunctionRevision */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_Item_specs_1 = { - sizeof(struct RANfunctionID_Item), - offsetof(struct RANfunctionID_Item, _asn_ctx), - asn_MAP_RANfunctionID_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_RANfunctionID_Item = { - "RANfunctionID-Item", - "RANfunctionID-Item", - &asn_OP_SEQUENCE, - asn_DEF_RANfunctionID_Item_tags_1, - sizeof(asn_DEF_RANfunctionID_Item_tags_1) - /sizeof(asn_DEF_RANfunctionID_Item_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionID_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionID_Item_tags_1) - /sizeof(asn_DEF_RANfunctionID_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionID_Item_1, - 2, /* Elements count */ - &asn_SPC_RANfunctionID_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RANfunctionID-Item.h b/e2sim/src/ASN1c/RANfunctionID-Item.h deleted file mode 100644 index e73fc37..0000000 --- a/e2sim/src/ASN1c/RANfunctionID-Item.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RANfunctionID_Item_H_ -#define _RANfunctionID_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RANfunctionID.h" -#include "RANfunctionRevision.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionID-Item */ -typedef struct RANfunctionID_Item { - RANfunctionID_t ranFunctionID; - RANfunctionRevision_t ranFunctionRevision; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionID_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionID_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RANfunctionID.c b/e2sim/src/ASN1c/RANfunctionID.c deleted file mode 100644 index 21e1cb9..0000000 --- a/e2sim/src/ASN1c/RANfunctionID.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RANfunctionID.h" - -int -RANfunctionID_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 <= 4095)) { - /* 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. - */ -asn_per_constraints_t asn_PER_type_RANfunctionID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionID = { - "RANfunctionID", - "RANfunctionID", - &asn_OP_NativeInteger, - asn_DEF_RANfunctionID_tags_1, - sizeof(asn_DEF_RANfunctionID_tags_1) - /sizeof(asn_DEF_RANfunctionID_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionID_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionID_tags_1) - /sizeof(asn_DEF_RANfunctionID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctionID_constr_1, RANfunctionID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/src/ASN1c/RANfunctionID.h b/e2sim/src/ASN1c/RANfunctionID.h deleted file mode 100644 index 840a432..0000000 --- a/e2sim/src/ASN1c/RANfunctionID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RANfunctionID_H_ -#define _RANfunctionID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionID */ -typedef long RANfunctionID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RANfunctionID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID; -asn_struct_free_f RANfunctionID_free; -asn_struct_print_f RANfunctionID_print; -asn_constr_check_f RANfunctionID_constraint; -ber_type_decoder_f RANfunctionID_decode_ber; -der_type_encoder_f RANfunctionID_encode_der; -xer_type_decoder_f RANfunctionID_decode_xer; -xer_type_encoder_f RANfunctionID_encode_xer; -per_type_decoder_f RANfunctionID_decode_uper; -per_type_encoder_f RANfunctionID_encode_uper; -per_type_decoder_f RANfunctionID_decode_aper; -per_type_encoder_f RANfunctionID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RANfunctionIDcause-Item.c b/e2sim/src/ASN1c/RANfunctionIDcause-Item.c deleted file mode 100644 index c35e8b6..0000000 --- a/e2sim/src/ASN1c/RANfunctionIDcause-Item.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RANfunctionIDcause-Item.h" - -static asn_TYPE_member_t asn_MBR_RANfunctionIDcause_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_Item, ranFunctionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 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 RANfunctionIDcause_Item, cause), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cause" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionIDcause_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunctionIDcause_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunctionID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cause */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_Item_specs_1 = { - sizeof(struct RANfunctionIDcause_Item), - offsetof(struct RANfunctionIDcause_Item, _asn_ctx), - asn_MAP_RANfunctionIDcause_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_RANfunctionIDcause_Item = { - "RANfunctionIDcause-Item", - "RANfunctionIDcause-Item", - &asn_OP_SEQUENCE, - asn_DEF_RANfunctionIDcause_Item_tags_1, - sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1) - /sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionIDcause_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1) - /sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionIDcause_Item_1, - 2, /* Elements count */ - &asn_SPC_RANfunctionIDcause_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RANfunctionIDcause-Item.h b/e2sim/src/ASN1c/RANfunctionIDcause-Item.h deleted file mode 100644 index e1a6da2..0000000 --- a/e2sim/src/ASN1c/RANfunctionIDcause-Item.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RANfunctionIDcause_Item_H_ -#define _RANfunctionIDcause_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RANfunctionID.h" -#include "Cause.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionIDcause-Item */ -typedef struct RANfunctionIDcause_Item { - RANfunctionID_t ranFunctionID; - Cause_t cause; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionIDcause_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionIDcause_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RANfunctionOID.c b/e2sim/src/ASN1c/RANfunctionOID.c deleted file mode 100644 index 160e518..0000000 --- a/e2sim/src/ASN1c/RANfunctionOID.c +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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. - */ -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 */ - { 0, &asn_PER_type_RANfunctionOID_constr_1, RANfunctionOID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/src/ASN1c/RANfunctionOID.h b/e2sim/src/ASN1c/RANfunctionOID.h deleted file mode 100644 index ccf407e..0000000 --- a/e2sim/src/ASN1c/RANfunctionOID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RANfunctionOID_H_ -#define _RANfunctionOID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PrintableString.h" - -#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; -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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/RANfunctionRevision.c b/e2sim/src/ASN1c/RANfunctionRevision.c deleted file mode 100644 index c10b205..0000000 --- a/e2sim/src/ASN1c/RANfunctionRevision.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RANfunctionRevision.h" - -int -RANfunctionRevision_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 <= 4095)) { - /* 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. - */ -asn_per_constraints_t asn_PER_type_RANfunctionRevision_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionRevision_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionRevision = { - "RANfunctionRevision", - "RANfunctionRevision", - &asn_OP_NativeInteger, - asn_DEF_RANfunctionRevision_tags_1, - sizeof(asn_DEF_RANfunctionRevision_tags_1) - /sizeof(asn_DEF_RANfunctionRevision_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionRevision_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionRevision_tags_1) - /sizeof(asn_DEF_RANfunctionRevision_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctionRevision_constr_1, RANfunctionRevision_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/src/ASN1c/RANfunctionRevision.h b/e2sim/src/ASN1c/RANfunctionRevision.h deleted file mode 100644 index bfc2129..0000000 --- a/e2sim/src/ASN1c/RANfunctionRevision.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RANfunctionRevision_H_ -#define _RANfunctionRevision_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionRevision */ -typedef long RANfunctionRevision_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RANfunctionRevision_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionRevision; -asn_struct_free_f RANfunctionRevision_free; -asn_struct_print_f RANfunctionRevision_print; -asn_constr_check_f RANfunctionRevision_constraint; -ber_type_decoder_f RANfunctionRevision_decode_ber; -der_type_encoder_f RANfunctionRevision_encode_der; -xer_type_decoder_f RANfunctionRevision_decode_xer; -xer_type_encoder_f RANfunctionRevision_encode_xer; -per_type_decoder_f RANfunctionRevision_decode_uper; -per_type_encoder_f RANfunctionRevision_encode_uper; -per_type_decoder_f RANfunctionRevision_decode_aper; -per_type_encoder_f RANfunctionRevision_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionRevision_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RANfunctions-List.c b/e2sim/src/ASN1c/RANfunctions-List.c deleted file mode 100644 index 4c0806b..0000000 --- a/e2sim/src/ASN1c/RANfunctions-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RANfunctions-List.h" - -#include "ProtocolIE-SingleContainer.h" -static asn_per_constraints_t asn_PER_type_RANfunctions_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { 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_SingleContainer_1920P14, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctions_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RANfunctions_List_specs_1 = { - sizeof(struct RANfunctions_List), - offsetof(struct RANfunctions_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctions_List = { - "RANfunctions-List", - "RANfunctions-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RANfunctions_List_tags_1, - sizeof(asn_DEF_RANfunctions_List_tags_1) - /sizeof(asn_DEF_RANfunctions_List_tags_1[0]), /* 1 */ - asn_DEF_RANfunctions_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctions_List_tags_1) - /sizeof(asn_DEF_RANfunctions_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctions_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RANfunctions_List_1, - 1, /* Single element */ - &asn_SPC_RANfunctions_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RANfunctions-List.h b/e2sim/src/ASN1c/RANfunctions-List.h deleted file mode 100644 index d517ed5..0000000 --- a/e2sim/src/ASN1c/RANfunctions-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RANfunctions_List_H_ -#define _RANfunctions_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RANfunctions-List */ -typedef struct RANfunctions_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctions_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctions_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctions_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RANfunctionsID-List.c b/e2sim/src/ASN1c/RANfunctionsID-List.c deleted file mode 100644 index 4e10ee4..0000000 --- a/e2sim/src/ASN1c/RANfunctionsID-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RANfunctionsID-List.h" - -#include "ProtocolIE-SingleContainer.h" -static asn_per_constraints_t asn_PER_type_RANfunctionsID_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { 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_SingleContainer_1920P15, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionsID_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RANfunctionsID_List_specs_1 = { - sizeof(struct RANfunctionsID_List), - offsetof(struct RANfunctionsID_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionsID_List = { - "RANfunctionsID-List", - "RANfunctionsID-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RANfunctionsID_List_tags_1, - sizeof(asn_DEF_RANfunctionsID_List_tags_1) - /sizeof(asn_DEF_RANfunctionsID_List_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionsID_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionsID_List_tags_1) - /sizeof(asn_DEF_RANfunctionsID_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctionsID_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RANfunctionsID_List_1, - 1, /* Single element */ - &asn_SPC_RANfunctionsID_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RANfunctionsID-List.h b/e2sim/src/ASN1c/RANfunctionsID-List.h deleted file mode 100644 index a4b9ed3..0000000 --- a/e2sim/src/ASN1c/RANfunctionsID-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RANfunctionsID_List_H_ -#define _RANfunctionsID_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RANfunctionsID-List */ -typedef struct RANfunctionsID_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionsID_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionsID_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionsID_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RANfunctionsIDcause-List.c b/e2sim/src/ASN1c/RANfunctionsIDcause-List.c deleted file mode 100644 index 4a19b69..0000000 --- a/e2sim/src/ASN1c/RANfunctionsIDcause-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RANfunctionsIDcause-List.h" - -#include "ProtocolIE-SingleContainer.h" -static asn_per_constraints_t asn_PER_type_RANfunctionsIDcause_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { 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_SingleContainer_1920P16, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionsIDcause_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RANfunctionsIDcause_List_specs_1 = { - sizeof(struct RANfunctionsIDcause_List), - offsetof(struct RANfunctionsIDcause_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionsIDcause_List = { - "RANfunctionsIDcause-List", - "RANfunctionsIDcause-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RANfunctionsIDcause_List_tags_1, - sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1) - /sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionsIDcause_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1) - /sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctionsIDcause_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RANfunctionsIDcause_List_1, - 1, /* Single element */ - &asn_SPC_RANfunctionsIDcause_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RANfunctionsIDcause-List.h b/e2sim/src/ASN1c/RANfunctionsIDcause-List.h deleted file mode 100644 index c960ffb..0000000 --- a/e2sim/src/ASN1c/RANfunctionsIDcause-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RANfunctionsIDcause_List_H_ -#define _RANfunctionsIDcause_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RANfunctionsIDcause-List */ -typedef struct RANfunctionsIDcause_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionsIDcause_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionsIDcause_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionsIDcause_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICaction-Admitted-Item.c b/e2sim/src/ASN1c/RICaction-Admitted-Item.c deleted file mode 100644 index dbedb03..0000000 --- a/e2sim/src/ASN1c/RICaction-Admitted-Item.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICaction-Admitted-Item.h" - -static asn_TYPE_member_t asn_MBR_RICaction_Admitted_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_Item, ricActionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionID" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_Admitted_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ricActionID */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_Item_specs_1 = { - sizeof(struct RICaction_Admitted_Item), - offsetof(struct RICaction_Admitted_Item, _asn_ctx), - asn_MAP_RICaction_Admitted_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_RICaction_Admitted_Item = { - "RICaction-Admitted-Item", - "RICaction-Admitted-Item", - &asn_OP_SEQUENCE, - asn_DEF_RICaction_Admitted_Item_tags_1, - sizeof(asn_DEF_RICaction_Admitted_Item_tags_1) - /sizeof(asn_DEF_RICaction_Admitted_Item_tags_1[0]), /* 1 */ - asn_DEF_RICaction_Admitted_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_Admitted_Item_tags_1) - /sizeof(asn_DEF_RICaction_Admitted_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_Admitted_Item_1, - 1, /* Elements count */ - &asn_SPC_RICaction_Admitted_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICaction-Admitted-Item.h b/e2sim/src/ASN1c/RICaction-Admitted-Item.h deleted file mode 100644 index c2d204c..0000000 --- a/e2sim/src/ASN1c/RICaction-Admitted-Item.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICaction_Admitted_Item_H_ -#define _RICaction_Admitted_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICactionID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICaction-Admitted-Item */ -typedef struct RICaction_Admitted_Item { - RICactionID_t ricActionID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_Admitted_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_Admitted_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICaction-Admitted-List.c b/e2sim/src/ASN1c/RICaction-Admitted-List.c deleted file mode 100644 index de86657..0000000 --- a/e2sim/src/ASN1c/RICaction-Admitted-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICaction-Admitted-List.h" - -#include "ProtocolIE-SingleContainer.h" -static asn_per_constraints_t asn_PER_type_RICaction_Admitted_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, - 0, 0 /* No PER value map */ -}; -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_SingleContainer_1920P1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RICaction_Admitted_List_specs_1 = { - sizeof(struct RICaction_Admitted_List), - offsetof(struct RICaction_Admitted_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_List = { - "RICaction-Admitted-List", - "RICaction-Admitted-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RICaction_Admitted_List_tags_1, - sizeof(asn_DEF_RICaction_Admitted_List_tags_1) - /sizeof(asn_DEF_RICaction_Admitted_List_tags_1[0]), /* 1 */ - asn_DEF_RICaction_Admitted_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_Admitted_List_tags_1) - /sizeof(asn_DEF_RICaction_Admitted_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICaction_Admitted_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RICaction_Admitted_List_1, - 1, /* Single element */ - &asn_SPC_RICaction_Admitted_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICaction-Admitted-List.h b/e2sim/src/ASN1c/RICaction-Admitted-List.h deleted file mode 100644 index a497f03..0000000 --- a/e2sim/src/ASN1c/RICaction-Admitted-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICaction_Admitted_List_H_ -#define _RICaction_Admitted_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RICaction-Admitted-List */ -typedef struct RICaction_Admitted_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_Admitted_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_Admitted_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICaction-NotAdmitted-Item.c b/e2sim/src/ASN1c/RICaction-NotAdmitted-Item.c deleted file mode 100644 index d015993..0000000 --- a/e2sim/src/ASN1c/RICaction-NotAdmitted-Item.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICaction-NotAdmitted-Item.h" - -static asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_Item, ricActionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_Item, cause), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cause" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_NotAdmitted_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_NotAdmitted_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricActionID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cause */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_Item_specs_1 = { - sizeof(struct RICaction_NotAdmitted_Item), - offsetof(struct RICaction_NotAdmitted_Item, _asn_ctx), - asn_MAP_RICaction_NotAdmitted_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_RICaction_NotAdmitted_Item = { - "RICaction-NotAdmitted-Item", - "RICaction-NotAdmitted-Item", - &asn_OP_SEQUENCE, - asn_DEF_RICaction_NotAdmitted_Item_tags_1, - sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1) - /sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1[0]), /* 1 */ - asn_DEF_RICaction_NotAdmitted_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1) - /sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_NotAdmitted_Item_1, - 2, /* Elements count */ - &asn_SPC_RICaction_NotAdmitted_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICaction-NotAdmitted-Item.h b/e2sim/src/ASN1c/RICaction-NotAdmitted-Item.h deleted file mode 100644 index 57dcd06..0000000 --- a/e2sim/src/ASN1c/RICaction-NotAdmitted-Item.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICaction_NotAdmitted_Item_H_ -#define _RICaction_NotAdmitted_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICactionID.h" -#include "Cause.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICaction-NotAdmitted-Item */ -typedef struct RICaction_NotAdmitted_Item { - RICactionID_t ricActionID; - Cause_t cause; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_NotAdmitted_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_NotAdmitted_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICaction-NotAdmitted-List.c b/e2sim/src/ASN1c/RICaction-NotAdmitted-List.c deleted file mode 100644 index c2a44b2..0000000 --- a/e2sim/src/ASN1c/RICaction-NotAdmitted-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICaction-NotAdmitted-List.h" - -#include "ProtocolIE-SingleContainer.h" -static asn_per_constraints_t asn_PER_type_RICaction_NotAdmitted_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 5, 5, 0, 16 } /* (SIZE(0..16)) */, - 0, 0 /* No PER value map */ -}; -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_SingleContainer_1920P2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_NotAdmitted_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RICaction_NotAdmitted_List_specs_1 = { - sizeof(struct RICaction_NotAdmitted_List), - offsetof(struct RICaction_NotAdmitted_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_List = { - "RICaction-NotAdmitted-List", - "RICaction-NotAdmitted-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RICaction_NotAdmitted_List_tags_1, - sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1) - /sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1[0]), /* 1 */ - asn_DEF_RICaction_NotAdmitted_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1) - /sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICaction_NotAdmitted_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RICaction_NotAdmitted_List_1, - 1, /* Single element */ - &asn_SPC_RICaction_NotAdmitted_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICaction-NotAdmitted-List.h b/e2sim/src/ASN1c/RICaction-NotAdmitted-List.h deleted file mode 100644 index 3510867..0000000 --- a/e2sim/src/ASN1c/RICaction-NotAdmitted-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICaction_NotAdmitted_List_H_ -#define _RICaction_NotAdmitted_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RICaction-NotAdmitted-List */ -typedef struct RICaction_NotAdmitted_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_NotAdmitted_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_NotAdmitted_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICaction-ToBeSetup-Item.c b/e2sim/src/ASN1c/RICaction-ToBeSetup-Item.c deleted file mode 100644 index 2ac74a8..0000000 --- a/e2sim/src/ASN1c/RICaction-ToBeSetup-Item.c +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICaction-ToBeSetup-Item.h" - -#include "RICsubsequentAction.h" -static asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_Item, ricActionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_Item, ricActionType), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionType, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionType" - }, - { ATF_POINTER, 2, offsetof(struct RICaction_ToBeSetup_Item, ricActionDefinition), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionDefinition, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionDefinition" - }, - { ATF_POINTER, 1, offsetof(struct RICaction_ToBeSetup_Item, ricSubsequentAction), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICsubsequentAction, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricSubsequentAction" - }, -}; -static const int asn_MAP_RICaction_ToBeSetup_Item_oms_1[] = { 2, 3 }; -static const ber_tlv_tag_t asn_DEF_RICaction_ToBeSetup_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_ToBeSetup_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricActionID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricActionType */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ricActionDefinition */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ricSubsequentAction */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_Item_specs_1 = { - sizeof(struct RICaction_ToBeSetup_Item), - offsetof(struct RICaction_ToBeSetup_Item, _asn_ctx), - asn_MAP_RICaction_ToBeSetup_Item_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_RICaction_ToBeSetup_Item_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_Item = { - "RICaction-ToBeSetup-Item", - "RICaction-ToBeSetup-Item", - &asn_OP_SEQUENCE, - asn_DEF_RICaction_ToBeSetup_Item_tags_1, - sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1) - /sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1[0]), /* 1 */ - asn_DEF_RICaction_ToBeSetup_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1) - /sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_ToBeSetup_Item_1, - 4, /* Elements count */ - &asn_SPC_RICaction_ToBeSetup_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICaction-ToBeSetup-Item.h b/e2sim/src/ASN1c/RICaction-ToBeSetup-Item.h deleted file mode 100644 index 3ae5ed4..0000000 --- a/e2sim/src/ASN1c/RICaction-ToBeSetup-Item.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICaction_ToBeSetup_Item_H_ -#define _RICaction_ToBeSetup_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICactionID.h" -#include "RICactionType.h" -#include "RICactionDefinition.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct RICsubsequentAction; - -/* RICaction-ToBeSetup-Item */ -typedef struct RICaction_ToBeSetup_Item { - RICactionID_t ricActionID; - RICactionType_t ricActionType; - RICactionDefinition_t *ricActionDefinition; /* OPTIONAL */ - struct RICsubsequentAction *ricSubsequentAction; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_ToBeSetup_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_ToBeSetup_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICactionDefinition.c b/e2sim/src/ASN1c/RICactionDefinition.c deleted file mode 100644 index 008ef4c..0000000 --- a/e2sim/src/ASN1c/RICactionDefinition.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICactionDefinition.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICactionDefinition_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICactionDefinition = { - "RICactionDefinition", - "RICactionDefinition", - &asn_OP_OCTET_STRING, - asn_DEF_RICactionDefinition_tags_1, - sizeof(asn_DEF_RICactionDefinition_tags_1) - /sizeof(asn_DEF_RICactionDefinition_tags_1[0]), /* 1 */ - asn_DEF_RICactionDefinition_tags_1, /* Same as above */ - sizeof(asn_DEF_RICactionDefinition_tags_1) - /sizeof(asn_DEF_RICactionDefinition_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICactionDefinition.h b/e2sim/src/ASN1c/RICactionDefinition.h deleted file mode 100644 index 091bb27..0000000 --- a/e2sim/src/ASN1c/RICactionDefinition.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICactionDefinition_H_ -#define _RICactionDefinition_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICactionDefinition */ -typedef OCTET_STRING_t RICactionDefinition_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICactionDefinition; -asn_struct_free_f RICactionDefinition_free; -asn_struct_print_f RICactionDefinition_print; -asn_constr_check_f RICactionDefinition_constraint; -ber_type_decoder_f RICactionDefinition_decode_ber; -der_type_encoder_f RICactionDefinition_encode_der; -xer_type_decoder_f RICactionDefinition_decode_xer; -xer_type_encoder_f RICactionDefinition_encode_xer; -per_type_decoder_f RICactionDefinition_decode_uper; -per_type_encoder_f RICactionDefinition_encode_uper; -per_type_decoder_f RICactionDefinition_decode_aper; -per_type_encoder_f RICactionDefinition_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICactionDefinition_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICactionID.c b/e2sim/src/ASN1c/RICactionID.c deleted file mode 100644 index fcf3b01..0000000 --- a/e2sim/src/ASN1c/RICactionID.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICactionID.h" - -int -RICactionID_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. - */ -asn_per_constraints_t asn_PER_type_RICactionID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 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_RICactionID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICactionID = { - "RICactionID", - "RICactionID", - &asn_OP_NativeInteger, - asn_DEF_RICactionID_tags_1, - sizeof(asn_DEF_RICactionID_tags_1) - /sizeof(asn_DEF_RICactionID_tags_1[0]), /* 1 */ - asn_DEF_RICactionID_tags_1, /* Same as above */ - sizeof(asn_DEF_RICactionID_tags_1) - /sizeof(asn_DEF_RICactionID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICactionID_constr_1, RICactionID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/src/ASN1c/RICactionID.h b/e2sim/src/ASN1c/RICactionID.h deleted file mode 100644 index 9c74319..0000000 --- a/e2sim/src/ASN1c/RICactionID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICactionID_H_ -#define _RICactionID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICactionID */ -typedef long RICactionID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICactionID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RICactionID; -asn_struct_free_f RICactionID_free; -asn_struct_print_f RICactionID_print; -asn_constr_check_f RICactionID_constraint; -ber_type_decoder_f RICactionID_decode_ber; -der_type_encoder_f RICactionID_encode_der; -xer_type_decoder_f RICactionID_decode_xer; -xer_type_encoder_f RICactionID_encode_xer; -per_type_decoder_f RICactionID_decode_uper; -per_type_encoder_f RICactionID_encode_uper; -per_type_decoder_f RICactionID_decode_aper; -per_type_encoder_f RICactionID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICactionID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICactionType.c b/e2sim/src/ASN1c/RICactionType.c deleted file mode 100644 index 9ce9bd3..0000000 --- a/e2sim/src/ASN1c/RICactionType.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICactionType.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RICactionType_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_RICactionType_value2enum_1[] = { - { 0, 6, "report" }, - { 1, 6, "insert" }, - { 2, 6, "policy" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICactionType_enum2value_1[] = { - 1, /* insert(1) */ - 2, /* policy(2) */ - 0 /* report(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_RICactionType_specs_1 = { - asn_MAP_RICactionType_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICactionType_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_RICactionType_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICactionType = { - "RICactionType", - "RICactionType", - &asn_OP_NativeEnumerated, - asn_DEF_RICactionType_tags_1, - sizeof(asn_DEF_RICactionType_tags_1) - /sizeof(asn_DEF_RICactionType_tags_1[0]), /* 1 */ - asn_DEF_RICactionType_tags_1, /* Same as above */ - sizeof(asn_DEF_RICactionType_tags_1) - /sizeof(asn_DEF_RICactionType_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICactionType_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICactionType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICactionType.h b/e2sim/src/ASN1c/RICactionType.h deleted file mode 100644 index 10d4694..0000000 --- a/e2sim/src/ASN1c/RICactionType.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICactionType_H_ -#define _RICactionType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICactionType { - RICactionType_report = 0, - RICactionType_insert = 1, - RICactionType_policy = 2 - /* - * Enumeration is extensible - */ -} e_RICactionType; - -/* RICactionType */ -typedef long RICactionType_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICactionType_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RICactionType; -extern const asn_INTEGER_specifics_t asn_SPC_RICactionType_specs_1; -asn_struct_free_f RICactionType_free; -asn_struct_print_f RICactionType_print; -asn_constr_check_f RICactionType_constraint; -ber_type_decoder_f RICactionType_decode_ber; -der_type_encoder_f RICactionType_encode_der; -xer_type_decoder_f RICactionType_decode_xer; -xer_type_encoder_f RICactionType_encode_xer; -per_type_decoder_f RICactionType_decode_uper; -per_type_encoder_f RICactionType_encode_uper; -per_type_decoder_f RICactionType_decode_aper; -per_type_encoder_f RICactionType_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICactionType_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICactions-ToBeSetup-List.c b/e2sim/src/ASN1c/RICactions-ToBeSetup-List.c deleted file mode 100644 index d79b763..0000000 --- a/e2sim/src/ASN1c/RICactions-ToBeSetup-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICactions-ToBeSetup-List.h" - -#include "ProtocolIE-SingleContainer.h" -asn_per_constraints_t asn_PER_type_RICactions_ToBeSetup_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_RICactions_ToBeSetup_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_SingleContainer_1920P0, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICactions_ToBeSetup_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_RICactions_ToBeSetup_List_specs_1 = { - sizeof(struct RICactions_ToBeSetup_List), - offsetof(struct RICactions_ToBeSetup_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RICactions_ToBeSetup_List = { - "RICactions-ToBeSetup-List", - "RICactions-ToBeSetup-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RICactions_ToBeSetup_List_tags_1, - sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1) - /sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1[0]), /* 1 */ - asn_DEF_RICactions_ToBeSetup_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1) - /sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICactions_ToBeSetup_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RICactions_ToBeSetup_List_1, - 1, /* Single element */ - &asn_SPC_RICactions_ToBeSetup_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICactions-ToBeSetup-List.h b/e2sim/src/ASN1c/RICactions-ToBeSetup-List.h deleted file mode 100644 index 031e11f..0000000 --- a/e2sim/src/ASN1c/RICactions-ToBeSetup-List.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICactions_ToBeSetup_List_H_ -#define _RICactions_ToBeSetup_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RICactions-ToBeSetup-List */ -typedef struct RICactions_ToBeSetup_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICactions_ToBeSetup_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICactions_ToBeSetup_List; -extern asn_SET_OF_specifics_t asn_SPC_RICactions_ToBeSetup_List_specs_1; -extern asn_TYPE_member_t asn_MBR_RICactions_ToBeSetup_List_1[1]; -extern asn_per_constraints_t asn_PER_type_RICactions_ToBeSetup_List_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICactions_ToBeSetup_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICcallProcessID.c b/e2sim/src/ASN1c/RICcallProcessID.c deleted file mode 100644 index 9d655c5..0000000 --- a/e2sim/src/ASN1c/RICcallProcessID.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICcallProcessID.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICcallProcessID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcallProcessID = { - "RICcallProcessID", - "RICcallProcessID", - &asn_OP_OCTET_STRING, - asn_DEF_RICcallProcessID_tags_1, - sizeof(asn_DEF_RICcallProcessID_tags_1) - /sizeof(asn_DEF_RICcallProcessID_tags_1[0]), /* 1 */ - asn_DEF_RICcallProcessID_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcallProcessID_tags_1) - /sizeof(asn_DEF_RICcallProcessID_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICcallProcessID.h b/e2sim/src/ASN1c/RICcallProcessID.h deleted file mode 100644 index e50ac0e..0000000 --- a/e2sim/src/ASN1c/RICcallProcessID.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICcallProcessID_H_ -#define _RICcallProcessID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcallProcessID */ -typedef OCTET_STRING_t RICcallProcessID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcallProcessID; -asn_struct_free_f RICcallProcessID_free; -asn_struct_print_f RICcallProcessID_print; -asn_constr_check_f RICcallProcessID_constraint; -ber_type_decoder_f RICcallProcessID_decode_ber; -der_type_encoder_f RICcallProcessID_encode_der; -xer_type_decoder_f RICcallProcessID_decode_xer; -xer_type_encoder_f RICcallProcessID_encode_xer; -per_type_decoder_f RICcallProcessID_decode_uper; -per_type_encoder_f RICcallProcessID_encode_uper; -per_type_decoder_f RICcallProcessID_decode_aper; -per_type_encoder_f RICcallProcessID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcallProcessID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICcontrolAckRequest.c b/e2sim/src/ASN1c/RICcontrolAckRequest.c deleted file mode 100644 index 702c61c..0000000 --- a/e2sim/src/ASN1c/RICcontrolAckRequest.c +++ /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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICcontrolAckRequest.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_RICcontrolAckRequest_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 */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICcontrolAckRequest_value2enum_1[] = { - { 0, 5, "noAck" }, - { 1, 3, "ack" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICcontrolAckRequest_enum2value_1[] = { - 1, /* ack(1) */ - 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 */ - 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_RICcontrolAckRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolAckRequest = { - "RICcontrolAckRequest", - "RICcontrolAckRequest", - &asn_OP_NativeEnumerated, - asn_DEF_RICcontrolAckRequest_tags_1, - sizeof(asn_DEF_RICcontrolAckRequest_tags_1) - /sizeof(asn_DEF_RICcontrolAckRequest_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolAckRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolAckRequest_tags_1) - /sizeof(asn_DEF_RICcontrolAckRequest_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICcontrolAckRequest_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICcontrolAckRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICcontrolAckRequest.h b/e2sim/src/ASN1c/RICcontrolAckRequest.h deleted file mode 100644 index f416db3..0000000 --- a/e2sim/src/ASN1c/RICcontrolAckRequest.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICcontrolAckRequest_H_ -#define _RICcontrolAckRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICcontrolAckRequest { - RICcontrolAckRequest_noAck = 0, - RICcontrolAckRequest_ack = 1 - /* - * Enumeration is extensible - */ -} e_RICcontrolAckRequest; - -/* RICcontrolAckRequest */ -typedef long RICcontrolAckRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAckRequest; -asn_struct_free_f RICcontrolAckRequest_free; -asn_struct_print_f RICcontrolAckRequest_print; -asn_constr_check_f RICcontrolAckRequest_constraint; -ber_type_decoder_f RICcontrolAckRequest_decode_ber; -der_type_encoder_f RICcontrolAckRequest_encode_der; -xer_type_decoder_f RICcontrolAckRequest_decode_xer; -xer_type_encoder_f RICcontrolAckRequest_encode_xer; -per_type_decoder_f RICcontrolAckRequest_decode_uper; -per_type_encoder_f RICcontrolAckRequest_encode_uper; -per_type_decoder_f RICcontrolAckRequest_decode_aper; -per_type_encoder_f RICcontrolAckRequest_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolAckRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICcontrolAcknowledge.c b/e2sim/src/ASN1c/RICcontrolAcknowledge.c deleted file mode 100644 index ef7e25f..0000000 --- a/e2sim/src/ASN1c/RICcontrolAcknowledge.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICcontrolAcknowledge.h" - -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_Container_1917P9, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolAcknowledge_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolAcknowledge_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_specs_1 = { - sizeof(struct RICcontrolAcknowledge), - offsetof(struct RICcontrolAcknowledge, _asn_ctx), - asn_MAP_RICcontrolAcknowledge_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_RICcontrolAcknowledge = { - "RICcontrolAcknowledge", - "RICcontrolAcknowledge", - &asn_OP_SEQUENCE, - asn_DEF_RICcontrolAcknowledge_tags_1, - sizeof(asn_DEF_RICcontrolAcknowledge_tags_1) - /sizeof(asn_DEF_RICcontrolAcknowledge_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolAcknowledge_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolAcknowledge_tags_1) - /sizeof(asn_DEF_RICcontrolAcknowledge_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolAcknowledge_1, - 1, /* Elements count */ - &asn_SPC_RICcontrolAcknowledge_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICcontrolAcknowledge.h b/e2sim/src/ASN1c/RICcontrolAcknowledge.h deleted file mode 100644 index 6cb8034..0000000 --- a/e2sim/src/ASN1c/RICcontrolAcknowledge.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICcontrolAcknowledge_H_ -#define _RICcontrolAcknowledge_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolAcknowledge */ -typedef struct RICcontrolAcknowledge { - ProtocolIE_Container_1917P9_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcontrolAcknowledge_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_specs_1; -extern asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolAcknowledge_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICcontrolFailure.c b/e2sim/src/ASN1c/RICcontrolFailure.c deleted file mode 100644 index 48b48f7..0000000 --- a/e2sim/src/ASN1c/RICcontrolFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICcontrolFailure.h" - -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_Container_1917P10, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_specs_1 = { - sizeof(struct RICcontrolFailure), - offsetof(struct RICcontrolFailure, _asn_ctx), - asn_MAP_RICcontrolFailure_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_RICcontrolFailure = { - "RICcontrolFailure", - "RICcontrolFailure", - &asn_OP_SEQUENCE, - asn_DEF_RICcontrolFailure_tags_1, - sizeof(asn_DEF_RICcontrolFailure_tags_1) - /sizeof(asn_DEF_RICcontrolFailure_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolFailure_tags_1) - /sizeof(asn_DEF_RICcontrolFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolFailure_1, - 1, /* Elements count */ - &asn_SPC_RICcontrolFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICcontrolFailure.h b/e2sim/src/ASN1c/RICcontrolFailure.h deleted file mode 100644 index 6302148..0000000 --- a/e2sim/src/ASN1c/RICcontrolFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICcontrolFailure_H_ -#define _RICcontrolFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolFailure */ -typedef struct RICcontrolFailure { - ProtocolIE_Container_1917P10_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcontrolFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_RICcontrolFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICcontrolHeader.c b/e2sim/src/ASN1c/RICcontrolHeader.c deleted file mode 100644 index 68acc95..0000000 --- a/e2sim/src/ASN1c/RICcontrolHeader.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICcontrolHeader.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICcontrolHeader_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolHeader = { - "RICcontrolHeader", - "RICcontrolHeader", - &asn_OP_OCTET_STRING, - asn_DEF_RICcontrolHeader_tags_1, - sizeof(asn_DEF_RICcontrolHeader_tags_1) - /sizeof(asn_DEF_RICcontrolHeader_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolHeader_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolHeader_tags_1) - /sizeof(asn_DEF_RICcontrolHeader_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICcontrolHeader.h b/e2sim/src/ASN1c/RICcontrolHeader.h deleted file mode 100644 index a9f1f25..0000000 --- a/e2sim/src/ASN1c/RICcontrolHeader.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICcontrolHeader_H_ -#define _RICcontrolHeader_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolHeader */ -typedef OCTET_STRING_t RICcontrolHeader_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolHeader; -asn_struct_free_f RICcontrolHeader_free; -asn_struct_print_f RICcontrolHeader_print; -asn_constr_check_f RICcontrolHeader_constraint; -ber_type_decoder_f RICcontrolHeader_decode_ber; -der_type_encoder_f RICcontrolHeader_encode_der; -xer_type_decoder_f RICcontrolHeader_decode_xer; -xer_type_encoder_f RICcontrolHeader_encode_xer; -per_type_decoder_f RICcontrolHeader_decode_uper; -per_type_encoder_f RICcontrolHeader_encode_uper; -per_type_decoder_f RICcontrolHeader_decode_aper; -per_type_encoder_f RICcontrolHeader_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolHeader_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICcontrolMessage.c b/e2sim/src/ASN1c/RICcontrolMessage.c deleted file mode 100644 index 05a8a81..0000000 --- a/e2sim/src/ASN1c/RICcontrolMessage.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICcontrolMessage.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICcontrolMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolMessage = { - "RICcontrolMessage", - "RICcontrolMessage", - &asn_OP_OCTET_STRING, - asn_DEF_RICcontrolMessage_tags_1, - sizeof(asn_DEF_RICcontrolMessage_tags_1) - /sizeof(asn_DEF_RICcontrolMessage_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolMessage_tags_1) - /sizeof(asn_DEF_RICcontrolMessage_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICcontrolMessage.h b/e2sim/src/ASN1c/RICcontrolMessage.h deleted file mode 100644 index 9190f91..0000000 --- a/e2sim/src/ASN1c/RICcontrolMessage.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICcontrolMessage_H_ -#define _RICcontrolMessage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolMessage */ -typedef OCTET_STRING_t RICcontrolMessage_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolMessage; -asn_struct_free_f RICcontrolMessage_free; -asn_struct_print_f RICcontrolMessage_print; -asn_constr_check_f RICcontrolMessage_constraint; -ber_type_decoder_f RICcontrolMessage_decode_ber; -der_type_encoder_f RICcontrolMessage_encode_der; -xer_type_decoder_f RICcontrolMessage_decode_xer; -xer_type_encoder_f RICcontrolMessage_encode_xer; -per_type_decoder_f RICcontrolMessage_decode_uper; -per_type_encoder_f RICcontrolMessage_encode_uper; -per_type_decoder_f RICcontrolMessage_decode_aper; -per_type_encoder_f RICcontrolMessage_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolMessage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICcontrolOutcome.c b/e2sim/src/ASN1c/RICcontrolOutcome.c deleted file mode 100644 index 54f9a8f..0000000 --- a/e2sim/src/ASN1c/RICcontrolOutcome.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICcontrolOutcome.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICcontrolOutcome_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolOutcome = { - "RICcontrolOutcome", - "RICcontrolOutcome", - &asn_OP_OCTET_STRING, - asn_DEF_RICcontrolOutcome_tags_1, - sizeof(asn_DEF_RICcontrolOutcome_tags_1) - /sizeof(asn_DEF_RICcontrolOutcome_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolOutcome_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolOutcome_tags_1) - /sizeof(asn_DEF_RICcontrolOutcome_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICcontrolOutcome.h b/e2sim/src/ASN1c/RICcontrolOutcome.h deleted file mode 100644 index acd1916..0000000 --- a/e2sim/src/ASN1c/RICcontrolOutcome.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICcontrolOutcome_H_ -#define _RICcontrolOutcome_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolOutcome */ -typedef OCTET_STRING_t RICcontrolOutcome_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolOutcome; -asn_struct_free_f RICcontrolOutcome_free; -asn_struct_print_f RICcontrolOutcome_print; -asn_constr_check_f RICcontrolOutcome_constraint; -ber_type_decoder_f RICcontrolOutcome_decode_ber; -der_type_encoder_f RICcontrolOutcome_encode_der; -xer_type_decoder_f RICcontrolOutcome_decode_xer; -xer_type_encoder_f RICcontrolOutcome_encode_xer; -per_type_decoder_f RICcontrolOutcome_decode_uper; -per_type_encoder_f RICcontrolOutcome_encode_uper; -per_type_decoder_f RICcontrolOutcome_decode_aper; -per_type_encoder_f RICcontrolOutcome_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolOutcome_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICcontrolRequest.c b/e2sim/src/ASN1c/RICcontrolRequest.c deleted file mode 100644 index f75b29c..0000000 --- a/e2sim/src/ASN1c/RICcontrolRequest.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICcontrolRequest.h" - -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_Container_1917P8, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_specs_1 = { - sizeof(struct RICcontrolRequest), - offsetof(struct RICcontrolRequest, _asn_ctx), - asn_MAP_RICcontrolRequest_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_RICcontrolRequest = { - "RICcontrolRequest", - "RICcontrolRequest", - &asn_OP_SEQUENCE, - asn_DEF_RICcontrolRequest_tags_1, - sizeof(asn_DEF_RICcontrolRequest_tags_1) - /sizeof(asn_DEF_RICcontrolRequest_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolRequest_tags_1) - /sizeof(asn_DEF_RICcontrolRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolRequest_1, - 1, /* Elements count */ - &asn_SPC_RICcontrolRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICcontrolRequest.h b/e2sim/src/ASN1c/RICcontrolRequest.h deleted file mode 100644 index 5596246..0000000 --- a/e2sim/src/ASN1c/RICcontrolRequest.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICcontrolRequest_H_ -#define _RICcontrolRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolRequest */ -typedef struct RICcontrolRequest { - ProtocolIE_Container_1917P8_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcontrolRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_RICcontrolRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICeventTriggerDefinition.c b/e2sim/src/ASN1c/RICeventTriggerDefinition.c deleted file mode 100644 index 610cd92..0000000 --- a/e2sim/src/ASN1c/RICeventTriggerDefinition.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICeventTriggerDefinition.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICeventTriggerDefinition_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICeventTriggerDefinition = { - "RICeventTriggerDefinition", - "RICeventTriggerDefinition", - &asn_OP_OCTET_STRING, - asn_DEF_RICeventTriggerDefinition_tags_1, - sizeof(asn_DEF_RICeventTriggerDefinition_tags_1) - /sizeof(asn_DEF_RICeventTriggerDefinition_tags_1[0]), /* 1 */ - asn_DEF_RICeventTriggerDefinition_tags_1, /* Same as above */ - sizeof(asn_DEF_RICeventTriggerDefinition_tags_1) - /sizeof(asn_DEF_RICeventTriggerDefinition_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICeventTriggerDefinition.h b/e2sim/src/ASN1c/RICeventTriggerDefinition.h deleted file mode 100644 index 542a307..0000000 --- a/e2sim/src/ASN1c/RICeventTriggerDefinition.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICeventTriggerDefinition_H_ -#define _RICeventTriggerDefinition_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICeventTriggerDefinition */ -typedef OCTET_STRING_t RICeventTriggerDefinition_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICeventTriggerDefinition; -asn_struct_free_f RICeventTriggerDefinition_free; -asn_struct_print_f RICeventTriggerDefinition_print; -asn_constr_check_f RICeventTriggerDefinition_constraint; -ber_type_decoder_f RICeventTriggerDefinition_decode_ber; -der_type_encoder_f RICeventTriggerDefinition_encode_der; -xer_type_decoder_f RICeventTriggerDefinition_decode_xer; -xer_type_encoder_f RICeventTriggerDefinition_encode_xer; -per_type_decoder_f RICeventTriggerDefinition_decode_uper; -per_type_encoder_f RICeventTriggerDefinition_encode_uper; -per_type_decoder_f RICeventTriggerDefinition_decode_aper; -per_type_encoder_f RICeventTriggerDefinition_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICeventTriggerDefinition_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICindication.c b/e2sim/src/ASN1c/RICindication.c deleted file mode 100644 index 214a690..0000000 --- a/e2sim/src/ASN1c/RICindication.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICindication.h" - -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_Container_1917P7, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICindication_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICindication_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICindication_specs_1 = { - sizeof(struct RICindication), - offsetof(struct RICindication, _asn_ctx), - asn_MAP_RICindication_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_RICindication = { - "RICindication", - "RICindication", - &asn_OP_SEQUENCE, - asn_DEF_RICindication_tags_1, - sizeof(asn_DEF_RICindication_tags_1) - /sizeof(asn_DEF_RICindication_tags_1[0]), /* 1 */ - asn_DEF_RICindication_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindication_tags_1) - /sizeof(asn_DEF_RICindication_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICindication_1, - 1, /* Elements count */ - &asn_SPC_RICindication_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICindication.h b/e2sim/src/ASN1c/RICindication.h deleted file mode 100644 index 68799c3..0000000 --- a/e2sim/src/ASN1c/RICindication.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICindication_H_ -#define _RICindication_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICindication */ -typedef struct RICindication { - ProtocolIE_Container_1917P7_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICindication_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindication; -extern asn_SEQUENCE_specifics_t asn_SPC_RICindication_specs_1; -extern asn_TYPE_member_t asn_MBR_RICindication_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindication_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICindicationHeader.c b/e2sim/src/ASN1c/RICindicationHeader.c deleted file mode 100644 index 294772a..0000000 --- a/e2sim/src/ASN1c/RICindicationHeader.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICindicationHeader.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICindicationHeader_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICindicationHeader = { - "RICindicationHeader", - "RICindicationHeader", - &asn_OP_OCTET_STRING, - asn_DEF_RICindicationHeader_tags_1, - sizeof(asn_DEF_RICindicationHeader_tags_1) - /sizeof(asn_DEF_RICindicationHeader_tags_1[0]), /* 1 */ - asn_DEF_RICindicationHeader_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindicationHeader_tags_1) - /sizeof(asn_DEF_RICindicationHeader_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICindicationHeader.h b/e2sim/src/ASN1c/RICindicationHeader.h deleted file mode 100644 index f7f85e6..0000000 --- a/e2sim/src/ASN1c/RICindicationHeader.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICindicationHeader_H_ -#define _RICindicationHeader_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICindicationHeader */ -typedef OCTET_STRING_t RICindicationHeader_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindicationHeader; -asn_struct_free_f RICindicationHeader_free; -asn_struct_print_f RICindicationHeader_print; -asn_constr_check_f RICindicationHeader_constraint; -ber_type_decoder_f RICindicationHeader_decode_ber; -der_type_encoder_f RICindicationHeader_encode_der; -xer_type_decoder_f RICindicationHeader_decode_xer; -xer_type_encoder_f RICindicationHeader_encode_xer; -per_type_decoder_f RICindicationHeader_decode_uper; -per_type_encoder_f RICindicationHeader_encode_uper; -per_type_decoder_f RICindicationHeader_decode_aper; -per_type_encoder_f RICindicationHeader_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindicationHeader_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICindicationMessage.c b/e2sim/src/ASN1c/RICindicationMessage.c deleted file mode 100644 index 70cc01e..0000000 --- a/e2sim/src/ASN1c/RICindicationMessage.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICindicationMessage.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICindicationMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICindicationMessage = { - "RICindicationMessage", - "RICindicationMessage", - &asn_OP_OCTET_STRING, - asn_DEF_RICindicationMessage_tags_1, - sizeof(asn_DEF_RICindicationMessage_tags_1) - /sizeof(asn_DEF_RICindicationMessage_tags_1[0]), /* 1 */ - asn_DEF_RICindicationMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindicationMessage_tags_1) - /sizeof(asn_DEF_RICindicationMessage_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICindicationMessage.h b/e2sim/src/ASN1c/RICindicationMessage.h deleted file mode 100644 index dd77c49..0000000 --- a/e2sim/src/ASN1c/RICindicationMessage.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICindicationMessage_H_ -#define _RICindicationMessage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICindicationMessage */ -typedef OCTET_STRING_t RICindicationMessage_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindicationMessage; -asn_struct_free_f RICindicationMessage_free; -asn_struct_print_f RICindicationMessage_print; -asn_constr_check_f RICindicationMessage_constraint; -ber_type_decoder_f RICindicationMessage_decode_ber; -der_type_encoder_f RICindicationMessage_encode_der; -xer_type_decoder_f RICindicationMessage_decode_xer; -xer_type_encoder_f RICindicationMessage_encode_xer; -per_type_decoder_f RICindicationMessage_decode_uper; -per_type_encoder_f RICindicationMessage_encode_uper; -per_type_decoder_f RICindicationMessage_decode_aper; -per_type_encoder_f RICindicationMessage_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindicationMessage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICindicationSN.c b/e2sim/src/ASN1c/RICindicationSN.c deleted file mode 100644 index cf59f76..0000000 --- a/e2sim/src/ASN1c/RICindicationSN.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICindicationSN.h" - -int -RICindicationSN_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 <= 65535)) { - /* 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_per_constraints_t asn_PER_type_RICindicationSN_constr_1 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_RICindicationSN_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICindicationSN = { - "RICindicationSN", - "RICindicationSN", - &asn_OP_NativeInteger, - asn_DEF_RICindicationSN_tags_1, - sizeof(asn_DEF_RICindicationSN_tags_1) - /sizeof(asn_DEF_RICindicationSN_tags_1[0]), /* 1 */ - asn_DEF_RICindicationSN_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindicationSN_tags_1) - /sizeof(asn_DEF_RICindicationSN_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICindicationSN_constr_1, RICindicationSN_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/src/ASN1c/RICindicationSN.h b/e2sim/src/ASN1c/RICindicationSN.h deleted file mode 100644 index 9765c1c..0000000 --- a/e2sim/src/ASN1c/RICindicationSN.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICindicationSN_H_ -#define _RICindicationSN_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICindicationSN */ -typedef long RICindicationSN_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindicationSN; -asn_struct_free_f RICindicationSN_free; -asn_struct_print_f RICindicationSN_print; -asn_constr_check_f RICindicationSN_constraint; -ber_type_decoder_f RICindicationSN_decode_ber; -der_type_encoder_f RICindicationSN_encode_der; -xer_type_decoder_f RICindicationSN_decode_xer; -xer_type_encoder_f RICindicationSN_encode_xer; -per_type_decoder_f RICindicationSN_decode_uper; -per_type_encoder_f RICindicationSN_encode_uper; -per_type_decoder_f RICindicationSN_decode_aper; -per_type_encoder_f RICindicationSN_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindicationSN_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICindicationType.c b/e2sim/src/ASN1c/RICindicationType.c deleted file mode 100644 index cb424f6..0000000 --- a/e2sim/src/ASN1c/RICindicationType.c +++ /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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICindicationType.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_RICindicationType_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 */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICindicationType_value2enum_1[] = { - { 0, 6, "report" }, - { 1, 6, "insert" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICindicationType_enum2value_1[] = { - 1, /* insert(1) */ - 0 /* report(0) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_RICindicationType_specs_1 = { - asn_MAP_RICindicationType_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICindicationType_enum2value_1, /* 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_RICindicationType_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICindicationType = { - "RICindicationType", - "RICindicationType", - &asn_OP_NativeEnumerated, - asn_DEF_RICindicationType_tags_1, - sizeof(asn_DEF_RICindicationType_tags_1) - /sizeof(asn_DEF_RICindicationType_tags_1[0]), /* 1 */ - asn_DEF_RICindicationType_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindicationType_tags_1) - /sizeof(asn_DEF_RICindicationType_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICindicationType_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICindicationType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICindicationType.h b/e2sim/src/ASN1c/RICindicationType.h deleted file mode 100644 index 911f405..0000000 --- a/e2sim/src/ASN1c/RICindicationType.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICindicationType_H_ -#define _RICindicationType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICindicationType { - RICindicationType_report = 0, - RICindicationType_insert = 1 - /* - * Enumeration is extensible - */ -} e_RICindicationType; - -/* RICindicationType */ -typedef long RICindicationType_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindicationType; -asn_struct_free_f RICindicationType_free; -asn_struct_print_f RICindicationType_print; -asn_constr_check_f RICindicationType_constraint; -ber_type_decoder_f RICindicationType_decode_ber; -der_type_encoder_f RICindicationType_encode_der; -xer_type_decoder_f RICindicationType_decode_xer; -xer_type_encoder_f RICindicationType_encode_xer; -per_type_decoder_f RICindicationType_decode_uper; -per_type_encoder_f RICindicationType_encode_uper; -per_type_decoder_f RICindicationType_decode_aper; -per_type_encoder_f RICindicationType_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindicationType_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICrequestID.c b/e2sim/src/ASN1c/RICrequestID.c deleted file mode 100644 index ec4178d..0000000 --- a/e2sim/src/ASN1c/RICrequestID.c +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICrequestID.h" - -static int -memb_ricRequestorID_constraint_1(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 int -memb_ricInstanceID_constraint_1(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_per_constraints_t asn_PER_memb_ricRequestorID_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_per_constraints_t asn_PER_memb_ricInstanceID_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_RICrequestID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICrequestID, ricRequestorID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_ricRequestorID_constr_2, memb_ricRequestorID_constraint_1 }, - 0, 0, /* No default value */ - "ricRequestorID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICrequestID, ricInstanceID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_ricInstanceID_constr_3, memb_ricInstanceID_constraint_1 }, - 0, 0, /* No default value */ - "ricInstanceID" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICrequestID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICrequestID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequestorID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricInstanceID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICrequestID_specs_1 = { - sizeof(struct RICrequestID), - offsetof(struct RICrequestID, _asn_ctx), - asn_MAP_RICrequestID_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_RICrequestID = { - "RICrequestID", - "RICrequestID", - &asn_OP_SEQUENCE, - asn_DEF_RICrequestID_tags_1, - sizeof(asn_DEF_RICrequestID_tags_1) - /sizeof(asn_DEF_RICrequestID_tags_1[0]), /* 1 */ - asn_DEF_RICrequestID_tags_1, /* Same as above */ - sizeof(asn_DEF_RICrequestID_tags_1) - /sizeof(asn_DEF_RICrequestID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICrequestID_1, - 2, /* Elements count */ - &asn_SPC_RICrequestID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICrequestID.h b/e2sim/src/ASN1c/RICrequestID.h deleted file mode 100644 index 57032d7..0000000 --- a/e2sim/src/ASN1c/RICrequestID.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICrequestID_H_ -#define _RICrequestID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICrequestID */ -typedef struct RICrequestID { - long ricRequestorID; - long ricInstanceID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICrequestID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICrequestID; -extern asn_SEQUENCE_specifics_t asn_SPC_RICrequestID_specs_1; -extern asn_TYPE_member_t asn_MBR_RICrequestID_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICrequestID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICserviceQuery.c b/e2sim/src/ASN1c/RICserviceQuery.c deleted file mode 100644 index 3d5e6c4..0000000 --- a/e2sim/src/ASN1c/RICserviceQuery.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICserviceQuery.h" - -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_Container_1917P26, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceQuery_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceQuery_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_specs_1 = { - sizeof(struct RICserviceQuery), - offsetof(struct RICserviceQuery, _asn_ctx), - asn_MAP_RICserviceQuery_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_RICserviceQuery = { - "RICserviceQuery", - "RICserviceQuery", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceQuery_tags_1, - sizeof(asn_DEF_RICserviceQuery_tags_1) - /sizeof(asn_DEF_RICserviceQuery_tags_1[0]), /* 1 */ - asn_DEF_RICserviceQuery_tags_1, /* Same as above */ - sizeof(asn_DEF_RICserviceQuery_tags_1) - /sizeof(asn_DEF_RICserviceQuery_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceQuery_1, - 1, /* Elements count */ - &asn_SPC_RICserviceQuery_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICserviceQuery.h b/e2sim/src/ASN1c/RICserviceQuery.h deleted file mode 100644 index 3ccba64..0000000 --- a/e2sim/src/ASN1c/RICserviceQuery.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICserviceQuery_H_ -#define _RICserviceQuery_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICserviceQuery */ -typedef struct RICserviceQuery { - ProtocolIE_Container_1917P26_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceQuery_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICserviceQuery; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_specs_1; -extern asn_TYPE_member_t asn_MBR_RICserviceQuery_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICserviceQuery_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICserviceUpdate.c b/e2sim/src/ASN1c/RICserviceUpdate.c deleted file mode 100644 index e3e58cb..0000000 --- a/e2sim/src/ASN1c/RICserviceUpdate.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICserviceUpdate.h" - -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_Container_1917P23, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdate_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdate_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_specs_1 = { - sizeof(struct RICserviceUpdate), - offsetof(struct RICserviceUpdate, _asn_ctx), - asn_MAP_RICserviceUpdate_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_RICserviceUpdate = { - "RICserviceUpdate", - "RICserviceUpdate", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdate_tags_1, - sizeof(asn_DEF_RICserviceUpdate_tags_1) - /sizeof(asn_DEF_RICserviceUpdate_tags_1[0]), /* 1 */ - asn_DEF_RICserviceUpdate_tags_1, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdate_tags_1) - /sizeof(asn_DEF_RICserviceUpdate_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdate_1, - 1, /* Elements count */ - &asn_SPC_RICserviceUpdate_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICserviceUpdate.h b/e2sim/src/ASN1c/RICserviceUpdate.h deleted file mode 100644 index 685230b..0000000 --- a/e2sim/src/ASN1c/RICserviceUpdate.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICserviceUpdate_H_ -#define _RICserviceUpdate_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICserviceUpdate */ -typedef struct RICserviceUpdate { - ProtocolIE_Container_1917P23_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceUpdate_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_specs_1; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdate_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICserviceUpdate_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICserviceUpdateAcknowledge.c b/e2sim/src/ASN1c/RICserviceUpdateAcknowledge.c deleted file mode 100644 index 7f72da6..0000000 --- a/e2sim/src/ASN1c/RICserviceUpdateAcknowledge.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICserviceUpdateAcknowledge.h" - -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_Container_1917P24, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdateAcknowledge_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateAcknowledge_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_specs_1 = { - sizeof(struct RICserviceUpdateAcknowledge), - offsetof(struct RICserviceUpdateAcknowledge, _asn_ctx), - asn_MAP_RICserviceUpdateAcknowledge_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_RICserviceUpdateAcknowledge = { - "RICserviceUpdateAcknowledge", - "RICserviceUpdateAcknowledge", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdateAcknowledge_tags_1, - sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1) - /sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1[0]), /* 1 */ - asn_DEF_RICserviceUpdateAcknowledge_tags_1, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1) - /sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdateAcknowledge_1, - 1, /* Elements count */ - &asn_SPC_RICserviceUpdateAcknowledge_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICserviceUpdateAcknowledge.h b/e2sim/src/ASN1c/RICserviceUpdateAcknowledge.h deleted file mode 100644 index 1403549..0000000 --- a/e2sim/src/ASN1c/RICserviceUpdateAcknowledge.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICserviceUpdateAcknowledge_H_ -#define _RICserviceUpdateAcknowledge_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICserviceUpdateAcknowledge */ -typedef struct RICserviceUpdateAcknowledge { - ProtocolIE_Container_1917P24_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceUpdateAcknowledge_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_specs_1; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICserviceUpdateAcknowledge_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICserviceUpdateFailure.c b/e2sim/src/ASN1c/RICserviceUpdateFailure.c deleted file mode 100644 index 109fa30..0000000 --- a/e2sim/src/ASN1c/RICserviceUpdateFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICserviceUpdateFailure.h" - -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_Container_1917P25, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdateFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_specs_1 = { - sizeof(struct RICserviceUpdateFailure), - offsetof(struct RICserviceUpdateFailure, _asn_ctx), - asn_MAP_RICserviceUpdateFailure_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_RICserviceUpdateFailure = { - "RICserviceUpdateFailure", - "RICserviceUpdateFailure", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdateFailure_tags_1, - sizeof(asn_DEF_RICserviceUpdateFailure_tags_1) - /sizeof(asn_DEF_RICserviceUpdateFailure_tags_1[0]), /* 1 */ - asn_DEF_RICserviceUpdateFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdateFailure_tags_1) - /sizeof(asn_DEF_RICserviceUpdateFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdateFailure_1, - 1, /* Elements count */ - &asn_SPC_RICserviceUpdateFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICserviceUpdateFailure.h b/e2sim/src/ASN1c/RICserviceUpdateFailure.h deleted file mode 100644 index 457e91b..0000000 --- a/e2sim/src/ASN1c/RICserviceUpdateFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICserviceUpdateFailure_H_ -#define _RICserviceUpdateFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICserviceUpdateFailure */ -typedef struct RICserviceUpdateFailure { - ProtocolIE_Container_1917P25_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceUpdateFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICserviceUpdateFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICsubscription-List-withCause.c b/e2sim/src/ASN1c/RICsubscription-List-withCause.c deleted file mode 100644 index b811b88..0000000 --- a/e2sim/src/ASN1c/RICsubscription-List-withCause.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICsubscription-List-withCause.h" - -#include "ProtocolIE-SingleContainer.h" -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_SingleContainer_1920P3, - 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 */ - { 0, &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/e2sim/src/ASN1c/RICsubscription-List-withCause.h b/e2sim/src/ASN1c/RICsubscription-List-withCause.h deleted file mode 100644 index a5a49fe..0000000 --- a/e2sim/src/ASN1c/RICsubscription-List-withCause.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICsubscription_List_withCause_H_ -#define _RICsubscription_List_withCause_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RICsubscription-List-withCause */ -typedef struct RICsubscription_List_withCause { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) 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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICsubscription-withCause-Item.c b/e2sim/src/ASN1c/RICsubscription-withCause-Item.c deleted file mode 100644 index 70ad981..0000000 --- a/e2sim/src/ASN1c/RICsubscription-withCause-Item.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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_Cause, - 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/e2sim/src/ASN1c/RICsubscription-withCause-Item.h b/e2sim/src/ASN1c/RICsubscription-withCause-Item.h deleted file mode 100644 index dd07834..0000000 --- a/e2sim/src/ASN1c/RICsubscription-withCause-Item.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICsubscription_withCause_Item_H_ -#define _RICsubscription_withCause_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICrequestID.h" -#include "RANfunctionID.h" -#include "Cause.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscription-withCause-Item */ -typedef struct RICsubscription_withCause_Item { - RICrequestID_t ricRequestID; - RANfunctionID_t ranFunctionID; - Cause_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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICsubscriptionDeleteFailure.c b/e2sim/src/ASN1c/RICsubscriptionDeleteFailure.c deleted file mode 100644 index 2c5d10a..0000000 --- a/e2sim/src/ASN1c/RICsubscriptionDeleteFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICsubscriptionDeleteFailure.h" - -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_Container_1917P5, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_specs_1 = { - sizeof(struct RICsubscriptionDeleteFailure), - offsetof(struct RICsubscriptionDeleteFailure, _asn_ctx), - asn_MAP_RICsubscriptionDeleteFailure_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_RICsubscriptionDeleteFailure = { - "RICsubscriptionDeleteFailure", - "RICsubscriptionDeleteFailure", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteFailure_tags_1, - sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteFailure_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICsubscriptionDeleteFailure.h b/e2sim/src/ASN1c/RICsubscriptionDeleteFailure.h deleted file mode 100644 index ad346e9..0000000 --- a/e2sim/src/ASN1c/RICsubscriptionDeleteFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICsubscriptionDeleteFailure_H_ -#define _RICsubscriptionDeleteFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionDeleteFailure */ -typedef struct RICsubscriptionDeleteFailure { - ProtocolIE_Container_1917P5_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDeleteFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionDeleteFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICsubscriptionDeleteRequest.c b/e2sim/src/ASN1c/RICsubscriptionDeleteRequest.c deleted file mode 100644 index 1197a03..0000000 --- a/e2sim/src/ASN1c/RICsubscriptionDeleteRequest.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICsubscriptionDeleteRequest.h" - -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_Container_1917P3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_specs_1 = { - sizeof(struct RICsubscriptionDeleteRequest), - offsetof(struct RICsubscriptionDeleteRequest, _asn_ctx), - asn_MAP_RICsubscriptionDeleteRequest_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_RICsubscriptionDeleteRequest = { - "RICsubscriptionDeleteRequest", - "RICsubscriptionDeleteRequest", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteRequest_tags_1, - sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteRequest_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICsubscriptionDeleteRequest.h b/e2sim/src/ASN1c/RICsubscriptionDeleteRequest.h deleted file mode 100644 index ca20aa0..0000000 --- a/e2sim/src/ASN1c/RICsubscriptionDeleteRequest.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICsubscriptionDeleteRequest_H_ -#define _RICsubscriptionDeleteRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionDeleteRequest */ -typedef struct RICsubscriptionDeleteRequest { - ProtocolIE_Container_1917P3_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDeleteRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionDeleteRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICsubscriptionDeleteRequired.c b/e2sim/src/ASN1c/RICsubscriptionDeleteRequired.c deleted file mode 100644 index 0ff50e2..0000000 --- a/e2sim/src/ASN1c/RICsubscriptionDeleteRequired.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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_Container_1917P6, - 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/e2sim/src/ASN1c/RICsubscriptionDeleteRequired.h b/e2sim/src/ASN1c/RICsubscriptionDeleteRequired.h deleted file mode 100644 index 9c2acac..0000000 --- a/e2sim/src/ASN1c/RICsubscriptionDeleteRequired.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICsubscriptionDeleteRequired_H_ -#define _RICsubscriptionDeleteRequired_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionDeleteRequired */ -typedef struct RICsubscriptionDeleteRequired { - ProtocolIE_Container_1917P6_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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICsubscriptionDeleteResponse.c b/e2sim/src/ASN1c/RICsubscriptionDeleteResponse.c deleted file mode 100644 index 52810b9..0000000 --- a/e2sim/src/ASN1c/RICsubscriptionDeleteResponse.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICsubscriptionDeleteResponse.h" - -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_Container_1917P4, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_specs_1 = { - sizeof(struct RICsubscriptionDeleteResponse), - offsetof(struct RICsubscriptionDeleteResponse, _asn_ctx), - asn_MAP_RICsubscriptionDeleteResponse_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_RICsubscriptionDeleteResponse = { - "RICsubscriptionDeleteResponse", - "RICsubscriptionDeleteResponse", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteResponse_tags_1, - sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteResponse_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICsubscriptionDeleteResponse.h b/e2sim/src/ASN1c/RICsubscriptionDeleteResponse.h deleted file mode 100644 index 912c37e..0000000 --- a/e2sim/src/ASN1c/RICsubscriptionDeleteResponse.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICsubscriptionDeleteResponse_H_ -#define _RICsubscriptionDeleteResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionDeleteResponse */ -typedef struct RICsubscriptionDeleteResponse { - ProtocolIE_Container_1917P4_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDeleteResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionDeleteResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICsubscriptionDetails.c b/e2sim/src/ASN1c/RICsubscriptionDetails.c deleted file mode 100644 index 9b2f4c9..0000000 --- a/e2sim/src/ASN1c/RICsubscriptionDetails.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICsubscriptionDetails.h" - -static asn_TYPE_member_t asn_MBR_RICsubscriptionDetails_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDetails, ricEventTriggerDefinition), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICeventTriggerDefinition, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricEventTriggerDefinition" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDetails, ricAction_ToBeSetup_List), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactions_ToBeSetup_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricAction-ToBeSetup-List" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDetails_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDetails_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricEventTriggerDefinition */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricAction-ToBeSetup-List */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDetails_specs_1 = { - sizeof(struct RICsubscriptionDetails), - offsetof(struct RICsubscriptionDetails, _asn_ctx), - asn_MAP_RICsubscriptionDetails_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_RICsubscriptionDetails = { - "RICsubscriptionDetails", - "RICsubscriptionDetails", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDetails_tags_1, - sizeof(asn_DEF_RICsubscriptionDetails_tags_1) - /sizeof(asn_DEF_RICsubscriptionDetails_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionDetails_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDetails_tags_1) - /sizeof(asn_DEF_RICsubscriptionDetails_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDetails_1, - 2, /* Elements count */ - &asn_SPC_RICsubscriptionDetails_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICsubscriptionDetails.h b/e2sim/src/ASN1c/RICsubscriptionDetails.h deleted file mode 100644 index d1aad64..0000000 --- a/e2sim/src/ASN1c/RICsubscriptionDetails.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICsubscriptionDetails_H_ -#define _RICsubscriptionDetails_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICeventTriggerDefinition.h" -#include "RICactions-ToBeSetup-List.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionDetails */ -typedef struct RICsubscriptionDetails { - RICeventTriggerDefinition_t ricEventTriggerDefinition; - RICactions_ToBeSetup_List_t ricAction_ToBeSetup_List; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDetails_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDetails; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionDetails_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICsubscriptionFailure.c b/e2sim/src/ASN1c/RICsubscriptionFailure.c deleted file mode 100644 index 29069a3..0000000 --- a/e2sim/src/ASN1c/RICsubscriptionFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICsubscriptionFailure.h" - -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_Container_1917P2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_specs_1 = { - sizeof(struct RICsubscriptionFailure), - offsetof(struct RICsubscriptionFailure, _asn_ctx), - asn_MAP_RICsubscriptionFailure_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_RICsubscriptionFailure = { - "RICsubscriptionFailure", - "RICsubscriptionFailure", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionFailure_tags_1, - sizeof(asn_DEF_RICsubscriptionFailure_tags_1) - /sizeof(asn_DEF_RICsubscriptionFailure_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionFailure_tags_1) - /sizeof(asn_DEF_RICsubscriptionFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionFailure_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICsubscriptionFailure.h b/e2sim/src/ASN1c/RICsubscriptionFailure.h deleted file mode 100644 index 4a7e356..0000000 --- a/e2sim/src/ASN1c/RICsubscriptionFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICsubscriptionFailure_H_ -#define _RICsubscriptionFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionFailure */ -typedef struct RICsubscriptionFailure { - ProtocolIE_Container_1917P2_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICsubscriptionRequest.c b/e2sim/src/ASN1c/RICsubscriptionRequest.c deleted file mode 100644 index dc71412..0000000 --- a/e2sim/src/ASN1c/RICsubscriptionRequest.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICsubscriptionRequest.h" - -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_Container_1917P0, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_specs_1 = { - sizeof(struct RICsubscriptionRequest), - offsetof(struct RICsubscriptionRequest, _asn_ctx), - asn_MAP_RICsubscriptionRequest_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_RICsubscriptionRequest = { - "RICsubscriptionRequest", - "RICsubscriptionRequest", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionRequest_tags_1, - sizeof(asn_DEF_RICsubscriptionRequest_tags_1) - /sizeof(asn_DEF_RICsubscriptionRequest_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionRequest_tags_1) - /sizeof(asn_DEF_RICsubscriptionRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionRequest_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICsubscriptionRequest.h b/e2sim/src/ASN1c/RICsubscriptionRequest.h deleted file mode 100644 index 8cded13..0000000 --- a/e2sim/src/ASN1c/RICsubscriptionRequest.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICsubscriptionRequest_H_ -#define _RICsubscriptionRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionRequest */ -typedef struct RICsubscriptionRequest { - ProtocolIE_Container_1917P0_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICsubscriptionResponse.c b/e2sim/src/ASN1c/RICsubscriptionResponse.c deleted file mode 100644 index 6274c4e..0000000 --- a/e2sim/src/ASN1c/RICsubscriptionResponse.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICsubscriptionResponse.h" - -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_Container_1917P1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_specs_1 = { - sizeof(struct RICsubscriptionResponse), - offsetof(struct RICsubscriptionResponse, _asn_ctx), - asn_MAP_RICsubscriptionResponse_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_RICsubscriptionResponse = { - "RICsubscriptionResponse", - "RICsubscriptionResponse", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionResponse_tags_1, - sizeof(asn_DEF_RICsubscriptionResponse_tags_1) - /sizeof(asn_DEF_RICsubscriptionResponse_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionResponse_tags_1) - /sizeof(asn_DEF_RICsubscriptionResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionResponse_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICsubscriptionResponse.h b/e2sim/src/ASN1c/RICsubscriptionResponse.h deleted file mode 100644 index ad549bc..0000000 --- a/e2sim/src/ASN1c/RICsubscriptionResponse.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICsubscriptionResponse_H_ -#define _RICsubscriptionResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionResponse */ -typedef struct RICsubscriptionResponse { - ProtocolIE_Container_1917P1_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICsubsequentAction.c b/e2sim/src/ASN1c/RICsubsequentAction.c deleted file mode 100644 index bd5abb8..0000000 --- a/e2sim/src/ASN1c/RICsubsequentAction.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICsubsequentAction.h" - -asn_TYPE_member_t asn_MBR_RICsubsequentAction_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubsequentAction, ricSubsequentActionType), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICsubsequentActionType, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricSubsequentActionType" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubsequentAction, ricTimeToWait), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICtimeToWait, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricTimeToWait" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubsequentAction_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubsequentAction_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricSubsequentActionType */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricTimeToWait */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubsequentAction_specs_1 = { - sizeof(struct RICsubsequentAction), - offsetof(struct RICsubsequentAction, _asn_ctx), - asn_MAP_RICsubsequentAction_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_RICsubsequentAction = { - "RICsubsequentAction", - "RICsubsequentAction", - &asn_OP_SEQUENCE, - asn_DEF_RICsubsequentAction_tags_1, - sizeof(asn_DEF_RICsubsequentAction_tags_1) - /sizeof(asn_DEF_RICsubsequentAction_tags_1[0]), /* 1 */ - asn_DEF_RICsubsequentAction_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubsequentAction_tags_1) - /sizeof(asn_DEF_RICsubsequentAction_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubsequentAction_1, - 2, /* Elements count */ - &asn_SPC_RICsubsequentAction_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICsubsequentAction.h b/e2sim/src/ASN1c/RICsubsequentAction.h deleted file mode 100644 index 250a32f..0000000 --- a/e2sim/src/ASN1c/RICsubsequentAction.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICsubsequentAction_H_ -#define _RICsubsequentAction_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICsubsequentActionType.h" -#include "RICtimeToWait.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubsequentAction */ -typedef struct RICsubsequentAction { - RICsubsequentActionType_t ricSubsequentActionType; - RICtimeToWait_t ricTimeToWait; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubsequentAction_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubsequentAction; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubsequentAction_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubsequentAction_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubsequentAction_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICsubsequentActionType.c b/e2sim/src/ASN1c/RICsubsequentActionType.c deleted file mode 100644 index c9842af..0000000 --- a/e2sim/src/ASN1c/RICsubsequentActionType.c +++ /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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICsubsequentActionType.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RICsubsequentActionType_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 */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICsubsequentActionType_value2enum_1[] = { - { 0, 8, "continue" }, - { 1, 4, "wait" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICsubsequentActionType_enum2value_1[] = { - 0, /* continue(0) */ - 1 /* wait(1) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_RICsubsequentActionType_specs_1 = { - asn_MAP_RICsubsequentActionType_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICsubsequentActionType_enum2value_1, /* 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_RICsubsequentActionType_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICsubsequentActionType = { - "RICsubsequentActionType", - "RICsubsequentActionType", - &asn_OP_NativeEnumerated, - asn_DEF_RICsubsequentActionType_tags_1, - sizeof(asn_DEF_RICsubsequentActionType_tags_1) - /sizeof(asn_DEF_RICsubsequentActionType_tags_1[0]), /* 1 */ - asn_DEF_RICsubsequentActionType_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubsequentActionType_tags_1) - /sizeof(asn_DEF_RICsubsequentActionType_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICsubsequentActionType_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICsubsequentActionType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICsubsequentActionType.h b/e2sim/src/ASN1c/RICsubsequentActionType.h deleted file mode 100644 index 52adf9d..0000000 --- a/e2sim/src/ASN1c/RICsubsequentActionType.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICsubsequentActionType_H_ -#define _RICsubsequentActionType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICsubsequentActionType { - RICsubsequentActionType_continue = 0, - RICsubsequentActionType_wait = 1 - /* - * Enumeration is extensible - */ -} e_RICsubsequentActionType; - -/* RICsubsequentActionType */ -typedef long RICsubsequentActionType_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICsubsequentActionType_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RICsubsequentActionType; -extern const asn_INTEGER_specifics_t asn_SPC_RICsubsequentActionType_specs_1; -asn_struct_free_f RICsubsequentActionType_free; -asn_struct_print_f RICsubsequentActionType_print; -asn_constr_check_f RICsubsequentActionType_constraint; -ber_type_decoder_f RICsubsequentActionType_decode_ber; -der_type_encoder_f RICsubsequentActionType_encode_der; -xer_type_decoder_f RICsubsequentActionType_decode_xer; -xer_type_encoder_f RICsubsequentActionType_encode_xer; -per_type_decoder_f RICsubsequentActionType_decode_uper; -per_type_encoder_f RICsubsequentActionType_encode_uper; -per_type_decoder_f RICsubsequentActionType_decode_aper; -per_type_encoder_f RICsubsequentActionType_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubsequentActionType_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICtimeToWait.c b/e2sim/src/ASN1c/RICtimeToWait.c deleted file mode 100644 index 265d710..0000000 --- a/e2sim/src/ASN1c/RICtimeToWait.c +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "RICtimeToWait.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RICtimeToWait_constr_1 CC_NOTUSED = { - { 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, "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[] = { - 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 */ - 17, /* Number of elements in the maps */ - 18, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RICtimeToWait_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICtimeToWait = { - "RICtimeToWait", - "RICtimeToWait", - &asn_OP_NativeEnumerated, - asn_DEF_RICtimeToWait_tags_1, - sizeof(asn_DEF_RICtimeToWait_tags_1) - /sizeof(asn_DEF_RICtimeToWait_tags_1[0]), /* 1 */ - asn_DEF_RICtimeToWait_tags_1, /* Same as above */ - sizeof(asn_DEF_RICtimeToWait_tags_1) - /sizeof(asn_DEF_RICtimeToWait_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICtimeToWait_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICtimeToWait_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICtimeToWait.h b/e2sim/src/ASN1c/RICtimeToWait.h deleted file mode 100644 index 12bf29f..0000000 --- a/e2sim/src/ASN1c/RICtimeToWait.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _RICtimeToWait_H_ -#define _RICtimeToWait_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICtimeToWait { - 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 - */ -} e_RICtimeToWait; - -/* RICtimeToWait */ -typedef long RICtimeToWait_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICtimeToWait_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RICtimeToWait; -extern const asn_INTEGER_specifics_t asn_SPC_RICtimeToWait_specs_1; -asn_struct_free_f RICtimeToWait_free; -asn_struct_print_f RICtimeToWait_print; -asn_constr_check_f RICtimeToWait_constraint; -ber_type_decoder_f RICtimeToWait_decode_ber; -der_type_encoder_f RICtimeToWait_encode_der; -xer_type_decoder_f RICtimeToWait_decode_xer; -xer_type_encoder_f RICtimeToWait_encode_xer; -per_type_decoder_f RICtimeToWait_decode_uper; -per_type_encoder_f RICtimeToWait_encode_uper; -per_type_decoder_f RICtimeToWait_decode_aper; -per_type_encoder_f RICtimeToWait_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICtimeToWait_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/ResetRequest.c b/e2sim/src/ASN1c/ResetRequest.c deleted file mode 100644 index 78e7d4c..0000000 --- a/e2sim/src/ASN1c/ResetRequest.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "ResetRequest.h" - -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_Container_1917P21, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResetRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResetRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResetRequest_specs_1 = { - sizeof(struct ResetRequest), - offsetof(struct ResetRequest, _asn_ctx), - asn_MAP_ResetRequest_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_ResetRequest = { - "ResetRequest", - "ResetRequest", - &asn_OP_SEQUENCE, - asn_DEF_ResetRequest_tags_1, - sizeof(asn_DEF_ResetRequest_tags_1) - /sizeof(asn_DEF_ResetRequest_tags_1[0]), /* 1 */ - asn_DEF_ResetRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_ResetRequest_tags_1) - /sizeof(asn_DEF_ResetRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResetRequest_1, - 1, /* Elements count */ - &asn_SPC_ResetRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/ResetRequest.h b/e2sim/src/ASN1c/ResetRequest.h deleted file mode 100644 index a9a145e..0000000 --- a/e2sim/src/ASN1c/ResetRequest.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _ResetRequest_H_ -#define _ResetRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ResetRequest */ -typedef struct ResetRequest { - ProtocolIE_Container_1917P21_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResetRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ResetRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_ResetRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_ResetRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ResetRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/ResetResponse.c b/e2sim/src/ASN1c/ResetResponse.c deleted file mode 100644 index 898bc27..0000000 --- a/e2sim/src/ASN1c/ResetResponse.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "ResetResponse.h" - -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_Container_1917P22, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResetResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResetResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResetResponse_specs_1 = { - sizeof(struct ResetResponse), - offsetof(struct ResetResponse, _asn_ctx), - asn_MAP_ResetResponse_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_ResetResponse = { - "ResetResponse", - "ResetResponse", - &asn_OP_SEQUENCE, - asn_DEF_ResetResponse_tags_1, - sizeof(asn_DEF_ResetResponse_tags_1) - /sizeof(asn_DEF_ResetResponse_tags_1[0]), /* 1 */ - asn_DEF_ResetResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_ResetResponse_tags_1) - /sizeof(asn_DEF_ResetResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResetResponse_1, - 1, /* Elements count */ - &asn_SPC_ResetResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/ResetResponse.h b/e2sim/src/ASN1c/ResetResponse.h deleted file mode 100644 index 10a78cb..0000000 --- a/e2sim/src/ASN1c/ResetResponse.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _ResetResponse_H_ -#define _ResetResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ResetResponse */ -typedef struct ResetResponse { - ProtocolIE_Container_1917P22_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResetResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ResetResponse; -extern asn_SEQUENCE_specifics_t asn_SPC_ResetResponse_specs_1; -extern asn_TYPE_member_t asn_MBR_ResetResponse_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ResetResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/SuccessfulOutcome.c b/e2sim/src/ASN1c/SuccessfulOutcome.c deleted file mode 100644 index f9001b5..0000000 --- a/e2sim/src/ASN1c/SuccessfulOutcome.c +++ /dev/null @@ -1,400 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "SuccessfulOutcome.h" - -static const long asn_VAL_1_id_RICsubscription = 8; -static const long asn_VAL_1_reject = 0; -static const long asn_VAL_2_id_RICsubscriptionDelete = 9; -static const long asn_VAL_2_reject = 0; -static const long asn_VAL_3_id_RICserviceUpdate = 7; -static const long asn_VAL_3_reject = 0; -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_E2nodeConfigurationUpdate = 10; -static const long asn_VAL_6_reject = 0; -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_ErrorIndication = 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[] = { - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_RICsubscription }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_RICsubscriptionDelete }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_RICserviceUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICcontrolRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_RICcontrol }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_E2setupRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2setupResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2setupFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_E2setup }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_E2nodeConfigurationUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2nodeConfigurationUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2nodeConfigurationUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_E2nodeConfigurationUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_E2connectionUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2connectionUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2connectionUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_E2connectionUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ResetRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_Reset }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICindication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_RICindication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceQuery }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_10_id_RICserviceQuery }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_11_id_ErrorIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequired }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_12_id_RICsubscriptionDeleteRequired }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_ignore } -}; -static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { - { 12, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } -}; -static int -memb_procedureCode_constraint_1(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; - } -} - -static asn_type_selector_result_t -select_SuccessfulOutcome_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_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 4; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SuccessfulOutcome, procedureCode)); - - 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_1(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_SuccessfulOutcome_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_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 1; /* &SuccessfulOutcome */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SuccessfulOutcome, procedureCode)); - - 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_1(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_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -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_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_TYPE_member_t asn_MBR_value_4[] = { - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICsubscriptionResponse), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionResponse, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionResponse" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICsubscriptionDeleteResponse), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteResponse, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionDeleteResponse" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICserviceUpdateAcknowledge), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdateAcknowledge, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICserviceUpdateAcknowledge" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICcontrolAcknowledge), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolAcknowledge, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolAcknowledge" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.E2setupResponse), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupResponse, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2setupResponse" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__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 SuccessfulOutcome__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 SuccessfulOutcome__value, choice.ResetResponse), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResetResponse, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ResetResponse" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { - { (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 SuccessfulOutcome__value), - offsetof(struct SuccessfulOutcome__value, _asn_ctx), - offsetof(struct SuccessfulOutcome__value, present), - sizeof(((struct SuccessfulOutcome__value *)0)->present), - asn_MAP_value_tag2el_4, - 8, /* 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, - 8, /* Elements count */ - &asn_SPC_value_specs_4 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SuccessfulOutcome_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome, procedureCode), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProcedureCode, - 0, - { 0, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, - 0, 0, /* No default value */ - "procedureCode" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SuccessfulOutcome_criticality_type, - { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_4, - select_SuccessfulOutcome_value_type, - { 0, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SuccessfulOutcome_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SuccessfulOutcome_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ - { (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_SuccessfulOutcome_specs_1 = { - sizeof(struct SuccessfulOutcome), - offsetof(struct SuccessfulOutcome, _asn_ctx), - asn_MAP_SuccessfulOutcome_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_SuccessfulOutcome = { - "SuccessfulOutcome", - "SuccessfulOutcome", - &asn_OP_SEQUENCE, - asn_DEF_SuccessfulOutcome_tags_1, - sizeof(asn_DEF_SuccessfulOutcome_tags_1) - /sizeof(asn_DEF_SuccessfulOutcome_tags_1[0]), /* 1 */ - asn_DEF_SuccessfulOutcome_tags_1, /* Same as above */ - sizeof(asn_DEF_SuccessfulOutcome_tags_1) - /sizeof(asn_DEF_SuccessfulOutcome_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SuccessfulOutcome_1, - 3, /* Elements count */ - &asn_SPC_SuccessfulOutcome_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/SuccessfulOutcome.h b/e2sim/src/ASN1c/SuccessfulOutcome.h deleted file mode 100644 index 972e53a..0000000 --- a/e2sim/src/ASN1c/SuccessfulOutcome.h +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _SuccessfulOutcome_H_ -#define _SuccessfulOutcome_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProcedureCode.h" -#include "Criticality.h" -#include "ANY.h" -#include "asn_ioc.h" -#include "RICsubscriptionRequest.h" -#include "RICsubscriptionResponse.h" -#include "RICsubscriptionFailure.h" -#include "RICsubscriptionDeleteRequest.h" -#include "RICsubscriptionDeleteResponse.h" -#include "RICsubscriptionDeleteFailure.h" -#include "RICserviceUpdate.h" -#include "RICserviceUpdateAcknowledge.h" -#include "RICserviceUpdateFailure.h" -#include "RICcontrolRequest.h" -#include "RICcontrolAcknowledge.h" -#include "RICcontrolFailure.h" -#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 "ErrorIndication.h" -#include "RICsubscriptionDeleteRequired.h" -#include "OPEN_TYPE.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum SuccessfulOutcome__value_PR { - SuccessfulOutcome__value_PR_NOTHING, /* No components present */ - SuccessfulOutcome__value_PR_RICsubscriptionResponse, - SuccessfulOutcome__value_PR_RICsubscriptionDeleteResponse, - SuccessfulOutcome__value_PR_RICserviceUpdateAcknowledge, - SuccessfulOutcome__value_PR_RICcontrolAcknowledge, - SuccessfulOutcome__value_PR_E2setupResponse, - SuccessfulOutcome__value_PR_E2nodeConfigurationUpdateAcknowledge, - SuccessfulOutcome__value_PR_E2connectionUpdateAcknowledge, - SuccessfulOutcome__value_PR_ResetResponse -} SuccessfulOutcome__value_PR; - -/* SuccessfulOutcome */ -typedef struct SuccessfulOutcome { - ProcedureCode_t procedureCode; - Criticality_t criticality; - struct SuccessfulOutcome__value { - SuccessfulOutcome__value_PR present; - union SuccessfulOutcome__value_u { - RICsubscriptionResponse_t RICsubscriptionResponse; - RICsubscriptionDeleteResponse_t RICsubscriptionDeleteResponse; - RICserviceUpdateAcknowledge_t RICserviceUpdateAcknowledge; - RICcontrolAcknowledge_t RICcontrolAcknowledge; - E2setupResponse_t E2setupResponse; - E2nodeConfigurationUpdateAcknowledge_t E2nodeConfigurationUpdateAcknowledge; - E2connectionUpdateAcknowledge_t E2connectionUpdateAcknowledge; - ResetResponse_t ResetResponse; - } 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; -} SuccessfulOutcome_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SuccessfulOutcome; -extern asn_SEQUENCE_specifics_t asn_SPC_SuccessfulOutcome_specs_1; -extern asn_TYPE_member_t asn_MBR_SuccessfulOutcome_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _SuccessfulOutcome_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/TNLinformation.c b/e2sim/src/ASN1c/TNLinformation.c deleted file mode 100644 index bead0bd..0000000 --- a/e2sim/src/ASN1c/TNLinformation.c +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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_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_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, - { 0, &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, - { 0, &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/e2sim/src/ASN1c/TNLinformation.h b/e2sim/src/ASN1c/TNLinformation.h deleted file mode 100644 index 492177b..0000000 --- a/e2sim/src/ASN1c/TNLinformation.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _TNLinformation_H_ -#define _TNLinformation_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" -#include "constr_SEQUENCE.h" - -#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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/TNLusage.c b/e2sim/src/ASN1c/TNLusage.c deleted file mode 100644 index 005ec78..0000000 --- a/e2sim/src/ASN1c/TNLusage.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "TNLusage.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -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 */ - { 0, &asn_PER_type_TNLusage_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_TNLusage_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/TNLusage.h b/e2sim/src/ASN1c/TNLusage.h deleted file mode 100644 index a0b9aeb..0000000 --- a/e2sim/src/ASN1c/TNLusage.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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _TNLusage_H_ -#define _TNLusage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#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; -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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/TimeToWait.c b/e2sim/src/ASN1c/TimeToWait.c deleted file mode 100644 index 21e2e2c..0000000 --- a/e2sim/src/ASN1c/TimeToWait.c +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "TimeToWait.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_TimeToWait_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_TimeToWait_value2enum_1[] = { - { 0, 3, "v1s" }, - { 1, 3, "v2s" }, - { 2, 3, "v5s" }, - { 3, 4, "v10s" }, - { 4, 4, "v20s" }, - { 5, 4, "v60s" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_TimeToWait_enum2value_1[] = { - 3, /* v10s(3) */ - 0, /* v1s(0) */ - 4, /* v20s(4) */ - 1, /* v2s(1) */ - 2, /* v5s(2) */ - 5 /* v60s(5) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_TimeToWait_specs_1 = { - asn_MAP_TimeToWait_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_TimeToWait_enum2value_1, /* N => "tag"; sorted by N */ - 6, /* Number of elements in the maps */ - 7, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_TimeToWait_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_TimeToWait = { - "TimeToWait", - "TimeToWait", - &asn_OP_NativeEnumerated, - asn_DEF_TimeToWait_tags_1, - sizeof(asn_DEF_TimeToWait_tags_1) - /sizeof(asn_DEF_TimeToWait_tags_1[0]), /* 1 */ - asn_DEF_TimeToWait_tags_1, /* Same as above */ - sizeof(asn_DEF_TimeToWait_tags_1) - /sizeof(asn_DEF_TimeToWait_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_TimeToWait_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_TimeToWait_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/TimeToWait.h b/e2sim/src/ASN1c/TimeToWait.h deleted file mode 100644 index 9cc05a3..0000000 --- a/e2sim/src/ASN1c/TimeToWait.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _TimeToWait_H_ -#define _TimeToWait_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum TimeToWait { - TimeToWait_v1s = 0, - TimeToWait_v2s = 1, - TimeToWait_v5s = 2, - TimeToWait_v10s = 3, - TimeToWait_v20s = 4, - TimeToWait_v60s = 5 - /* - * Enumeration is extensible - */ -} e_TimeToWait; - -/* TimeToWait */ -typedef long TimeToWait_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_TimeToWait; -asn_struct_free_f TimeToWait_free; -asn_struct_print_f TimeToWait_print; -asn_constr_check_f TimeToWait_constraint; -ber_type_decoder_f TimeToWait_decode_ber; -der_type_encoder_f TimeToWait_encode_der; -xer_type_decoder_f TimeToWait_decode_xer; -xer_type_encoder_f TimeToWait_encode_xer; -per_type_decoder_f TimeToWait_decode_uper; -per_type_encoder_f TimeToWait_encode_uper; -per_type_decoder_f TimeToWait_decode_aper; -per_type_encoder_f TimeToWait_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _TimeToWait_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/TransactionID.c b/e2sim/src/ASN1c/TransactionID.c deleted file mode 100644 index 3cb38cd..0000000 --- a/e2sim/src/ASN1c/TransactionID.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#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_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 */ - { 0, &asn_PER_type_TransactionID_constr_1, TransactionID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/src/ASN1c/TransactionID.h b/e2sim/src/ASN1c/TransactionID.h deleted file mode 100644 index 92dbf69..0000000 --- a/e2sim/src/ASN1c/TransactionID.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _TransactionID_H_ -#define _TransactionID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#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; -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 "asn_internal.h" diff --git a/e2sim/src/ASN1c/TriggeringMessage.c b/e2sim/src/ASN1c/TriggeringMessage.c deleted file mode 100644 index 7eb8ba2..0000000 --- a/e2sim/src/ASN1c/TriggeringMessage.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "TriggeringMessage.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_TriggeringMessage_constr_1 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_INTEGER_enum_map_t asn_MAP_TriggeringMessage_value2enum_1[] = { - { 0, 18, "initiating-message" }, - { 1, 18, "successful-outcome" }, - { 2, 21, "unsuccessfull-outcome" } -}; -static const unsigned int asn_MAP_TriggeringMessage_enum2value_1[] = { - 0, /* initiating-message(0) */ - 1, /* successful-outcome(1) */ - 2 /* unsuccessfull-outcome(2) */ -}; -const asn_INTEGER_specifics_t asn_SPC_TriggeringMessage_specs_1 = { - asn_MAP_TriggeringMessage_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_TriggeringMessage_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 0, /* Enumeration is not extensible */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_TriggeringMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_TriggeringMessage = { - "TriggeringMessage", - "TriggeringMessage", - &asn_OP_NativeEnumerated, - asn_DEF_TriggeringMessage_tags_1, - sizeof(asn_DEF_TriggeringMessage_tags_1) - /sizeof(asn_DEF_TriggeringMessage_tags_1[0]), /* 1 */ - asn_DEF_TriggeringMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_TriggeringMessage_tags_1) - /sizeof(asn_DEF_TriggeringMessage_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_TriggeringMessage_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_TriggeringMessage_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/TriggeringMessage.h b/e2sim/src/ASN1c/TriggeringMessage.h deleted file mode 100644 index 3a7beee..0000000 --- a/e2sim/src/ASN1c/TriggeringMessage.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _TriggeringMessage_H_ -#define _TriggeringMessage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum TriggeringMessage { - TriggeringMessage_initiating_message = 0, - TriggeringMessage_successful_outcome = 1, - TriggeringMessage_unsuccessfull_outcome = 2 -} e_TriggeringMessage; - -/* TriggeringMessage */ -typedef long TriggeringMessage_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_TriggeringMessage_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_TriggeringMessage; -extern const asn_INTEGER_specifics_t asn_SPC_TriggeringMessage_specs_1; -asn_struct_free_f TriggeringMessage_free; -asn_struct_print_f TriggeringMessage_print; -asn_constr_check_f TriggeringMessage_constraint; -ber_type_decoder_f TriggeringMessage_decode_ber; -der_type_encoder_f TriggeringMessage_encode_der; -xer_type_decoder_f TriggeringMessage_decode_xer; -xer_type_encoder_f TriggeringMessage_encode_xer; -per_type_decoder_f TriggeringMessage_decode_uper; -per_type_encoder_f TriggeringMessage_encode_uper; -per_type_decoder_f TriggeringMessage_decode_aper; -per_type_encoder_f TriggeringMessage_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _TriggeringMessage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/TypeOfError.c b/e2sim/src/ASN1c/TypeOfError.c deleted file mode 100644 index a97e64c..0000000 --- a/e2sim/src/ASN1c/TypeOfError.c +++ /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-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "TypeOfError.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_TypeOfError_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 */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_TypeOfError_value2enum_1[] = { - { 0, 14, "not-understood" }, - { 1, 7, "missing" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_TypeOfError_enum2value_1[] = { - 1, /* missing(1) */ - 0 /* not-understood(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_TypeOfError_specs_1 = { - asn_MAP_TypeOfError_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_TypeOfError_enum2value_1, /* 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_TypeOfError_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_TypeOfError = { - "TypeOfError", - "TypeOfError", - &asn_OP_NativeEnumerated, - asn_DEF_TypeOfError_tags_1, - sizeof(asn_DEF_TypeOfError_tags_1) - /sizeof(asn_DEF_TypeOfError_tags_1[0]), /* 1 */ - asn_DEF_TypeOfError_tags_1, /* Same as above */ - sizeof(asn_DEF_TypeOfError_tags_1) - /sizeof(asn_DEF_TypeOfError_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_TypeOfError_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_TypeOfError_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/TypeOfError.h b/e2sim/src/ASN1c/TypeOfError.h deleted file mode 100644 index 1c5f44f..0000000 --- a/e2sim/src/ASN1c/TypeOfError.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _TypeOfError_H_ -#define _TypeOfError_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum TypeOfError { - TypeOfError_not_understood = 0, - TypeOfError_missing = 1 - /* - * Enumeration is extensible - */ -} e_TypeOfError; - -/* TypeOfError */ -typedef long TypeOfError_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_TypeOfError_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_TypeOfError; -extern const asn_INTEGER_specifics_t asn_SPC_TypeOfError_specs_1; -asn_struct_free_f TypeOfError_free; -asn_struct_print_f TypeOfError_print; -asn_constr_check_f TypeOfError_constraint; -ber_type_decoder_f TypeOfError_decode_ber; -der_type_encoder_f TypeOfError_encode_der; -xer_type_decoder_f TypeOfError_decode_xer; -xer_type_encoder_f TypeOfError_encode_xer; -per_type_decoder_f TypeOfError_decode_uper; -per_type_encoder_f TypeOfError_encode_uper; -per_type_decoder_f TypeOfError_decode_aper; -per_type_encoder_f TypeOfError_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _TypeOfError_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/UnsuccessfulOutcome.c b/e2sim/src/ASN1c/UnsuccessfulOutcome.c deleted file mode 100644 index f7d0b2e..0000000 --- a/e2sim/src/ASN1c/UnsuccessfulOutcome.c +++ /dev/null @@ -1,390 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#include "UnsuccessfulOutcome.h" - -static const long asn_VAL_1_id_RICsubscription = 8; -static const long asn_VAL_1_reject = 0; -static const long asn_VAL_2_id_RICsubscriptionDelete = 9; -static const long asn_VAL_2_reject = 0; -static const long asn_VAL_3_id_RICserviceUpdate = 7; -static const long asn_VAL_3_reject = 0; -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_E2nodeConfigurationUpdate = 10; -static const long asn_VAL_6_reject = 0; -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_ErrorIndication = 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[] = { - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_RICsubscription }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_RICsubscriptionDelete }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_RICserviceUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICcontrolRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_RICcontrol }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_E2setupRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2setupResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2setupFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_E2setup }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_E2nodeConfigurationUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2nodeConfigurationUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2nodeConfigurationUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_E2nodeConfigurationUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_E2connectionUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2connectionUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2connectionUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_E2connectionUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ResetRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_Reset }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICindication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_RICindication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceQuery }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_10_id_RICserviceQuery }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_11_id_ErrorIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequired }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_12_id_RICsubscriptionDeleteRequired }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_ignore } -}; -static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { - { 12, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } -}; -static int -memb_procedureCode_constraint_1(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; - } -} - -static asn_type_selector_result_t -select_UnsuccessfulOutcome_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_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 4; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UnsuccessfulOutcome, procedureCode)); - - 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_1(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_UnsuccessfulOutcome_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_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 2; /* &UnsuccessfulOutcome */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UnsuccessfulOutcome, procedureCode)); - - 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_1(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_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -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_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_TYPE_member_t asn_MBR_value_4[] = { - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICsubscriptionFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICsubscriptionDeleteFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionDeleteFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICserviceUpdateFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdateFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICserviceUpdateFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICcontrolFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.E2setupFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2setupFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__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 UnsuccessfulOutcome__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, 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 UnsuccessfulOutcome__value), - offsetof(struct UnsuccessfulOutcome__value, _asn_ctx), - offsetof(struct UnsuccessfulOutcome__value, present), - sizeof(((struct UnsuccessfulOutcome__value *)0)->present), - asn_MAP_value_tag2el_4, - 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_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, - 7, /* Elements count */ - &asn_SPC_value_specs_4 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_UnsuccessfulOutcome_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome, procedureCode), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProcedureCode, - 0, - { 0, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, - 0, 0, /* No default value */ - "procedureCode" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_UnsuccessfulOutcome_criticality_type, - { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_4, - select_UnsuccessfulOutcome_value_type, - { 0, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_UnsuccessfulOutcome_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UnsuccessfulOutcome_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ - { (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_UnsuccessfulOutcome_specs_1 = { - sizeof(struct UnsuccessfulOutcome), - offsetof(struct UnsuccessfulOutcome, _asn_ctx), - asn_MAP_UnsuccessfulOutcome_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_UnsuccessfulOutcome = { - "UnsuccessfulOutcome", - "UnsuccessfulOutcome", - &asn_OP_SEQUENCE, - asn_DEF_UnsuccessfulOutcome_tags_1, - sizeof(asn_DEF_UnsuccessfulOutcome_tags_1) - /sizeof(asn_DEF_UnsuccessfulOutcome_tags_1[0]), /* 1 */ - asn_DEF_UnsuccessfulOutcome_tags_1, /* Same as above */ - sizeof(asn_DEF_UnsuccessfulOutcome_tags_1) - /sizeof(asn_DEF_UnsuccessfulOutcome_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UnsuccessfulOutcome_1, - 3, /* Elements count */ - &asn_SPC_UnsuccessfulOutcome_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/UnsuccessfulOutcome.h b/e2sim/src/ASN1c/UnsuccessfulOutcome.h deleted file mode 100644 index 3ad8cf6..0000000 --- a/e2sim/src/ASN1c/UnsuccessfulOutcome.h +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "e2ap-v2.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` - */ - -#ifndef _UnsuccessfulOutcome_H_ -#define _UnsuccessfulOutcome_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProcedureCode.h" -#include "Criticality.h" -#include "ANY.h" -#include "asn_ioc.h" -#include "RICsubscriptionRequest.h" -#include "RICsubscriptionResponse.h" -#include "RICsubscriptionFailure.h" -#include "RICsubscriptionDeleteRequest.h" -#include "RICsubscriptionDeleteResponse.h" -#include "RICsubscriptionDeleteFailure.h" -#include "RICserviceUpdate.h" -#include "RICserviceUpdateAcknowledge.h" -#include "RICserviceUpdateFailure.h" -#include "RICcontrolRequest.h" -#include "RICcontrolAcknowledge.h" -#include "RICcontrolFailure.h" -#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 "ErrorIndication.h" -#include "RICsubscriptionDeleteRequired.h" -#include "OPEN_TYPE.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum UnsuccessfulOutcome__value_PR { - UnsuccessfulOutcome__value_PR_NOTHING, /* No components present */ - UnsuccessfulOutcome__value_PR_RICsubscriptionFailure, - UnsuccessfulOutcome__value_PR_RICsubscriptionDeleteFailure, - UnsuccessfulOutcome__value_PR_RICserviceUpdateFailure, - UnsuccessfulOutcome__value_PR_RICcontrolFailure, - UnsuccessfulOutcome__value_PR_E2setupFailure, - UnsuccessfulOutcome__value_PR_E2nodeConfigurationUpdateFailure, - UnsuccessfulOutcome__value_PR_E2connectionUpdateFailure -} UnsuccessfulOutcome__value_PR; - -/* UnsuccessfulOutcome */ -typedef struct UnsuccessfulOutcome { - ProcedureCode_t procedureCode; - Criticality_t criticality; - struct UnsuccessfulOutcome__value { - UnsuccessfulOutcome__value_PR present; - union UnsuccessfulOutcome__value_u { - RICsubscriptionFailure_t RICsubscriptionFailure; - RICsubscriptionDeleteFailure_t RICsubscriptionDeleteFailure; - RICserviceUpdateFailure_t RICserviceUpdateFailure; - RICcontrolFailure_t RICcontrolFailure; - E2setupFailure_t E2setupFailure; - E2nodeConfigurationUpdateFailure_t E2nodeConfigurationUpdateFailure; - E2connectionUpdateFailure_t E2connectionUpdateFailure; - } 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; -} UnsuccessfulOutcome_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UnsuccessfulOutcome; -extern asn_SEQUENCE_specifics_t asn_SPC_UnsuccessfulOutcome_specs_1; -extern asn_TYPE_member_t asn_MBR_UnsuccessfulOutcome_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _UnsuccessfulOutcome_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/asn_SEQUENCE_OF.c b/e2sim/src/ASN1c/asn_SEQUENCE_OF.c deleted file mode 100644 index ec952fc..0000000 --- a/e2sim/src/ASN1c/asn_SEQUENCE_OF.c +++ /dev/null @@ -1,41 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -typedef A_SEQUENCE_OF(void) asn_sequence; - -void -asn_sequence_del(void *asn_sequence_of_x, int number, int _do_free) { - asn_sequence *as = (asn_sequence *)asn_sequence_of_x; - - if(as) { - void *ptr; - int n; - - if(number < 0 || number >= as->count) - return; /* Nothing to delete */ - - if(_do_free && as->free) { - ptr = as->array[number]; - } else { - ptr = 0; - } - - /* - * Shift all elements to the left to hide the gap. - */ - --as->count; - for(n = number; n < as->count; n++) - as->array[n] = as->array[n+1]; - - /* - * Invoke the third-party function only when the state - * of the parent structure is consistent. - */ - if(ptr) as->free(ptr); - } -} - diff --git a/e2sim/src/ASN1c/asn_SEQUENCE_OF.h b/e2sim/src/ASN1c/asn_SEQUENCE_OF.h deleted file mode 100644 index e35bc44..0000000 --- a/e2sim/src/ASN1c/asn_SEQUENCE_OF.h +++ /dev/null @@ -1,52 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_SEQUENCE_OF_H -#define ASN_SEQUENCE_OF_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * SEQUENCE OF is the same as SET OF with a tiny difference: - * the delete operation preserves the initial order of elements - * and thus MAY operate in non-constant time. - */ -#define A_SEQUENCE_OF(type) A_SET_OF(type) - -#define ASN_SEQUENCE_ADD(headptr, ptr) \ - asn_sequence_add((headptr), (ptr)) - -/*********************************************** - * Implementation of the SEQUENCE OF structure. - */ - -#define asn_sequence_add asn_set_add -#define asn_sequence_empty asn_set_empty - -/* - * Delete the element from the set by its number (base 0). - * This is NOT a constant-time operation. - * The order of elements is preserved. - * If _do_free is given AND the (*free) is initialized, the element - * will be freed using the custom (*free) function as well. - */ -void asn_sequence_del(void *asn_sequence_of_x, int number, int _do_free); - -/* - * Cope with different conversions requirements to/from void in C and C++. - * This is mostly useful for support library. - */ -typedef A_SEQUENCE_OF(void) asn_anonymous_sequence_; -#define _A_SEQUENCE_FROM_VOID(ptr) ((asn_anonymous_sequence_ *)(ptr)) -#define _A_CSEQUENCE_FROM_VOID(ptr) ((const asn_anonymous_sequence_ *)(ptr)) - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_SEQUENCE_OF_H */ diff --git a/e2sim/src/ASN1c/asn_SET_OF.c b/e2sim/src/ASN1c/asn_SET_OF.c deleted file mode 100644 index 944f2cb..0000000 --- a/e2sim/src/ASN1c/asn_SET_OF.c +++ /dev/null @@ -1,88 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Add another element into the set. - */ -int -asn_set_add(void *asn_set_of_x, void *ptr) { - asn_anonymous_set_ *as = _A_SET_FROM_VOID(asn_set_of_x); - - if(as == 0 || ptr == 0) { - errno = EINVAL; /* Invalid arguments */ - return -1; - } - - /* - * Make sure there's enough space to insert an element. - */ - if(as->count == as->size) { - int _newsize = as->size ? (as->size << 1) : 4; - void *_new_arr; - _new_arr = REALLOC(as->array, _newsize * sizeof(as->array[0])); - if(_new_arr) { - as->array = (void **)_new_arr; - as->size = _newsize; - } else { - /* ENOMEM */ - return -1; - } - } - - as->array[as->count++] = ptr; - - return 0; -} - -void -asn_set_del(void *asn_set_of_x, int number, int _do_free) { - asn_anonymous_set_ *as = _A_SET_FROM_VOID(asn_set_of_x); - - if(as) { - void *ptr; - if(number < 0 || number >= as->count) - return; - - if(_do_free && as->free) { - ptr = as->array[number]; - } else { - ptr = 0; - } - - as->array[number] = as->array[--as->count]; - - /* - * Invoke the third-party function only when the state - * of the parent structure is consistent. - */ - if(ptr) as->free(ptr); - } -} - -/* - * Free the contents of the set, do not free the set itself. - */ -void -asn_set_empty(void *asn_set_of_x) { - asn_anonymous_set_ *as = _A_SET_FROM_VOID(asn_set_of_x); - - if(as) { - if(as->array) { - if(as->free) { - while(as->count--) - as->free(as->array[as->count]); - } - FREEMEM(as->array); - as->array = 0; - } - as->count = 0; - as->size = 0; - } - -} - diff --git a/e2sim/src/ASN1c/asn_SET_OF.h b/e2sim/src/ASN1c/asn_SET_OF.h deleted file mode 100644 index 882e1a4..0000000 --- a/e2sim/src/ASN1c/asn_SET_OF.h +++ /dev/null @@ -1,72 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_SET_OF_H -#define ASN_SET_OF_H - -#ifdef __cplusplus -#define A_SET_OF(type) \ - struct { \ - type **array; \ - int count; /* Meaningful size */ \ - int size; /* Allocated size */ \ - void (*free)(decltype(*array)); \ - } -#else /* C */ -#define A_SET_OF(type) \ - struct { \ - type **array; \ - int count; /* Meaningful size */ \ - int size; /* Allocated size */ \ - void (*free)(type *); \ - } -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#define ASN_SET_ADD(headptr, ptr) \ - asn_set_add((headptr), (ptr)) - -/******************************************* - * Implementation of the SET OF structure. - */ - -/* - * Add another structure into the set by its pointer. - * RETURN VALUES: - * 0 for success and -1/errno for failure. - */ -int asn_set_add(void *asn_set_of_x, void *ptr); - -/* - * Delete the element from the set by its number (base 0). - * This is a constant-time operation. The order of elements before the - * deleted ones is guaranteed, the order of elements after the deleted - * one is NOT guaranteed. - * If _do_free is given AND the (*free) is initialized, the element - * will be freed using the custom (*free) function as well. - */ -void asn_set_del(void *asn_set_of_x, int number, int _do_free); - -/* - * Empty the contents of the set. Will free the elements, if (*free) is given. - * Will NOT free the set itself. - */ -void asn_set_empty(void *asn_set_of_x); - -/* - * Cope with different conversions requirements to/from void in C and C++. - * This is mostly useful for support library. - */ -typedef A_SET_OF(void) asn_anonymous_set_; -#define _A_SET_FROM_VOID(ptr) ((asn_anonymous_set_ *)(ptr)) -#define _A_CSET_FROM_VOID(ptr) ((const asn_anonymous_set_ *)(ptr)) - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_SET_OF_H */ diff --git a/e2sim/src/ASN1c/asn_application.c b/e2sim/src/ASN1c/asn_application.c deleted file mode 100644 index 2bff460..0000000 --- a/e2sim/src/ASN1c/asn_application.c +++ /dev/null @@ -1,481 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -static asn_enc_rval_t asn_encode_internal(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, - const asn_TYPE_descriptor_t *td, - const void *sptr, - asn_app_consume_bytes_f *callback, - void *callback_key); - - -struct callback_count_bytes_key { - asn_app_consume_bytes_f *callback; - void *callback_key; - size_t computed_size; -}; - -/* - * Encoder which just counts bytes that come through it. - */ -static int -callback_count_bytes_cb(const void *data, size_t size, void *keyp) { - struct callback_count_bytes_key *key = keyp; - int ret; - - ret = key->callback(data, size, key->callback_key); - if(ret >= 0) { - key->computed_size += size; - } - - return ret; -} - -struct overrun_encoder_key { - void *buffer; - size_t buffer_size; - size_t computed_size; -}; - -struct dynamic_encoder_key { - void *buffer; - size_t buffer_size; - size_t computed_size; -}; - -struct callback_failure_catch_key { - asn_app_consume_bytes_f *callback; - void *callback_key; - int callback_failed; -}; - -/* - * Encoder which doesn't stop counting bytes - * even if it reaches the end of the buffer. - */ -static int -overrun_encoder_cb(const void *data, size_t size, void *keyp) { - struct overrun_encoder_key *key = keyp; - - if(key->computed_size + size > key->buffer_size) { - /* - * Avoid accident on the next call: - * stop adding bytes to the buffer. - */ - key->buffer_size = 0; - } else { - memcpy((char *)key->buffer + key->computed_size, data, size); - } - key->computed_size += size; - - return 0; -} - -/* - * Encoder which dynamically allocates output, and continues - * to count even if allocation failed. - */ -static int -dynamic_encoder_cb(const void *data, size_t size, void *keyp) { - struct dynamic_encoder_key *key = keyp; - - if(key->buffer) { - if(key->computed_size + size >= key->buffer_size) { - void *p; - size_t new_size = key->buffer_size; - - do { - new_size *= 2; - } while(new_size <= key->computed_size + size); - - p = REALLOC(key->buffer, new_size); - if(p) { - key->buffer = p; - key->buffer_size = new_size; - } else { - FREEMEM(key->buffer); - key->buffer = 0; - key->buffer_size = 0; - key->computed_size += size; - return 0; - } - } - memcpy((char *)key->buffer + key->computed_size, data, size); - } - - key->computed_size += size; - - return 0; -} - -/* - * Encoder which help convert the application level encoder failure into EIO. - */ -static int -callback_failure_catch_cb(const void *data, size_t size, void *keyp) { - struct callback_failure_catch_key *key = keyp; - int ret; - - ret = key->callback(data, size, key->callback_key); - if(ret < 0) { - key->callback_failed = 1; - } - - return ret; -} - -asn_enc_rval_t -asn_encode(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, const asn_TYPE_descriptor_t *td, - const void *sptr, asn_app_consume_bytes_f *callback, void *callback_key) { - struct callback_failure_catch_key cb_key; - asn_enc_rval_t er = {0,0,0}; - - if(!callback) { - errno = EINVAL; - ASN__ENCODE_FAILED; - } - - cb_key.callback = callback; - cb_key.callback_key = callback_key; - cb_key.callback_failed = 0; - - er = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, - callback_failure_catch_cb, &cb_key); - if(cb_key.callback_failed) { - assert(er.encoded == -1); - assert(errno == EBADF); - errno = EIO; - } - - return er; -} - -asn_enc_rval_t -asn_encode_to_buffer(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, - const asn_TYPE_descriptor_t *td, const void *sptr, - void *buffer, size_t buffer_size) { - struct overrun_encoder_key buf_key; - asn_enc_rval_t er = {0,0,0}; - - if(buffer_size > 0 && !buffer) { - errno = EINVAL; - ASN__ENCODE_FAILED; - } - - buf_key.buffer = buffer; - buf_key.buffer_size = buffer_size; - buf_key.computed_size = 0; - - er = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, - overrun_encoder_cb, &buf_key); - - if(er.encoded >= 0 && (size_t)er.encoded != buf_key.computed_size) { - ASN_DEBUG("asn_encode() returned %" ASN_PRI_SSIZE - " yet produced %" ASN_PRI_SIZE " bytes", - er.encoded, buf_key.computed_size); - assert(er.encoded < 0 || (size_t)er.encoded == buf_key.computed_size); - } - - return er; -} - -asn_encode_to_new_buffer_result_t -asn_encode_to_new_buffer(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, - const asn_TYPE_descriptor_t *td, const void *sptr) { - struct dynamic_encoder_key buf_key; - asn_encode_to_new_buffer_result_t res; - - buf_key.buffer_size = 16; - buf_key.buffer = MALLOC(buf_key.buffer_size); - buf_key.computed_size = 0; - - res.result = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, - dynamic_encoder_cb, &buf_key); - - if(res.result.encoded >= 0 - && (size_t)res.result.encoded != buf_key.computed_size) { - ASN_DEBUG("asn_encode() returned %" ASN_PRI_SSIZE - " yet produced %" ASN_PRI_SIZE " bytes", - res.result.encoded, buf_key.computed_size); - assert(res.result.encoded < 0 - || (size_t)res.result.encoded == buf_key.computed_size); - } - - res.buffer = buf_key.buffer; - - /* 0-terminate just in case. */ - if(res.buffer) { - assert(buf_key.computed_size < buf_key.buffer_size); - ((char *)res.buffer)[buf_key.computed_size] = '\0'; - } - - return res; -} - -static asn_enc_rval_t -asn_encode_internal(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, - const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_consume_bytes_f *callback, void *callback_key) { - asn_enc_rval_t er = {0,0,0}; - enum xer_encoder_flags_e xer_flags = XER_F_CANONICAL; - - (void)opt_codec_ctx; /* Parameters are not checked on encode yet. */ - - if(!td || !sptr) { - errno = EINVAL; - ASN__ENCODE_FAILED; - } - - switch(syntax) { - case ATS_NONSTANDARD_PLAINTEXT: - if(td->op->print_struct) { - struct callback_count_bytes_key cb_key; - cb_key.callback = callback; - cb_key.callback_key = callback_key; - cb_key.computed_size = 0; - if(td->op->print_struct(td, sptr, 1, callback_count_bytes_cb, - &cb_key) - < 0 - || callback_count_bytes_cb("\n", 1, &cb_key) < 0) { - errno = EBADF; /* Structure has incorrect form. */ - er.encoded = -1; - er.failed_type = td; - er.structure_ptr = sptr; - } else { - er.encoded = cb_key.computed_size; - er.failed_type = 0; - er.structure_ptr = 0; - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; - - case ATS_RANDOM: - errno = ENOENT; /* Randomization doesn't make sense on output. */ - ASN__ENCODE_FAILED; - - case ATS_BER: - /* BER is a superset of DER. */ - /* Fall through. */ - case ATS_DER: - if(td->op->der_encoder) { - er = der_encode(td, sptr, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->der_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* DER is not defined for this type. */ - } - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; - case ATS_CER: - errno = ENOENT; /* Transfer syntax is not defined for any type. */ - ASN__ENCODE_FAILED; - -#ifdef ASN_DISABLE_OER_SUPPORT - case ATS_BASIC_OER: - case ATS_CANONICAL_OER: - errno = ENOENT; /* PER is not defined. */ - ASN__ENCODE_FAILED; - break; -#else /* ASN_DISABLE_OER_SUPPORT */ - case ATS_BASIC_OER: - /* CANONICAL-OER is a superset of BASIC-OER. */ - /* Fall through. */ - case ATS_CANONICAL_OER: - if(td->op->oer_encoder) { - er = oer_encode(td, sptr, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->oer_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* OER is not defined for this type. */ - } - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; -#endif /* ASN_DISABLE_OER_SUPPORT */ - -#ifdef ASN_DISABLE_PER_SUPPORT - case ATS_UNALIGNED_BASIC_PER: - case ATS_UNALIGNED_CANONICAL_PER: - case ATS_ALIGNED_BASIC_PER: - case ATS_ALIGNED_CANONICAL_PER: - errno = ENOENT; /* PER is not defined. */ - ASN__ENCODE_FAILED; - break; -#else /* ASN_DISABLE_PER_SUPPORT */ - case ATS_UNALIGNED_BASIC_PER: - /* CANONICAL-UPER is a superset of BASIC-UPER. */ - /* Fall through. */ - case ATS_UNALIGNED_CANONICAL_PER: - if(td->op->uper_encoder) { - er = uper_encode(td, 0, sptr, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->uper_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* UPER is not defined for this type. */ - } - } else { - ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); - if(er.encoded == 0) { - /* Enforce "Complete Encoding" of X.691 #11.1 */ - if(callback("\0", 1, callback_key) < 0) { - errno = EBADF; - ASN__ENCODE_FAILED; - } - er.encoded = 8; /* Exactly 8 zero bits is added. */ - } - /* Convert bits into bytes */ - er.encoded = (er.encoded + 7) >> 3; - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; - case ATS_ALIGNED_BASIC_PER: - /* CANONICAL-APER is a superset of BASIC-APER. */ - /* Fall through. */ - case ATS_ALIGNED_CANONICAL_PER: - if(td->op->aper_encoder) { - er = aper_encode(td, 0, sptr, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->aper_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* APER is not defined for this type. */ - } - } else { - ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); - if(er.encoded == 0) { - /* Enforce "Complete Encoding" of X.691 #11.1 */ - if(callback("\0", 1, callback_key) < 0) { - errno = EBADF; - ASN__ENCODE_FAILED; - } - er.encoded = 8; /* Exactly 8 zero bits is added. */ - } - /* Convert bits into bytes */ - er.encoded = (er.encoded + 7) >> 3; - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; -#endif /* ASN_DISABLE_PER_SUPPORT */ - - case ATS_BASIC_XER: - /* CANONICAL-XER is a superset of BASIC-XER. */ - xer_flags &= ~XER_F_CANONICAL; - xer_flags |= XER_F_BASIC; - /* Fall through. */ - case ATS_CANONICAL_XER: - if(td->op->xer_encoder) { - er = xer_encode(td, sptr, xer_flags, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->xer_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* XER is not defined for this type. */ - } - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; - - default: - errno = ENOENT; - ASN__ENCODE_FAILED; - } - - return er; -} - -asn_dec_rval_t -asn_decode(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, const asn_TYPE_descriptor_t *td, - void **sptr, const void *buffer, size_t size) { - if(!td || !td->op || !sptr || (size && !buffer)) { - ASN__DECODE_FAILED; - } - - switch(syntax) { - case ATS_CER: - case ATS_NONSTANDARD_PLAINTEXT: - default: - errno = ENOENT; - ASN__DECODE_FAILED; - - case ATS_RANDOM: - if(!td->op->random_fill) { - ASN__DECODE_FAILED; - } else { - if(asn_random_fill(td, sptr, 16000) == 0) { - asn_dec_rval_t ret = {RC_OK, 0}; - return ret; - } else { - ASN__DECODE_FAILED; - } - } - break; - - case ATS_DER: - case ATS_BER: - return ber_decode(opt_codec_ctx, td, sptr, buffer, size); - - case ATS_BASIC_OER: - case ATS_CANONICAL_OER: -#ifdef ASN_DISABLE_OER_SUPPORT - errno = ENOENT; - ASN__DECODE_FAILED; -#else - return oer_decode(opt_codec_ctx, td, sptr, buffer, size); -#endif - - case ATS_UNALIGNED_BASIC_PER: - case ATS_UNALIGNED_CANONICAL_PER: -#ifdef ASN_DISABLE_PER_SUPPORT - errno = ENOENT; - ASN__DECODE_FAILED; -#else - return uper_decode_complete(opt_codec_ctx, td, sptr, buffer, size); -#endif - - case ATS_ALIGNED_BASIC_PER: - case ATS_ALIGNED_CANONICAL_PER: -#ifdef ASN_DISABLE_PER_SUPPORT - errno = ENOENT; - ASN__DECODE_FAILED; -#else - return aper_decode_complete(opt_codec_ctx, td, sptr, buffer, size); -#endif - - case ATS_BASIC_XER: - case ATS_CANONICAL_XER: - return xer_decode(opt_codec_ctx, td, sptr, buffer, size); - } -} - diff --git a/e2sim/src/ASN1c/asn_application.h b/e2sim/src/ASN1c/asn_application.h deleted file mode 100644 index 034f646..0000000 --- a/e2sim/src/ASN1c/asn_application.h +++ /dev/null @@ -1,171 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Application-level ASN.1 callbacks. - */ -#ifndef ASN_APPLICATION_H -#define ASN_APPLICATION_H - -#include "asn_system.h" /* for platform-dependent types */ -#include "asn_codecs.h" /* for ASN.1 codecs specifics */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * A selection of ASN.1 Transfer Syntaxes to use with generalized - * encoders and decoders declared further in this .h file. - */ -enum asn_transfer_syntax { - /* Avoid appearance of a default transfer syntax. */ - ATS_INVALID = 0, - /* Plaintext output (not conforming to any standard), for debugging. */ - ATS_NONSTANDARD_PLAINTEXT, - /* Returns a randomly generated structure. */ - ATS_RANDOM, - /* - * X.690: - * BER: Basic Encoding Rules. - * DER: Distinguished Encoding Rules. - * CER: Canonical Encoding Rules. - * DER and CER are more strict variants of BER. - */ - ATS_BER, - ATS_DER, - ATS_CER, /* Only decoding is supported */ - /* - * X.696: - * OER: Octet Encoding Rules. - * CANONICAL-OER is a more strict variant of BASIC-OER. - */ - ATS_BASIC_OER, - ATS_CANONICAL_OER, - /* - * X.691: - * PER: Packed Encoding Rules. - * CANONICAL-PER is a more strict variant of BASIC-PER. - * NOTE: Produces or consumes a complete encoding (X.691 (08/2015) #11.1). - */ - ATS_UNALIGNED_BASIC_PER, - ATS_UNALIGNED_CANONICAL_PER, - ATS_ALIGNED_BASIC_PER, - ATS_ALIGNED_CANONICAL_PER, - /* - * X.693: - * XER: XML Encoding Rules. - * CANONICAL-XER is a more strict variant of BASIC-XER. - */ - ATS_BASIC_XER, - ATS_CANONICAL_XER -}; - -/* - * A generic encoder for any supported transfer syntax. - * RETURN VALUES: - * The (.encoded) field of the return value is REDEFINED to mean the following: - * >=0: The computed size of the encoded data. Can exceed the (buffer_size). - * -1: Error encoding the structure. See the error code in (errno): - * EINVAL: Incorrect parameters to the function, such as NULLs. - * ENOENT: Encoding transfer syntax is not defined (for this type). - * EBADF: The structure has invalid form or content constraint failed. - * The (.failed_type) and (.structure_ptr) MIGHT be set to the appropriate - * values at the place of failure, if at all possible. - * WARNING: The (.encoded) field of the return value can exceed the buffer_size. - * This is similar to snprintf(3) contract which might return values - * greater than the buffer size. - */ -asn_enc_rval_t asn_encode_to_buffer( - const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ - enum asn_transfer_syntax, - const struct asn_TYPE_descriptor_s *type_to_encode, - const void *structure_to_encode, void *buffer, size_t buffer_size); - -/* - * A variant of asn_encode_to_buffer() with automatically allocated buffer. - * RETURN VALUES: - * On success, returns a newly allocated (.buffer) containing the whole message. - * The message size is returned in (.result.encoded). - * On failure: - * (.buffer) is NULL, - * (.result.encoded) as in asn_encode_to_buffer(), - * The errno codes as in asn_encode_to_buffer(), plus the following: - * ENOMEM: Memory allocation failed due to system or internal limits. - * The user is responsible for freeing the (.buffer). - */ -typedef struct asn_encode_to_new_buffer_result_s { - void *buffer; /* NULL if failed to encode. */ - asn_enc_rval_t result; -} asn_encode_to_new_buffer_result_t; -asn_encode_to_new_buffer_result_t asn_encode_to_new_buffer( - const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ - enum asn_transfer_syntax, - const struct asn_TYPE_descriptor_s *type_to_encode, - const void *structure_to_encode); - - -/* - * Generic type of an application-defined callback to return various - * types of data to the application. - * EXPECTED RETURN VALUES: - * -1: Failed to consume bytes. Abort the mission. - * Non-negative return values indicate success, and ignored. - */ -typedef int(asn_app_consume_bytes_f)(const void *buffer, size_t size, - void *application_specific_key); - - -/* - * A generic encoder for any supported transfer syntax. - * Returns the comprehensive encoding result descriptor (see asn_codecs.h). - * RETURN VALUES: - * The negative (.encoded) field of the return values is accompanied with the - * following error codes (errno): - * EINVAL: Incorrect parameters to the function, such as NULLs. - * ENOENT: Encoding transfer syntax is not defined (for this type). - * EBADF: The structure has invalid form or content constraint failed. - * EIO: The (callback) has returned negative value during encoding. - */ -asn_enc_rval_t asn_encode( - const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ - enum asn_transfer_syntax, - const struct asn_TYPE_descriptor_s *type_to_encode, - const void *structure_to_encode, - asn_app_consume_bytes_f *callback, void *callback_key); - - -/* - * A generic decoder for any supported transfer syntax. - */ -asn_dec_rval_t asn_decode( - const asn_codec_ctx_t *opt_codec_parameters, enum asn_transfer_syntax, - const struct asn_TYPE_descriptor_s *type_to_decode, - void **structure_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of that buffer */ -); - - -/* - * A callback of this type is called whenever constraint validation fails - * on some ASN.1 type. See "constraints.h" for more details on constraint - * validation. - * This callback specifies a descriptor of the ASN.1 type which failed - * the constraint check, as well as human readable message on what - * particular constraint has failed. - */ -typedef void (asn_app_constraint_failed_f)(void *application_specific_key, - const struct asn_TYPE_descriptor_s *type_descriptor_which_failed, - const void *structure_which_failed_ptr, - const char *error_message_format, ...) CC_PRINTFLIKE(4, 5); - - -#ifdef __cplusplus -} -#endif - -#include "constr_TYPE.h" /* for asn_TYPE_descriptor_t */ - -#endif /* ASN_APPLICATION_H */ diff --git a/e2sim/src/ASN1c/asn_bit_data.c b/e2sim/src/ASN1c/asn_bit_data.c deleted file mode 100644 index fe4b89b..0000000 --- a/e2sim/src/ASN1c/asn_bit_data.c +++ /dev/null @@ -1,333 +0,0 @@ -/* - * Copyright (c) 2005-2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Create a contiguous non-refillable bit data structure. - * Can be freed by FREEMEM(). - */ -asn_bit_data_t * -asn_bit_data_new_contiguous(const void *data, size_t size_bits) { - size_t size_bytes = (size_bits + 7) / 8; - asn_bit_data_t *pd; - uint8_t *bytes; - - /* Get the extensions map */ - pd = CALLOC(1, sizeof(*pd) + size_bytes + 1); - if(!pd) { - return NULL; - } - bytes = (void *)(((char *)pd) + sizeof(*pd)); - memcpy(bytes, data, size_bytes); - bytes[size_bytes] = 0; - pd->buffer = bytes; - pd->nboff = 0; - pd->nbits = size_bits; - - return pd; -} - - -char * -asn_bit_data_string(asn_bit_data_t *pd) { - static char buf[2][32]; - static int n; - n = (n+1) % 2; - snprintf(buf[n], sizeof(buf[n]), - "{m=%" ASN_PRI_SIZE " span %" ASN_PRI_SIZE "[%" ASN_PRI_SIZE - "..%" ASN_PRI_SIZE "] (%" ASN_PRI_SIZE ")}", - pd->moved, ((uintptr_t)(pd->buffer) & 0xf), pd->nboff, pd->nbits, - pd->nbits - pd->nboff); - return buf[n]; -} - -void -asn_get_undo(asn_bit_data_t *pd, int nbits) { - if((ssize_t)pd->nboff < nbits) { - assert((ssize_t)pd->nboff < nbits); - } else { - pd->nboff -= nbits; - pd->moved -= nbits; - } -} - -/* - * Extract a small number of bits (<= 31) from the specified PER data pointer. - */ -int32_t -asn_get_few_bits(asn_bit_data_t *pd, int nbits) { - size_t off; /* Next after last bit offset */ - ssize_t nleft; /* Number of bits left in this stream */ - uint32_t accum; - const uint8_t *buf; - - if(nbits < 0) - return -1; - - nleft = pd->nbits - pd->nboff; - if(nbits > nleft) { - int32_t tailv, vhead; - if(!pd->refill || nbits > 31) return -1; - /* Accumulate unused bytes before refill */ - ASN_DEBUG("Obtain the rest %d bits (want %d)", - (int)nleft, (int)nbits); - tailv = asn_get_few_bits(pd, nleft); - if(tailv < 0) return -1; - /* Refill (replace pd contents with new data) */ - if(pd->refill(pd)) - return -1; - nbits -= nleft; - vhead = asn_get_few_bits(pd, nbits); - /* Combine the rest of previous pd with the head of new one */ - tailv = (tailv << nbits) | vhead; /* Could == -1 */ - return tailv; - } - - /* - * Normalize position indicator. - */ - if(pd->nboff >= 8) { - pd->buffer += (pd->nboff >> 3); - pd->nbits -= (pd->nboff & ~0x07); - pd->nboff &= 0x07; - } - pd->moved += nbits; - pd->nboff += nbits; - off = pd->nboff; - buf = pd->buffer; - - /* - * Extract specified number of bits. - */ - if(off <= 8) - accum = nbits ? (buf[0]) >> (8 - off) : 0; - else if(off <= 16) - accum = ((buf[0] << 8) + buf[1]) >> (16 - off); - else if(off <= 24) - accum = ((buf[0] << 16) + (buf[1] << 8) + buf[2]) >> (24 - off); - else if(off <= 31) - accum = (((uint32_t)buf[0] << 24) + (buf[1] << 16) - + (buf[2] << 8) + (buf[3])) >> (32 - off); - else if(nbits <= 31) { - asn_bit_data_t tpd = *pd; - /* Here are we with our 31-bits limit plus 1..7 bits offset. */ - asn_get_undo(&tpd, nbits); - /* The number of available bits in the stream allow - * for the following operations to take place without - * invoking the ->refill() function */ - accum = asn_get_few_bits(&tpd, nbits - 24) << 24; - accum |= asn_get_few_bits(&tpd, 24); - } else { - asn_get_undo(pd, nbits); - return -1; - } - - accum &= (((uint32_t)1 << nbits) - 1); - - ASN_DEBUG(" [PER got %2d<=%2d bits => span %d %+ld[%d..%d]:%02x (%d) => 0x%x]", - (int)nbits, (int)nleft, - (int)pd->moved, - (((long)pd->buffer) & 0xf), - (int)pd->nboff, (int)pd->nbits, - ((pd->buffer != NULL)?pd->buffer[0]:0), - (int)(pd->nbits - pd->nboff), - (int)accum); - - return accum; -} - -/* - * Extract a large number of bits from the specified PER data pointer. - */ -int -asn_get_many_bits(asn_bit_data_t *pd, uint8_t *dst, int alright, int nbits) { - int32_t value; - - if(alright && (nbits & 7)) { - /* Perform right alignment of a first few bits */ - value = asn_get_few_bits(pd, nbits & 0x07); - if(value < 0) return -1; - *dst++ = value; /* value is already right-aligned */ - nbits &= ~7; - } - - while(nbits) { - if(nbits >= 24) { - value = asn_get_few_bits(pd, 24); - if(value < 0) return -1; - *(dst++) = value >> 16; - *(dst++) = value >> 8; - *(dst++) = value; - nbits -= 24; - } else { - value = asn_get_few_bits(pd, nbits); - if(value < 0) return -1; - if(nbits & 7) { /* implies left alignment */ - value <<= 8 - (nbits & 7), - nbits += 8 - (nbits & 7); - if(nbits > 24) - *dst++ = value >> 24; - } - if(nbits > 16) - *dst++ = value >> 16; - if(nbits > 8) - *dst++ = value >> 8; - *dst++ = value; - break; - } - } - - return 0; -} - -/* - * Put a small number of bits (<= 31). - */ -int -asn_put_few_bits(asn_bit_outp_t *po, uint32_t bits, int obits) { - size_t off; /* Next after last bit offset */ - size_t omsk; /* Existing last byte meaningful bits mask */ - uint8_t *buf; - - if(obits <= 0 || obits >= 32) return obits ? -1 : 0; - - ASN_DEBUG("[PER put %d bits %x to %p+%d bits]", - obits, (int)bits, (void *)po->buffer, (int)po->nboff); - - /* - * Normalize position indicator. - */ - if(po->nboff >= 8) { - po->buffer += (po->nboff >> 3); - po->nbits -= (po->nboff & ~0x07); - po->nboff &= 0x07; - } - - /* - * Flush whole-bytes output, if necessary. - */ - if(po->nboff + obits > po->nbits) { - size_t complete_bytes; - if(!po->buffer) po->buffer = po->tmpspace; - complete_bytes = (po->buffer - po->tmpspace); - ASN_DEBUG("[PER output %ld complete + %ld]", - (long)complete_bytes, (long)po->flushed_bytes); - if(po->output(po->tmpspace, complete_bytes, po->op_key) < 0) - return -1; - if(po->nboff) - po->tmpspace[0] = po->buffer[0]; - po->buffer = po->tmpspace; - po->nbits = 8 * sizeof(po->tmpspace); - po->flushed_bytes += complete_bytes; - } - - /* - * Now, due to sizeof(tmpspace), we are guaranteed large enough space. - */ - buf = po->buffer; - omsk = ~((1 << (8 - po->nboff)) - 1); - off = (po->nboff + obits); - - /* Clear data of debris before meaningful bits */ - bits &= (((uint32_t)1 << obits) - 1); - - ASN_DEBUG("[PER out %d %u/%x (t=%d,o=%d) %x&%x=%x]", obits, - (int)bits, (int)bits, - (int)po->nboff, (int)off, - buf[0], (int)(omsk&0xff), - (int)(buf[0] & omsk)); - - if(off <= 8) /* Completely within 1 byte */ - po->nboff = off, - bits <<= (8 - off), - buf[0] = (buf[0] & omsk) | bits; - else if(off <= 16) - po->nboff = off, - bits <<= (16 - off), - buf[0] = (buf[0] & omsk) | (bits >> 8), - buf[1] = bits; - else if(off <= 24) - po->nboff = off, - bits <<= (24 - off), - buf[0] = (buf[0] & omsk) | (bits >> 16), - buf[1] = bits >> 8, - buf[2] = bits; - else if(off <= 31) - po->nboff = off, - bits <<= (32 - off), - buf[0] = (buf[0] & omsk) | (bits >> 24), - buf[1] = bits >> 16, - buf[2] = bits >> 8, - buf[3] = bits; - else { - if(asn_put_few_bits(po, bits >> (obits - 24), 24)) return -1; - if(asn_put_few_bits(po, bits, obits - 24)) return -1; - } - - ASN_DEBUG("[PER out %u/%x => %02x buf+%ld]", - (int)bits, (int)bits, buf[0], - (long)(po->buffer - po->tmpspace)); - - return 0; -} - - -/* - * Output a large number of bits. - */ -int -asn_put_many_bits(asn_bit_outp_t *po, const uint8_t *src, int nbits) { - - while(nbits) { - uint32_t value; - - if(nbits >= 24) { - value = (src[0] << 16) | (src[1] << 8) | src[2]; - src += 3; - nbits -= 24; - if(asn_put_few_bits(po, value, 24)) - return -1; - } else { - value = src[0]; - if(nbits > 8) - value = (value << 8) | src[1]; - if(nbits > 16) - value = (value << 8) | src[2]; - if(nbits & 0x07) - value >>= (8 - (nbits & 0x07)); - if(asn_put_few_bits(po, value, nbits)) - return -1; - break; - } - } - - return 0; -} - - -int -asn_put_aligned_flush(asn_bit_outp_t *po) { - uint32_t unused_bits = (0x7 & (8 - (po->nboff & 0x07))); - size_t complete_bytes = - (po->buffer ? po->buffer - po->tmpspace : 0) + ((po->nboff + 7) >> 3); - - if(unused_bits) { - po->buffer[po->nboff >> 3] &= ~0u << unused_bits; - } - - if(po->output(po->tmpspace, complete_bytes, po->op_key) < 0) { - return -1; - } else { - po->buffer = po->tmpspace; - po->nboff = 0; - po->nbits = 8 * sizeof(po->tmpspace); - po->flushed_bytes += complete_bytes; - return 0; - } -} - diff --git a/e2sim/src/ASN1c/asn_bit_data.h b/e2sim/src/ASN1c/asn_bit_data.h deleted file mode 100644 index 59de7af..0000000 --- a/e2sim/src/ASN1c/asn_bit_data.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_BIT_DATA -#define ASN_BIT_DATA - -#include /* Platform-specific types */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * This structure describes a position inside an incoming PER bit stream. - */ -typedef struct asn_bit_data_s { - const uint8_t *buffer; /* Pointer to the octet stream */ - size_t nboff; /* Bit offset to the meaningful bit */ - size_t nbits; /* Number of bits in the stream */ - size_t moved; /* Number of bits moved through this bit stream */ - int (*refill)(struct asn_bit_data_s *); - void *refill_key; -} asn_bit_data_t; - -/* - * Create a contiguous non-refillable bit data structure. - * Can be freed by FREEMEM(). - */ -asn_bit_data_t *asn_bit_data_new_contiguous(const void *data, size_t size_bits); - -/* - * Extract a small number of bits (<= 31) from the specified PER data pointer. - * This function returns -1 if the specified number of bits could not be - * extracted due to EOD or other conditions. - */ -int32_t asn_get_few_bits(asn_bit_data_t *, int get_nbits); - -/* Undo the immediately preceeding "get_few_bits" operation */ -void asn_get_undo(asn_bit_data_t *, int get_nbits); - -/* - * Extract a large number of bits from the specified PER data pointer. - * This function returns -1 if the specified number of bits could not be - * extracted due to EOD or other conditions. - */ -int asn_get_many_bits(asn_bit_data_t *, uint8_t *dst, int right_align, - int get_nbits); - -/* Non-thread-safe debugging function, don't use it */ -char *asn_bit_data_string(asn_bit_data_t *); - -/* - * This structure supports forming bit output. - */ -typedef struct asn_bit_outp_s { - uint8_t *buffer; /* Pointer into the (tmpspace) */ - size_t nboff; /* Bit offset to the meaningful bit */ - size_t nbits; /* Number of bits left in (tmpspace) */ - uint8_t tmpspace[32]; /* Preliminary storage to hold data */ - int (*output)(const void *data, size_t size, void *op_key); - void *op_key; /* Key for (output) data callback */ - size_t flushed_bytes; /* Bytes already flushed through (output) */ -} asn_bit_outp_t; - -/* Output a small number of bits (<= 31) */ -int asn_put_few_bits(asn_bit_outp_t *, uint32_t bits, int obits); - -/* Output a large number of bits */ -int asn_put_many_bits(asn_bit_outp_t *, const uint8_t *src, int put_nbits); - -/* - * Flush whole bytes (0 or more) through (outper) member. - * The least significant bits which are not used are guaranteed to be set to 0. - * Returns -1 if callback returns -1. Otherwise, 0. - */ -int asn_put_aligned_flush(asn_bit_outp_t *); - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_BIT_DATA */ diff --git a/e2sim/src/ASN1c/asn_codecs.h b/e2sim/src/ASN1c/asn_codecs.h deleted file mode 100644 index e75c270..0000000 --- a/e2sim/src/ASN1c/asn_codecs.h +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_CODECS_H -#define ASN_CODECS_H - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * This structure defines a set of parameters that may be passed - * to every ASN.1 encoder or decoder function. - * WARNING: if max_stack_size member is set, and you are calling the - * function pointers of the asn_TYPE_descriptor_t directly, - * this structure must be ALLOCATED ON THE STACK! - * If you can't always satisfy this requirement, use ber_decode(), - * xer_decode() and uper_decode() functions instead. - */ -typedef struct asn_codec_ctx_s { - /* - * Limit the decoder routines to use no (much) more stack than a given - * number of bytes. Most of decoders are stack-based, and this - * would protect against stack overflows if the number of nested - * encodings is high. - * The OCTET STRING, BIT STRING and ANY BER decoders are heap-based, - * and are safe from this kind of overflow. - * A value from getrlimit(RLIMIT_STACK) may be used to initialize - * this variable. Be careful in multithreaded environments, as the - * stack size is rather limited. - */ - size_t max_stack_size; /* 0 disables stack bounds checking */ -} asn_codec_ctx_t; - -/* - * Type of the return value of the encoding functions (der_encode, xer_encode). - */ -typedef struct asn_enc_rval_s { - /* - * Number of bytes encoded. - * -1 indicates failure to encode the structure. - * In this case, the members below this one are meaningful. - */ - ssize_t encoded; - - /* - * Members meaningful when (encoded == -1), for post mortem analysis. - */ - - /* Type which cannot be encoded */ - const struct asn_TYPE_descriptor_s *failed_type; - - /* Pointer to the structure of that type */ - const void *structure_ptr; -} asn_enc_rval_t; -#define ASN__ENCODE_FAILED do { \ - asn_enc_rval_t tmp_error; \ - tmp_error.encoded = -1; \ - tmp_error.failed_type = td; \ - tmp_error.structure_ptr = sptr; \ - ASN_DEBUG("Failed to encode element %s", td ? td->name : ""); \ - return tmp_error; \ -} while(0) -#define ASN__ENCODED_OK(rval) do { \ - rval.structure_ptr = 0; \ - rval.failed_type = 0; \ - return rval; \ -} while(0) - -/* - * Type of the return value of the decoding functions (ber_decode, xer_decode) - * - * Please note that the number of consumed bytes is ALWAYS meaningful, - * even if code==RC_FAIL. This is to indicate the number of successfully - * decoded bytes, hence providing a possibility to fail with more diagnostics - * (i.e., print the offending remainder of the buffer). - */ -enum asn_dec_rval_code_e { - RC_OK, /* Decoded successfully */ - RC_WMORE, /* More data expected, call again */ - RC_FAIL /* Failure to decode data */ -}; -typedef struct asn_dec_rval_s { - enum asn_dec_rval_code_e code; /* Result code */ - size_t consumed; /* Number of bytes consumed */ -} asn_dec_rval_t; -#define ASN__DECODE_FAILED do { \ - asn_dec_rval_t tmp_error; \ - tmp_error.code = RC_FAIL; \ - tmp_error.consumed = 0; \ - ASN_DEBUG("Failed to decode element %s", td ? td->name : ""); \ - return tmp_error; \ -} while(0) -#define ASN__DECODE_STARVED do { \ - asn_dec_rval_t tmp_error; \ - tmp_error.code = RC_WMORE; \ - tmp_error.consumed = 0; \ - return tmp_error; \ -} while(0) - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_CODECS_H */ diff --git a/e2sim/src/ASN1c/asn_codecs_prim.c b/e2sim/src/ASN1c/asn_codecs_prim.c deleted file mode 100644 index fc24247..0000000 --- a/e2sim/src/ASN1c/asn_codecs_prim.c +++ /dev/null @@ -1,317 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Decode an always-primitive type. - */ -asn_dec_rval_t -ber_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const void *buf_ptr, size_t size, int tag_mode) { - ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)*sptr; - asn_dec_rval_t rval; - ber_tlv_len_t length = 0; /* =0 to avoid [incorrect] warning. */ - - /* - * If the structure is not there, allocate it. - */ - if(st == NULL) { - st = (ASN__PRIMITIVE_TYPE_t *)CALLOC(1, sizeof(*st)); - if(st == NULL) ASN__DECODE_FAILED; - *sptr = (void *)st; - } - - ASN_DEBUG("Decoding %s as plain primitive (tm=%d)", - td->name, tag_mode); - - /* - * Check tags and extract value length. - */ - rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size, - tag_mode, 0, &length, 0); - if(rval.code != RC_OK) - return rval; - - ASN_DEBUG("%s length is %d bytes", td->name, (int)length); - - /* - * Make sure we have this length. - */ - buf_ptr = ((const char *)buf_ptr) + rval.consumed; - size -= rval.consumed; - if(length > (ber_tlv_len_t)size) { - rval.code = RC_WMORE; - rval.consumed = 0; - return rval; - } - - st->size = (int)length; - /* The following better be optimized away. */ - if(sizeof(st->size) != sizeof(length) - && (ber_tlv_len_t)st->size != length) { - st->size = 0; - ASN__DECODE_FAILED; - } - - st->buf = (uint8_t *)MALLOC(length + 1); - if(!st->buf) { - st->size = 0; - ASN__DECODE_FAILED; - } - - memcpy(st->buf, buf_ptr, length); - st->buf[length] = '\0'; /* Just in case */ - - rval.code = RC_OK; - rval.consumed += length; - - ASN_DEBUG("Took %ld/%ld bytes to encode %s", - (long)rval.consumed, - (long)length, td->name); - - return rval; -} - -/* - * Encode an always-primitive type using DER. - */ -asn_enc_rval_t -der_encode_primitive(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t erval = {0,0,0}; - const ASN__PRIMITIVE_TYPE_t *st = (const ASN__PRIMITIVE_TYPE_t *)sptr; - - ASN_DEBUG("%s %s as a primitive type (tm=%d)", - cb?"Encoding":"Estimating", td->name, tag_mode); - - erval.encoded = der_write_tags(td, st->size, tag_mode, 0, tag, - cb, app_key); - ASN_DEBUG("%s wrote tags %d", td->name, (int)erval.encoded); - if(erval.encoded == -1) { - erval.failed_type = td; - erval.structure_ptr = sptr; - return erval; - } - - if(cb && st->buf) { - if(cb(st->buf, st->size, app_key) < 0) { - erval.encoded = -1; - erval.failed_type = td; - erval.structure_ptr = sptr; - return erval; - } - } else { - assert(st->buf || st->size == 0); - } - - erval.encoded += st->size; - ASN__ENCODED_OK(erval); -} - -void -ASN__PRIMITIVE_TYPE_free(const asn_TYPE_descriptor_t *td, void *sptr, - enum asn_struct_free_method method) { - ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)sptr; - - if(!td || !sptr) - return; - - ASN_DEBUG("Freeing %s as a primitive type", td->name); - - if(st->buf) - FREEMEM(st->buf); - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(sptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(sptr, 0, sizeof(ASN__PRIMITIVE_TYPE_t)); - break; - } -} - - -/* - * Local internal type passed around as an argument. - */ -struct xdp_arg_s { - const asn_TYPE_descriptor_t *type_descriptor; - void *struct_key; - xer_primitive_body_decoder_f *prim_body_decoder; - int decoded_something; - int want_more; -}; - -/* - * Since some kinds of primitive values can be encoded using value-specific - * tags (, , etc), the primitive decoder must - * be supplied with such tags to parse them as needed. - */ -static int -xer_decode__unexpected_tag(void *key, const void *chunk_buf, size_t chunk_size) { - struct xdp_arg_s *arg = (struct xdp_arg_s *)key; - enum xer_pbd_rval bret; - - /* - * The chunk_buf is guaranteed to start at '<'. - */ - assert(chunk_size && ((const char *)chunk_buf)[0] == 0x3c); - - /* - * Decoding was performed once already. Prohibit doing it again. - */ - if(arg->decoded_something) - return -1; - - bret = arg->prim_body_decoder(arg->type_descriptor, - arg->struct_key, chunk_buf, chunk_size); - switch(bret) { - case XPBD_SYSTEM_FAILURE: - case XPBD_DECODER_LIMIT: - case XPBD_BROKEN_ENCODING: - break; - case XPBD_BODY_CONSUMED: - /* Tag decoded successfully */ - arg->decoded_something = 1; - /* Fall through */ - case XPBD_NOT_BODY_IGNORE: /* Safe to proceed further */ - return 0; - } - - return -1; -} - -static ssize_t -xer_decode__primitive_body(void *key, const void *chunk_buf, size_t chunk_size, int have_more) { - struct xdp_arg_s *arg = (struct xdp_arg_s *)key; - enum xer_pbd_rval bret; - size_t lead_wsp_size; - - if(arg->decoded_something) { - if(xer_whitespace_span(chunk_buf, chunk_size) == chunk_size) { - /* - * Example: - * "123 " - * ^- chunk_buf position. - */ - return chunk_size; - } - /* - * Decoding was done once already. Prohibit doing it again. - */ - return -1; - } - - if(!have_more) { - /* - * If we've received something like "1", we can't really - * tell whether it is really `1` or `123`, until we know - * that there is no more data coming. - * The have_more argument will be set to 1 once something - * like this is available to the caller of this callback: - * "1want_more = 1; - return -1; - } - - lead_wsp_size = xer_whitespace_span(chunk_buf, chunk_size); - chunk_buf = (const char *)chunk_buf + lead_wsp_size; - chunk_size -= lead_wsp_size; - - bret = arg->prim_body_decoder(arg->type_descriptor, - arg->struct_key, chunk_buf, chunk_size); - switch(bret) { - case XPBD_SYSTEM_FAILURE: - case XPBD_DECODER_LIMIT: - case XPBD_BROKEN_ENCODING: - break; - case XPBD_BODY_CONSUMED: - /* Tag decoded successfully */ - arg->decoded_something = 1; - /* Fall through */ - case XPBD_NOT_BODY_IGNORE: /* Safe to proceed further */ - return lead_wsp_size + chunk_size; - } - - return -1; -} - - -asn_dec_rval_t -xer_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - size_t struct_size, const char *opt_mname, - const void *buf_ptr, size_t size, - xer_primitive_body_decoder_f *prim_body_decoder) { - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - asn_struct_ctx_t s_ctx; - struct xdp_arg_s s_arg; - asn_dec_rval_t rc; - - /* - * Create the structure if does not exist. - */ - if(!*sptr) { - *sptr = CALLOC(1, struct_size); - if(!*sptr) ASN__DECODE_FAILED; - } - - memset(&s_ctx, 0, sizeof(s_ctx)); - s_arg.type_descriptor = td; - s_arg.struct_key = *sptr; - s_arg.prim_body_decoder = prim_body_decoder; - s_arg.decoded_something = 0; - s_arg.want_more = 0; - - rc = xer_decode_general(opt_codec_ctx, &s_ctx, &s_arg, - xml_tag, buf_ptr, size, - xer_decode__unexpected_tag, xer_decode__primitive_body); - switch(rc.code) { - case RC_OK: - if(!s_arg.decoded_something) { - char ch; - ASN_DEBUG("Primitive body is not recognized, " - "supplying empty one"); - /* - * Decoding opportunity has come and gone. - * Where's the result? - * Try to feed with empty body, see if it eats it. - */ - if(prim_body_decoder(s_arg.type_descriptor, - s_arg.struct_key, &ch, 0) - != XPBD_BODY_CONSUMED) { - /* - * This decoder does not like empty stuff. - */ - ASN__DECODE_FAILED; - } - } - break; - case RC_WMORE: - /* - * Redo the whole thing later. - * We don't have a context to save intermediate parsing state. - */ - rc.consumed = 0; - break; - case RC_FAIL: - rc.consumed = 0; - if(s_arg.want_more) - rc.code = RC_WMORE; - else - ASN__DECODE_FAILED; - break; - } - return rc; -} - diff --git a/e2sim/src/ASN1c/asn_codecs_prim.h b/e2sim/src/ASN1c/asn_codecs_prim.h deleted file mode 100644 index fbc5576..0000000 --- a/e2sim/src/ASN1c/asn_codecs_prim.h +++ /dev/null @@ -1,51 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_CODECS_PRIM_H -#define ASN_CODECS_PRIM_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct ASN__PRIMITIVE_TYPE_s { - uint8_t *buf; /* Buffer with consecutive primitive encoding bytes */ - size_t size; /* Size of the buffer */ -} ASN__PRIMITIVE_TYPE_t; /* Do not use this type directly! */ - -asn_struct_free_f ASN__PRIMITIVE_TYPE_free; -ber_type_decoder_f ber_decode_primitive; -der_type_encoder_f der_encode_primitive; - -/* - * A callback specification for the xer_decode_primitive() function below. - */ -enum xer_pbd_rval { - XPBD_SYSTEM_FAILURE, /* System failure (memory shortage, etc) */ - XPBD_DECODER_LIMIT, /* Hit some decoder limitation or deficiency */ - XPBD_BROKEN_ENCODING, /* Encoding of a primitive body is broken */ - XPBD_NOT_BODY_IGNORE, /* Not a body format, but safe to ignore */ - XPBD_BODY_CONSUMED /* Body is recognized and consumed */ -}; -typedef enum xer_pbd_rval(xer_primitive_body_decoder_f)( - const asn_TYPE_descriptor_t *td, void *struct_ptr, const void *chunk_buf, - size_t chunk_size); - -/* - * Specific function to decode simple primitive types. - * Also see xer_decode_general() in xer_decoder.h - */ -asn_dec_rval_t xer_decode_primitive( - const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, - size_t struct_size, const char *opt_mname, const void *buf_ptr, size_t size, - xer_primitive_body_decoder_f *prim_body_decoder); - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_CODECS_PRIM_H */ diff --git a/e2sim/src/ASN1c/asn_constant.h b/e2sim/src/ASN1c/asn_constant.h deleted file mode 100644 index b850c56..0000000 --- a/e2sim/src/ASN1c/asn_constant.h +++ /dev/null @@ -1,25 +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 maxofE2nodeComponents (1024) -#define maxofRANfunctionID (256) -#define maxofRICactionID (16) -#define maxofTNLA (32) -#define maxofRICrequestID (4294967295) - - -#ifdef __cplusplus -} -#endif - -#endif /* _ASN_CONSTANT_H */ diff --git a/e2sim/src/ASN1c/asn_internal.c b/e2sim/src/ASN1c/asn_internal.c deleted file mode 100644 index 004660b..0000000 --- a/e2sim/src/ASN1c/asn_internal.c +++ /dev/null @@ -1,49 +0,0 @@ -#include - -ssize_t -asn__format_to_callback(int (*cb)(const void *, size_t, void *key), void *key, - const char *fmt, ...) { - char scratch[64]; - char *buf = scratch; - size_t buf_size = sizeof(scratch); - int wrote; - int cb_ret; - - do { - va_list args; - va_start(args, fmt); - - wrote = vsnprintf(buf, buf_size, fmt, args); - if(wrote < (ssize_t)buf_size) { - if(wrote < 0) { - if(buf != scratch) FREEMEM(buf); - va_end(args); - return -1; - } - break; - } - - buf_size <<= 1; - if(buf == scratch) { - buf = MALLOC(buf_size); - if(!buf) { va_end(args); return -1; } - } else { - void *p = REALLOC(buf, buf_size); - if(!p) { - FREEMEM(buf); - va_end(args); - return -1; - } - buf = p; - } - } while(1); - - cb_ret = cb(buf, wrote, key); - if(buf != scratch) FREEMEM(buf); - if(cb_ret < 0) { - return -1; - } - - return wrote; -} - diff --git a/e2sim/src/ASN1c/asn_internal.h b/e2sim/src/ASN1c/asn_internal.h deleted file mode 100644 index c4105ad..0000000 --- a/e2sim/src/ASN1c/asn_internal.h +++ /dev/null @@ -1,159 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Declarations internally useful for the ASN.1 support code. - */ -#ifndef ASN_INTERNAL_H -#define ASN_INTERNAL_H -#define __EXTENSIONS__ /* for Sun */ - -#include "asn_application.h" /* Application-visible API */ - -#ifndef __NO_ASSERT_H__ /* Include assert.h only for internal use. */ -#include /* for assert() macro */ -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* Environment version might be used to avoid running with the old library */ -#define ASN1C_ENVIRONMENT_VERSION 923 /* Compile-time version */ -int get_asn1c_environment_version(void); /* Run-time version */ - -#define CALLOC(nmemb, size) calloc(nmemb, size) -#define MALLOC(size) malloc(size) -#define REALLOC(oldptr, size) realloc(oldptr, size) -#define FREEMEM(ptr) free(ptr) - -#define asn_debug_indent 0 -#define ASN_DEBUG_INDENT_ADD(i) do{}while(0) - -#ifdef EMIT_ASN_DEBUG -#warning "Use ASN_EMIT_DEBUG instead of EMIT_ASN_DEBUG" -#define ASN_EMIT_DEBUG EMIT_ASN_DEBUG -#endif - -/* - * A macro for debugging the ASN.1 internals. - * You may enable or override it. - */ -#ifndef ASN_DEBUG /* If debugging code is not defined elsewhere... */ -#if ASN_EMIT_DEBUG == 1 /* And it was asked to emit this code... */ -#if !defined(BELL_LABS) /* Bell Labs */ - //#if __STDC_VERSION__ >= 199901L -#ifdef ASN_THREAD_SAFE -/* Thread safety requires sacrifice in output indentation: - * Retain empty definition of ASN_DEBUG_INDENT_ADD. */ -#else /* !ASN_THREAD_SAFE */ -#undef ASN_DEBUG_INDENT_ADD -#undef asn_debug_indent -int asn_debug_indent; -#define ASN_DEBUG_INDENT_ADD(i) do { asn_debug_indent += i; } while(0) -#endif /* ASN_THREAD_SAFE */ -#if defined(BELL_LABS) /* Bell Labs version */ -extern int logAsn1c(const char *filename, int linenumber, const char *format, ...); -#define ASN_DEBUG(fmt, args...) do { \ - (void) logAsn1c(__FILE__, __LINE__, fmt, ##args); \ - } while(0) -#else -#define ASN_DEBUG(fmt, args...) do { \ - int adi = asn_debug_indent; \ - while(adi--) fprintf(stderr, " "); \ - fprintf(stderr, fmt, ##args); \ - fprintf(stderr, " (%s:%d)\n", \ - __FILE__, __LINE__); \ - } while(0) -#endif /* BELL_LABS */ -#else /* !C99 */ -void CC_PRINTFLIKE(1, 2) ASN_DEBUG_f(const char *fmt, ...); -#define ASN_DEBUG ASN_DEBUG_f -#endif /* C99 */ -#else /* ASN_EMIT_DEBUG != 1 */ -#if __STDC_VERSION__ >= 199901L -#define ASN_DEBUG(...) do{}while(0) -#else /* not C99 */ -static void CC_PRINTFLIKE(1, 2) ASN_DEBUG(const char *fmt, ...) { (void)fmt; } -#endif /* C99 or better */ -#endif /* ASN_EMIT_DEBUG */ -#endif /* ASN_DEBUG */ - -/* - * Print to a callback. - * The callback is expected to return negative values on error. - * 0 and positive values are treated as success. - * RETURN VALUES: - * -1: Failed to format or invoke the callback. - * >0: Size of the data that got delivered to the callback. - */ -ssize_t CC_PRINTFLIKE(3, 4) -asn__format_to_callback( - int (*callback)(const void *, size_t, void *key), void *key, - const char *fmt, ...); - -/* - * Invoke the application-supplied callback and fail, if something is wrong. - */ -#define ASN__E_cbc(buf, size) (cb((buf), (size), app_key) < 0) -#define ASN__E_CALLBACK(size, foo) \ - do { \ - if(foo) goto cb_failed; \ - er.encoded += (size); \ - } while(0) -#define ASN__CALLBACK(buf, size) ASN__E_CALLBACK(size, ASN__E_cbc(buf, size)) -#define ASN__CALLBACK2(buf1, size1, buf2, size2) \ - ASN__E_CALLBACK((size1) + (size2), \ - ASN__E_cbc(buf1, size1) || ASN__E_cbc(buf2, size2)) -#define ASN__CALLBACK3(buf1, size1, buf2, size2, buf3, size3) \ - ASN__E_CALLBACK((size1) + (size2) + (size3), \ - ASN__E_cbc(buf1, size1) || ASN__E_cbc(buf2, size2) \ - || ASN__E_cbc(buf3, size3)) - -#define ASN__TEXT_INDENT(nl, level) \ - do { \ - int tmp_level = (level); \ - int tmp_nl = ((nl) != 0); \ - int tmp_i; \ - if(tmp_nl) ASN__CALLBACK("\n", 1); \ - if(tmp_level < 0) tmp_level = 0; \ - for(tmp_i = 0; tmp_i < tmp_level; tmp_i++) ASN__CALLBACK(" ", 4); \ - } while(0) - -#define _i_INDENT(nl) do { \ - int tmp_i; \ - if((nl) && cb("\n", 1, app_key) < 0) \ - return -1; \ - for(tmp_i = 0; tmp_i < ilevel; tmp_i++) \ - if(cb(" ", 4, app_key) < 0) \ - return -1; \ - } while(0) - -/* - * Check stack against overflow, if limit is set. - */ -#define ASN__DEFAULT_STACK_MAX (30000) -static int CC_NOTUSED -ASN__STACK_OVERFLOW_CHECK(const asn_codec_ctx_t *ctx) { - if(ctx && ctx->max_stack_size) { - - /* ctx MUST be allocated on the stack */ - ptrdiff_t usedstack = ((const char *)ctx - (const char *)&ctx); - if(usedstack > 0) usedstack = -usedstack; /* grows up! */ - - /* double negative required to avoid int wrap-around */ - if(usedstack < -(ptrdiff_t)ctx->max_stack_size) { - ASN_DEBUG("Stack limit %ld reached", - (long)ctx->max_stack_size); - return -1; - } - } - return 0; -} - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_INTERNAL_H */ diff --git a/e2sim/src/ASN1c/asn_ioc.h b/e2sim/src/ASN1c/asn_ioc.h deleted file mode 100644 index 7de210e..0000000 --- a/e2sim/src/ASN1c/asn_ioc.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Run-time support for Information Object Classes. - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_IOC_H -#define ASN_IOC_H - -#include /* Platform-specific types */ - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; -struct asn_ioc_cell_s; - -/* - * X.681, #13 - */ -typedef struct asn_ioc_set_s { - size_t rows_count; - size_t columns_count; - const struct asn_ioc_cell_s *rows; -} asn_ioc_set_t; - - -typedef struct asn_ioc_cell_s { - const char *field_name; /* Is equal to corresponding column_name */ - enum { - aioc__undefined = 0, - aioc__value, - aioc__type, - aioc__open_type, - } cell_kind; - struct asn_TYPE_descriptor_s *type_descriptor; - const void *value_sptr; - struct { - size_t types_count; - struct { - unsigned choice_position; - } *types; - } open_type; -} asn_ioc_cell_t; - - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_IOC_H */ diff --git a/e2sim/src/ASN1c/asn_random_fill.c b/e2sim/src/ASN1c/asn_random_fill.c deleted file mode 100644 index 819cf70..0000000 --- a/e2sim/src/ASN1c/asn_random_fill.c +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -int -asn_random_fill(const struct asn_TYPE_descriptor_s *td, void **struct_ptr, - size_t length) { - - if(td && td->op->random_fill) { - asn_random_fill_result_t res = - td->op->random_fill(td, struct_ptr, 0, length); - return (res.code == ARFILL_OK) ? 0 : -1; - } else { - return -1; - } -} - -static uintmax_t -asn__intmax_range(intmax_t lb, intmax_t ub) { - assert(lb <= ub); - if((ub < 0) == (lb < 0)) { - return ub - lb; - } else if(lb < 0) { - return 1 + ((uintmax_t)ub + (uintmax_t)-(lb + 1)); - } else { - assert(!"Unreachable"); - return 0; - } -} - -intmax_t -asn_random_between(intmax_t lb, intmax_t rb) { - if(lb == rb) { - return lb; - } else { - const uintmax_t intmax_max = ((~(uintmax_t)0) >> 1); - uintmax_t range = asn__intmax_range(lb, rb); - uintmax_t value = 0; - uintmax_t got_entropy = 0; - - assert(RAND_MAX > 0xffffff); /* Seen 7ffffffd! */ - assert(range < intmax_max); - - for(; got_entropy < range;) { - got_entropy = (got_entropy << 24) | 0xffffff; - value = (value << 24) | (random() % 0xffffff); - } - - return lb + (intmax_t)(value % (range + 1)); - } -} diff --git a/e2sim/src/ASN1c/asn_random_fill.h b/e2sim/src/ASN1c/asn_random_fill.h deleted file mode 100644 index 47f9b8a..0000000 --- a/e2sim/src/ASN1c/asn_random_fill.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_RANDOM_FILL -#define ASN_RANDOM_FILL - -/* Forward declarations */ -struct asn_TYPE_descriptor_s; -struct asn_encoding_constraints_s; - -/* - * Initialize a structure with random data according to the type specification - * and optional member constraints. - * ARGUMENTS: - * (max_length) - See (approx_max_length_limit). - * (memb_constraints) - Member constraints, if exist. - * The type can be constrained differently according - * to PER and OER specifications, so we find a value - * at the intersection of these constraints. - * In case the return differs from ARFILL_OK, the (struct_ptr) contents - * and (current_length) value remain in their original state. - */ -typedef struct asn_random_fill_result_s { - enum { - ARFILL_FAILED = -1, /* System error (memory?) */ - ARFILL_OK = 0, /* Initialization succeeded */ - ARFILL_SKIPPED = 1 /* Not done due to (length?) constraint */ - } code; - size_t length; /* Approximate number of bytes created. */ -} asn_random_fill_result_t; -typedef asn_random_fill_result_t(asn_random_fill_f)( - const struct asn_TYPE_descriptor_s *td, void **struct_ptr, - const struct asn_encoding_constraints_s *memb_constraints, - size_t max_length); - -/* - * Returns 0 if the structure was properly initialized, -1 otherwise. - * The (approx_max_length_limit) specifies the approximate limit of the - * resulting structure in units closely resembling bytes. The actual result - * might be several times larger or smaller than the length limit. - */ -int asn_random_fill(const struct asn_TYPE_descriptor_s *td, void **struct_ptr, - size_t approx_max_length_limit); - -/* - * Returns a random number between min and max. - */ -intmax_t asn_random_between(intmax_t min, intmax_t max); - -#endif /* ASN_RANDOM_FILL */ diff --git a/e2sim/src/ASN1c/asn_system.h b/e2sim/src/ASN1c/asn_system.h deleted file mode 100644 index fa8cf11..0000000 --- a/e2sim/src/ASN1c/asn_system.h +++ /dev/null @@ -1,150 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Miscellaneous system-dependent types. - */ -#ifndef ASN_SYSTEM_H -#define ASN_SYSTEM_H - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#ifndef _DEFAULT_SOURCE -#define _DEFAULT_SOURCE 1 -#endif - -#ifndef _BSD_SOURCE -#define _BSD_SOURCE /* for snprintf() on some linux systems */ -#endif - -#include /* For snprintf(3) */ -#include /* For *alloc(3) */ -#include /* For memcpy(3) */ -#include /* For size_t */ -#include /* For LONG_MAX */ -#include /* For va_start */ -#include /* for offsetof and ptrdiff_t */ - -#ifdef _WIN32 - -#include -#define snprintf _snprintf -#define vsnprintf _vsnprintf - -/* To avoid linking with ws2_32.lib, here's the definition of ntohl() */ -#define sys_ntohl(l) ((((l) << 24) & 0xff000000) \ - | (((l) << 8) & 0xff0000) \ - | (((l) >> 8) & 0xff00) \ - | ((l >> 24) & 0xff)) - -#ifdef _MSC_VER /* MSVS.Net */ -#ifndef __cplusplus -#define inline __inline -#endif -#ifndef ASSUMESTDTYPES /* Standard types have been defined elsewhere */ -#define ssize_t SSIZE_T -#if _MSC_VER < 1600 -typedef char int8_t; -typedef short int16_t; -typedef int int32_t; -typedef unsigned char uint8_t; -typedef unsigned short uint16_t; -typedef unsigned int uint32_t; -#else /* _MSC_VER >= 1600 */ -#include -#endif /* _MSC_VER < 1600 */ -#endif /* ASSUMESTDTYPES */ -#define WIN32_LEAN_AND_MEAN -#include -#include -#define isnan _isnan -#define finite _finite -#define copysign _copysign -#define ilogb _logb -#else /* !_MSC_VER */ -#include -#endif /* _MSC_VER */ - -#else /* !_WIN32 */ - -#if defined(__vxworks) -#include -#else /* !defined(__vxworks) */ - -#include /* C99 specifies this file */ -#include /* for ntohl() */ -#define sys_ntohl(foo) ntohl(foo) -#endif /* defined(__vxworks) */ - -#endif /* _WIN32 */ - -#if __GNUC__ >= 3 || defined(__clang__) -#define CC_ATTRIBUTE(attr) __attribute__((attr)) -#else -#define CC_ATTRIBUTE(attr) -#endif -#define CC_PRINTFLIKE(fmt, var) CC_ATTRIBUTE(format(printf, fmt, var)) -#define CC_NOTUSED CC_ATTRIBUTE(unused) -#ifndef CC_ATTR_NO_SANITIZE -#define CC_ATTR_NO_SANITIZE(what) CC_ATTRIBUTE(no_sanitize(what)) -#endif - -/* Figure out if thread safety is requested */ -#if !defined(ASN_THREAD_SAFE) && (defined(THREAD_SAFE) || defined(_REENTRANT)) -#define ASN_THREAD_SAFE -#endif /* Thread safety */ - -#ifndef offsetof /* If not defined by */ -#define offsetof(s, m) ((ptrdiff_t)&(((s *)0)->m) - (ptrdiff_t)((s *)0)) -#endif /* offsetof */ - -#ifndef MIN /* Suitable for comparing primitive types (integers) */ -#if defined(__GNUC__) -#define MIN(a,b) ({ __typeof a _a = a; __typeof b _b = b; \ - ((_a)<(_b)?(_a):(_b)); }) -#else /* !__GNUC__ */ -#define MIN(a,b) ((a)<(b)?(a):(b)) /* Unsafe variant */ -#endif /* __GNUC__ */ -#endif /* MIN */ - -#if __STDC_VERSION__ >= 199901L -#ifndef SIZE_MAX -#define SIZE_MAX ((~((size_t)0)) >> 1) -#endif - -#ifndef RSIZE_MAX /* C11, Annex K */ -#define RSIZE_MAX (SIZE_MAX >> 1) -#endif -#ifndef RSSIZE_MAX /* Halve signed size even further than unsigned */ -#define RSSIZE_MAX ((ssize_t)(RSIZE_MAX >> 1)) -#endif -#else /* Old compiler */ -#undef SIZE_MAX -#undef RSIZE_MAX -#undef RSSIZE_MAX -#define SIZE_MAX ((~((size_t)0)) >> 1) -#define RSIZE_MAX (SIZE_MAX >> 1) -#define RSSIZE_MAX ((ssize_t)(RSIZE_MAX >> 1)) -#endif - -#if __STDC_VERSION__ >= 199901L -#define ASN_PRI_SIZE "zu" -#define ASN_PRI_SSIZE "zd" -#define ASN_PRIuMAX PRIuMAX -#define ASN_PRIdMAX PRIdMAX -#else -#define ASN_PRI_SIZE "lu" -#define ASN_PRI_SSIZE "ld" -#if LLONG_MAX > LONG_MAX -#define ASN_PRIuMAX "llu" -#define ASN_PRIdMAX "lld" -#else -#define ASN_PRIuMAX "lu" -#define ASN_PRIdMAX "ld" -#endif -#endif - -#endif /* ASN_SYSTEM_H */ diff --git a/e2sim/src/ASN1c/ber_decoder.c b/e2sim/src/ASN1c/ber_decoder.c deleted file mode 100644 index 75d6016..0000000 --- a/e2sim/src/ASN1c/ber_decoder.c +++ /dev/null @@ -1,283 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include - -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) -#undef RETURN -#define RETURN(_code) do { \ - asn_dec_rval_t rval; \ - rval.code = _code; \ - if(opt_ctx) opt_ctx->step = step; /* Save context */ \ - if(_code == RC_OK || opt_ctx) \ - rval.consumed = consumed_myself; \ - else \ - rval.consumed = 0; /* Context-free */ \ - return rval; \ - } while(0) - -/* - * The BER decoder of any type. - */ -asn_dec_rval_t -ber_decode(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, - const void *ptr, size_t size) { - asn_codec_ctx_t s_codec_ctx; - - /* - * Stack checker requires that the codec context - * must be allocated on the stack. - */ - if(opt_codec_ctx) { - if(opt_codec_ctx->max_stack_size) { - s_codec_ctx = *opt_codec_ctx; - opt_codec_ctx = &s_codec_ctx; - } - } else { - /* If context is not given, be security-conscious anyway */ - memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); - s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; - opt_codec_ctx = &s_codec_ctx; - } - - /* - * Invoke type-specific decoder. - */ - return type_descriptor->op->ber_decoder(opt_codec_ctx, type_descriptor, - struct_ptr, /* Pointer to the destination structure */ - ptr, size, /* Buffer and its size */ - 0 /* Default tag mode is 0 */ - ); -} - -/* - * Check the set of >> tags matches the definition. - */ -asn_dec_rval_t -ber_check_tags(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, asn_struct_ctx_t *opt_ctx, - const void *ptr, size_t size, int tag_mode, int last_tag_form, - ber_tlv_len_t *last_length, int *opt_tlv_form) { - ssize_t consumed_myself = 0; - ssize_t tag_len; - ssize_t len_len; - ber_tlv_tag_t tlv_tag; - ber_tlv_len_t tlv_len; - ber_tlv_len_t limit_len = -1; - int expect_00_terminators = 0; - int tlv_constr = -1; /* If CHOICE, opt_tlv_form is not given */ - int step = opt_ctx ? opt_ctx->step : 0; /* Where we left previously */ - int tagno; - - /* - * Make sure we didn't exceed the maximum stack size. - */ - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - RETURN(RC_FAIL); - - /* - * So what does all this implicit skip stuff mean? - * Imagine two types, - * A ::= [5] IMPLICIT T - * B ::= [2] EXPLICIT T - * Where T is defined as - * T ::= [4] IMPLICIT SEQUENCE { ... } - * - * Let's say, we are starting to decode type A, given the - * following TLV stream: <5> <0>. What does this mean? - * It means that the type A contains type T which is, - * in turn, empty. - * Remember though, that we are still in A. We cannot - * just pass control to the type T decoder. Why? Because - * the type T decoder expects <4> <0>, not <5> <0>. - * So, we must make sure we are going to receive <5> while - * still in A, then pass control to the T decoder, indicating - * that the tag <4> was implicitly skipped. The decoder of T - * hence will be prepared to treat <4> as valid tag, and decode - * it appropriately. - */ - - tagno = step /* Continuing where left previously */ - + (tag_mode==1?-1:0) - ; - ASN_DEBUG("ber_check_tags(%s, size=%ld, tm=%d, step=%d, tagno=%d)", - td->name, (long)size, tag_mode, step, tagno); - /* assert(td->tags_count >= 1) May not be the case for CHOICE or ANY */ - - if(tag_mode == 0 && tagno == (int)td->tags_count) { - /* - * This must be the _untagged_ ANY type, - * which outermost tag isn't known in advance. - * Fetch the tag and length separately. - */ - tag_len = ber_fetch_tag(ptr, size, &tlv_tag); - switch(tag_len) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - tlv_constr = BER_TLV_CONSTRUCTED(ptr); - len_len = ber_fetch_length(tlv_constr, - (const char *)ptr + tag_len, size - tag_len, &tlv_len); - switch(len_len) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - ASN_DEBUG("Advancing %ld in ANY case", - (long)(tag_len + len_len)); - ADVANCE(tag_len + len_len); - } else { - assert(tagno < (int)td->tags_count); /* At least one loop */ - } - for((void)tagno; tagno < (int)td->tags_count; tagno++, step++) { - - /* - * Fetch and process T from TLV. - */ - tag_len = ber_fetch_tag(ptr, size, &tlv_tag); - ASN_DEBUG("Fetching tag from {%p,%ld}: " - "len %ld, step %d, tagno %d got %s", - ptr, (long)size, - (long)tag_len, step, tagno, - ber_tlv_tag_string(tlv_tag)); - switch(tag_len) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - - tlv_constr = BER_TLV_CONSTRUCTED(ptr); - - /* - * If {I}, don't check anything. - * If {I,B,C}, check B and C unless we're at I. - */ - if(tag_mode != 0 && step == 0) { - /* - * We don't expect tag to match here. - * It's just because we don't know how the tag - * is supposed to look like. - */ - } else { - assert(tagno >= 0); /* Guaranteed by the code above */ - if(tlv_tag != td->tags[tagno]) { - /* - * Unexpected tag. Too bad. - */ - ASN_DEBUG("Expected: %s, " - "expectation failed (tn=%d, tm=%d)", - ber_tlv_tag_string(td->tags[tagno]), - tagno, tag_mode - ); - RETURN(RC_FAIL); - } - } - - /* - * Attention: if there are more tags expected, - * ensure that the current tag is presented - * in constructed form (it contains other tags!). - * If this one is the last one, check that the tag form - * matches the one given in descriptor. - */ - if(tagno < ((int)td->tags_count - 1)) { - if(tlv_constr == 0) { - ASN_DEBUG("tlv_constr = %d, expfail", - tlv_constr); - RETURN(RC_FAIL); - } - } else { - if(last_tag_form != tlv_constr - && last_tag_form != -1) { - ASN_DEBUG("last_tag_form %d != %d", - last_tag_form, tlv_constr); - RETURN(RC_FAIL); - } - } - - /* - * Fetch and process L from TLV. - */ - len_len = ber_fetch_length(tlv_constr, - (const char *)ptr + tag_len, size - tag_len, &tlv_len); - ASN_DEBUG("Fetching len = %ld", (long)len_len); - switch(len_len) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - - /* - * FIXME - * As of today, the chain of tags - * must either contain several indefinite length TLVs, - * or several definite length ones. - * No mixing is allowed. - */ - if(tlv_len == -1) { - /* - * Indefinite length. - */ - if(limit_len == -1) { - expect_00_terminators++; - } else { - ASN_DEBUG("Unexpected indefinite length " - "in a chain of definite lengths"); - RETURN(RC_FAIL); - } - ADVANCE(tag_len + len_len); - continue; - } else { - if(expect_00_terminators) { - ASN_DEBUG("Unexpected definite length " - "in a chain of indefinite lengths"); - RETURN(RC_FAIL); - } - } - - /* - * Check that multiple TLVs specify ever decreasing length, - * which is consistent. - */ - if(limit_len == -1) { - limit_len = tlv_len + tag_len + len_len; - if(limit_len < 0) { - /* Too great tlv_len value? */ - RETURN(RC_FAIL); - } - } else if(limit_len != tlv_len + tag_len + len_len) { - /* - * Inner TLV specifies length which is inconsistent - * with the outer TLV's length value. - */ - ASN_DEBUG("Outer TLV is %ld and inner is %ld", - (long)limit_len, (long)tlv_len); - RETURN(RC_FAIL); - } - - ADVANCE(tag_len + len_len); - - limit_len -= (tag_len + len_len); - if((ssize_t)size > limit_len) { - /* - * Make sure that we won't consume more bytes - * from the parent frame than the inferred limit. - */ - size = limit_len; - } - } - - if(opt_tlv_form) - *opt_tlv_form = tlv_constr; - if(expect_00_terminators) - *last_length = -expect_00_terminators; - else - *last_length = tlv_len; - - RETURN(RC_OK); -} diff --git a/e2sim/src/ASN1c/ber_decoder.h b/e2sim/src/ASN1c/ber_decoder.h deleted file mode 100644 index 1ac2a5e..0000000 --- a/e2sim/src/ASN1c/ber_decoder.h +++ /dev/null @@ -1,66 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _BER_DECODER_H_ -#define _BER_DECODER_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ -struct asn_codec_ctx_s; /* Forward declaration */ - -/* - * The BER decoder of any type. - * This function may be invoked directly from the application. - * Decodes BER, DER and CER data (DER and CER are different subsets of BER). - * - * NOTE: Use the der_encode() function (der_encoder.h) to produce encoding - * which is compliant with ber_decode(). - */ -asn_dec_rval_t ber_decode( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of that buffer */ -); - -/* - * Type of generic function which decodes the byte stream into the structure. - */ -typedef asn_dec_rval_t(ber_type_decoder_f)( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, void **struct_ptr, - const void *buf_ptr, size_t size, int tag_mode); - -/******************************* - * INTERNALLY USEFUL FUNCTIONS * - *******************************/ - -/* - * Check that all tags correspond to the type definition (as given in head). - * On return, last_length would contain either a non-negative length of the - * value part of the last TLV, or the negative number of expected - * "end of content" sequences. The number may only be negative if the - * head->last_tag_form is non-zero. - */ -asn_dec_rval_t ber_check_tags( - const struct asn_codec_ctx_s *opt_codec_ctx, /* codec options */ - const struct asn_TYPE_descriptor_s *type_descriptor, - asn_struct_ctx_t *opt_ctx, /* saved decoding context */ - const void *ptr, size_t size, - int tag_mode, /* {-1,0,1}: IMPLICIT, no, EXPLICIT */ - int last_tag_form, /* {-1,0:1}: any, primitive, constr */ - ber_tlv_len_t *last_length, int *opt_tlv_form /* optional tag form */ -); - -#ifdef __cplusplus -} -#endif - -#endif /* _BER_DECODER_H_ */ diff --git a/e2sim/src/ASN1c/ber_tlv_length.c b/e2sim/src/ASN1c/ber_tlv_length.c deleted file mode 100644 index 0a0deec..0000000 --- a/e2sim/src/ASN1c/ber_tlv_length.c +++ /dev/null @@ -1,168 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -ssize_t -ber_fetch_length(int _is_constructed, const void *bufptr, size_t size, - ber_tlv_len_t *len_r) { - const uint8_t *buf = (const uint8_t *)bufptr; - unsigned oct; - - if(size == 0) - return 0; /* Want more */ - - oct = *(const uint8_t *)buf; - if((oct & 0x80) == 0) { - /* - * Short definite length. - */ - *len_r = oct; /* & 0x7F */ - return 1; - } else { - ber_tlv_len_t len; - size_t skipped; - - if(_is_constructed && oct == 0x80) { - *len_r = -1; /* Indefinite length */ - return 1; - } - - if(oct == 0xff) { - /* Reserved in standard for future use. */ - return -1; - } - - oct &= 0x7F; /* Leave only the 7 LS bits */ - for(len = 0, buf++, skipped = 1; - oct && (++skipped <= size); buf++, oct--) { - - /* Verify that we won't overflow. */ - if(!(len >> ((8 * sizeof(len)) - (8+1)))) { - len = (len << 8) | *buf; - } else { - /* Too large length value. */ - return -1; - } - } - - if(oct == 0) { - if(len < 0 || len > RSSIZE_MAX) { - /* Length value out of sane range. */ - return -1; - } - - *len_r = len; - return skipped; - } - - return 0; /* Want more */ - } - -} - -ssize_t -ber_skip_length(const asn_codec_ctx_t *opt_codec_ctx, - int _is_constructed, const void *ptr, size_t size) { - ber_tlv_len_t vlen; /* Length of V in TLV */ - ssize_t tl; /* Length of L in TLV */ - ssize_t ll; /* Length of L in TLV */ - size_t skip; - - /* - * Make sure we didn't exceed the maximum stack size. - */ - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - return -1; - - /* - * Determine the size of L in TLV. - */ - ll = ber_fetch_length(_is_constructed, ptr, size, &vlen); - if(ll <= 0) return ll; - - /* - * Definite length. - */ - if(vlen >= 0) { - skip = ll + vlen; - if(skip > size) - return 0; /* Want more */ - return skip; - } - - /* - * Indefinite length! - */ - ASN_DEBUG("Skipping indefinite length"); - for(skip = ll, ptr = ((const char *)ptr) + ll, size -= ll;;) { - ber_tlv_tag_t tag; - - /* Fetch the tag */ - tl = ber_fetch_tag(ptr, size, &tag); - if(tl <= 0) return tl; - - ll = ber_skip_length(opt_codec_ctx, - BER_TLV_CONSTRUCTED(ptr), - ((const char *)ptr) + tl, size - tl); - if(ll <= 0) return ll; - - skip += tl + ll; - - /* - * This may be the end of the indefinite length structure, - * two consecutive 0 octets. - * Check if it is true. - */ - if(((const uint8_t *)ptr)[0] == 0 - && ((const uint8_t *)ptr)[1] == 0) - return skip; - - ptr = ((const char *)ptr) + tl + ll; - size -= tl + ll; - } - - /* UNREACHABLE */ -} - -size_t -der_tlv_length_serialize(ber_tlv_len_t len, void *bufp, size_t size) { - size_t required_size; /* Size of len encoding */ - uint8_t *buf = (uint8_t *)bufp; - uint8_t *end; - int i; - - if(len <= 127) { - /* Encoded in 1 octet */ - if(size) *buf = (uint8_t)len; - return 1; - } - - /* - * Compute the size of the subsequent bytes. - */ - for(required_size = 1, i = 8; i < 8 * (int)sizeof(len); i += 8) { - if(len >> i) - required_size++; - else - break; - } - - if(size <= required_size) - return required_size + 1; - - *buf++ = (uint8_t)(0x80 | required_size); /* Length of the encoding */ - - /* - * Produce the len encoding, space permitting. - */ - end = buf + required_size; - for(i -= 8; buf < end; i -= 8, buf++) - *buf = (uint8_t)(len >> i); - - return required_size + 1; -} - diff --git a/e2sim/src/ASN1c/ber_tlv_length.h b/e2sim/src/ASN1c/ber_tlv_length.h deleted file mode 100644 index d1e4d48..0000000 --- a/e2sim/src/ASN1c/ber_tlv_length.h +++ /dev/null @@ -1,50 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _BER_TLV_LENGTH_H_ -#define _BER_TLV_LENGTH_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef ssize_t ber_tlv_len_t; - -/* - * This function tries to fetch the length of the BER TLV value and place it - * in *len_r. - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering length. - * >0: Number of bytes used from bufptr. - * On return with >0, len_r is constrained as -1..MAX, where -1 mean - * that the value is of indefinite length. - */ -ssize_t ber_fetch_length(int _is_constructed, const void *bufptr, size_t size, - ber_tlv_len_t *len_r); - -/* - * This function expects bufptr to be positioned over L in TLV. - * It returns number of bytes occupied by L and V together, suitable - * for skipping. The function properly handles indefinite length. - * RETURN VALUES: - * Standard {-1,0,>0} convention. - */ -ssize_t ber_skip_length( - const struct asn_codec_ctx_s *opt_codec_ctx, /* optional context */ - int _is_constructed, const void *bufptr, size_t size); - -/* - * This function serializes the length (L from TLV) in DER format. - * It always returns number of bytes necessary to represent the length, - * it is a caller's responsibility to check the return value - * against the supplied buffer's size. - */ -size_t der_tlv_length_serialize(ber_tlv_len_t len, void *bufptr, size_t size); - -#ifdef __cplusplus -} -#endif - -#endif /* _BER_TLV_LENGTH_H_ */ diff --git a/e2sim/src/ASN1c/ber_tlv_tag.c b/e2sim/src/ASN1c/ber_tlv_tag.c deleted file mode 100644 index 4a7d732..0000000 --- a/e2sim/src/ASN1c/ber_tlv_tag.c +++ /dev/null @@ -1,144 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -ssize_t -ber_fetch_tag(const void *ptr, size_t size, ber_tlv_tag_t *tag_r) { - ber_tlv_tag_t val; - ber_tlv_tag_t tclass; - size_t skipped; - - if(size == 0) - return 0; - - val = *(const uint8_t *)ptr; - tclass = (val >> 6); - if((val &= 0x1F) != 0x1F) { - /* - * Simple form: everything encoded in a single octet. - * Tag Class is encoded using two least significant bits. - */ - *tag_r = (val << 2) | tclass; - return 1; - } - - /* - * Each octet contains 7 bits of useful information. - * The MSB is 0 if it is the last octet of the tag. - */ - for(val = 0, ptr = ((const char *)ptr) + 1, skipped = 2; - skipped <= size; - ptr = ((const char *)ptr) + 1, skipped++) { - unsigned int oct = *(const uint8_t *)ptr; - if(oct & 0x80) { - val = (val << 7) | (oct & 0x7F); - /* - * Make sure there are at least 9 bits spare - * at the MS side of a value. - */ - if(val >> ((8 * sizeof(val)) - 9)) { - /* - * We would not be able to accomodate - * any more tag bits. - */ - return -1; - } - } else { - val = (val << 7) | oct; - *tag_r = (val << 2) | tclass; - return skipped; - } - } - - return 0; /* Want more */ -} - - -ssize_t -ber_tlv_tag_fwrite(ber_tlv_tag_t tag, FILE *f) { - char buf[sizeof("[APPLICATION ]") + 32]; - ssize_t ret; - - ret = ber_tlv_tag_snprint(tag, buf, sizeof(buf)); - if(ret >= (ssize_t)sizeof(buf) || ret < 2) { - errno = EPERM; - return -1; - } - - return fwrite(buf, 1, ret, f); -} - -ssize_t -ber_tlv_tag_snprint(ber_tlv_tag_t tag, char *buf, size_t size) { - const char *type = 0; - int ret; - - switch(tag & 0x3) { - case ASN_TAG_CLASS_UNIVERSAL: type = "UNIVERSAL "; break; - case ASN_TAG_CLASS_APPLICATION: type = "APPLICATION "; break; - case ASN_TAG_CLASS_CONTEXT: type = ""; break; - case ASN_TAG_CLASS_PRIVATE: type = "PRIVATE "; break; - } - - ret = snprintf(buf, size, "[%s%u]", type, ((unsigned)tag) >> 2); - if(ret <= 0 && size) buf[0] = '\0'; /* against broken libc's */ - - return ret; -} - -char * -ber_tlv_tag_string(ber_tlv_tag_t tag) { - static char buf[sizeof("[APPLICATION ]") + 32]; - - (void)ber_tlv_tag_snprint(tag, buf, sizeof(buf)); - - return buf; -} - - -size_t -ber_tlv_tag_serialize(ber_tlv_tag_t tag, void *bufp, size_t size) { - int tclass = BER_TAG_CLASS(tag); - ber_tlv_tag_t tval = BER_TAG_VALUE(tag); - uint8_t *buf = (uint8_t *)bufp; - uint8_t *end; - size_t required_size; - size_t i; - - if(tval <= 30) { - /* Encoded in 1 octet */ - if(size) buf[0] = (tclass << 6) | tval; - return 1; - } else if(size) { - *buf++ = (tclass << 6) | 0x1F; - size--; - } - - /* - * Compute the size of the subsequent bytes. - */ - for(required_size = 1, i = 7; i < 8 * sizeof(tval); i += 7) { - if(tval >> i) - required_size++; - else - break; - } - - if(size < required_size) - return required_size + 1; - - /* - * Fill in the buffer, space permitting. - */ - end = buf + required_size - 1; - for(i -= 7; buf < end; i -= 7, buf++) - *buf = 0x80 | ((tval >> i) & 0x7F); - *buf = (tval & 0x7F); /* Last octet without high bit */ - - return required_size + 1; -} - diff --git a/e2sim/src/ASN1c/ber_tlv_tag.h b/e2sim/src/ASN1c/ber_tlv_tag.h deleted file mode 100644 index ce227ad..0000000 --- a/e2sim/src/ASN1c/ber_tlv_tag.h +++ /dev/null @@ -1,60 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _BER_TLV_TAG_H_ -#define _BER_TLV_TAG_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -enum asn_tag_class { - ASN_TAG_CLASS_UNIVERSAL = 0, /* 0b00 */ - ASN_TAG_CLASS_APPLICATION = 1, /* 0b01 */ - ASN_TAG_CLASS_CONTEXT = 2, /* 0b10 */ - ASN_TAG_CLASS_PRIVATE = 3 /* 0b11 */ -}; -typedef unsigned ber_tlv_tag_t; /* BER TAG from Tag-Length-Value */ - -/* - * Tag class is encoded together with tag value for optimization purposes. - */ -#define BER_TAG_CLASS(tag) ((tag) & 0x3) -#define BER_TAG_VALUE(tag) ((tag) >> 2) -#define BER_TLV_CONSTRUCTED(tagptr) (((*(const uint8_t *)tagptr)&0x20)?1:0) - -#define BER_TAGS_EQUAL(tag1, tag2) ((tag1) == (tag2)) - -/* - * Several functions for printing the TAG in the canonical form - * (i.e. "[PRIVATE 0]"). - * Return values correspond to their libc counterparts (if any). - */ -ssize_t ber_tlv_tag_snprint(ber_tlv_tag_t tag, char *buf, size_t buflen); -ssize_t ber_tlv_tag_fwrite(ber_tlv_tag_t tag, FILE *); -char *ber_tlv_tag_string(ber_tlv_tag_t tag); - - -/* - * This function tries to fetch the tag from the input stream. - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering tag. - * >0: Number of bytes used from bufptr. tag_r will contain the tag. - */ -ssize_t ber_fetch_tag(const void *bufptr, size_t size, ber_tlv_tag_t *tag_r); - -/* - * This function serializes the tag (T from TLV) in BER format. - * It always returns number of bytes necessary to represent the tag, - * it is a caller's responsibility to check the return value - * against the supplied buffer's size. - */ -size_t ber_tlv_tag_serialize(ber_tlv_tag_t tag, void *bufptr, size_t size); - -#ifdef __cplusplus -} -#endif - -#endif /* _BER_TLV_TAG_H_ */ diff --git a/e2sim/src/ASN1c/constr_CHOICE.c b/e2sim/src/ASN1c/constr_CHOICE.c deleted file mode 100644 index 86dcbb0..0000000 --- a/e2sim/src/ASN1c/constr_CHOICE.c +++ /dev/null @@ -1,1533 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Number of bytes left for this structure. - * (ctx->left) indicates the number of bytes _transferred_ for the structure. - * (size) contains the number of bytes in the buffer passed. - */ -#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) - -/* - * If the subprocessor function returns with an indication that it wants - * more data, it may well be a fatal decoding problem, because the - * size is constrained by the 's L, even if the buffer size allows - * reading more data. - * For example, consider the buffer containing the following TLVs: - * ... - * The TLV length clearly indicates that one byte is expected in V, but - * if the V processor returns with "want more data" even if the buffer - * contains way more data than the V processor have seen. - */ -#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) - -/* - * This macro "eats" the part of the buffer which is definitely "consumed", - * i.e. was correctly converted into local representation or rightfully skipped. - */ -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num;\ - size -= num; \ - if(ctx->left >= 0) \ - ctx->left -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#define NEXT_PHASE(ctx) do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself;\ - return rval; \ - } while(0) - -/* - * See the definitions. - */ -static unsigned _fetch_present_idx(const void *struct_ptr, unsigned off, - unsigned size); -static void _set_present_idx(void *sptr, unsigned offset, unsigned size, - unsigned pres); -static const void *_get_member_ptr(const asn_TYPE_descriptor_t *, - const void *sptr, asn_TYPE_member_t **elm, - unsigned *present); - -/* - * Tags are canonically sorted in the tag to member table. - */ -static int -_search4tag(const void *ap, const void *bp) { - const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap; - const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp; - - int a_class = BER_TAG_CLASS(a->el_tag); - int b_class = BER_TAG_CLASS(b->el_tag); - - if(a_class == b_class) { - ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag); - ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag); - - if(a_value == b_value) - return 0; - else if(a_value < b_value) - return -1; - else - return 1; - } else if(a_class < b_class) { - return -1; - } else { - return 1; - } -} - -/* - * The decoder of the CHOICE type. - */ -asn_dec_rval_t -CHOICE_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const void *ptr, size_t size, int tag_mode) { - /* - * Bring closer parts of structure description. - */ - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_TYPE_member_t *elements = td->elements; - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - ber_tlv_tag_t tlv_tag; /* T from TLV */ - ssize_t tag_len; /* Length of TLV's T */ - asn_dec_rval_t rval; /* Return code from subparsers */ - - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - - ASN_DEBUG("Decoding %s as CHOICE", td->name); - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Start to parse where left previously - */ - switch(ctx->phase) { - case 0: - /* - * PHASE 0. - * Check that the set of tags associated with given structure - * perfectly fits our expectations. - */ - - if(tag_mode || td->tags_count) { - rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, - tag_mode, -1, &ctx->left, 0); - if(rval.code != RC_OK) { - ASN_DEBUG("%s tagging check failed: %d", - td->name, rval.code); - return rval; - } - - if(ctx->left >= 0) { - /* ?Substracted below! */ - ctx->left += rval.consumed; - } - ADVANCE(rval.consumed); - } else { - ctx->left = -1; - } - - NEXT_PHASE(ctx); - - ASN_DEBUG("Structure consumes %ld bytes, buffer %ld", - (long)ctx->left, (long)size); - - /* Fall through */ - case 1: - /* - * Fetch the T from TLV. - */ - tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); - ASN_DEBUG("In %s CHOICE tag length %d", td->name, (int)tag_len); - switch(tag_len) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - do { - const asn_TYPE_tag2member_t *t2m; - asn_TYPE_tag2member_t key; - - key.el_tag = tlv_tag; - t2m = (const asn_TYPE_tag2member_t *)bsearch(&key, - specs->tag2el, specs->tag2el_count, - sizeof(specs->tag2el[0]), _search4tag); - if(t2m) { - /* - * Found the element corresponding to the tag. - */ - NEXT_PHASE(ctx); - ctx->step = t2m->el_no; - break; - } else if(specs->ext_start == -1) { - ASN_DEBUG("Unexpected tag %s " - "in non-extensible CHOICE %s", - ber_tlv_tag_string(tlv_tag), td->name); - RETURN(RC_FAIL); - } else { - /* Skip this tag */ - ssize_t skip; - - ASN_DEBUG("Skipping unknown tag %s", - ber_tlv_tag_string(tlv_tag)); - - skip = ber_skip_length(opt_codec_ctx, - BER_TLV_CONSTRUCTED(ptr), - (const char *)ptr + tag_len, - LEFT - tag_len); - - switch(skip) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - ADVANCE(skip + tag_len); - RETURN(RC_OK); - } - } while(0); - - case 2: - /* - * PHASE 2. - * Read in the element. - */ - do { - asn_TYPE_member_t *elm;/* CHOICE's element */ - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - - elm = &elements[ctx->step]; - - /* - * Compute the position of the member inside a structure, - * and also a type of containment (it may be contained - * as pointer or using inline inclusion). - */ - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - /* - * A pointer to a pointer - * holding the start of the structure - */ - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - /* Set presence to be able to free it properly at any time */ - _set_present_idx(st, specs->pres_offset, - specs->pres_size, ctx->step + 1); - /* - * Invoke the member fetch routine according to member's type - */ - rval = elm->type->op->ber_decoder(opt_codec_ctx, elm->type, - memb_ptr2, ptr, LEFT, elm->tag_mode); - switch(rval.code) { - case RC_OK: - break; - case RC_WMORE: /* More data expected */ - if(!SIZE_VIOLATION) { - ADVANCE(rval.consumed); - RETURN(RC_WMORE); - } - RETURN(RC_FAIL); - case RC_FAIL: /* Fatal error */ - RETURN(rval.code); - } /* switch(rval) */ - - ADVANCE(rval.consumed); - } while(0); - - NEXT_PHASE(ctx); - - /* Fall through */ - case 3: - ASN_DEBUG("CHOICE %s Leftover: %ld, size = %ld, tm=%d, tc=%d", - td->name, (long)ctx->left, (long)size, - tag_mode, td->tags_count); - - if(ctx->left > 0) { - /* - * The type must be fully decoded - * by the CHOICE member-specific decoder. - */ - RETURN(RC_FAIL); - } - - if(ctx->left == -1 - && !(tag_mode || td->tags_count)) { - /* - * This is an untagged CHOICE. - * It doesn't contain nothing - * except for the member itself, including all its tags. - * The decoding is completed. - */ - NEXT_PHASE(ctx); - break; - } - - /* - * Read in the "end of data chunks"'s. - */ - while(ctx->left < 0) { - ssize_t tl; - - tl = ber_fetch_tag(ptr, LEFT, &tlv_tag); - switch(tl) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - /* - * Expected <0><0>... - */ - if(((const uint8_t *)ptr)[0] == 0) { - if(LEFT < 2) { - if(SIZE_VIOLATION) - RETURN(RC_FAIL); - else - RETURN(RC_WMORE); - } else if(((const uint8_t *)ptr)[1] == 0) { - /* - * Correctly finished with <0><0>. - */ - ADVANCE(2); - ctx->left++; - continue; - } - } else { - ASN_DEBUG("Unexpected continuation in %s", - td->name); - RETURN(RC_FAIL); - } - - /* UNREACHABLE */ - } - - NEXT_PHASE(ctx); - case 4: - /* No meaningful work here */ - break; - } - - RETURN(RC_OK); -} - -asn_enc_rval_t -CHOICE_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, - void *app_key) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - asn_TYPE_member_t *elm; /* CHOICE element */ - asn_enc_rval_t erval = {0,0,0}; - const void *memb_ptr; - size_t computed_size = 0; - unsigned present; - - if(!sptr) ASN__ENCODE_FAILED; - - ASN_DEBUG("%s %s as CHOICE", - cb?"Encoding":"Estimating", td->name); - - present = _fetch_present_idx(sptr, - specs->pres_offset, specs->pres_size); - - /* - * If the structure was not initialized, it cannot be encoded: - * can't deduce what to encode in the choice type. - */ - if(present == 0 || present > td->elements_count) { - if(present == 0 && td->elements_count == 0) { - /* The CHOICE is empty?! */ - erval.encoded = 0; - ASN__ENCODED_OK(erval); - } - ASN__ENCODE_FAILED; - } - - /* - * Seek over the present member of the structure. - */ - elm = &td->elements[present-1]; - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(memb_ptr == 0) { - if(elm->optional) { - erval.encoded = 0; - ASN__ENCODED_OK(erval); - } - /* Mandatory element absent */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - /* - * If the CHOICE itself is tagged EXPLICIT: - * T ::= [2] EXPLICIT CHOICE { ... } - * Then emit the appropriate tags. - */ - if(tag_mode == 1 || td->tags_count) { - /* - * For this, we need to pre-compute the member. - */ - ssize_t ret; - - /* Encode member with its tag */ - erval = elm->type->op->der_encoder(elm->type, memb_ptr, - elm->tag_mode, elm->tag, 0, 0); - if(erval.encoded == -1) - return erval; - - /* Encode CHOICE with parent or my own tag */ - ret = der_write_tags(td, erval.encoded, tag_mode, 1, tag, - cb, app_key); - if(ret == -1) - ASN__ENCODE_FAILED; - computed_size += ret; - } - - /* - * Encode the single underlying member. - */ - erval = elm->type->op->der_encoder(elm->type, memb_ptr, - elm->tag_mode, elm->tag, cb, app_key); - if(erval.encoded == -1) - return erval; - - ASN_DEBUG("Encoded CHOICE member in %ld bytes (+%ld)", - (long)erval.encoded, (long)computed_size); - - erval.encoded += computed_size; - - return erval; -} - -ber_tlv_tag_t -CHOICE_outmost_tag(const asn_TYPE_descriptor_t *td, const void *ptr, int tag_mode, ber_tlv_tag_t tag) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - assert(tag_mode == 0); (void)tag_mode; - assert(tag == 0); (void)tag; - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(ptr, specs->pres_offset, specs->pres_size); - - if(present > 0 && present <= td->elements_count) { - const asn_TYPE_member_t *elm = &td->elements[present-1]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *) - ((const char *)ptr + elm->memb_offset); - } else { - memb_ptr = (const void *) - ((const char *)ptr + elm->memb_offset); - } - - return asn_TYPE_outmost_tag(elm->type, memb_ptr, - elm->tag_mode, elm->tag); - } else { - return (ber_tlv_tag_t)-1; - } -} - -int -CHOICE_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); - if(present > 0 && present <= td->elements_count) { - asn_TYPE_member_t *elm = &td->elements[present-1]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) { - if(elm->optional) - return 0; - ASN__CTFAIL(app_key, td, sptr, - "%s: mandatory CHOICE element %s absent (%s:%d)", - td->name, elm->name, __FILE__, __LINE__); - return -1; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - if(elm->encoding_constraints.general_constraints) { - return elm->encoding_constraints.general_constraints(elm->type, memb_ptr, - ctfailcb, app_key); - } else { - return elm->type->encoding_constraints.general_constraints(elm->type, - memb_ptr, ctfailcb, app_key); - } - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: no CHOICE element given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -#undef XER_ADVANCE -#define XER_ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - buf_ptr = (const void *)(((const char *)buf_ptr) + num); \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Decode the XER (XML) data. - */ -asn_dec_rval_t -CHOICE_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const char *opt_mname, const void *buf_ptr, size_t size) { - /* - * Bring closer parts of structure description. - */ - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - asn_dec_rval_t rval; /* Return value of a decoder */ - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - size_t edx; /* Element index */ - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) RETURN(RC_FAIL); - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - if(ctx->phase == 0 && !*xml_tag) - ctx->phase = 1; /* Skip the outer tag checking phase */ - - /* - * Phases of XER/XML processing: - * Phase 0: Check that the opening tag matches our expectations. - * Phase 1: Processing body and reacting on closing tag. - * Phase 2: Processing inner type. - * Phase 3: Only waiting for closing tag. - * Phase 4: Skipping unknown extensions. - * Phase 5: PHASED OUT - */ - for(edx = ctx->step; ctx->phase <= 4;) { - pxer_chunk_type_e ch_type; /* XER chunk type */ - ssize_t ch_size; /* Chunk size */ - xer_check_tag_e tcv; /* Tag check value */ - asn_TYPE_member_t *elm; - - /* - * Go inside the member. - */ - if(ctx->phase == 2) { - asn_dec_rval_t tmprval; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - unsigned old_present; - - elm = &td->elements[edx]; - - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st - + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - /* Start/Continue decoding the inner member */ - tmprval = elm->type->op->xer_decoder(opt_codec_ctx, - elm->type, memb_ptr2, elm->name, - buf_ptr, size); - XER_ADVANCE(tmprval.consumed); - ASN_DEBUG("XER/CHOICE: itdf: [%s] code=%d", - elm->type->name, tmprval.code); - old_present = _fetch_present_idx(st, - specs->pres_offset, specs->pres_size); - assert(old_present == 0 || old_present == edx + 1); - /* Record what we've got */ - _set_present_idx(st, - specs->pres_offset, specs->pres_size, edx + 1); - if(tmprval.code != RC_OK) - RETURN(tmprval.code); - ctx->phase = 3; - /* Fall through */ - } - - /* No need to wait for closing tag; special mode. */ - if(ctx->phase == 3 && !*xml_tag) { - ctx->phase = 5; /* Phase out */ - RETURN(RC_OK); - } - - /* - * Get the next part of the XML stream. - */ - ch_size = xer_next_token(&ctx->context, buf_ptr, size, &ch_type); - if(ch_size == -1) { - RETURN(RC_FAIL); - } else { - switch(ch_type) { - case PXER_WMORE: - RETURN(RC_WMORE); - case PXER_COMMENT: /* Got XML comment */ - case PXER_TEXT: /* Ignore free-standing text */ - XER_ADVANCE(ch_size); /* Skip silently */ - continue; - case PXER_TAG: - break; /* Check the rest down there */ - } - } - - tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); - ASN_DEBUG("XER/CHOICE checked [%c%c%c%c] vs [%s], tcv=%d", - ch_size>0?((const uint8_t *)buf_ptr)[0]:'?', - ch_size>1?((const uint8_t *)buf_ptr)[1]:'?', - ch_size>2?((const uint8_t *)buf_ptr)[2]:'?', - ch_size>3?((const uint8_t *)buf_ptr)[3]:'?', - xml_tag, tcv); - - /* Skip the extensions section */ - if(ctx->phase == 4) { - ASN_DEBUG("skip_unknown(%d, %ld)", - tcv, (long)ctx->left); - switch(xer_skip_unknown(tcv, &ctx->left)) { - case -1: - ctx->phase = 5; - RETURN(RC_FAIL); - case 1: - ctx->phase = 3; - /* Fall through */ - case 0: - XER_ADVANCE(ch_size); - continue; - case 2: - ctx->phase = 3; - break; - } - } - - switch(tcv) { - case XCT_BOTH: - break; /* No CHOICE? */ - case XCT_CLOSING: - if(ctx->phase != 3) - break; - XER_ADVANCE(ch_size); - ctx->phase = 5; /* Phase out */ - RETURN(RC_OK); - case XCT_OPENING: - if(ctx->phase == 0) { - XER_ADVANCE(ch_size); - ctx->phase = 1; /* Processing body phase */ - continue; - } - /* Fall through */ - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - - if(ctx->phase != 1) - break; /* Really unexpected */ - - /* - * Search which inner member corresponds to this tag. - */ - for(edx = 0; edx < td->elements_count; edx++) { - elm = &td->elements[edx]; - tcv = xer_check_tag(buf_ptr,ch_size,elm->name); - switch(tcv) { - case XCT_BOTH: - case XCT_OPENING: - /* - * Process this member. - */ - ctx->step = edx; - ctx->phase = 2; - break; - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - continue; - default: - edx = td->elements_count; - break; /* Phase out */ - } - break; - } - if(edx != td->elements_count) - continue; - - /* It is expected extension */ - if(specs->ext_start != -1) { - ASN_DEBUG("Got anticipated extension"); - /* - * Check for (XCT_BOTH or XCT_UNKNOWN_BO) - * By using a mask. Only record a pure - * tags. - */ - if(tcv & XCT_CLOSING) { - /* Found without body */ - ctx->phase = 3; /* Terminating */ - } else { - ctx->left = 1; - ctx->phase = 4; /* Skip ...'s */ - } - XER_ADVANCE(ch_size); - continue; - } - - /* Fall through */ - default: - break; - } - - ASN_DEBUG("Unexpected XML tag [%c%c%c%c] in CHOICE [%s]" - " (ph=%d, tag=%s)", - ch_size>0?((const uint8_t *)buf_ptr)[0]:'?', - ch_size>1?((const uint8_t *)buf_ptr)[1]:'?', - ch_size>2?((const uint8_t *)buf_ptr)[2]:'?', - ch_size>3?((const uint8_t *)buf_ptr)[3]:'?', - td->name, ctx->phase, xml_tag); - break; - } - - ctx->phase = 5; /* Phase out, just in case */ - RETURN(RC_FAIL); -} - - -asn_enc_rval_t -CHOICE_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, - void *app_key) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - unsigned present = 0; - - if(!sptr) - ASN__ENCODE_FAILED; - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); - - if(present == 0 || present > td->elements_count) { - ASN__ENCODE_FAILED; - } else { - asn_enc_rval_t tmper = {0,0,0}; - asn_TYPE_member_t *elm = &td->elements[present-1]; - const void *memb_ptr = NULL; - const char *mname = elm->name; - unsigned int mlen = strlen(mname); - - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - er.encoded = 0; - - if(!(flags & XER_F_CANONICAL)) ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - - tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, - ilevel + 1, flags, cb, app_key); - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - - ASN__CALLBACK3("", 1); - } - - if(!(flags & XER_F_CANONICAL)) ASN__TEXT_INDENT(1, ilevel - 1); - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -asn_dec_rval_t -CHOICE_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_dec_rval_t rv; - const asn_per_constraint_t *ct; - asn_TYPE_member_t *elm; /* CHOICE's element */ - void *memb_ptr; - void **memb_ptr2; - void *st = *sptr; - int value; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) ct = &td->encoding_constraints.per_constraints->value; - else ct = 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - value = per_get_few_bits(pd, 1); - if(value < 0) ASN__DECODE_STARVED; - if(value) ct = 0; /* Not restricted */ - } - - if(ct && ct->range_bits >= 0) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - ASN_DEBUG("CHOICE %s got index %d in range %d", - td->name, value, ct->range_bits); - if(value > ct->upper_bound) - ASN__DECODE_FAILED; - } else { - if(specs->ext_start == -1) - ASN__DECODE_FAILED; - value = uper_get_nsnnwn(pd); - if(value < 0) ASN__DECODE_STARVED; - value += specs->ext_start; - if((unsigned)value >= td->elements_count) - ASN__DECODE_FAILED; - } - - /* Adjust if canonical order is different from natural order */ - if(specs->from_canonical_order) { - ASN_DEBUG("CHOICE presence from wire %d", value); - value = specs->from_canonical_order[value]; - ASN_DEBUG("CHOICE presence index effective %d", value); - } - - /* Set presence to be able to free it later */ - _set_present_idx(st, specs->pres_offset, specs->pres_size, value + 1); - - elm = &td->elements[value]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - ASN_DEBUG("Discovered CHOICE %s encodes %s", td->name, elm->name); - - if(ct && ct->range_bits >= 0) { - rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } else { - rv = uper_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } - - if(rv.code != RC_OK) - ASN_DEBUG("Failed to decode %s in %s (CHOICE) %d", - elm->name, td->name, rv.code); - return rv; -} - -asn_enc_rval_t -CHOICE_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - asn_TYPE_member_t *elm; /* CHOICE's element */ - const asn_per_constraint_t *ct; - const void *memb_ptr; - unsigned present; - int present_enc; - - if(!sptr) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %s as CHOICE", td->name); - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ct = 0; - - present = _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); - - /* - * If the structure was not initialized properly, it cannot be encoded: - * can't deduce what to encode in the choice type. - */ - if(present == 0 || present > td->elements_count) - ASN__ENCODE_FAILED; - else - present--; - - ASN_DEBUG("Encoding %s CHOICE element %d", td->name, present); - - /* Adjust if canonical order is different from natural order */ - if(specs->to_canonical_order) - present_enc = specs->to_canonical_order[present]; - else - present_enc = present; - - if(ct && ct->range_bits >= 0) { - if(present_enc < ct->lower_bound - || present_enc > ct->upper_bound) { - if(ct->flags & APC_EXTENSIBLE) { - ASN_DEBUG( - "CHOICE member %d (enc %d) is an extension (%ld..%ld)", - present, present_enc, ct->lower_bound, ct->upper_bound); - if(per_put_few_bits(po, 1, 1)) - ASN__ENCODE_FAILED; - } else { - ASN__ENCODE_FAILED; - } - ct = 0; - } - } - if(ct && ct->flags & APC_EXTENSIBLE) { - ASN_DEBUG("CHOICE member %d (enc %d) is not an extension (%ld..%ld)", - present, present_enc, ct->lower_bound, ct->upper_bound); - if(per_put_few_bits(po, 0, 1)) - ASN__ENCODE_FAILED; - } - - - elm = &td->elements[present]; - ASN_DEBUG("CHOICE member \"%s\" %d (as %d)", elm->name, present, - present_enc); - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const char *)sptr + elm->memb_offset; - } - - if(ct && ct->range_bits >= 0) { - if(per_put_few_bits(po, present_enc, ct->range_bits)) - ASN__ENCODE_FAILED; - - return elm->type->op->uper_encoder( - elm->type, elm->encoding_constraints.per_constraints, memb_ptr, po); - } else { - asn_enc_rval_t rval = {0,0,0}; - if(specs->ext_start == -1) ASN__ENCODE_FAILED; - if(uper_put_nsnnwn(po, present_enc - specs->ext_start)) - ASN__ENCODE_FAILED; - if(uper_open_type_put(elm->type, - elm->encoding_constraints.per_constraints, - memb_ptr, po)) - ASN__ENCODE_FAILED; - rval.encoded = 0; - ASN__ENCODED_OK(rval); - } -} - -asn_dec_rval_t -CHOICE_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - asn_dec_rval_t rv; - const asn_per_constraint_t *ct; - const asn_per_constraint_t *ext_ct = NULL; - asn_TYPE_member_t *elm; /* CHOICE's element */ - void *memb_ptr; - void **memb_ptr2; - void *st = *sptr; - int value; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ct = 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - value = per_get_few_bits(pd, 1); - if(value < 0) ASN__DECODE_STARVED; - if(value) { - ext_ct = ct; - ct = 0; /* Not restricted */ - } - } - - - if(ct && ct->range_bits >= 0) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - ASN_DEBUG("CHOICE %s got index %d in range %d", - td->name, value, ct->range_bits); - if(value > ct->upper_bound) - ASN__DECODE_FAILED; - } else { - if(specs->ext_start == -1) - ASN__DECODE_FAILED; - value = aper_get_nsnnwn(pd, ext_ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - value += specs->ext_start; - if((unsigned)value >= td->elements_count) - ASN__DECODE_FAILED; - } - - /* Adjust if canonical order is different from natural order */ - if(specs->from_canonical_order) - value = specs->from_canonical_order[value]; - - /* Set presence to be able to free it later */ - _set_present_idx(st, specs->pres_offset, specs->pres_size, value + 1); - - elm = &td->elements[value]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - ASN_DEBUG("Discovered CHOICE %s encodes %s", td->name, elm->name); - - if(ct && ct->range_bits >= 0) { - rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } else { - rv = aper_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } - - if(rv.code != RC_OK) - ASN_DEBUG("Failed to decode %s in %s (CHOICE) %d", - elm->name, td->name, rv.code); - return rv; -} - -asn_enc_rval_t -CHOICE_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm; /* CHOICE's element */ - const asn_per_constraint_t *ct = NULL; - const asn_per_constraint_t *ext_ct = NULL; - const void *memb_ptr; - unsigned present; - int present_enc; - - if(!sptr) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %s as CHOICE using ALIGNED PER", td->name); - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ct = NULL; - - present = _fetch_present_idx(sptr, - specs->pres_offset, specs->pres_size); - - /* - * If the structure was not initialized properly, it cannot be encoded: - * can't deduce what to encode in the choice type. - */ - if(present <= 0 || (unsigned)present > td->elements_count) - ASN__ENCODE_FAILED; - else - present--; - - /* Adjust if canonical order is different from natural order */ - if(specs->to_canonical_order) - present_enc = specs->to_canonical_order[present]; - else - present_enc = present; - - ASN_DEBUG("Encoding %s CHOICE element %d", td->name, present); - - if(ct && (ct->range_bits >= 0)) { - // Value is not within the range of the primary values ? - if(present < ct->lower_bound || present > ct->upper_bound) { - if(ct->flags & APC_EXTENSIBLE) { - ASN_DEBUG("CHOICE member %d (enc %d) is an extension (%ld..%ld)", - present, present_enc, ct->lower_bound, ct->upper_bound); - // X691/23.5 Extension marker = 1 - if(per_put_few_bits(po, 1, 1)) { - ASN__ENCODE_FAILED; - } - } else { - ASN__ENCODE_FAILED; - } - // no more need of constraint. - ext_ct = ct; - ct = NULL; - } - } - - if(ct && (ct->flags & APC_EXTENSIBLE)) { - ASN_DEBUG("CHOICE member %d (enc %d) is not an extension (%ld..%ld)", - present, present, ct->lower_bound, ct->upper_bound); - // X691.23.5 Extension marker = 0 - if(per_put_few_bits(po, 0, 1)) { - ASN__ENCODE_FAILED; - } - } - - elm = &td->elements[present]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr = *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const char *)sptr + elm->memb_offset; - } - - if(ct && (ct->range_bits >= 0)) { - // By construction (ct != 0), the alternative value is a non extended one. - // X691/23.7 X691/23.6 alternative value encoded as a range_bits bits value. - if(per_put_few_bits(po, present_enc, ct->range_bits)) - ASN__ENCODE_FAILED; - - return elm->type->op->aper_encoder(elm->type, elm->encoding_constraints.per_constraints, - memb_ptr, po); - } else { - asn_enc_rval_t rval = {0,0,0}; - if(specs->ext_start == -1) - ASN__ENCODE_FAILED; - // X691/23.8 normally encoded as a small non negative whole number - - if(ext_ct && aper_put_nsnnwn(po, ext_ct->range_bits, present_enc - specs->ext_start)) - ASN__ENCODE_FAILED; - if(aper_open_type_put(elm->type, elm->encoding_constraints.per_constraints, - memb_ptr, po)) - ASN__ENCODE_FAILED; - rval.encoded = 0; - ASN__ENCODED_OK(rval); - } -} - -int -CHOICE_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); - - /* - * Print that element. - */ - if(present > 0 && present <= td->elements_count) { - asn_TYPE_member_t *elm = &td->elements[present-1]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) return (cb("", 8, app_key) < 0) ? -1 : 0; - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - /* Print member's name and stuff */ - if(0) { - if(cb(elm->name, strlen(elm->name), app_key) < 0 - || cb(": ", 2, app_key) < 0) - return -1; - } - - return elm->type->op->print_struct(elm->type, memb_ptr, ilevel, - cb, app_key); - } else { - return (cb("", 8, app_key) < 0) ? -1 : 0; - } -} - -void -CHOICE_free(const asn_TYPE_descriptor_t *td, void *ptr, - enum asn_struct_free_method method) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - if(!td || !ptr) - return; - - ASN_DEBUG("Freeing %s as CHOICE", td->name); - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(ptr, specs->pres_offset, specs->pres_size); - - /* - * Free that element. - */ - if(present > 0 && present <= td->elements_count) { - asn_TYPE_member_t *elm = &td->elements[present-1]; - void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(void **)((char *)ptr + elm->memb_offset); - if(memb_ptr) - ASN_STRUCT_FREE(*elm->type, memb_ptr); - } else { - memb_ptr = (void *)((char *)ptr + elm->memb_offset); - ASN_STRUCT_FREE_CONTENTS_ONLY(*elm->type, memb_ptr); - } - } - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(ptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(ptr, 0, specs->struct_size); - break; - } -} - - -/* - * The following functions functions offer protection against -fshort-enums, - * compatible with little- and big-endian machines. - * If assertion is triggered, either disable -fshort-enums, or add an entry - * here with the ->pres_size of your target stracture. - * Unless the target structure is packed, the ".present" member - * is guaranteed to be aligned properly. ASN.1 compiler itself does not - * produce packed code. - */ -static unsigned -_fetch_present_idx(const void *struct_ptr, unsigned pres_offset, - unsigned pres_size) { - const void *present_ptr; - unsigned present; - - present_ptr = ((const char *)struct_ptr) + pres_offset; - - switch(pres_size) { - case sizeof(int): present = *(const unsigned int *)present_ptr; break; - case sizeof(short): present = *(const unsigned short *)present_ptr; break; - case sizeof(char): present = *(const unsigned char *)present_ptr; break; - default: - /* ANSI C mandates enum to be equivalent to integer */ - assert(pres_size != sizeof(int)); - return 0; /* If not aborted, pass back safe value */ - } - - return present; -} - -static void -_set_present_idx(void *struct_ptr, unsigned pres_offset, unsigned pres_size, - unsigned present) { - void *present_ptr; - present_ptr = ((char *)struct_ptr) + pres_offset; - - switch(pres_size) { - case sizeof(int): *(unsigned int *)present_ptr = present; break; - case sizeof(short): *(unsigned short *)present_ptr = present; break; - case sizeof(char): *(unsigned char *)present_ptr = present; break; - default: - /* ANSI C mandates enum to be equivalent to integer */ - assert(pres_size != sizeof(int)); - } -} - -static const void * -_get_member_ptr(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_TYPE_member_t **elm_ptr, unsigned *present_out) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - if(!sptr) { - *elm_ptr = NULL; - *present_out = 0; - return NULL; - } - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); - *present_out = present; - - /* - * The presence index is intentionally 1-based to avoid - * treating zeroed structure as a valid one. - */ - if(present > 0 && present <= td->elements_count) { - asn_TYPE_member_t *const elm = &td->elements[present - 1]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - *elm_ptr = elm; - return memb_ptr; - } else { - *elm_ptr = NULL; - return NULL; - } - -} - -int -CHOICE_compare(const asn_TYPE_descriptor_t *td, const void *aptr, const void *bptr) { - asn_TYPE_member_t *aelm; - asn_TYPE_member_t *belm; - unsigned apresent = 0; - unsigned bpresent = 0; - const void *amember = _get_member_ptr(td, aptr, &aelm, &apresent); - const void *bmember = _get_member_ptr(td, bptr, &belm, &bpresent); - - if(amember && bmember) { - if(apresent == bpresent) { - assert(aelm == belm); - return aelm->type->op->compare_struct(aelm->type, amember, bmember); - } else if(apresent < bpresent) { - return -1; - } else { - return 1; - } - } else if(!amember) { - return -1; - } else { - return 1; - } -} - -/* - * Return the 1-based choice variant presence index. - * Returns 0 in case of error. - */ -unsigned -CHOICE_variant_get_presence(const asn_TYPE_descriptor_t *td, const void *sptr) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - return _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); -} - -/* - * Sets or resets the 1-based choice variant presence index. - * In case a previous index is not zero, the currently selected structure - * member is freed and zeroed-out first. - * Returns 0 on success and -1 on error. - */ -int -CHOICE_variant_set_presence(const asn_TYPE_descriptor_t *td, void *sptr, - unsigned present) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - unsigned old_present; - - if(!sptr) { - return -1; - } - - if(present > td->elements_count) - return -1; - - old_present = - _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); - if(present == old_present) - return 0; - - if(old_present != 0) { - assert(old_present <= td->elements_count); - ASN_STRUCT_RESET(*td, sptr); - } - - _set_present_idx(sptr, specs->pres_offset, specs->pres_size, present); - - return 0; -} - - -asn_random_fill_result_t -CHOICE_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constr, - size_t max_length) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_random_fill_result_t res; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - const asn_TYPE_member_t *elm; - unsigned present; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *st = *sptr; - - if(max_length == 0) return result_skipped; - - (void)constr; - - if(st == NULL) { - st = CALLOC(1, specs->struct_size); - if(st == NULL) { - return result_failed; - } - } - - present = asn_random_between(1, td->elements_count); - elm = &td->elements[present - 1]; - - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - res = elm->type->op->random_fill(elm->type, memb_ptr2, - &elm->encoding_constraints, max_length); - _set_present_idx(st, specs->pres_offset, specs->pres_size, present); - if(res.code == ARFILL_OK) { - *sptr = st; - } else { - if(st == *sptr) { - ASN_STRUCT_RESET(*td, st); - } else { - ASN_STRUCT_FREE(*td, st); - } - } - - return res; -} - - -asn_TYPE_operation_t asn_OP_CHOICE = { - CHOICE_free, - CHOICE_print, - CHOICE_compare, - CHOICE_decode_ber, - CHOICE_encode_der, - CHOICE_decode_xer, - CHOICE_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - CHOICE_decode_oer, - CHOICE_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - CHOICE_decode_uper, - CHOICE_encode_uper, - CHOICE_decode_aper, - CHOICE_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - CHOICE_random_fill, - CHOICE_outmost_tag -}; diff --git a/e2sim/src/ASN1c/constr_CHOICE.h b/e2sim/src/ASN1c/constr_CHOICE.h deleted file mode 100644 index a1999ed..0000000 --- a/e2sim/src/ASN1c/constr_CHOICE.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _CONSTR_CHOICE_H_ -#define _CONSTR_CHOICE_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct asn_CHOICE_specifics_s { - /* - * Target structure description. - */ - unsigned struct_size; /* Size of the target structure. */ - unsigned ctx_offset; /* Offset of the asn_codec_ctx_t member */ - unsigned pres_offset; /* Identifier of the present member */ - unsigned pres_size; /* Size of the identifier (enum) */ - - /* - * Tags to members mapping table. - */ - const asn_TYPE_tag2member_t *tag2el; - unsigned tag2el_count; - - /* Canonical ordering of CHOICE elements, for PER */ - const unsigned *to_canonical_order; - const unsigned *from_canonical_order; - - /* - * Extensions-related stuff. - */ - signed ext_start; /* First member of extensions, or -1 */ -} asn_CHOICE_specifics_t; - -/* - * A set specialized functions dealing with the CHOICE type. - */ -asn_struct_free_f CHOICE_free; -asn_struct_print_f CHOICE_print; -asn_struct_compare_f CHOICE_compare; -asn_constr_check_f CHOICE_constraint; -ber_type_decoder_f CHOICE_decode_ber; -der_type_encoder_f CHOICE_encode_der; -xer_type_decoder_f CHOICE_decode_xer; -xer_type_encoder_f CHOICE_encode_xer; -oer_type_decoder_f CHOICE_decode_oer; -oer_type_encoder_f CHOICE_encode_oer; -per_type_decoder_f CHOICE_decode_uper; -per_type_encoder_f CHOICE_encode_uper; -per_type_decoder_f CHOICE_decode_aper; -per_type_encoder_f CHOICE_encode_aper; -asn_outmost_tag_f CHOICE_outmost_tag; -asn_random_fill_f CHOICE_random_fill; -extern asn_TYPE_operation_t asn_OP_CHOICE; - -/* - * Return the 1-based choice variant presence index. - * Returns 0 in case of error. - */ -unsigned CHOICE_variant_get_presence(const asn_TYPE_descriptor_t *td, - const void *structure_ptr); - -/* - * Sets or resets the 1-based choice variant presence index. - * In case a previous index is not zero, the currently selected structure - * member is freed and zeroed-out first. - * Returns 0 on success and -1 on error. - */ -int CHOICE_variant_set_presence(const asn_TYPE_descriptor_t *td, - void *structure_ptr, unsigned present); - -#ifdef __cplusplus -} -#endif - -#endif /* _CONSTR_CHOICE_H_ */ diff --git a/e2sim/src/ASN1c/constr_SEQUENCE.c b/e2sim/src/ASN1c/constr_SEQUENCE.c deleted file mode 100644 index 43dcac7..0000000 --- a/e2sim/src/ASN1c/constr_SEQUENCE.c +++ /dev/null @@ -1,2059 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include -#include - -/* - * Number of bytes left for this structure. - * (ctx->left) indicates the number of bytes _transferred_ for the structure. - * (size) contains the number of bytes in the buffer passed. - */ -#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) - -/* - * If the subprocessor function returns with an indication that it wants - * more data, it may well be a fatal decoding problem, because the - * size is constrained by the 's L, even if the buffer size allows - * reading more data. - * For example, consider the buffer containing the following TLVs: - * ... - * The TLV length clearly indicates that one byte is expected in V, but - * if the V processor returns with "want more data" even if the buffer - * contains way more data than the V processor have seen. - */ -#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) - -/* - * This macro "eats" the part of the buffer which is definitely "consumed", - * i.e. was correctly converted into local representation or rightfully skipped. - */ -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - if(ctx->left >= 0) \ - ctx->left -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#undef PHASE_OUT -#define NEXT_PHASE(ctx) do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) -#define PHASE_OUT(ctx) do { ctx->phase = 10; } while(0) - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself;\ - return rval; \ - } while(0) - -/* - * Check whether we are inside the extensions group. - */ -#define IN_EXTENSION_GROUP(specs, memb_idx) \ - ((specs)->first_extension >= 0 \ - && (unsigned)(specs)->first_extension <= (memb_idx)) - -/* - * Tags are canonically sorted in the tag2element map. - */ -static int -_t2e_cmp(const void *ap, const void *bp) { - const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap; - const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp; - - int a_class = BER_TAG_CLASS(a->el_tag); - int b_class = BER_TAG_CLASS(b->el_tag); - - if(a_class == b_class) { - ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag); - ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag); - - if(a_value == b_value) { - if(a->el_no > b->el_no) - return 1; - /* - * Important: we do not check - * for a->el_no <= b->el_no! - */ - return 0; - } else if(a_value < b_value) - return -1; - else - return 1; - } else if(a_class < b_class) { - return -1; - } else { - return 1; - } -} - - -/* - * The decoder of the SEQUENCE type. - */ -asn_dec_rval_t -SEQUENCE_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const void *ptr, size_t size, int tag_mode) { - /* - * Bring closer parts of structure description. - */ - const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; - const asn_TYPE_member_t *elements = td->elements; - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - ber_tlv_tag_t tlv_tag; /* T from TLV */ - asn_dec_rval_t rval; /* Return code from subparsers */ - - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - size_t edx; /* SEQUENCE element's index */ - - ASN_DEBUG("Decoding %s as SEQUENCE", td->name); - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Start to parse where left previously - */ - switch(ctx->phase) { - case 0: - /* - * PHASE 0. - * Check that the set of tags associated with given structure - * perfectly fits our expectations. - */ - - rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, - tag_mode, 1, &ctx->left, 0); - if(rval.code != RC_OK) { - ASN_DEBUG("%s tagging check failed: %d", - td->name, rval.code); - return rval; - } - - if(ctx->left >= 0) - ctx->left += rval.consumed; /* ?Substracted below! */ - ADVANCE(rval.consumed); - - NEXT_PHASE(ctx); - - ASN_DEBUG("Structure consumes %ld bytes, buffer %ld", - (long)ctx->left, (long)size); - - /* Fall through */ - case 1: - /* - * PHASE 1. - * From the place where we've left it previously, - * try to decode the next member from the list of - * this structure's elements. - * (ctx->step) stores the member being processed - * between invocations and the microphase {0,1} of parsing - * that member: - * step = ( * 2 + ). - */ - for(edx = ((size_t)ctx->step >> 1); edx < td->elements_count; - edx++, ctx->step = (ctx->step & ~1) + 2) { - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - ssize_t tag_len; /* Length of TLV's T */ - size_t opt_edx_end; /* Next non-optional element */ - size_t n; - int use_bsearch; - - if(ctx->step & 1) - goto microphase2; - - /* - * MICROPHASE 1: Synchronize decoding. - */ - ASN_DEBUG("In %s SEQUENCE left %d, edx=%" ASN_PRI_SIZE " flags=%d" - " opt=%d ec=%d", - td->name, (int)ctx->left, edx, - elements[edx].flags, elements[edx].optional, - td->elements_count); - - if(ctx->left == 0 /* No more stuff is expected */ - && ( - /* Explicit OPTIONAL specification reaches the end */ - (edx + elements[edx].optional == td->elements_count) || - /* All extensions are optional */ - IN_EXTENSION_GROUP(specs, edx))) { - ASN_DEBUG("End of SEQUENCE %s", td->name); - /* - * Found the legitimate end of the structure. - */ - PHASE_OUT(ctx); - RETURN(RC_OK); - } - - /* - * Fetch the T from TLV. - */ - tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); - ASN_DEBUG("Current tag in %s SEQUENCE for element %" ASN_PRI_SIZE " " - "(%s) is %s encoded in %d bytes, of frame %ld", - td->name, edx, elements[edx].name, - ber_tlv_tag_string(tlv_tag), (int)tag_len, (long)LEFT); - switch(tag_len) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - if(ctx->left < 0 && ((const uint8_t *)ptr)[0] == 0) { - if(LEFT < 2) { - if(SIZE_VIOLATION) { - RETURN(RC_FAIL); - } else { - RETURN(RC_WMORE); - } - } else if(((const uint8_t *)ptr)[1] == 0) { - ASN_DEBUG("edx = %" ASN_PRI_SIZE ", opt = %d, ec=%d", edx, - elements[edx].optional, td->elements_count); - if((edx + elements[edx].optional == td->elements_count) - || IN_EXTENSION_GROUP(specs, edx)) { - /* - * Yeah, baby! Found the terminator - * of the indefinite length structure. - */ - /* - * Proceed to the canonical - * finalization function. - * No advancing is necessary. - */ - goto phase3; - } - } - } - - /* - * Find the next available type with this tag. - */ - use_bsearch = 0; - opt_edx_end = edx + elements[edx].optional + 1; - if(opt_edx_end > td->elements_count) - opt_edx_end = td->elements_count; /* Cap */ - else if(opt_edx_end - edx > 8) { - /* Limit the scope of linear search... */ - opt_edx_end = edx + 8; - use_bsearch = 1; - /* ... and resort to bsearch() */ - } - for(n = edx; n < opt_edx_end; n++) { - if(BER_TAGS_EQUAL(tlv_tag, elements[n].tag)) { - /* - * Found element corresponding to the tag - * being looked at. - * Reposition over the right element. - */ - edx = n; - ctx->step = 1 + 2 * edx; /* Remember! */ - goto microphase2; - } else if(elements[n].flags & ATF_ANY_TYPE) { - /* - * This is the ANY type, which may bear - * any flag whatsoever. - */ - edx = n; - ctx->step = 1 + 2 * edx; /* Remember! */ - goto microphase2; - } else if(elements[n].tag == (ber_tlv_tag_t)-1) { - use_bsearch = 1; - break; - } - } - if(use_bsearch) { - /* - * Resort to a binary search over - * sorted array of tags. - */ - const asn_TYPE_tag2member_t *t2m; - asn_TYPE_tag2member_t key = {0, 0, 0, 0}; - key.el_tag = tlv_tag; - key.el_no = edx; - t2m = (const asn_TYPE_tag2member_t *)bsearch(&key, - specs->tag2el, specs->tag2el_count, - sizeof(specs->tag2el[0]), _t2e_cmp); - if(t2m) { - const asn_TYPE_tag2member_t *best = 0; - const asn_TYPE_tag2member_t *t2m_f, *t2m_l; - size_t edx_max = edx + elements[edx].optional; - /* - * Rewind to the first element with that tag, - * `cause bsearch() does not guarantee order. - */ - t2m_f = t2m + t2m->toff_first; - t2m_l = t2m + t2m->toff_last; - for(t2m = t2m_f; t2m <= t2m_l; t2m++) { - if(t2m->el_no > edx_max) break; - if(t2m->el_no < edx) continue; - best = t2m; - } - if(best) { - edx = best->el_no; - ctx->step = 1 + 2 * edx; - goto microphase2; - } - } - n = opt_edx_end; - } - if(n == opt_edx_end) { - /* - * If tag is unknown, it may be either - * an unknown (thus, incorrect) tag, - * or an extension (...), - * or an end of the indefinite-length structure. - */ - if(!IN_EXTENSION_GROUP(specs, - edx + elements[edx].optional)) { - ASN_DEBUG("Unexpected tag %s (at %" ASN_PRI_SIZE ")", - ber_tlv_tag_string(tlv_tag), edx); - ASN_DEBUG("Expected tag %s (%s)%s", - ber_tlv_tag_string(elements[edx].tag), - elements[edx].name, - elements[edx].optional - ?" or alternatives":""); - RETURN(RC_FAIL); - } else { - /* Skip this tag */ - ssize_t skip; - edx += elements[edx].optional; - - ASN_DEBUG("Skipping unexpected %s (at %" ASN_PRI_SIZE ")", - ber_tlv_tag_string(tlv_tag), edx); - skip = ber_skip_length(opt_codec_ctx, - BER_TLV_CONSTRUCTED(ptr), - (const char *)ptr + tag_len, - LEFT - tag_len); - ASN_DEBUG("Skip length %d in %s", - (int)skip, td->name); - switch(skip) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - ADVANCE(skip + tag_len); - ctx->step -= 2; - edx--; - continue; /* Try again with the next tag */ - } - } - - /* - * MICROPHASE 2: Invoke the member-specific decoder. - */ - ctx->step |= 1; /* Confirm entering next microphase */ - microphase2: - ASN_DEBUG("Inside SEQUENCE %s MF2", td->name); - - /* - * Compute the position of the member inside a structure, - * and also a type of containment (it may be contained - * as pointer or using inline inclusion). - */ - if(elements[edx].flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elements[edx].memb_offset); - } else { - /* - * A pointer to a pointer - * holding the start of the structure - */ - memb_ptr = (char *)st + elements[edx].memb_offset; - memb_ptr2 = &memb_ptr; - } - /* - * Invoke the member fetch routine according to member's type - */ - if(elements[edx].flags & ATF_OPEN_TYPE) { - rval = OPEN_TYPE_ber_get(opt_codec_ctx, td, st, &elements[edx], ptr, LEFT); - } else { - rval = elements[edx].type->op->ber_decoder(opt_codec_ctx, - elements[edx].type, - memb_ptr2, ptr, LEFT, - elements[edx].tag_mode); - } - ASN_DEBUG("In %s SEQUENCE decoded %" ASN_PRI_SIZE " %s of %d " - "in %d bytes rval.code %d, size=%d", - td->name, edx, elements[edx].type->name, - (int)LEFT, (int)rval.consumed, rval.code, (int)size); - switch(rval.code) { - case RC_OK: - break; - case RC_WMORE: /* More data expected */ - if(!SIZE_VIOLATION) { - ADVANCE(rval.consumed); - RETURN(RC_WMORE); - } - ASN_DEBUG("Size violation (c->l=%ld <= s=%ld)", - (long)ctx->left, (long)size); - /* Fall through */ - case RC_FAIL: /* Fatal error */ - RETURN(RC_FAIL); - } /* switch(rval) */ - - ADVANCE(rval.consumed); - } /* for(all structure members) */ - - phase3: - ctx->phase = 3; - /* Fall through */ - case 3: /* 00 and other tags expected */ - case 4: /* only 00's expected */ - - ASN_DEBUG("SEQUENCE %s Leftover: %ld, size = %ld", - td->name, (long)ctx->left, (long)size); - - /* - * Skip everything until the end of the SEQUENCE. - */ - while(ctx->left) { - ssize_t tl, ll; - - tl = ber_fetch_tag(ptr, LEFT, &tlv_tag); - switch(tl) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - /* - * If expected <0><0>... - */ - if(ctx->left < 0 - && ((const uint8_t *)ptr)[0] == 0) { - if(LEFT < 2) { - if(SIZE_VIOLATION) - RETURN(RC_FAIL); - else - RETURN(RC_WMORE); - } else if(((const uint8_t *)ptr)[1] == 0) { - /* - * Correctly finished with <0><0>. - */ - ADVANCE(2); - ctx->left++; - ctx->phase = 4; - continue; - } - } - - if(!IN_EXTENSION_GROUP(specs, td->elements_count) - || ctx->phase == 4) { - ASN_DEBUG("Unexpected continuation " - "of a non-extensible type " - "%s (SEQUENCE): %s", - td->name, - ber_tlv_tag_string(tlv_tag)); - RETURN(RC_FAIL); - } - - ll = ber_skip_length(opt_codec_ctx, - BER_TLV_CONSTRUCTED(ptr), - (const char *)ptr + tl, LEFT - tl); - switch(ll) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - ADVANCE(tl + ll); - } - - PHASE_OUT(ctx); - } - - RETURN(RC_OK); -} - - -/* - * The DER encoder of the SEQUENCE type. - */ -asn_enc_rval_t -SEQUENCE_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - size_t computed_size = 0; - asn_enc_rval_t erval = {0,0,0}; - ssize_t ret; - size_t edx; - - ASN_DEBUG("%s %s as SEQUENCE", - cb?"Encoding":"Estimating", td->name); - - /* - * Gather the length of the underlying members sequence. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - if(!*memb_ptr2) { - ASN_DEBUG("Element %s %" ASN_PRI_SIZE " not present", - elm->name, edx); - if(elm->optional) - continue; - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - /* Eliminate default values */ - if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) - continue; - - erval = elm->type->op->der_encoder(elm->type, *memb_ptr2, - elm->tag_mode, elm->tag, - 0, 0); - if(erval.encoded == -1) - return erval; - computed_size += erval.encoded; - ASN_DEBUG("Member %" ASN_PRI_SIZE " %s estimated %ld bytes", - edx, elm->name, (long)erval.encoded); - } - - /* - * Encode the TLV for the sequence itself. - */ - ret = der_write_tags(td, computed_size, tag_mode, 1, tag, cb, app_key); - ASN_DEBUG("Wrote tags: %ld (+%ld)", (long)ret, (long)computed_size); - if(ret == -1) - ASN__ENCODE_FAILED; - erval.encoded = computed_size + ret; - - if(!cb) ASN__ENCODED_OK(erval); - - /* - * Encode all members. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - asn_enc_rval_t tmperval = {0,0,0}; - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - if(!*memb_ptr2) continue; - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - /* Eliminate default values */ - if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) - continue; - - tmperval = elm->type->op->der_encoder(elm->type, *memb_ptr2, - elm->tag_mode, elm->tag, cb, app_key); - if(tmperval.encoded == -1) - return tmperval; - computed_size -= tmperval.encoded; - ASN_DEBUG("Member %" ASN_PRI_SIZE " %s of SEQUENCE %s encoded in %ld bytes", - edx, elm->name, td->name, (long)tmperval.encoded); - } - - if(computed_size != 0) - /* - * Encoded size is not equal to the computed size. - */ - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(erval); -} - - -#undef XER_ADVANCE -#define XER_ADVANCE(num_bytes) \ - do { \ - size_t num = (num_bytes); \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Decode the XER (XML) data. - */ -asn_dec_rval_t -SEQUENCE_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const char *opt_mname, const void *ptr, size_t size) { - /* - * Bring closer parts of structure description. - */ - const asn_SEQUENCE_specifics_t *specs - = (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_TYPE_member_t *elements = td->elements; - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - - /* - * ... and parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - asn_dec_rval_t rval; /* Return value from a decoder */ - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - size_t edx; /* Element index */ - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) RETURN(RC_FAIL); - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - - /* - * Phases of XER/XML processing: - * Phase 0: Check that the opening tag matches our expectations. - * Phase 1: Processing body and reacting on closing tag. - * Phase 2: Processing inner type. - * Phase 3: Skipping unknown extensions. - * Phase 4: PHASED OUT - */ - for(edx = ctx->step; ctx->phase <= 3;) { - pxer_chunk_type_e ch_type; /* XER chunk type */ - ssize_t ch_size; /* Chunk size */ - xer_check_tag_e tcv; /* Tag check value */ - asn_TYPE_member_t *elm; - - /* - * Go inside the inner member of a sequence. - */ - if(ctx->phase == 2) { - asn_dec_rval_t tmprval; - void *memb_ptr_dontuse; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - - elm = &td->elements[edx]; - - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr_dontuse = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr_dontuse; /* Only use of memb_ptr_dontuse */ - } - - if(elm->flags & ATF_OPEN_TYPE) { - tmprval = OPEN_TYPE_xer_get(opt_codec_ctx, td, st, elm, ptr, size); - } else { - /* Invoke the inner type decoder, m.b. multiple times */ - tmprval = elm->type->op->xer_decoder(opt_codec_ctx, - elm->type, memb_ptr2, elm->name, - ptr, size); - } - XER_ADVANCE(tmprval.consumed); - if(tmprval.code != RC_OK) - RETURN(tmprval.code); - ctx->phase = 1; /* Back to body processing */ - ctx->step = ++edx; - ASN_DEBUG("XER/SEQUENCE phase => %d, step => %d", - ctx->phase, ctx->step); - /* Fall through */ - } - - /* - * Get the next part of the XML stream. - */ - ch_size = xer_next_token(&ctx->context, ptr, size, - &ch_type); - if(ch_size == -1) { - RETURN(RC_FAIL); - } else { - switch(ch_type) { - case PXER_WMORE: - RETURN(RC_WMORE); - case PXER_COMMENT: /* Got XML comment */ - case PXER_TEXT: /* Ignore free-standing text */ - XER_ADVANCE(ch_size); /* Skip silently */ - continue; - case PXER_TAG: - break; /* Check the rest down there */ - } - } - - tcv = xer_check_tag(ptr, ch_size, xml_tag); - ASN_DEBUG("XER/SEQUENCE: tcv = %d, ph=%d [%s]", - tcv, ctx->phase, xml_tag); - - /* Skip the extensions section */ - if(ctx->phase == 3) { - switch(xer_skip_unknown(tcv, &ctx->left)) { - case -1: - ctx->phase = 4; - RETURN(RC_FAIL); - case 0: - XER_ADVANCE(ch_size); - continue; - case 1: - XER_ADVANCE(ch_size); - ctx->phase = 1; - continue; - case 2: - ctx->phase = 1; - break; - } - } - - switch(tcv) { - case XCT_CLOSING: - if(ctx->phase == 0) break; - ctx->phase = 0; - /* Fall through */ - case XCT_BOTH: - if(ctx->phase == 0) { - if(edx >= td->elements_count || - /* Explicit OPTIONAL specs reaches the end */ - (edx + elements[edx].optional == td->elements_count) || - /* All extensions are optional */ - IN_EXTENSION_GROUP(specs, edx)) { - XER_ADVANCE(ch_size); - ctx->phase = 4; /* Phase out */ - RETURN(RC_OK); - } else { - ASN_DEBUG("Premature end of XER SEQUENCE"); - RETURN(RC_FAIL); - } - } - /* Fall through */ - case XCT_OPENING: - if(ctx->phase == 0) { - XER_ADVANCE(ch_size); - ctx->phase = 1; /* Processing body phase */ - continue; - } - /* Fall through */ - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - - ASN_DEBUG("XER/SEQUENCE: tcv=%d, ph=%d, edx=%" ASN_PRI_SIZE "", - tcv, ctx->phase, edx); - if(ctx->phase != 1) { - break; /* Really unexpected */ - } - - if(edx < td->elements_count) { - /* - * Search which member corresponds to this tag. - */ - size_t n; - size_t edx_end = edx + elements[edx].optional + 1; - if(edx_end > td->elements_count) - edx_end = td->elements_count; - for(n = edx; n < edx_end; n++) { - elm = &td->elements[n]; - tcv = xer_check_tag(ptr, ch_size, elm->name); - switch(tcv) { - case XCT_BOTH: - case XCT_OPENING: - /* - * Process this member. - */ - ctx->step = edx = n; - ctx->phase = 2; - break; - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - continue; - default: - n = edx_end; - break; /* Phase out */ - } - break; - } - if(n != edx_end) - continue; - } else { - ASN_DEBUG("Out of defined members: %" ASN_PRI_SIZE "/%u", - edx, td->elements_count); - } - - /* It is expected extension */ - if(IN_EXTENSION_GROUP(specs, - edx + (edx < td->elements_count - ? elements[edx].optional : 0))) { - ASN_DEBUG("Got anticipated extension at %" ASN_PRI_SIZE "", - edx); - /* - * Check for (XCT_BOTH or XCT_UNKNOWN_BO) - * By using a mask. Only record a pure - * tags. - */ - if(tcv & XCT_CLOSING) { - /* Found without body */ - } else { - ctx->left = 1; - ctx->phase = 3; /* Skip ...'s */ - } - XER_ADVANCE(ch_size); - continue; - } - - /* Fall through */ - default: - break; - } - - ASN_DEBUG("Unexpected XML tag in SEQUENCE [%c%c%c%c%c%c]", - size>0?((const char *)ptr)[0]:'.', - size>1?((const char *)ptr)[1]:'.', - size>2?((const char *)ptr)[2]:'.', - size>3?((const char *)ptr)[3]:'.', - size>4?((const char *)ptr)[4]:'.', - size>5?((const char *)ptr)[5]:'.'); - break; - } - - ctx->phase = 4; /* "Phase out" on hard failure */ - RETURN(RC_FAIL); -} - -asn_enc_rval_t -SEQUENCE_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t er = {0,0,0}; - int xcan = (flags & XER_F_CANONICAL); - asn_TYPE_descriptor_t *tmp_def_val_td = 0; - void *tmp_def_val = 0; - size_t edx; - - if(!sptr) ASN__ENCODE_FAILED; - - er.encoded = 0; - - for(edx = 0; edx < td->elements_count; edx++) { - asn_enc_rval_t tmper = {0,0,0}; - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; - const char *mname = elm->name; - unsigned int mlen = strlen(mname); - - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) { - assert(tmp_def_val == 0); - if(elm->default_value_set) { - if(elm->default_value_set(&tmp_def_val)) { - ASN__ENCODE_FAILED; - } else { - memb_ptr = tmp_def_val; - tmp_def_val_td = elm->type; - } - } else if(elm->optional) { - continue; - } else { - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - - /* Print the member itself */ - tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, ilevel + 1, - flags, cb, app_key); - if(tmp_def_val) { - ASN_STRUCT_FREE(*tmp_def_val_td, tmp_def_val); - tmp_def_val = 0; - } - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - - ASN__CALLBACK3("", 1); - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); - - ASN__ENCODED_OK(er); -cb_failed: - if(tmp_def_val) ASN_STRUCT_FREE(*tmp_def_val_td, tmp_def_val); - ASN__ENCODE_FAILED; -} - -int -SEQUENCE_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - size_t edx; - int ret; - - if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; - - /* Dump preamble */ - if(cb(td->name, strlen(td->name), app_key) < 0 - || cb(" ::= {", 6, app_key) < 0) - return -1; - - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) { - if(elm->optional) continue; - /* Print line */ - /* Fall through */ - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - /* Indentation */ - _i_INDENT(1); - - /* Print the member's name and stuff */ - if(cb(elm->name, strlen(elm->name), app_key) < 0 - || cb(": ", 2, app_key) < 0) - return -1; - - /* Print the member itself */ - ret = elm->type->op->print_struct(elm->type, memb_ptr, ilevel + 1, - cb, app_key); - if(ret) return ret; - } - - ilevel--; - _i_INDENT(1); - - return (cb("}", 1, app_key) < 0) ? -1 : 0; -} - -void -SEQUENCE_free(const asn_TYPE_descriptor_t *td, void *sptr, - enum asn_struct_free_method method) { - size_t edx; - const asn_SEQUENCE_specifics_t *specs = - (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_struct_ctx_t *ctx; /* Decoder context */ - - if(!td || !sptr) - return; - - ASN_DEBUG("Freeing %s as SEQUENCE", td->name); - - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; - if(elm->flags & ATF_POINTER) { - memb_ptr = *(void **)((char *)sptr + elm->memb_offset); - if(memb_ptr) - ASN_STRUCT_FREE(*elm->type, memb_ptr); - } else { - memb_ptr = (void *)((char *)sptr + elm->memb_offset); - ASN_STRUCT_FREE_CONTENTS_ONLY(*elm->type, memb_ptr); - } - } - - /* Clean parsing context */ - ctx = (asn_struct_ctx_t *)((char *)sptr + specs->ctx_offset); - FREEMEM(ctx->ptr); - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(sptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset( - sptr, 0, - ((const asn_SEQUENCE_specifics_t *)(td->specifics))->struct_size); - break; - } -} - -int -SEQUENCE_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t edx; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* - * Iterate over structure members and check their validity. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) { - if(elm->optional) - continue; - ASN__CTFAIL(app_key, td, sptr, - "%s: mandatory element %s absent (%s:%d)", - td->name, elm->name, __FILE__, __LINE__); - return -1; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - if(elm->encoding_constraints.general_constraints) { - int ret = elm->encoding_constraints.general_constraints(elm->type, memb_ptr, - ctfailcb, app_key); - if(ret) return ret; - } else { - return elm->type->encoding_constraints.general_constraints(elm->type, - memb_ptr, ctfailcb, app_key); - } - } - - return 0; -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -SEQUENCE_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; - void *st = *sptr; /* Target structure. */ - int extpresent; /* Extension additions are present */ - uint8_t *opres; /* Presence of optional root members */ - asn_per_data_t opmd; - asn_dec_rval_t rv; - size_t edx; - - (void)constraints; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - - ASN_DEBUG("Decoding %s as SEQUENCE (UPER)", td->name); - - /* Handle extensions */ - if(specs->first_extension < 0) { - extpresent = 0; - } else { - extpresent = per_get_few_bits(pd, 1); - if(extpresent < 0) ASN__DECODE_STARVED; - } - - /* Prepare a place and read-in the presence bitmap */ - memset(&opmd, 0, sizeof(opmd)); - if(specs->roms_count) { - opres = (uint8_t *)MALLOC(((specs->roms_count + 7) >> 3) + 1); - if(!opres) ASN__DECODE_FAILED; - /* Get the presence map */ - if(per_get_many_bits(pd, opres, 0, specs->roms_count)) { - FREEMEM(opres); - ASN__DECODE_STARVED; - } - opmd.buffer = opres; - opmd.nbits = specs->roms_count; - ASN_DEBUG("Read in presence bitmap for %s of %d bits (%x..)", - td->name, specs->roms_count, *opres); - } else { - opres = 0; - } - - /* - * Get the sequence ROOT elements. - */ - for(edx = 0; - edx < (specs->first_extension < 0 ? td->elements_count - : (size_t)specs->first_extension); - edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - - assert(!IN_EXTENSION_GROUP(specs, edx)); - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - /* Deal with optionality */ - if(elm->optional) { - int present = per_get_few_bits(&opmd, 1); - ASN_DEBUG("Member %s->%s is optional, p=%d (%d->%d)", - td->name, elm->name, present, - (int)opmd.nboff, (int)opmd.nbits); - if(present == 0) { - /* This element is not present */ - if(elm->default_value_set) { - /* Fill-in DEFAULT */ - if(elm->default_value_set(memb_ptr2)) { - FREEMEM(opres); - ASN__DECODE_FAILED; - } - ASN_DEBUG("Filled-in default"); - } - /* The member is just not present */ - continue; - } - /* Fall through */ - } - - /* Fetch the member from the stream */ - ASN_DEBUG("Decoding member \"%s\" in %s", elm->name, td->name); - - if(elm->flags & ATF_OPEN_TYPE) { - rv = OPEN_TYPE_uper_get(opt_codec_ctx, td, st, elm, pd); - } else { - rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } - if(rv.code != RC_OK) { - ASN_DEBUG("Failed decode %s in %s", - elm->name, td->name); - FREEMEM(opres); - return rv; - } - } - - /* Optionality map is not needed anymore */ - FREEMEM(opres); - - /* - * Deal with extensions. - */ - if(extpresent) { - ssize_t bmlength; - uint8_t *epres; /* Presence of extension members */ - asn_per_data_t epmd; - - bmlength = uper_get_nslength(pd); - if(bmlength < 0) ASN__DECODE_STARVED; - - ASN_DEBUG("Extensions %" ASN_PRI_SSIZE " present in %s", bmlength, td->name); - - epres = (uint8_t *)MALLOC((bmlength + 15) >> 3); - if(!epres) ASN__DECODE_STARVED; - - /* Get the extensions map */ - if(per_get_many_bits(pd, epres, 0, bmlength)) { - FREEMEM(epres); - ASN__DECODE_STARVED; - } - - memset(&epmd, 0, sizeof(epmd)); - epmd.buffer = epres; - epmd.nbits = bmlength; - ASN_DEBUG("Read in extensions bitmap for %s of %ld bits (%x..)", - td->name, (long)bmlength, *epres); - - /* Go over extensions and read them in */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - int present; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (void *)((char *)st + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - present = per_get_few_bits(&epmd, 1); - if(present <= 0) { - if(present < 0) break; /* No more extensions */ - continue; - } - - ASN_DEBUG("Decoding member %s in %s %p", elm->name, td->name, - *memb_ptr2); - rv = uper_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, - memb_ptr2, pd); - if(rv.code != RC_OK) { - FREEMEM(epres); - return rv; - } - } - - /* Skip over overflow extensions which aren't present - * in this system's version of the protocol */ - for(;;) { - ASN_DEBUG("Getting overflow extensions"); - switch(per_get_few_bits(&epmd, 1)) { - case -1: break; - case 0: continue; - default: - if(uper_open_type_skip(opt_codec_ctx, pd)) { - FREEMEM(epres); - ASN__DECODE_STARVED; - } - ASN_DEBUG("Skipped overflow extension"); - continue; - } - break; - } - - FREEMEM(epres); - } - - if(specs->first_extension >= 0) { - unsigned i; - /* Fill DEFAULT members in extensions */ - for(i = specs->roms_count; i < specs->roms_count + specs->aoms_count; - i++) { - asn_TYPE_member_t *elm; - void **memb_ptr2; /* Pointer to member pointer */ - - edx = specs->oms[i]; - elm = &td->elements[edx]; - - if(!elm->default_value_set) continue; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - if(*memb_ptr2) continue; - } else { - continue; /* Extensions are all optionals */ - } - - /* Set default value */ - if(elm->default_value_set(memb_ptr2)) { - ASN__DECODE_FAILED; - } - } - } - - rv.consumed = 0; - rv.code = RC_OK; - return rv; -} - -static int -SEQUENCE__handle_extensions(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_per_outp_t *po1, asn_per_outp_t *po2) { - const asn_SEQUENCE_specifics_t *specs = - (const asn_SEQUENCE_specifics_t *)td->specifics; - int exts_present = 0; - int exts_count = 0; - size_t edx; - - if(specs->first_extension < 0) { - return 0; - } - - /* Find out which extensions are present */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - int present; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - present = (*memb_ptr2 != 0); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - present = 1; - } - - ASN_DEBUG("checking %s:%s (@%" ASN_PRI_SIZE ") present => %d", elm->name, - elm->type->name, edx, present); - exts_count++; - exts_present += present; - - /* Encode as presence marker */ - if(po1 && per_put_few_bits(po1, present, 1)) { - return -1; - } - /* Encode as open type field */ - if(po2 && present - && uper_open_type_put(elm->type, - elm->encoding_constraints.per_constraints, - *memb_ptr2, po2)) - return -1; - } - - return exts_present ? exts_count : 0; -} - -asn_enc_rval_t -SEQUENCE_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const asn_SEQUENCE_specifics_t *specs - = (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - int n_extensions; - size_t edx; - size_t i; - - (void)constraints; - - if(!sptr) - ASN__ENCODE_FAILED; - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE (UPER)", td->name); - - /* - * X.691#18.1 Whether structure is extensible - * and whether to encode extensions - */ - if(specs->first_extension < 0) { - n_extensions = 0; /* There are no extensions to encode */ - } else { - n_extensions = SEQUENCE__handle_extensions(td, sptr, 0, 0); - if(n_extensions < 0) ASN__ENCODE_FAILED; - if(per_put_few_bits(po, n_extensions ? 1 : 0, 1)) { - ASN__ENCODE_FAILED; - } - } - - /* Encode a presence bitmap */ - for(i = 0; i < specs->roms_count; i++) { - asn_TYPE_member_t *elm; - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - int present; - - edx = specs->oms[i]; - elm = &td->elements[edx]; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - present = (*memb_ptr2 != 0); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - present = 1; - } - - /* Eliminate default values */ - if(present && elm->default_value_cmp - && elm->default_value_cmp(*memb_ptr2) == 0) - present = 0; - - ASN_DEBUG("Element %s %s %s->%s is %s", - elm->flags & ATF_POINTER ? "ptr" : "inline", - elm->default_value_cmp ? "def" : "wtv", - td->name, elm->name, present ? "present" : "absent"); - if(per_put_few_bits(po, present, 1)) - ASN__ENCODE_FAILED; - } - - /* - * Encode the sequence ROOT elements. - */ - ASN_DEBUG("first_extension = %d, elements = %d", specs->first_extension, - td->elements_count); - for(edx = 0; - edx < ((specs->first_extension < 0) ? td->elements_count - : (size_t)specs->first_extension); - edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - - ASN_DEBUG("About to encode %s", elm->type->name); - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - if(!*memb_ptr2) { - ASN_DEBUG("Element %s %" ASN_PRI_SIZE " not present", - elm->name, edx); - if(elm->optional) - continue; - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - /* Eliminate default values */ - if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) - continue; - - ASN_DEBUG("Encoding %s->%s:%s", td->name, elm->name, elm->type->name); - er = elm->type->op->uper_encoder( - elm->type, elm->encoding_constraints.per_constraints, *memb_ptr2, - po); - if(er.encoded == -1) return er; - } - - /* No extensions to encode */ - if(!n_extensions) ASN__ENCODED_OK(er); - - ASN_DEBUG("Length of extensions %d bit-map", n_extensions); - /* #18.8. Write down the presence bit-map length. */ - if(uper_put_nslength(po, n_extensions)) - ASN__ENCODE_FAILED; - - ASN_DEBUG("Bit-map of %d elements", n_extensions); - /* #18.7. Encoding the extensions presence bit-map. */ - /* TODO: act upon NOTE in #18.7 for canonical PER */ - if(SEQUENCE__handle_extensions(td, sptr, po, 0) != n_extensions) - ASN__ENCODE_FAILED; - - ASN_DEBUG("Writing %d extensions", n_extensions); - /* #18.9. Encode extensions as open type fields. */ - if(SEQUENCE__handle_extensions(td, sptr, 0, po) != n_extensions) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -SEQUENCE_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; - void *st = *sptr; /* Target structure. */ - int extpresent; /* Extension additions are present */ - uint8_t *opres; /* Presence of optional root members */ - asn_per_data_t opmd; - asn_dec_rval_t rv; - size_t edx; - - (void)constraints; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - - ASN_DEBUG("Decoding %s as SEQUENCE (APER)", td->name); - - /* Handle extensions */ - if(specs->first_extension < 0) { - extpresent = 0; - } else { - extpresent = per_get_few_bits(pd, 1); - if(extpresent < 0) ASN__DECODE_STARVED; - } - - /* Prepare a place and read-in the presence bitmap */ - memset(&opmd, 0, sizeof(opmd)); - if(specs->roms_count) { - opres = (uint8_t *)MALLOC(((specs->roms_count + 7) >> 3) + 1); - if(!opres) ASN__DECODE_FAILED; - /* Get the presence map */ - if(per_get_many_bits(pd, opres, 0, specs->roms_count)) { - FREEMEM(opres); - ASN__DECODE_STARVED; - } - opmd.buffer = opres; - opmd.nbits = specs->roms_count; - ASN_DEBUG("Read in presence bitmap for %s of %d bits (%x..)", - td->name, specs->roms_count, *opres); - } else { - opres = 0; - } - - /* - * Get the sequence ROOT elements. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ -#if 0 - int padding; -#endif - - if(IN_EXTENSION_GROUP(specs, edx)) - continue; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } -#if 0 - /* Get Padding */ - padding = (8 - (pd->moved % 8)) % 8; - if(padding > 0) - ASN_DEBUG("For element %s,offset= %ld Padding bits = %d", td->name, pd->moved, padding); -#if 0 /* old way of removing padding */ - per_get_few_bits(pd, padding); -#else /* Experimental fix proposed by @mhanna123 */ - if(edx != (td->elements_count-1)) - per_get_few_bits(pd, padding); - else { - if(specs->roms_count && (padding > 0)) - ASN_DEBUG(">>>>> not skipping padding of %d bits for element:%ld out of %d", padding, edx, td->elements_count); - else - per_get_few_bits(pd, padding); - } -#endif /* dealing with padding */ -#endif - /* Deal with optionality */ - if(elm->optional) { - int present = per_get_few_bits(&opmd, 1); - ASN_DEBUG("Member %s->%s is optional, p=%d (%d->%d)", - td->name, elm->name, present, - (int)opmd.nboff, (int)opmd.nbits); - if(present == 0) { - /* This element is not present */ - if(elm->default_value_set) { - /* Fill-in DEFAULT */ - if(elm->default_value_set(memb_ptr2)) { - FREEMEM(opres); - ASN__DECODE_FAILED; - } - ASN_DEBUG("Filled-in default"); - } - /* The member is just not present */ - continue; - } - /* Fall through */ - } - - /* Fetch the member from the stream */ - ASN_DEBUG("Decoding member \"%s\" in %s", elm->name, td->name); - - if(elm->flags & ATF_OPEN_TYPE) { - rv = OPEN_TYPE_aper_get(opt_codec_ctx, td, st, elm, pd); - } else { - rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } - if(rv.code != RC_OK) { - ASN_DEBUG("Failed decode %s in %s", - elm->name, td->name); - FREEMEM(opres); - return rv; - } - } - - /* Optionality map is not needed anymore */ - FREEMEM(opres); - - /* - * Deal with extensions. - */ - if(extpresent) { - ssize_t bmlength; - uint8_t *epres; /* Presence of extension members */ - asn_per_data_t epmd; - - bmlength = aper_get_nslength(pd); - if(bmlength < 0) ASN__DECODE_STARVED; - - ASN_DEBUG("Extensions %" ASN_PRI_SSIZE " present in %s", bmlength, td->name); - - epres = (uint8_t *)MALLOC((bmlength + 15) >> 3); - if(!epres) ASN__DECODE_STARVED; - - /* Get the extensions map */ - if(per_get_many_bits(pd, epres, 0, bmlength)) - ASN__DECODE_STARVED; - - memset(&epmd, 0, sizeof(epmd)); - epmd.buffer = epres; - epmd.nbits = bmlength; - ASN_DEBUG("Read in extensions bitmap for %s of %ld bits (%x..)", - td->name, bmlength, *epres); - - /* Go over extensions and read them in */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - int present; - - if(!IN_EXTENSION_GROUP(specs, edx)) { - ASN_DEBUG("%ld is not extension", edx); - continue; - } - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (void *)((char *)st + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - present = per_get_few_bits(&epmd, 1); - if(present <= 0) { - if(present < 0) break; /* No more extensions */ - continue; - } - - ASN_DEBUG("Decoding member %s in %s %p", elm->name, td->name, *memb_ptr2); - rv = aper_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - if(rv.code != RC_OK) { - FREEMEM(epres); - return rv; - } - } - - /* Skip over overflow extensions which aren't present - * in this system's version of the protocol */ - for(;;) { - ASN_DEBUG("Getting overflow extensions"); - switch(per_get_few_bits(&epmd, 1)) { - case -1: - break; - case 0: - continue; - default: - if(aper_open_type_skip(opt_codec_ctx, pd)) { - FREEMEM(epres); - ASN__DECODE_STARVED; - } - } - break; - } - - FREEMEM(epres); - } - - /* Fill DEFAULT members in extensions */ - for(edx = specs->roms_count; edx < specs->roms_count - + specs->aoms_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void **memb_ptr2; /* Pointer to member pointer */ - - if(!elm->default_value_set) continue; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st - + elm->memb_offset); - if(*memb_ptr2) continue; - } else { - continue; /* Extensions are all optionals */ - } - - /* Set default value */ - if(elm->default_value_set(memb_ptr2)) { - ASN__DECODE_FAILED; - } - } - - rv.consumed = 0; - rv.code = RC_OK; - return rv; -} - -static int -SEQUENCE_handle_extensions_aper(const asn_TYPE_descriptor_t *td, - const void *sptr, - asn_per_outp_t *po1, asn_per_outp_t *po2) { - const asn_SEQUENCE_specifics_t *specs - = (const asn_SEQUENCE_specifics_t *)td->specifics; - int exts_present = 0; - int exts_count = 0; - size_t edx; - - if(specs->first_extension < 0) { - return 0; - } - - /* Find out which extensions are present */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; /* Pointer to the member */ - const void * const *memb_ptr2; /* Pointer to that pointer */ - int present; - - if(!IN_EXTENSION_GROUP(specs, edx)) { - ASN_DEBUG("%s (@%ld) is not extension", elm->type->name, edx); - continue; - } - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); - present = (*memb_ptr2 != 0); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - present = 1; - } - - ASN_DEBUG("checking %s (@%ld) present => %d", - elm->type->name, edx, present); - exts_count++; - exts_present += present; - - /* Encode as presence marker */ - if(po1 && per_put_few_bits(po1, present, 1)) - return -1; - /* Encode as open type field */ - if(po2 && present && aper_open_type_put(elm->type, - elm->encoding_constraints.per_constraints, *memb_ptr2, po2)) - return -1; - - } - - return exts_present ? exts_count : 0; -} - -asn_enc_rval_t -SEQUENCE_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_SEQUENCE_specifics_t *specs - = (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - int n_extensions; - size_t edx; - size_t i; - - (void)constraints; - - if(!sptr) - ASN__ENCODE_FAILED; - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE (APER)", td->name); - - /* - * X.691#18.1 Whether structure is extensible - * and whether to encode extensions - */ - if(specs->first_extension < 0) { - n_extensions = 0; /* There are no extensions to encode */ - } else { - n_extensions = SEQUENCE_handle_extensions_aper(td, sptr, 0, 0); - if(n_extensions < 0) ASN__ENCODE_FAILED; - if(per_put_few_bits(po, n_extensions ? 1 : 0, 1)) { - ASN__ENCODE_FAILED; - } - } - - /* Encode a presence bitmap */ - for(i = 0; i < specs->roms_count; i++) { - asn_TYPE_member_t *elm; - const void *memb_ptr; /* Pointer to the member */ - const void * const *memb_ptr2; /* Pointer to that pointer */ - int present; - - edx = specs->oms[i]; - elm = &td->elements[edx]; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); - present = (*memb_ptr2 != 0); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - present = 1; - } - - /* Eliminate default values */ - if(present && elm->default_value_cmp - && elm->default_value_cmp(memb_ptr2) == 1) - present = 0; - - ASN_DEBUG("Element %s %s %s->%s is %s", - elm->flags & ATF_POINTER ? "ptr" : "inline", - elm->default_value_cmp ? "def" : "wtv", - td->name, elm->name, present ? "present" : "absent"); - if(per_put_few_bits(po, present, 1)) - ASN__ENCODE_FAILED; - } - - /* - * Encode the sequence ROOT elements. - */ - ASN_DEBUG("first_extension = %d, elements = %d", specs->first_extension, - td->elements_count); - for(edx = 0; - edx < ((specs->first_extension < 0) ? td->elements_count - : (size_t)specs->first_extension); - edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; /* Pointer to the member */ - const void * const *memb_ptr2; /* Pointer to that pointer */ - - if(IN_EXTENSION_GROUP(specs, edx)) - continue; - - ASN_DEBUG("About to encode %s", elm->type->name); - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); - if(!*memb_ptr2) { - ASN_DEBUG("Element %s %ld not present", - elm->name, edx); - if(elm->optional) - continue; - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - /* Eliminate default values */ - if(elm->default_value_cmp && elm->default_value_cmp(memb_ptr2) == 1) - continue; - - ASN_DEBUG("Encoding %s->%s", td->name, elm->name); - er = elm->type->op->aper_encoder(elm->type, elm->encoding_constraints.per_constraints, - *memb_ptr2, po); - if(er.encoded == -1) - return er; - } - - /* No extensions to encode */ - if(!n_extensions) ASN__ENCODED_OK(er); - - ASN_DEBUG("Length of %d bit-map", n_extensions); - /* #18.8. Write down the presence bit-map length. */ - if(aper_put_nslength(po, n_extensions)) - ASN__ENCODE_FAILED; - - ASN_DEBUG("Bit-map of %d elements", n_extensions); - /* #18.7. Encoding the extensions presence bit-map. */ - /* TODO: act upon NOTE in #18.7 for canonical PER */ - if(SEQUENCE_handle_extensions_aper(td, sptr, po, 0) != n_extensions) - ASN__ENCODE_FAILED; - - ASN_DEBUG("Writing %d extensions", n_extensions); - /* #18.9. Encode extensions as open type fields. */ - if(SEQUENCE_handle_extensions_aper(td, sptr, 0, po) != n_extensions) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -int -SEQUENCE_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - size_t edx; - - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *amemb; - const void *bmemb; - int ret; - - if(elm->flags & ATF_POINTER) { - amemb = - *(const void *const *)((const char *)aptr + elm->memb_offset); - bmemb = - *(const void *const *)((const char *)bptr + elm->memb_offset); - if(!amemb) { - if(!bmemb) continue; - if(elm->default_value_cmp - && elm->default_value_cmp(bmemb) == 0) { - /* A is absent, but B is present and equal to DEFAULT */ - continue; - } - return -1; - } else if(!bmemb) { - if(elm->default_value_cmp - && elm->default_value_cmp(amemb) == 0) { - /* B is absent, but A is present and equal to DEFAULT */ - continue; - } - return 1; - } - } else { - amemb = (const void *)((const char *)aptr + elm->memb_offset); - bmemb = (const void *)((const char *)bptr + elm->memb_offset); - } - - ret = elm->type->op->compare_struct(elm->type, amemb, bmemb); - if(ret != 0) return ret; - } - - return 0; -} - -asn_TYPE_operation_t asn_OP_SEQUENCE = { - SEQUENCE_free, - SEQUENCE_print, - SEQUENCE_compare, - SEQUENCE_decode_ber, - SEQUENCE_encode_der, - SEQUENCE_decode_xer, - SEQUENCE_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - SEQUENCE_decode_oer, - SEQUENCE_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - SEQUENCE_decode_uper, - SEQUENCE_encode_uper, - SEQUENCE_decode_aper, - SEQUENCE_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - SEQUENCE_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; - - -asn_random_fill_result_t -SEQUENCE_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constr, - size_t max_length) { - const asn_SEQUENCE_specifics_t *specs = - (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_random_fill_result_t result_ok = {ARFILL_OK, 0}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - void *st = *sptr; - size_t edx; - - if(max_length == 0) return result_skipped; - - (void)constr; - - if(st == NULL) { - st = CALLOC(1, specs->struct_size); - if(st == NULL) { - return result_failed; - } - } - - for(edx = 0; edx < td->elements_count; edx++) { - const asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - asn_random_fill_result_t tmpres; - - if(elm->optional && asn_random_between(0, 4) == 2) { - /* Sometimes decide not to fill the optional value */ - continue; - } - - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - tmpres = elm->type->op->random_fill( - elm->type, memb_ptr2, &elm->encoding_constraints, - max_length > result_ok.length ? max_length - result_ok.length : 0); - switch(tmpres.code) { - case ARFILL_OK: - result_ok.length += tmpres.length; - continue; - case ARFILL_SKIPPED: - assert(!(elm->flags & ATF_POINTER) || *memb_ptr2 == NULL); - continue; - case ARFILL_FAILED: - if(st == *sptr) { - ASN_STRUCT_RESET(*td, st); - } else { - ASN_STRUCT_FREE(*td, st); - } - return tmpres; - } - } - - *sptr = st; - - return result_ok; -} - diff --git a/e2sim/src/ASN1c/constr_SEQUENCE.h b/e2sim/src/ASN1c/constr_SEQUENCE.h deleted file mode 100644 index a22ed3a..0000000 --- a/e2sim/src/ASN1c/constr_SEQUENCE.h +++ /dev/null @@ -1,68 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _CONSTR_SEQUENCE_H_ -#define _CONSTR_SEQUENCE_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct asn_SEQUENCE_specifics_s { - /* - * Target structure description. - */ - unsigned struct_size; /* Size of the target structure. */ - unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ - - /* - * Tags to members mapping table (sorted). - */ - const asn_TYPE_tag2member_t *tag2el; - unsigned tag2el_count; - - /* - * Optional members of the extensions root (roms) or additions (aoms). - * Meaningful for PER. - */ - const int *oms; /* Optional MemberS */ - unsigned roms_count; /* Root optional members count */ - unsigned aoms_count; /* Additions optional members count */ - - /* - * Description of an extensions group. - * Root components are clustered at the beginning of the structure, - * whereas extensions are clustered at the end. -1 means not extensible. - */ - signed first_extension; /* First extension addition */ -} asn_SEQUENCE_specifics_t; - - -/* - * A set specialized functions dealing with the SEQUENCE type. - */ -asn_struct_free_f SEQUENCE_free; -asn_struct_print_f SEQUENCE_print; -asn_struct_compare_f SEQUENCE_compare; -asn_constr_check_f SEQUENCE_constraint; -ber_type_decoder_f SEQUENCE_decode_ber; -der_type_encoder_f SEQUENCE_encode_der; -xer_type_decoder_f SEQUENCE_decode_xer; -xer_type_encoder_f SEQUENCE_encode_xer; -oer_type_decoder_f SEQUENCE_decode_oer; -oer_type_encoder_f SEQUENCE_encode_oer; -per_type_decoder_f SEQUENCE_decode_uper; -per_type_encoder_f SEQUENCE_encode_uper; -per_type_decoder_f SEQUENCE_decode_aper; -per_type_encoder_f SEQUENCE_encode_aper; -asn_random_fill_f SEQUENCE_random_fill; -extern asn_TYPE_operation_t asn_OP_SEQUENCE; - -#ifdef __cplusplus -} -#endif - -#endif /* _CONSTR_SEQUENCE_H_ */ diff --git a/e2sim/src/ASN1c/constr_SEQUENCE_OF.c b/e2sim/src/ASN1c/constr_SEQUENCE_OF.c deleted file mode 100644 index 10f18cf..0000000 --- a/e2sim/src/ASN1c/constr_SEQUENCE_OF.c +++ /dev/null @@ -1,358 +0,0 @@ -/*- - * Copyright (c) 2003, 2004, 2006 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * The DER encoder of the SEQUENCE OF type. - */ -asn_enc_rval_t -SEQUENCE_OF_encode_der(const asn_TYPE_descriptor_t *td, const void *ptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_sequence_ *list = _A_CSEQUENCE_FROM_VOID(ptr); - size_t computed_size = 0; - ssize_t encoding_size = 0; - asn_enc_rval_t erval = {0,0,0}; - int edx; - - ASN_DEBUG("Estimating size of SEQUENCE OF %s", td->name); - - /* - * Gather the length of the underlying members sequence. - */ - for(edx = 0; edx < list->count; edx++) { - void *memb_ptr = list->array[edx]; - if(!memb_ptr) continue; - erval = elm->type->op->der_encoder(elm->type, memb_ptr, - 0, elm->tag, - 0, 0); - if(erval.encoded == -1) - return erval; - computed_size += erval.encoded; - } - - /* - * Encode the TLV for the sequence itself. - */ - encoding_size = der_write_tags(td, computed_size, tag_mode, 1, tag, - cb, app_key); - if(encoding_size == -1) { - erval.encoded = -1; - erval.failed_type = td; - erval.structure_ptr = ptr; - return erval; - } - - computed_size += encoding_size; - if(!cb) { - erval.encoded = computed_size; - ASN__ENCODED_OK(erval); - } - - ASN_DEBUG("Encoding members of SEQUENCE OF %s", td->name); - - /* - * Encode all members. - */ - for(edx = 0; edx < list->count; edx++) { - void *memb_ptr = list->array[edx]; - if(!memb_ptr) continue; - erval = elm->type->op->der_encoder(elm->type, memb_ptr, - 0, elm->tag, - cb, app_key); - if(erval.encoded == -1) - return erval; - encoding_size += erval.encoded; - } - - if(computed_size != (size_t)encoding_size) { - /* - * Encoded size is not equal to the computed size. - */ - erval.encoded = -1; - erval.failed_type = td; - erval.structure_ptr = ptr; - } else { - erval.encoded = computed_size; - erval.structure_ptr = 0; - erval.failed_type = 0; - } - - return erval; -} - -asn_enc_rval_t -SEQUENCE_OF_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t er = {0,0,0}; - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_sequence_ *list = _A_CSEQUENCE_FROM_VOID(sptr); - const char *mname = specs->as_XMLValueList - ? 0 - : ((*elm->name) ? elm->name : elm->type->xml_tag); - size_t mlen = mname ? strlen(mname) : 0; - int xcan = (flags & XER_F_CANONICAL); - int i; - - if(!sptr) ASN__ENCODE_FAILED; - - er.encoded = 0; - - for(i = 0; i < list->count; i++) { - asn_enc_rval_t tmper = {0,0,0}; - void *memb_ptr = list->array[i]; - if(!memb_ptr) continue; - - if(mname) { - if(!xcan) ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - } - - tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, ilevel + 1, - flags, cb, app_key); - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - if(tmper.encoded == 0 && specs->as_XMLValueList) { - const char *name = elm->type->xml_tag; - size_t len = strlen(name); - if(!xcan) ASN__TEXT_INDENT(1, ilevel + 1); - ASN__CALLBACK3("<", 1, name, len, "/>", 2); - } - - if(mname) { - ASN__CALLBACK3("", 1); - } - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_enc_rval_t -SEQUENCE_OF_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_anonymous_sequence_ *list; - const asn_per_constraint_t *ct; - asn_enc_rval_t er = {0,0,0}; - const asn_TYPE_member_t *elm = td->elements; - size_t encoded_edx; - - if(!sptr) ASN__ENCODE_FAILED; - list = _A_CSEQUENCE_FROM_VOID(sptr); - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE OF (%d)", td->name, list->count); - - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - /* If extensible constraint, check if size is in root */ - if(ct) { - int not_in_root = - (list->count < ct->lower_bound || list->count > ct->upper_bound); - ASN_DEBUG("lb %ld ub %ld %s", ct->lower_bound, ct->upper_bound, - ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); - if(ct->flags & APC_EXTENSIBLE) { - /* Declare whether size is in extension root */ - if(per_put_few_bits(po, not_in_root, 1)) ASN__ENCODE_FAILED; - if(not_in_root) ct = 0; - } else if(not_in_root && ct->effective_bits >= 0) { - ASN__ENCODE_FAILED; - } - - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ - if(per_put_few_bits(po, list->count - ct->lower_bound, - ct->effective_bits)) - ASN__ENCODE_FAILED; - } else if(list->count == 0) { - /* When the list is empty add only the length determinant - * X.691, #20.6 and #11.9.4.1 - */ - if (uper_put_length(po, 0, 0)) { - ASN__ENCODE_FAILED; - } - ASN__ENCODED_OK(er); - } - - for(encoded_edx = 0; (ssize_t)encoded_edx < list->count;) { - ssize_t may_encode; - size_t edx; - int need_eom = 0; - - if(ct && ct->effective_bits >= 0) { - may_encode = list->count; - } else { - may_encode = - uper_put_length(po, list->count - encoded_edx, &need_eom); - if(may_encode < 0) ASN__ENCODE_FAILED; - } - - for(edx = encoded_edx; edx < encoded_edx + may_encode; edx++) { - void *memb_ptr = list->array[edx]; - if(!memb_ptr) ASN__ENCODE_FAILED; - er = elm->type->op->uper_encoder( - elm->type, elm->encoding_constraints.per_constraints, memb_ptr, - po); - if(er.encoded == -1) ASN__ENCODE_FAILED; - } - - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - - encoded_edx += may_encode; - } - - ASN__ENCODED_OK(er); -} - -asn_enc_rval_t -SEQUENCE_OF_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_anonymous_sequence_ *list; - const asn_per_constraint_t *ct; - asn_enc_rval_t er = {0,0,0}; - asn_TYPE_member_t *elm = td->elements; - int seq; - - if(!sptr) ASN__ENCODE_FAILED; - list = _A_CSEQUENCE_FROM_VOID(sptr); - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE OF size (%d) using ALIGNED PER", td->name, list->count); - - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - /* If extensible constraint, check if size is in root */ - if(ct) { - int not_in_root = (list->count < ct->lower_bound - || list->count > ct->upper_bound); - ASN_DEBUG("lb %ld ub %ld %s", - ct->lower_bound, ct->upper_bound, - ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); - if(ct->flags & APC_EXTENSIBLE) { - /* Declare whether size is in extension root */ - if(per_put_few_bits(po, not_in_root, 1)) - ASN__ENCODE_FAILED; - if(not_in_root) ct = 0; - } else if(not_in_root && ct->effective_bits >= 0) - ASN__ENCODE_FAILED; - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ -/* if(per_put_few_bits(po, list->count - ct->lower_bound, - ct->effective_bits)) - ASN__ENCODE_FAILED; -*/ - if (aper_put_length(po, ct->upper_bound - ct->lower_bound + 1, list->count - ct->lower_bound) < 0) - ASN__ENCODE_FAILED; - } - - for(seq = -1; seq < list->count;) { - ssize_t mayEncode; - if(seq < 0) seq = 0; - if(ct && ct->effective_bits >= 0) { - mayEncode = list->count; - } else { - mayEncode = aper_put_length(po, -1, list->count - seq); - if(mayEncode < 0) ASN__ENCODE_FAILED; - } - - while(mayEncode--) { - void *memb_ptr = list->array[seq++]; - if(!memb_ptr) ASN__ENCODE_FAILED; - er = elm->type->op->aper_encoder(elm->type, - elm->encoding_constraints.per_constraints, memb_ptr, po); - if(er.encoded == -1) - ASN__ENCODE_FAILED; - } - } - - ASN__ENCODED_OK(er); -} -#endif /* ASN_DISABLE_PER_SUPPORT */ - -int -SEQUENCE_OF_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - const asn_anonymous_sequence_ *a = _A_CSEQUENCE_FROM_VOID(aptr); - const asn_anonymous_sequence_ *b = _A_CSEQUENCE_FROM_VOID(bptr); - ssize_t idx; - - if(a && b) { - ssize_t common_length = (a->count < b->count ? a->count : b->count); - for(idx = 0; idx < common_length; idx++) { - int ret = td->elements->type->op->compare_struct( - td->elements->type, a->array[idx], b->array[idx]); - if(ret) return ret; - } - - if(idx < b->count) /* more elements in b */ - return -1; /* a is shorter, so put it first */ - if(idx < a->count) return 1; - - } else if(!a) { - return -1; - } else if(!b) { - return 1; - } - - return 0; -} - - -asn_TYPE_operation_t asn_OP_SEQUENCE_OF = { - SEQUENCE_OF_free, - SEQUENCE_OF_print, - SEQUENCE_OF_compare, - SEQUENCE_OF_decode_ber, - SEQUENCE_OF_encode_der, - SEQUENCE_OF_decode_xer, - SEQUENCE_OF_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - SEQUENCE_OF_decode_oer, /* Same as SET OF decoder. */ - SEQUENCE_OF_encode_oer, /* Same as SET OF encoder */ -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - SEQUENCE_OF_decode_uper, /* Same as SET OF decoder */ - SEQUENCE_OF_encode_uper, - SEQUENCE_OF_decode_aper, - SEQUENCE_OF_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - SEQUENCE_OF_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; - diff --git a/e2sim/src/ASN1c/constr_SEQUENCE_OF.h b/e2sim/src/ASN1c/constr_SEQUENCE_OF.h deleted file mode 100644 index 6857f0f..0000000 --- a/e2sim/src/ASN1c/constr_SEQUENCE_OF.h +++ /dev/null @@ -1,41 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _CONSTR_SEQUENCE_OF_H_ -#define _CONSTR_SEQUENCE_OF_H_ - -#include -#include /* Implemented using SET OF */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * A set specialized functions dealing with the SEQUENCE OF type. - * Generally implemented using SET OF. - */ -asn_struct_compare_f SEQUENCE_OF_compare; -der_type_encoder_f SEQUENCE_OF_encode_der; -xer_type_encoder_f SEQUENCE_OF_encode_xer; -per_type_encoder_f SEQUENCE_OF_encode_uper; -per_type_encoder_f SEQUENCE_OF_encode_aper; -extern asn_TYPE_operation_t asn_OP_SEQUENCE_OF; - -#define SEQUENCE_OF_free SET_OF_free -#define SEQUENCE_OF_print SET_OF_print -#define SEQUENCE_OF_constraint SET_OF_constraint -#define SEQUENCE_OF_decode_ber SET_OF_decode_ber -#define SEQUENCE_OF_decode_xer SET_OF_decode_xer -#define SEQUENCE_OF_decode_oer SET_OF_decode_oer -#define SEQUENCE_OF_encode_oer SET_OF_encode_oer -#define SEQUENCE_OF_decode_uper SET_OF_decode_uper -#define SEQUENCE_OF_decode_aper SET_OF_decode_aper -#define SEQUENCE_OF_random_fill SET_OF_random_fill - -#ifdef __cplusplus -} -#endif - -#endif /* _CONSTR_SET_OF_H_ */ diff --git a/e2sim/src/ASN1c/constr_SET_OF.c b/e2sim/src/ASN1c/constr_SET_OF.c deleted file mode 100644 index bf1dc27..0000000 --- a/e2sim/src/ASN1c/constr_SET_OF.c +++ /dev/null @@ -1,1441 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Number of bytes left for this structure. - * (ctx->left) indicates the number of bytes _transferred_ for the structure. - * (size) contains the number of bytes in the buffer passed. - */ -#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) - -/* - * If the subprocessor function returns with an indication that it wants - * more data, it may well be a fatal decoding problem, because the - * size is constrained by the 's L, even if the buffer size allows - * reading more data. - * For example, consider the buffer containing the following TLVs: - * ... - * The TLV length clearly indicates that one byte is expected in V, but - * if the V processor returns with "want more data" even if the buffer - * contains way more data than the V processor have seen. - */ -#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) - -/* - * This macro "eats" the part of the buffer which is definitely "consumed", - * i.e. was correctly converted into local representation or rightfully skipped. - */ -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num;\ - size -= num; \ - if(ctx->left >= 0) \ - ctx->left -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#undef PHASE_OUT -#define NEXT_PHASE(ctx) do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) -#define PHASE_OUT(ctx) do { ctx->phase = 10; } while(0) - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself;\ - return rval; \ - } while(0) - -/* - * The decoder of the SET OF type. - */ -asn_dec_rval_t -SET_OF_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const void *ptr, size_t size, int tag_mode) { - /* - * Bring closer parts of structure description. - */ - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; /* Single one */ - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - ber_tlv_tag_t tlv_tag; /* T from TLV */ - asn_dec_rval_t rval; /* Return code from subparsers */ - - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - - ASN_DEBUG("Decoding %s as SET OF", td->name); - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Start to parse where left previously - */ - switch(ctx->phase) { - case 0: - /* - * PHASE 0. - * Check that the set of tags associated with given structure - * perfectly fits our expectations. - */ - - rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, - tag_mode, 1, &ctx->left, 0); - if(rval.code != RC_OK) { - ASN_DEBUG("%s tagging check failed: %d", - td->name, rval.code); - return rval; - } - - if(ctx->left >= 0) - ctx->left += rval.consumed; /* ?Substracted below! */ - ADVANCE(rval.consumed); - - ASN_DEBUG("Structure consumes %ld bytes, " - "buffer %ld", (long)ctx->left, (long)size); - - NEXT_PHASE(ctx); - /* Fall through */ - case 1: - /* - * PHASE 1. - * From the place where we've left it previously, - * try to decode the next item. - */ - for(;; ctx->step = 0) { - ssize_t tag_len; /* Length of TLV's T */ - - if(ctx->step & 1) - goto microphase2; - - /* - * MICROPHASE 1: Synchronize decoding. - */ - - if(ctx->left == 0) { - ASN_DEBUG("End of SET OF %s", td->name); - /* - * No more things to decode. - * Exit out of here. - */ - PHASE_OUT(ctx); - RETURN(RC_OK); - } - - /* - * Fetch the T from TLV. - */ - tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); - switch(tag_len) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - if(ctx->left < 0 && ((const uint8_t *)ptr)[0] == 0) { - if(LEFT < 2) { - if(SIZE_VIOLATION) - RETURN(RC_FAIL); - else - RETURN(RC_WMORE); - } else if(((const uint8_t *)ptr)[1] == 0) { - /* - * Found the terminator of the - * indefinite length structure. - */ - break; - } - } - - /* Outmost tag may be unknown and cannot be fetched/compared */ - if(elm->tag != (ber_tlv_tag_t)-1) { - if(BER_TAGS_EQUAL(tlv_tag, elm->tag)) { - /* - * The new list member of expected type has arrived. - */ - } else { - ASN_DEBUG("Unexpected tag %s fixed SET OF %s", - ber_tlv_tag_string(tlv_tag), td->name); - ASN_DEBUG("%s SET OF has tag %s", - td->name, ber_tlv_tag_string(elm->tag)); - RETURN(RC_FAIL); - } - } - - /* - * MICROPHASE 2: Invoke the member-specific decoder. - */ - ctx->step |= 1; /* Confirm entering next microphase */ - microphase2: - - /* - * Invoke the member fetch routine according to member's type - */ - rval = elm->type->op->ber_decoder(opt_codec_ctx, - elm->type, &ctx->ptr, ptr, LEFT, 0); - ASN_DEBUG("In %s SET OF %s code %d consumed %d", - td->name, elm->type->name, - rval.code, (int)rval.consumed); - switch(rval.code) { - case RC_OK: - { - asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); - if(ASN_SET_ADD(list, ctx->ptr) != 0) - RETURN(RC_FAIL); - else - ctx->ptr = 0; - } - break; - case RC_WMORE: /* More data expected */ - if(!SIZE_VIOLATION) { - ADVANCE(rval.consumed); - RETURN(RC_WMORE); - } - /* Fall through */ - case RC_FAIL: /* Fatal error */ - ASN_STRUCT_FREE(*elm->type, ctx->ptr); - ctx->ptr = 0; - RETURN(RC_FAIL); - } /* switch(rval) */ - - ADVANCE(rval.consumed); - } /* for(all list members) */ - - NEXT_PHASE(ctx); - case 2: - /* - * Read in all "end of content" TLVs. - */ - while(ctx->left < 0) { - if(LEFT < 2) { - if(LEFT > 0 && ((const char *)ptr)[0] != 0) { - /* Unexpected tag */ - RETURN(RC_FAIL); - } else { - RETURN(RC_WMORE); - } - } - if(((const char *)ptr)[0] == 0 - && ((const char *)ptr)[1] == 0) { - ADVANCE(2); - ctx->left++; - } else { - RETURN(RC_FAIL); - } - } - - PHASE_OUT(ctx); - } - - RETURN(RC_OK); -} - -/* - * Internally visible buffer holding a single encoded element. - */ -struct _el_buffer { - uint8_t *buf; - size_t length; - size_t allocated_size; - unsigned bits_unused; -}; -/* Append bytes to the above structure */ -static int _el_addbytes(const void *buffer, size_t size, void *el_buf_ptr) { - struct _el_buffer *el_buf = (struct _el_buffer *)el_buf_ptr; - - if(el_buf->length + size > el_buf->allocated_size) { - size_t new_size = el_buf->allocated_size ? el_buf->allocated_size : 8; - void *p; - - do { - new_size <<= 2; - } while(el_buf->length + size > new_size); - - p = REALLOC(el_buf->buf, new_size); - if(p) { - el_buf->buf = p; - el_buf->allocated_size = new_size; - } else { - return -1; - } - } - - memcpy(el_buf->buf + el_buf->length, buffer, size); - - el_buf->length += size; - return 0; -} - -static void assert_unused_bits(const struct _el_buffer* p) { - if(p->length) { - assert((p->buf[p->length-1] & ~(0xff << p->bits_unused)) == 0); - } else { - assert(p->bits_unused == 0); - } -} - -static int _el_buf_cmp(const void *ap, const void *bp) { - const struct _el_buffer *a = (const struct _el_buffer *)ap; - const struct _el_buffer *b = (const struct _el_buffer *)bp; - size_t common_len; - int ret = 0; - - if(a->length < b->length) - common_len = a->length; - else - common_len = b->length; - - if (a->buf && b->buf) { - ret = memcmp(a->buf, b->buf, common_len); - } - if(ret == 0) { - if(a->length < b->length) - ret = -1; - else if(a->length > b->length) - ret = 1; - /* Ignore unused bits. */ - assert_unused_bits(a); - assert_unused_bits(b); - } - - return ret; -} - -static void -SET_OF__encode_sorted_free(struct _el_buffer *el_buf, size_t count) { - size_t i; - - for(i = 0; i < count; i++) { - FREEMEM(el_buf[i].buf); - } - - FREEMEM(el_buf); -} - -enum SET_OF__encode_method { - SOES_DER, /* Distinguished Encoding Rules */ - SOES_CUPER /* Canonical Unaligned Packed Encoding Rules */ -}; - -static struct _el_buffer * -SET_OF__encode_sorted(const asn_TYPE_member_t *elm, - const asn_anonymous_set_ *list, - enum SET_OF__encode_method method) { - struct _el_buffer *encoded_els; - int edx; - - encoded_els = - (struct _el_buffer *)CALLOC(list->count, sizeof(encoded_els[0])); - if(encoded_els == NULL) { - return NULL; - } - - /* - * Encode all members. - */ - for(edx = 0; edx < list->count; edx++) { - const void *memb_ptr = list->array[edx]; - struct _el_buffer *encoding_el = &encoded_els[edx]; - asn_enc_rval_t erval = {0,0,0}; - - if(!memb_ptr) break; - - /* - * Encode the member into the prepared space. - */ - switch(method) { - case SOES_DER: - erval = elm->type->op->der_encoder(elm->type, memb_ptr, 0, elm->tag, - _el_addbytes, encoding_el); - break; - case SOES_CUPER: - erval = uper_encode(elm->type, - elm->encoding_constraints.per_constraints, - memb_ptr, _el_addbytes, encoding_el); - if(erval.encoded != -1) { - size_t extra_bits = erval.encoded % 8; - assert(encoding_el->length == (size_t)(erval.encoded + 7) / 8); - encoding_el->bits_unused = (8 - extra_bits) & 0x7; - } - break; - default: - assert(!"Unreachable"); - break; - } - if(erval.encoded < 0) break; - } - - if(edx == list->count) { - /* - * Sort the encoded elements according to their encoding. - */ - qsort(encoded_els, list->count, sizeof(encoded_els[0]), _el_buf_cmp); - - return encoded_els; - } else { - SET_OF__encode_sorted_free(encoded_els, edx); - return NULL; - } -} - - -/* - * The DER encoder of the SET OF type. - */ -asn_enc_rval_t -SET_OF_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, - void *app_key) { - const asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); - size_t computed_size = 0; - ssize_t encoding_size = 0; - struct _el_buffer *encoded_els; - int edx; - - ASN_DEBUG("Estimating size for SET OF %s", td->name); - - /* - * Gather the length of the underlying members sequence. - */ - for(edx = 0; edx < list->count; edx++) { - void *memb_ptr = list->array[edx]; - asn_enc_rval_t erval = {0,0,0}; - - if(!memb_ptr) ASN__ENCODE_FAILED; - - erval = - elm->type->op->der_encoder(elm->type, memb_ptr, 0, elm->tag, 0, 0); - if(erval.encoded == -1) return erval; - computed_size += erval.encoded; - } - - - /* - * Encode the TLV for the sequence itself. - */ - encoding_size = - der_write_tags(td, computed_size, tag_mode, 1, tag, cb, app_key); - if(encoding_size < 0) { - ASN__ENCODE_FAILED; - } - computed_size += encoding_size; - - if(!cb || list->count == 0) { - asn_enc_rval_t erval = {0,0,0}; - erval.encoded = computed_size; - ASN__ENCODED_OK(erval); - } - - ASN_DEBUG("Encoding members of %s SET OF", td->name); - - /* - * DER mandates dynamic sorting of the SET OF elements - * according to their encodings. Build an array of the - * encoded elements. - */ - encoded_els = SET_OF__encode_sorted(elm, list, SOES_DER); - - /* - * Report encoded elements to the application. - * Dispose of temporary sorted members table. - */ - for(edx = 0; edx < list->count; edx++) { - struct _el_buffer *encoded_el = &encoded_els[edx]; - /* Report encoded chunks to the application */ - if(cb(encoded_el->buf, encoded_el->length, app_key) < 0) { - break; - } else { - encoding_size += encoded_el->length; - } - } - - SET_OF__encode_sorted_free(encoded_els, list->count); - - if(edx == list->count) { - asn_enc_rval_t erval = {0,0,0}; - assert(computed_size == (size_t)encoding_size); - erval.encoded = computed_size; - ASN__ENCODED_OK(erval); - } else { - ASN__ENCODE_FAILED; - } -} - -#undef XER_ADVANCE -#define XER_ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - buf_ptr = ((const char *)buf_ptr) + num;\ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Decode the XER (XML) data. - */ -asn_dec_rval_t -SET_OF_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const char *opt_mname, const void *buf_ptr, size_t size) { - /* - * Bring closer parts of structure description. - */ - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *element = td->elements; - const char *elm_tag; - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - - /* - * ... and parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - asn_dec_rval_t rval = {RC_OK, 0};/* Return value from a decoder */ - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) RETURN(RC_FAIL); - } - - /* Which tag is expected for the downstream */ - if(specs->as_XMLValueList) { - elm_tag = (specs->as_XMLValueList == 1) ? 0 : ""; - } else { - elm_tag = (*element->name) - ? element->name : element->type->xml_tag; - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Phases of XER/XML processing: - * Phase 0: Check that the opening tag matches our expectations. - * Phase 1: Processing body and reacting on closing tag. - * Phase 2: Processing inner type. - */ - for(; ctx->phase <= 2;) { - pxer_chunk_type_e ch_type; /* XER chunk type */ - ssize_t ch_size; /* Chunk size */ - xer_check_tag_e tcv; /* Tag check value */ - - /* - * Go inside the inner member of a set. - */ - if(ctx->phase == 2) { - asn_dec_rval_t tmprval = {RC_OK, 0}; - - /* Invoke the inner type decoder, m.b. multiple times */ - ASN_DEBUG("XER/SET OF element [%s]", elm_tag); - tmprval = element->type->op->xer_decoder(opt_codec_ctx, - element->type, &ctx->ptr, elm_tag, - buf_ptr, size); - if(tmprval.code == RC_OK) { - asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); - if(ASN_SET_ADD(list, ctx->ptr) != 0) - RETURN(RC_FAIL); - ctx->ptr = 0; - XER_ADVANCE(tmprval.consumed); - } else { - XER_ADVANCE(tmprval.consumed); - RETURN(tmprval.code); - } - ctx->phase = 1; /* Back to body processing */ - ASN_DEBUG("XER/SET OF phase => %d", ctx->phase); - /* Fall through */ - } - - /* - * Get the next part of the XML stream. - */ - ch_size = xer_next_token(&ctx->context, - buf_ptr, size, &ch_type); - if(ch_size == -1) { - RETURN(RC_FAIL); - } else { - switch(ch_type) { - case PXER_WMORE: - RETURN(RC_WMORE); - case PXER_COMMENT: /* Got XML comment */ - case PXER_TEXT: /* Ignore free-standing text */ - XER_ADVANCE(ch_size); /* Skip silently */ - continue; - case PXER_TAG: - break; /* Check the rest down there */ - } - } - - tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); - ASN_DEBUG("XER/SET OF: tcv = %d, ph=%d t=%s", - tcv, ctx->phase, xml_tag); - switch(tcv) { - case XCT_CLOSING: - if(ctx->phase == 0) break; - ctx->phase = 0; - /* Fall through */ - case XCT_BOTH: - if(ctx->phase == 0) { - /* No more things to decode */ - XER_ADVANCE(ch_size); - ctx->phase = 3; /* Phase out */ - RETURN(RC_OK); - } - /* Fall through */ - case XCT_OPENING: - if(ctx->phase == 0) { - XER_ADVANCE(ch_size); - ctx->phase = 1; /* Processing body phase */ - continue; - } - /* Fall through */ - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - - ASN_DEBUG("XER/SET OF: tcv=%d, ph=%d", tcv, ctx->phase); - if(ctx->phase == 1) { - /* - * Process a single possible member. - */ - ctx->phase = 2; - continue; - } - /* Fall through */ - default: - break; - } - - ASN_DEBUG("Unexpected XML tag in SET OF"); - break; - } - - ctx->phase = 3; /* "Phase out" on hard failure */ - RETURN(RC_FAIL); -} - - - -typedef struct xer_tmp_enc_s { - void *buffer; - size_t offset; - size_t size; -} xer_tmp_enc_t; -static int -SET_OF_encode_xer_callback(const void *buffer, size_t size, void *key) { - xer_tmp_enc_t *t = (xer_tmp_enc_t *)key; - if(t->offset + size >= t->size) { - size_t newsize = (t->size << 2) + size; - void *p = REALLOC(t->buffer, newsize); - if(!p) return -1; - t->buffer = p; - t->size = newsize; - } - memcpy((char *)t->buffer + t->offset, buffer, size); - t->offset += size; - return 0; -} -static int -SET_OF_xer_order(const void *aptr, const void *bptr) { - const xer_tmp_enc_t *a = (const xer_tmp_enc_t *)aptr; - const xer_tmp_enc_t *b = (const xer_tmp_enc_t *)bptr; - size_t minlen = a->offset; - int ret; - if(b->offset < minlen) minlen = b->offset; - /* Well-formed UTF-8 has this nice lexicographical property... */ - ret = memcmp(a->buffer, b->buffer, minlen); - if(ret != 0) return ret; - if(a->offset == b->offset) - return 0; - if(a->offset == minlen) - return -1; - return 1; -} - - -asn_enc_rval_t -SET_OF_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, - void *app_key) { - asn_enc_rval_t er = {0,0,0}; - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); - const char *mname = specs->as_XMLValueList - ? 0 : ((*elm->name) ? elm->name : elm->type->xml_tag); - size_t mlen = mname ? strlen(mname) : 0; - int xcan = (flags & XER_F_CANONICAL); - xer_tmp_enc_t *encs = 0; - size_t encs_count = 0; - void *original_app_key = app_key; - asn_app_consume_bytes_f *original_cb = cb; - int i; - - if(!sptr) ASN__ENCODE_FAILED; - - if(xcan) { - encs = (xer_tmp_enc_t *)MALLOC(list->count * sizeof(encs[0])); - if(!encs) ASN__ENCODE_FAILED; - cb = SET_OF_encode_xer_callback; - } - - er.encoded = 0; - - for(i = 0; i < list->count; i++) { - asn_enc_rval_t tmper = {0,0,0}; - - void *memb_ptr = list->array[i]; - if(!memb_ptr) continue; - - if(encs) { - memset(&encs[encs_count], 0, sizeof(encs[0])); - app_key = &encs[encs_count]; - encs_count++; - } - - if(mname) { - if(!xcan) ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - } - - if(!xcan && specs->as_XMLValueList == 1) - ASN__TEXT_INDENT(1, ilevel + 1); - tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, - ilevel + (specs->as_XMLValueList != 2), - flags, cb, app_key); - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - if(tmper.encoded == 0 && specs->as_XMLValueList) { - const char *name = elm->type->xml_tag; - size_t len = strlen(name); - ASN__CALLBACK3("<", 1, name, len, "/>", 2); - } - - if(mname) { - ASN__CALLBACK3("", 1); - } - - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); - - if(encs) { - xer_tmp_enc_t *enc = encs; - xer_tmp_enc_t *end = encs + encs_count; - ssize_t control_size = 0; - - er.encoded = 0; - cb = original_cb; - app_key = original_app_key; - qsort(encs, encs_count, sizeof(encs[0]), SET_OF_xer_order); - - for(; enc < end; enc++) { - ASN__CALLBACK(enc->buffer, enc->offset); - FREEMEM(enc->buffer); - enc->buffer = 0; - control_size += enc->offset; - } - assert(control_size == er.encoded); - } - - goto cleanup; -cb_failed: - ASN__ENCODE_FAILED; -cleanup: - if(encs) { - size_t n; - for(n = 0; n < encs_count; n++) { - FREEMEM(encs[n].buffer); - } - FREEMEM(encs); - } - ASN__ENCODED_OK(er); -} - -int -SET_OF_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); - int ret; - int i; - - if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; - - /* Dump preamble */ - if(cb(td->name, strlen(td->name), app_key) < 0 - || cb(" ::= {", 6, app_key) < 0) - return -1; - - for(i = 0; i < list->count; i++) { - const void *memb_ptr = list->array[i]; - if(!memb_ptr) continue; - - _i_INDENT(1); - - ret = elm->type->op->print_struct(elm->type, memb_ptr, - ilevel + 1, cb, app_key); - if(ret) return ret; - } - - ilevel--; - _i_INDENT(1); - - return (cb("}", 1, app_key) < 0) ? -1 : 0; -} - -void -SET_OF_free(const asn_TYPE_descriptor_t *td, void *ptr, - enum asn_struct_free_method method) { - if(td && ptr) { - const asn_SET_OF_specifics_t *specs; - asn_TYPE_member_t *elm = td->elements; - asn_anonymous_set_ *list = _A_SET_FROM_VOID(ptr); - asn_struct_ctx_t *ctx; /* Decoder context */ - int i; - - /* - * Could not use set_of_empty() because of (*free) - * incompatibility. - */ - for(i = 0; i < list->count; i++) { - void *memb_ptr = list->array[i]; - if(memb_ptr) - ASN_STRUCT_FREE(*elm->type, memb_ptr); - } - list->count = 0; /* No meaningful elements left */ - - asn_set_empty(list); /* Remove (list->array) */ - - specs = (const asn_SET_OF_specifics_t *)td->specifics; - ctx = (asn_struct_ctx_t *)((char *)ptr + specs->ctx_offset); - if(ctx->ptr) { - ASN_STRUCT_FREE(*elm->type, ctx->ptr); - ctx->ptr = 0; - } - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(ptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(ptr, 0, specs->struct_size); - break; - } - } -} - -int -SET_OF_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const asn_TYPE_member_t *elm = td->elements; - asn_constr_check_f *constr; - const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); - int i; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - constr = elm->encoding_constraints.general_constraints; - if(!constr) constr = elm->type->encoding_constraints.general_constraints; - - /* - * Iterate over the members of an array. - * Validate each in turn, until one fails. - */ - for(i = 0; i < list->count; i++) { - const void *memb_ptr = list->array[i]; - int ret; - - if(!memb_ptr) continue; - - ret = constr(elm->type, memb_ptr, ctfailcb, app_key); - if(ret) return ret; - } - - return 0; -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -SET_OF_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - asn_dec_rval_t rv = {RC_OK, 0}; - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; /* Single one */ - void *st = *sptr; - asn_anonymous_set_ *list; - const asn_per_constraint_t *ct; - int repeat = 0; - ssize_t nelems; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - list = _A_SET_FROM_VOID(st); - - /* Figure out which constraints to use */ - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - int value = per_get_few_bits(pd, 1); - if(value < 0) ASN__DECODE_STARVED; - if(value) ct = 0; /* Not restricted! */ - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ - nelems = per_get_few_bits(pd, ct->effective_bits); - ASN_DEBUG("Preparing to fetch %ld+%ld elements from %s", - (long)nelems, ct->lower_bound, td->name); - if(nelems < 0) ASN__DECODE_STARVED; - nelems += ct->lower_bound; - } else { - nelems = -1; - } - - do { - int i; - if(nelems < 0) { - nelems = uper_get_length(pd, -1, 0, &repeat); - ASN_DEBUG("Got to decode %" ASN_PRI_SSIZE " elements (eff %d)", - nelems, (int)(ct ? ct->effective_bits : -1)); - if(nelems < 0) ASN__DECODE_STARVED; - } - - for(i = 0; i < nelems; i++) { - void *ptr = 0; - ASN_DEBUG("SET OF %s decoding", elm->type->name); - rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, &ptr, pd); - ASN_DEBUG("%s SET OF %s decoded %d, %p", - td->name, elm->type->name, rv.code, ptr); - if(rv.code == RC_OK) { - if(ASN_SET_ADD(list, ptr) == 0) { - if(rv.consumed == 0 && nelems > 200) { - /* Protect from SET OF NULL compression bombs. */ - ASN__DECODE_FAILED; - } - continue; - } - ASN_DEBUG("Failed to add element into %s", - td->name); - /* Fall through */ - rv.code = RC_FAIL; - } else { - ASN_DEBUG("Failed decoding %s of %s (SET OF)", - elm->type->name, td->name); - } - if(ptr) ASN_STRUCT_FREE(*elm->type, ptr); - return rv; - } - - nelems = -1; /* Allow uper_get_length() */ - } while(repeat); - - ASN_DEBUG("Decoded %s as SET OF", td->name); - - rv.code = RC_OK; - rv.consumed = 0; - return rv; -} - -asn_enc_rval_t -SET_OF_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const asn_anonymous_set_ *list; - const asn_per_constraint_t *ct; - const asn_TYPE_member_t *elm = td->elements; - struct _el_buffer *encoded_els; - asn_enc_rval_t er = {0,0,0}; - size_t encoded_edx; - - if(!sptr) ASN__ENCODE_FAILED; - - list = _A_CSET_FROM_VOID(sptr); - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE OF (%d)", td->name, list->count); - - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - /* If extensible constraint, check if size is in root */ - if(ct) { - int not_in_root = - (list->count < ct->lower_bound || list->count > ct->upper_bound); - ASN_DEBUG("lb %ld ub %ld %s", ct->lower_bound, ct->upper_bound, - ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); - if(ct->flags & APC_EXTENSIBLE) { - /* Declare whether size is in extension root */ - if(per_put_few_bits(po, not_in_root, 1)) ASN__ENCODE_FAILED; - if(not_in_root) ct = 0; - } else if(not_in_root && ct->effective_bits >= 0) { - ASN__ENCODE_FAILED; - } - - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ - if(per_put_few_bits(po, list->count - ct->lower_bound, - ct->effective_bits)) - ASN__ENCODE_FAILED; - } else if(list->count == 0) { - /* When the list is empty add only the length determinant - * X.691, #20.6 and #11.9.4.1 - */ - if (uper_put_length(po, 0, 0)) { - ASN__ENCODE_FAILED; - } - ASN__ENCODED_OK(er); - } - - - /* - * Canonical UPER #22.1 mandates dynamic sorting of the SET OF elements - * according to their encodings. Build an array of the encoded elements. - */ - encoded_els = SET_OF__encode_sorted(elm, list, SOES_CUPER); - - for(encoded_edx = 0; (ssize_t)encoded_edx < list->count;) { - ssize_t may_encode; - size_t edx; - int need_eom = 0; - - if(ct && ct->effective_bits >= 0) { - may_encode = list->count; - } else { - may_encode = - uper_put_length(po, list->count - encoded_edx, &need_eom); - if(may_encode < 0) ASN__ENCODE_FAILED; - } - - for(edx = encoded_edx; edx < encoded_edx + may_encode; edx++) { - const struct _el_buffer *el = &encoded_els[edx]; - if(asn_put_many_bits(po, el->buf, - (8 * el->length) - el->bits_unused) < 0) { - break; - } - } - - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - - encoded_edx += may_encode; - } - - SET_OF__encode_sorted_free(encoded_els, list->count); - - if((ssize_t)encoded_edx == list->count) { - ASN__ENCODED_OK(er); - } else { - ASN__ENCODE_FAILED; - } -} - -asn_dec_rval_t -SET_OF_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - asn_dec_rval_t rv = {RC_OK, 0}; - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; /* Single one */ - void *st = *sptr; - asn_anonymous_set_ *list; - const asn_per_constraint_t *ct; - int repeat = 0; - ssize_t nelems; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - list = _A_SET_FROM_VOID(st); - - /* Figure out which constraints to use */ - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - int value = per_get_few_bits(pd, 1); - if(value < 0) ASN__DECODE_STARVED; - if(value) ct = 0; /* Not restricted! */ - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ - nelems = aper_get_nsnnwn(pd, ct->upper_bound - ct->lower_bound + 1); - ASN_DEBUG("Preparing to fetch %ld+%ld elements from %s", - (long)nelems, ct->lower_bound, td->name); - if(nelems < 0) ASN__DECODE_STARVED; - nelems += ct->lower_bound; - } else { - nelems = -1; - } - - do { - int i; - if(nelems < 0) { - nelems = aper_get_length(pd, ct ? ct->upper_bound - ct->lower_bound + 1 : -1, - ct ? ct->effective_bits : -1, &repeat); - ASN_DEBUG("Got to decode %d elements (eff %d)", - (int)nelems, (int)(ct ? ct->effective_bits : -1)); - if(nelems < 0) ASN__DECODE_STARVED; - } - - for(i = 0; i < nelems; i++) { - void *ptr = 0; - ASN_DEBUG("SET OF %s decoding", elm->type->name); - rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, &ptr, pd); - ASN_DEBUG("%s SET OF %s decoded %d, %p", - td->name, elm->type->name, rv.code, ptr); - if(rv.code == RC_OK) { - if(ASN_SET_ADD(list, ptr) == 0) - continue; - ASN_DEBUG("Failed to add element into %s", - td->name); - /* Fall through */ - rv.code = RC_FAIL; - } else { - ASN_DEBUG("Failed decoding %s of %s (SET OF)", - elm->type->name, td->name); - } - if(ptr) ASN_STRUCT_FREE(*elm->type, ptr); - return rv; - } - - nelems = -1; /* Allow uper_get_length() */ - } while(repeat); - - ASN_DEBUG("Decoded %s as SET OF", td->name); - - rv.code = RC_OK; - rv.consumed = 0; - return rv; -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -struct comparable_ptr { - const asn_TYPE_descriptor_t *td; - const void *sptr; -}; - -static int -SET_OF__compare_cb(const void *aptr, const void *bptr) { - const struct comparable_ptr *a = aptr; - const struct comparable_ptr *b = bptr; - assert(a->td == b->td); - return a->td->op->compare_struct(a->td, a->sptr, b->sptr); -} - -int -SET_OF_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - const asn_anonymous_set_ *a = _A_CSET_FROM_VOID(aptr); - const asn_anonymous_set_ *b = _A_CSET_FROM_VOID(bptr); - - if(a && b) { - struct comparable_ptr *asorted; - struct comparable_ptr *bsorted; - ssize_t common_length; - ssize_t idx; - - if(a->count == 0) { - if(b->count) return -1; - return 0; - } else if(b->count == 0) { - return 1; - } - - asorted = MALLOC(a->count * sizeof(asorted[0])); - bsorted = MALLOC(b->count * sizeof(bsorted[0])); - if(!asorted || !bsorted) { - FREEMEM(asorted); - FREEMEM(bsorted); - return -1; - } - - for(idx = 0; idx < a->count; idx++) { - asorted[idx].td = td->elements->type; - asorted[idx].sptr = a->array[idx]; - } - - for(idx = 0; idx < b->count; idx++) { - bsorted[idx].td = td->elements->type; - bsorted[idx].sptr = b->array[idx]; - } - - qsort(asorted, a->count, sizeof(asorted[0]), SET_OF__compare_cb); - qsort(bsorted, b->count, sizeof(bsorted[0]), SET_OF__compare_cb); - - common_length = (a->count < b->count ? a->count : b->count); - for(idx = 0; idx < common_length; idx++) { - int ret = td->elements->type->op->compare_struct( - td->elements->type, asorted[idx].sptr, bsorted[idx].sptr); - if(ret) { - FREEMEM(asorted); - FREEMEM(bsorted); - return ret; - } - } - - FREEMEM(asorted); - FREEMEM(bsorted); - - if(idx < b->count) /* more elements in b */ - return -1; /* a is shorter, so put it first */ - if(idx < a->count) return 1; - } else if(!a) { - return -1; - } else if(!b) { - return 1; - } - - return 0; -} - - -asn_TYPE_operation_t asn_OP_SET_OF = { - SET_OF_free, - SET_OF_print, - SET_OF_compare, - SET_OF_decode_ber, - SET_OF_encode_der, - SET_OF_decode_xer, - SET_OF_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - SET_OF_decode_oer, - SET_OF_encode_oer, -#endif -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - SET_OF_decode_uper, - SET_OF_encode_uper, - SET_OF_decode_aper, - 0, /* SET_OF_encode_aper */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - SET_OF_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; - - -asn_random_fill_result_t -SET_OF_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_SET_OF_specifics_t *specs = - (const asn_SET_OF_specifics_t *)td->specifics; - asn_random_fill_result_t res_ok = {ARFILL_OK, 0}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - const asn_TYPE_member_t *elm = td->elements; - void *st = *sptr; - long max_elements = 5; - long slb = 0; /* Lower size bound */ - long sub = 0; /* Upper size bound */ - size_t rnd_len; - - if(max_length == 0) return result_skipped; - - if(st == NULL) { - st = (*sptr = CALLOC(1, specs->struct_size)); - if(st == NULL) { - return result_failed; - } - } - - switch(asn_random_between(0, 6)) { - case 0: max_elements = 0; break; - case 1: max_elements = 1; break; - case 2: max_elements = 5; break; - case 3: max_elements = max_length; break; - case 4: max_elements = max_length / 2; break; - case 5: max_elements = max_length / 4; break; - default: break; - } - sub = slb + max_elements; - - if(!constraints || !constraints->per_constraints) - constraints = &td->encoding_constraints; - if(constraints->per_constraints) { - const asn_per_constraint_t *pc = &constraints->per_constraints->size; - if(pc->flags & APC_SEMI_CONSTRAINED) { - slb = pc->lower_bound; - sub = pc->lower_bound + max_elements; - } else if(pc->flags & APC_CONSTRAINED) { - slb = pc->lower_bound; - sub = pc->upper_bound; - if(sub - slb > max_elements) sub = slb + max_elements; - } - } - - /* Bias towards edges of allowed space */ - switch(asn_random_between(-1, 4)) { - default: - case -1: - /* Prepare lengths somewhat outside of constrained range. */ - if(constraints->per_constraints - && (constraints->per_constraints->size.flags & APC_EXTENSIBLE)) { - switch(asn_random_between(0, 5)) { - default: - case 0: - rnd_len = 0; - break; - case 1: - if(slb > 0) { - rnd_len = slb - 1; - } else { - rnd_len = 0; - } - break; - case 2: - rnd_len = asn_random_between(0, slb); - break; - case 3: - if(sub < (ssize_t)max_length) { - rnd_len = sub + 1; - } else { - rnd_len = max_length; - } - break; - case 4: - if(sub < (ssize_t)max_length) { - rnd_len = asn_random_between(sub + 1, max_length); - } else { - rnd_len = max_length; - } - break; - case 5: - rnd_len = max_length; - break; - } - break; - } - /* Fall through */ - case 0: - rnd_len = asn_random_between(slb, sub); - break; - case 1: - if(slb < sub) { - rnd_len = asn_random_between(slb + 1, sub); - break; - } - /* Fall through */ - case 2: - rnd_len = asn_random_between(slb, slb); - break; - case 3: - if(slb < sub) { - rnd_len = asn_random_between(slb, sub - 1); - break; - } - /* Fall through */ - case 4: - rnd_len = asn_random_between(sub, sub); - break; - } - - for(; rnd_len > 0; rnd_len--) { - asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); - void *ptr = 0; - asn_random_fill_result_t tmpres = elm->type->op->random_fill( - elm->type, &ptr, &elm->encoding_constraints, - (max_length > res_ok.length ? max_length - res_ok.length : 0) - / rnd_len); - switch(tmpres.code) { - case ARFILL_OK: - ASN_SET_ADD(list, ptr); - res_ok.length += tmpres.length; - break; - case ARFILL_SKIPPED: - break; - case ARFILL_FAILED: - assert(ptr == 0); - return tmpres; - } - } - - return res_ok; -} - diff --git a/e2sim/src/ASN1c/constr_SET_OF.h b/e2sim/src/ASN1c/constr_SET_OF.h deleted file mode 100644 index 7681062..0000000 --- a/e2sim/src/ASN1c/constr_SET_OF.h +++ /dev/null @@ -1,49 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef CONSTR_SET_OF_H -#define CONSTR_SET_OF_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct asn_SET_OF_specifics_s { - /* - * Target structure description. - */ - unsigned struct_size; /* Size of the target structure. */ - unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ - - /* XER-specific stuff */ - int as_XMLValueList; /* The member type must be encoded like this */ -} asn_SET_OF_specifics_t; - -/* - * A set specialized functions dealing with the SET OF type. - */ -asn_struct_free_f SET_OF_free; -asn_struct_print_f SET_OF_print; -asn_struct_compare_f SET_OF_compare; -asn_constr_check_f SET_OF_constraint; -ber_type_decoder_f SET_OF_decode_ber; -der_type_encoder_f SET_OF_encode_der; -xer_type_decoder_f SET_OF_decode_xer; -xer_type_encoder_f SET_OF_encode_xer; -oer_type_decoder_f SET_OF_decode_oer; -oer_type_encoder_f SET_OF_encode_oer; -per_type_decoder_f SET_OF_decode_uper; -per_type_encoder_f SET_OF_encode_uper; -per_type_decoder_f SET_OF_decode_aper; -per_type_encoder_f SET_OF_encode_aper; -asn_random_fill_f SET_OF_random_fill; -extern asn_TYPE_operation_t asn_OP_SET_OF; - -#ifdef __cplusplus -} -#endif - -#endif /* CONSTR_SET_OF_H */ diff --git a/e2sim/src/ASN1c/constr_TYPE.c b/e2sim/src/ASN1c/constr_TYPE.c deleted file mode 100644 index aefaefd..0000000 --- a/e2sim/src/ASN1c/constr_TYPE.c +++ /dev/null @@ -1,80 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Version of the ASN.1 infrastructure shipped with compiler. - */ -int get_asn1c_environment_version() { return ASN1C_ENVIRONMENT_VERSION; } - -static asn_app_consume_bytes_f _print2fp; - -/* - * Return the outmost tag of the type. - */ -ber_tlv_tag_t -asn_TYPE_outmost_tag(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, int tag_mode, ber_tlv_tag_t tag) { - - if(tag_mode) - return tag; - - if(type_descriptor->tags_count) - return type_descriptor->tags[0]; - - return type_descriptor->op->outmost_tag(type_descriptor, struct_ptr, 0, 0); -} - -/* - * Print the target language's structure in human readable form. - */ -int -asn_fprint(FILE *stream, const asn_TYPE_descriptor_t *td, - const void *struct_ptr) { - if(!stream) stream = stdout; - if(!td || !struct_ptr) { - errno = EINVAL; - return -1; - } - - /* Invoke type-specific printer */ - if(td->op->print_struct(td, struct_ptr, 1, _print2fp, stream)) { - return -1; - } - - /* Terminate the output */ - if(_print2fp("\n", 1, stream)) { - return -1; - } - - return fflush(stream); -} - -/* Dump the data into the specified stdio stream */ -static int -_print2fp(const void *buffer, size_t size, void *app_key) { - FILE *stream = (FILE *)app_key; - - if(fwrite(buffer, 1, size, stream) != size) - return -1; - - return 0; -} - - -/* - * Some compilers do not support variable args macros. - * This function is a replacement of ASN_DEBUG() macro. - */ -void ASN_DEBUG_f(const char *fmt, ...); -void ASN_DEBUG_f(const char *fmt, ...) { - va_list ap; - va_start(ap, fmt); - vfprintf(stderr, fmt, ap); - fprintf(stderr, "\n"); - va_end(ap); -} diff --git a/e2sim/src/ASN1c/constr_TYPE.h b/e2sim/src/ASN1c/constr_TYPE.h deleted file mode 100644 index d80dea5..0000000 --- a/e2sim/src/ASN1c/constr_TYPE.h +++ /dev/null @@ -1,262 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * This file contains the declaration structure called "ASN.1 Type Definition", - * which holds all information necessary for encoding and decoding routines. - * This structure even contains pointer to these encoding and decoding routines - * for each defined ASN.1 type. - */ -#ifndef _CONSTR_TYPE_H_ -#define _CONSTR_TYPE_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ -struct asn_TYPE_member_s; /* Forward declaration */ - -/* - * This type provides the context information for various ASN.1 routines, - * primarily ones doing decoding. A member _asn_ctx of this type must be - * included into certain target language's structures, such as compound types. - */ -typedef struct asn_struct_ctx_s { - short phase; /* Decoding phase */ - short step; /* Elementary step of a phase */ - int context; /* Other context information */ - void *ptr; /* Decoder-specific stuff (stack elements) */ - ber_tlv_len_t left; /* Number of bytes left, -1 for indefinite */ -} asn_struct_ctx_t; - -#include /* Basic Encoding Rules decoder */ -#include /* Distinguished Encoding Rules encoder */ -#include /* Decoder of XER (XML, text) */ -#include /* Encoder into XER (XML, text) */ -#include /* Packet Encoding Rules decoder */ -#include /* Packet Encoding Rules encoder */ -#include /* Subtype constraints support */ -#include /* Random structures support */ - -#ifdef ASN_DISABLE_OER_SUPPORT -typedef void (oer_type_decoder_f)(void); -typedef void (oer_type_encoder_f)(void); -typedef void asn_oer_constraints_t; -#else -#include /* Octet Encoding Rules encoder */ -#include /* Octet Encoding Rules encoder */ -#endif - -/* - * Free the structure according to its specification. - * Use one of ASN_STRUCT_{FREE,RESET,CONTENTS_ONLY} macros instead. - * Do not use directly. - */ -enum asn_struct_free_method { - ASFM_FREE_EVERYTHING, /* free(struct_ptr) and underlying members */ - ASFM_FREE_UNDERLYING, /* free underlying members */ - ASFM_FREE_UNDERLYING_AND_RESET /* FREE_UNDERLYING + memset(0) */ -}; -typedef void (asn_struct_free_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - void *struct_ptr, enum asn_struct_free_method); - -/* - * Free the structure including freeing the memory pointed to by ptr itself. - */ -#define ASN_STRUCT_FREE(asn_DEF, ptr) \ - (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_EVERYTHING) - -/* - * Free the memory used by the members of the structure without freeing the - * the structure pointer itself. - * ZERO-OUT the structure to the safe clean state. - * (Retaining the pointer may be useful in case the structure is allocated - * statically or arranged on the stack, yet its elements are dynamic.) - */ -#define ASN_STRUCT_RESET(asn_DEF, ptr) \ - (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_UNDERLYING_AND_RESET) - -/* - * Free memory used by the members of the structure without freeing - * the structure pointer itself. - * (Retaining the pointer may be useful in case the structure is allocated - * statically or arranged on the stack, yet its elements are dynamic.) - * AVOID using it in the application code; - * Use a safer ASN_STRUCT_RESET() instead. - */ -#define ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF, ptr) \ - (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_UNDERLYING) - -/* - * Print the structure according to its specification. - */ -typedef int(asn_struct_print_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, - int level, /* Indentation level */ - asn_app_consume_bytes_f *callback, void *app_key); - -/* - * Compare two structs between each other. - * Returns <0 if struct_A is "smaller" than struct_B, >0 if "greater", - * and =0 if "equal to", for some type-specific, stable definition of - * "smaller", "greater" and "equal to". - */ -typedef int (asn_struct_compare_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_A, - const void *struct_B); - -/* - * Return the outmost tag of the type. - * If the type is untagged CHOICE, the dynamic operation is performed. - * NOTE: This function pointer type is only useful internally. - * Do not use it in your application. - */ -typedef ber_tlv_tag_t (asn_outmost_tag_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, int tag_mode, ber_tlv_tag_t tag); -/* The instance of the above function type; used internally. */ -asn_outmost_tag_f asn_TYPE_outmost_tag; - -/* - * Fetch the desired type of the Open Type based on the - * Information Object Set driven constraints. - */ -typedef struct asn_type_selector_result_s { - const struct asn_TYPE_descriptor_s *type_descriptor; /* Type encoded. */ - unsigned presence_index; /* Associated choice variant. */ -} asn_type_selector_result_t; -typedef asn_type_selector_result_t(asn_type_selector_f)( - const struct asn_TYPE_descriptor_s *parent_type_descriptor, - const void *parent_structure_ptr); - -/* - * Generalized functions for dealing with the speciic type. - * May be directly invoked by applications. - */ -typedef struct asn_TYPE_operation_s { - asn_struct_free_f *free_struct; /* Free the structure */ - asn_struct_print_f *print_struct; /* Human readable output */ - asn_struct_compare_f *compare_struct; /* Compare two structures */ - ber_type_decoder_f *ber_decoder; /* Generic BER decoder */ - der_type_encoder_f *der_encoder; /* Canonical DER encoder */ - xer_type_decoder_f *xer_decoder; /* Generic XER decoder */ - xer_type_encoder_f *xer_encoder; /* [Canonical] XER encoder */ - oer_type_decoder_f *oer_decoder; /* Generic OER decoder */ - oer_type_encoder_f *oer_encoder; /* Canonical OER encoder */ - per_type_decoder_f *uper_decoder; /* Unaligned PER decoder */ - per_type_encoder_f *uper_encoder; /* Unaligned PER encoder */ - per_type_decoder_f *aper_decoder; /* Aligned PER decoder */ - per_type_encoder_f *aper_encoder; /* Aligned PER encoder */ - asn_random_fill_f *random_fill; /* Initialize with a random value */ - asn_outmost_tag_f *outmost_tag; /* */ -} asn_TYPE_operation_t; - -/* - * A constraints tuple specifying both the OER and PER constraints. - */ -typedef struct asn_encoding_constraints_s { - const struct asn_oer_constraints_s *oer_constraints; - const struct asn_per_constraints_s *per_constraints; - asn_constr_check_f *general_constraints; -} asn_encoding_constraints_t; - -/* - * The definitive description of the destination language's structure. - */ -typedef struct asn_TYPE_descriptor_s { - const char *name; /* A name of the ASN.1 type. "" in some cases. */ - const char *xml_tag; /* Name used in XML tag */ - - /* - * Generalized functions for dealing with the specific type. - * May be directly invoked by applications. - */ - asn_TYPE_operation_t *op; - - /*********************************************************************** - * Internally useful members. Not to be used by applications directly. * - **********************************************************************/ - - /* - * Tags that are expected to occur. - */ - const ber_tlv_tag_t *tags; /* Effective tags sequence for this type */ - unsigned tags_count; /* Number of tags which are expected */ - const ber_tlv_tag_t *all_tags; /* Every tag for BER/containment */ - unsigned all_tags_count; /* Number of tags */ - - /* OER, PER, and general constraints */ - asn_encoding_constraints_t encoding_constraints; - - /* - * An ASN.1 production type members (members of SEQUENCE, SET, CHOICE). - */ - struct asn_TYPE_member_s *elements; - unsigned elements_count; - - /* - * Additional information describing the type, used by appropriate - * functions above. - */ - const void *specifics; -} asn_TYPE_descriptor_t; - -/* - * This type describes an element of the constructed type, - * i.e. SEQUENCE, SET, CHOICE, etc. - */ - enum asn_TYPE_flags_e { - ATF_NOFLAGS, - ATF_POINTER = 0x01, /* Represented by the pointer */ - ATF_OPEN_TYPE = 0x02, /* Open Type */ - ATF_ANY_TYPE = 0x04 /* ANY type (deprecated!) */ - }; -typedef struct asn_TYPE_member_s { - enum asn_TYPE_flags_e flags; /* Element's presentation flags */ - unsigned optional; /* Following optional members, including current */ - unsigned memb_offset; /* Offset of the element */ - ber_tlv_tag_t tag; /* Outmost (most immediate) tag */ - int tag_mode; /* IMPLICIT/no/EXPLICIT tag at current level */ - asn_TYPE_descriptor_t *type; /* Member type descriptor */ - asn_type_selector_f *type_selector; /* IoS runtime type selector */ - asn_encoding_constraints_t encoding_constraints; - int (*default_value_cmp)(const void *sptr); /* Compare DEFAULT */ - int (*default_value_set)(void **sptr); /* Set DEFAULT */ - const char *name; /* ASN.1 identifier of the element */ -} asn_TYPE_member_t; - -/* - * BER tag to element number mapping. - */ -typedef struct asn_TYPE_tag2member_s { - ber_tlv_tag_t el_tag; /* Outmost tag of the member */ - unsigned el_no; /* Index of the associated member, base 0 */ - int toff_first; /* First occurence of the el_tag, relative */ - int toff_last; /* Last occurence of the el_tag, relative */ -} asn_TYPE_tag2member_t; - -/* - * This function prints out the contents of the target language's structure - * (struct_ptr) into the file pointer (stream) in human readable form. - * RETURN VALUES: - * 0: The structure is printed. - * -1: Problem dumping the structure. - * (See also xer_fprint() in xer_encoder.h) - */ -int asn_fprint(FILE *stream, /* Destination stream descriptor */ - const asn_TYPE_descriptor_t *td, /* ASN.1 type descriptor */ - const void *struct_ptr); /* Structure to be printed */ - -#ifdef __cplusplus -} -#endif - -#endif /* _CONSTR_TYPE_H_ */ diff --git a/e2sim/src/ASN1c/constraints.c b/e2sim/src/ASN1c/constraints.c deleted file mode 100644 index df3c6c1..0000000 --- a/e2sim/src/ASN1c/constraints.c +++ /dev/null @@ -1,93 +0,0 @@ -#include -#include - -int -asn_generic_no_constraint(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, - asn_app_constraint_failed_f *cb, void *key) { - (void)type_descriptor; /* Unused argument */ - (void)struct_ptr; /* Unused argument */ - (void)cb; /* Unused argument */ - (void)key; /* Unused argument */ - - /* Nothing to check */ - return 0; -} - -int -asn_generic_unknown_constraint(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, - asn_app_constraint_failed_f *cb, void *key) { - (void)type_descriptor; /* Unused argument */ - (void)struct_ptr; /* Unused argument */ - (void)cb; /* Unused argument */ - (void)key; /* Unused argument */ - - /* Unknown how to check */ - return 0; -} - -struct errbufDesc { - const asn_TYPE_descriptor_t *failed_type; - const void *failed_struct_ptr; - char *errbuf; - size_t errlen; -}; - -static void -_asn_i_ctfailcb(void *key, const asn_TYPE_descriptor_t *td, const void *sptr, - const char *fmt, ...) { - struct errbufDesc *arg = key; - va_list ap; - ssize_t vlen; - ssize_t maxlen; - - arg->failed_type = td; - arg->failed_struct_ptr = sptr; - - maxlen = arg->errlen; - if(maxlen <= 0) - return; - - va_start(ap, fmt); - vlen = vsnprintf(arg->errbuf, maxlen, fmt, ap); - va_end(ap); - if(vlen >= maxlen) { - arg->errbuf[maxlen-1] = '\0'; /* Ensuring libc correctness */ - arg->errlen = maxlen - 1; /* Not counting termination */ - return; - } else if(vlen >= 0) { - arg->errbuf[vlen] = '\0'; /* Ensuring libc correctness */ - arg->errlen = vlen; /* Not counting termination */ - } else { - /* - * The libc on this system is broken. - */ - vlen = sizeof("") - 1; - maxlen--; - arg->errlen = vlen < maxlen ? vlen : maxlen; - memcpy(arg->errbuf, "", arg->errlen); - arg->errbuf[arg->errlen] = 0; - } - - return; -} - -int -asn_check_constraints(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, char *errbuf, size_t *errlen) { - struct errbufDesc arg; - int ret; - - arg.failed_type = 0; - arg.failed_struct_ptr = 0; - arg.errbuf = errbuf; - arg.errlen = errlen ? *errlen : 0; - - ret = type_descriptor->encoding_constraints.general_constraints( - type_descriptor, struct_ptr, _asn_i_ctfailcb, &arg); - if(ret == -1 && errlen) *errlen = arg.errlen; - - return ret; -} - diff --git a/e2sim/src/ASN1c/constraints.h b/e2sim/src/ASN1c/constraints.h deleted file mode 100644 index 0bd86a9..0000000 --- a/e2sim/src/ASN1c/constraints.h +++ /dev/null @@ -1,62 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN1_CONSTRAINTS_VALIDATOR_H -#define ASN1_CONSTRAINTS_VALIDATOR_H - -#include /* Platform-dependent types */ - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * Validate the structure according to the ASN.1 constraints. - * If errbuf and errlen are given, they shall be pointing to the appropriate - * buffer space and its length before calling this function. Alternatively, - * they could be passed as NULL's. If constraints validation fails, - * errlen will contain the actual number of bytes taken from the errbuf - * to encode an error message (properly 0-terminated). - * - * RETURN VALUES: - * This function returns 0 in case all ASN.1 constraints are met - * and -1 if one or more constraints were failed. - */ -int asn_check_constraints( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Target language's structure */ - char *errbuf, /* Returned error description */ - size_t *errlen /* Length of the error description */ -); - - -/* - * Generic type for constraint checking callback, - * associated with every type descriptor. - */ -typedef int(asn_constr_check_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, const void *struct_ptr, - asn_app_constraint_failed_f *optional_callback, /* Log the error */ - void *optional_app_key /* Opaque key passed to a callback */ -); - -/******************************* - * INTERNALLY USEFUL FUNCTIONS * - *******************************/ - -asn_constr_check_f asn_generic_no_constraint; /* No constraint whatsoever */ -asn_constr_check_f asn_generic_unknown_constraint; /* Not fully supported */ - -/* - * Invoke the callback with a complete error message. - */ -#define ASN__CTFAIL if(ctfailcb) ctfailcb - -#ifdef __cplusplus -} -#endif - -#endif /* ASN1_CONSTRAINTS_VALIDATOR_H */ diff --git a/e2sim/src/ASN1c/der_encoder.c b/e2sim/src/ASN1c/der_encoder.c deleted file mode 100644 index 2c6a6f7..0000000 --- a/e2sim/src/ASN1c/der_encoder.c +++ /dev/null @@ -1,194 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -static ssize_t der_write_TL(ber_tlv_tag_t tag, ber_tlv_len_t len, - asn_app_consume_bytes_f *cb, void *app_key, int constructed); - -/* - * The DER encoder of any type. - */ -asn_enc_rval_t -der_encode(const asn_TYPE_descriptor_t *type_descriptor, const void *struct_ptr, - asn_app_consume_bytes_f *consume_bytes, void *app_key) { - ASN_DEBUG("DER encoder invoked for %s", - type_descriptor->name); - - /* - * Invoke type-specific encoder. - */ - return type_descriptor->op->der_encoder( - type_descriptor, struct_ptr, /* Pointer to the destination structure */ - 0, 0, consume_bytes, app_key); -} - -/* - * Argument type and callback necessary for der_encode_to_buffer(). - */ -typedef struct enc_to_buf_arg { - void *buffer; - size_t left; -} enc_to_buf_arg; -static int encode_to_buffer_cb(const void *buffer, size_t size, void *key) { - enc_to_buf_arg *arg = (enc_to_buf_arg *)key; - - if(arg->left < size) - return -1; /* Data exceeds the available buffer size */ - - memcpy(arg->buffer, buffer, size); - arg->buffer = ((char *)arg->buffer) + size; - arg->left -= size; - - return 0; -} - -/* - * A variant of the der_encode() which encodes the data into the provided buffer - */ -asn_enc_rval_t -der_encode_to_buffer(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, void *buffer, size_t buffer_size) { - enc_to_buf_arg arg; - asn_enc_rval_t ec; - - arg.buffer = buffer; - arg.left = buffer_size; - - ec = type_descriptor->op->der_encoder(type_descriptor, - struct_ptr, /* Pointer to the destination structure */ - 0, 0, encode_to_buffer_cb, &arg); - if(ec.encoded != -1) { - assert(ec.encoded == (ssize_t)(buffer_size - arg.left)); - /* Return the encoded contents size */ - } - return ec; -} - - -/* - * Write out leading TL[v] sequence according to the type definition. - */ -ssize_t -der_write_tags(const asn_TYPE_descriptor_t *sd, size_t struct_length, - int tag_mode, int last_tag_form, - ber_tlv_tag_t tag, /* EXPLICIT or IMPLICIT tag */ - asn_app_consume_bytes_f *cb, void *app_key) { -#define ASN1_DER_MAX_TAGS_COUNT 4 - ber_tlv_tag_t - tags_buf_scratch[ASN1_DER_MAX_TAGS_COUNT * sizeof(ber_tlv_tag_t)]; - ssize_t lens[ASN1_DER_MAX_TAGS_COUNT * sizeof(ssize_t)]; - const ber_tlv_tag_t *tags; /* Copy of tags stream */ - int tags_count; /* Number of tags */ - size_t overall_length; - int i; - - ASN_DEBUG("Writing tags (%s, tm=%d, tc=%d, tag=%s, mtc=%d)", - sd->name, tag_mode, sd->tags_count, - ber_tlv_tag_string(tag), - tag_mode - ?(sd->tags_count+1 - -((tag_mode == -1) && sd->tags_count)) - :sd->tags_count - ); - - if(sd->tags_count + 1 > ASN1_DER_MAX_TAGS_COUNT) { - ASN_DEBUG("System limit %d on tags count", ASN1_DER_MAX_TAGS_COUNT); - return -1; - } - - if(tag_mode) { - /* - * Instead of doing shaman dance like we do in ber_check_tags(), - * allocate a small array on the stack - * and initialize it appropriately. - */ - int stag_offset; - ber_tlv_tag_t *tags_buf = tags_buf_scratch; - tags_count = sd->tags_count - + 1 /* EXPLICIT or IMPLICIT tag is given */ - - ((tag_mode == -1) && sd->tags_count); - /* Copy tags over */ - tags_buf[0] = tag; - stag_offset = -1 + ((tag_mode == -1) && sd->tags_count); - for(i = 1; i < tags_count; i++) - tags_buf[i] = sd->tags[i + stag_offset]; - tags = tags_buf; - } else { - tags = sd->tags; - tags_count = sd->tags_count; - } - - /* No tags to write */ - if(tags_count == 0) - return 0; - - /* - * Array of tags is initialized. - * Now, compute the size of the TLV pairs, from right to left. - */ - overall_length = struct_length; - for(i = tags_count - 1; i >= 0; --i) { - lens[i] = der_write_TL(tags[i], overall_length, 0, 0, 0); - if(lens[i] == -1) return -1; - overall_length += lens[i]; - lens[i] = overall_length - lens[i]; - } - - if(!cb) return overall_length - struct_length; - - ASN_DEBUG("Encoding %s TL sequence (%d elements)", sd->name, - tags_count); - - /* - * Encode the TL sequence for real. - */ - for(i = 0; i < tags_count; i++) { - ssize_t len; - int _constr; - - /* Check if this tag happens to be constructed */ - _constr = (last_tag_form || i < (tags_count - 1)); - - len = der_write_TL(tags[i], lens[i], cb, app_key, _constr); - if(len == -1) return -1; - } - - return overall_length - struct_length; -} - -static ssize_t -der_write_TL(ber_tlv_tag_t tag, ber_tlv_len_t len, - asn_app_consume_bytes_f *cb, void *app_key, - int constructed) { - uint8_t buf[32]; - size_t size = 0; - int buf_size = cb?sizeof(buf):0; - ssize_t tmp; - - /* Serialize tag (T from TLV) into possibly zero-length buffer */ - tmp = ber_tlv_tag_serialize(tag, buf, buf_size); - if(tmp == -1 || tmp > (ssize_t)sizeof(buf)) return -1; - size += tmp; - - /* Serialize length (L from TLV) into possibly zero-length buffer */ - tmp = der_tlv_length_serialize(len, buf+size, buf_size?buf_size-size:0); - if(tmp == -1) return -1; - size += tmp; - - if(size > sizeof(buf)) - return -1; - - /* - * If callback is specified, invoke it, and check its return value. - */ - if(cb) { - if(constructed) *buf |= 0x20; - if(cb(buf, size, app_key) < 0) - return -1; - } - - return size; -} diff --git a/e2sim/src/ASN1c/der_encoder.h b/e2sim/src/ASN1c/der_encoder.h deleted file mode 100644 index e93944e..0000000 --- a/e2sim/src/ASN1c/der_encoder.h +++ /dev/null @@ -1,68 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _DER_ENCODER_H_ -#define _DER_ENCODER_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * The DER encoder of any type. May be invoked by the application. - * Produces DER- and BER-compliant encoding. (DER is a subset of BER). - * - * NOTE: Use the ber_decode() function (ber_decoder.h) to decode data - * produced by der_encode(). - */ -asn_enc_rval_t der_encode(const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - asn_app_consume_bytes_f *consume_bytes_cb, - void *app_key /* Arbitrary callback argument */ -); - -/* A variant of der_encode() which encodes data into the pre-allocated buffer */ -asn_enc_rval_t der_encode_to_buffer( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - void *buffer, /* Pre-allocated buffer */ - size_t buffer_size /* Initial buffer size (maximum) */ -); - -/* - * Type of the generic DER encoder. - */ -typedef asn_enc_rval_t(der_type_encoder_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - int tag_mode, /* {-1,0,1}: IMPLICIT, no, EXPLICIT */ - ber_tlv_tag_t tag, asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */ - void *app_key /* Arbitrary callback argument */ -); - - -/******************************* - * INTERNALLY USEFUL FUNCTIONS * - *******************************/ - -/* - * Write out leading TL[v] sequence according to the type definition. - */ -ssize_t der_write_tags(const struct asn_TYPE_descriptor_s *type_descriptor, - size_t struct_length, - int tag_mode, /* {-1,0,1}: IMPLICIT, no, EXPLICIT */ - int last_tag_form, /* {0,!0}: prim, constructed */ - ber_tlv_tag_t tag, - asn_app_consume_bytes_f *consume_bytes_cb, - void *app_key); - -#ifdef __cplusplus -} -#endif - -#endif /* _DER_ENCODER_H_ */ diff --git a/e2sim/src/ASN1c/per_decoder.c b/e2sim/src/ASN1c/per_decoder.c deleted file mode 100644 index 8a3e39d..0000000 --- a/e2sim/src/ASN1c/per_decoder.c +++ /dev/null @@ -1,185 +0,0 @@ -#include -#include -#include - -/* - * Decode a "Production of a complete encoding", X.691#10.1. - * The complete encoding contains at least one byte, and is an integral - * multiple of 8 bytes. - */ -asn_dec_rval_t -uper_decode_complete(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const void *buffer, size_t size) { - asn_dec_rval_t rval; - - rval = uper_decode(opt_codec_ctx, td, sptr, buffer, size, 0, 0); - if(rval.consumed) { - /* - * We've always given 8-aligned data, - * so convert bits to integral bytes. - */ - rval.consumed += 7; - rval.consumed >>= 3; - } else if(rval.code == RC_OK) { - if(size) { - if(((const uint8_t *)buffer)[0] == 0) { - rval.consumed = 1; /* 1 byte */ - } else { - ASN_DEBUG("Expecting single zeroed byte"); - rval.code = RC_FAIL; - } - } else { - /* Must contain at least 8 bits. */ - rval.code = RC_WMORE; - } - } - - return rval; -} - -asn_dec_rval_t -uper_decode(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, const void *buffer, - size_t size, int skip_bits, int unused_bits) { - asn_codec_ctx_t s_codec_ctx; - asn_dec_rval_t rval; - asn_per_data_t pd; - - if(skip_bits < 0 || skip_bits > 7 - || unused_bits < 0 || unused_bits > 7 - || (unused_bits > 0 && !size)) - ASN__DECODE_FAILED; - - /* - * Stack checker requires that the codec context - * must be allocated on the stack. - */ - if(opt_codec_ctx) { - if(opt_codec_ctx->max_stack_size) { - s_codec_ctx = *opt_codec_ctx; - opt_codec_ctx = &s_codec_ctx; - } - } else { - /* If context is not given, be security-conscious anyway */ - memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); - s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; - opt_codec_ctx = &s_codec_ctx; - } - - /* Fill in the position indicator */ - memset(&pd, 0, sizeof(pd)); - pd.buffer = (const uint8_t *)buffer; - pd.nboff = skip_bits; - pd.nbits = 8 * size - unused_bits; /* 8 is CHAR_BIT from */ - if(pd.nboff > pd.nbits) - ASN__DECODE_FAILED; - - /* - * Invoke type-specific decoder. - */ - if(!td->op->uper_decoder) - ASN__DECODE_FAILED; /* PER is not compiled in */ - rval = td->op->uper_decoder(opt_codec_ctx, td, 0, sptr, &pd); - if(rval.code == RC_OK) { - /* Return the number of consumed bits */ - rval.consumed = ((pd.buffer - (const uint8_t *)buffer) << 3) - + pd.nboff - skip_bits; - ASN_DEBUG("PER decoding consumed %ld, counted %ld", - (long)rval.consumed, (long)pd.moved); - assert(rval.consumed == pd.moved); - } else { - /* PER codec is not a restartable */ - rval.consumed = 0; - } - return rval; -} - -asn_dec_rval_t -aper_decode_complete(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const void *buffer, size_t size) { - asn_dec_rval_t rval; - - rval = aper_decode(opt_codec_ctx, td, sptr, buffer, size, 0, 0); - if(rval.consumed) { - /* - * We've always given 8-aligned data, - * so convert bits to integral bytes. - */ - rval.consumed += 7; - rval.consumed >>= 3; - } else if(rval.code == RC_OK) { - if(size) { - if(((const uint8_t *)buffer)[0] == 0) { - rval.consumed = 1; /* 1 byte */ - } else { - ASN_DEBUG("Expecting single zeroed byte"); - rval.code = RC_FAIL; - } - } else { - /* Must contain at least 8 bits. */ - rval.code = RC_WMORE; - } - } - - return rval; -} - -asn_dec_rval_t -aper_decode(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, const void *buffer, - size_t size, int skip_bits, int unused_bits) { - asn_codec_ctx_t s_codec_ctx; - asn_dec_rval_t rval; - asn_per_data_t pd; - - if(skip_bits < 0 || skip_bits > 7 - || unused_bits < 0 || unused_bits > 7 - || (unused_bits > 0 && !size)) - ASN__DECODE_FAILED; - - /* - * Stack checker requires that the codec context - * must be allocated on the stack. - */ - if(opt_codec_ctx) { - if(opt_codec_ctx->max_stack_size) { - s_codec_ctx = *opt_codec_ctx; - opt_codec_ctx = &s_codec_ctx; - } - } else { - /* If context is not given, be security-conscious anyway */ - memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); - s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; - opt_codec_ctx = &s_codec_ctx; - } - - /* Fill in the position indicator */ - memset(&pd, 0, sizeof(pd)); - pd.buffer = (const uint8_t *)buffer; - pd.nboff = skip_bits; - pd.nbits = 8 * size - unused_bits; /* 8 is CHAR_BIT from */ - if(pd.nboff > pd.nbits) - ASN__DECODE_FAILED; - - /* - * Invoke type-specific decoder. - */ - if(!td->op->aper_decoder) - ASN__DECODE_FAILED; /* PER is not compiled in */ - rval = td->op->aper_decoder(opt_codec_ctx, td, 0, sptr, &pd); - if(rval.code == RC_OK) { - /* Return the number of consumed bits */ - rval.consumed = ((pd.buffer - (const uint8_t *)buffer) << 3) - + pd.nboff - skip_bits; - ASN_DEBUG("PER decoding consumed %zu, counted %zu", - rval.consumed, pd.moved); - assert(rval.consumed == pd.moved); - } else { - /* PER codec is not a restartable */ - rval.consumed = 0; - } - return rval; -} - diff --git a/e2sim/src/ASN1c/per_decoder.h b/e2sim/src/ASN1c/per_decoder.h deleted file mode 100644 index eea474a..0000000 --- a/e2sim/src/ASN1c/per_decoder.h +++ /dev/null @@ -1,82 +0,0 @@ -/*- - * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _PER_DECODER_H_ -#define _PER_DECODER_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * Unaligned PER decoder of a "complete encoding" as per X.691 (08/2015) #11.1. - * On success, this call always returns (.consumed >= 1), as per #11.1.3. - */ -asn_dec_rval_t uper_decode_complete( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of data buffer */ -); - -/* - * Unaligned PER decoder of any ASN.1 type. May be invoked by the application. - * WARNING: This call returns the number of BITS read from the stream. Beware. - */ -asn_dec_rval_t uper_decode( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size, /* Size of the input data buffer, in bytes */ - int skip_bits, /* Number of unused leading bits, 0..7 */ - int unused_bits /* Number of unused tailing bits, 0..7 */ -); - -/* - * Aligned PER decoder of a "complete encoding" as per X.691#10.1. - * On success, this call always returns (.consumed >= 1), in BITS, as per X.691#10.1.3. - */ -asn_dec_rval_t aper_decode_complete( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of data buffer */ - ); - -/* - * Aligned PER decoder of any ASN.1 type. May be invoked by the application. - * WARNING: This call returns the number of BITS read from the stream. Beware. - */ -asn_dec_rval_t aper_decode( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size, /* Size of data buffer */ - int skip_bits, /* Number of unused leading bits, 0..7 */ - int unused_bits /* Number of unused tailing bits, 0..7 */ - ); - -/* - * Type of the type-specific PER decoder function. - */ -typedef asn_dec_rval_t(per_type_decoder_f)( - const asn_codec_ctx_t *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, void **struct_ptr, - asn_per_data_t *per_data); - -#ifdef __cplusplus -} -#endif - -#endif /* _PER_DECODER_H_ */ diff --git a/e2sim/src/ASN1c/per_encoder.c b/e2sim/src/ASN1c/per_encoder.c deleted file mode 100644 index a35e1f0..0000000 --- a/e2sim/src/ASN1c/per_encoder.c +++ /dev/null @@ -1,265 +0,0 @@ -#include -#include -#include - -static int _uper_encode_flush_outp(asn_per_outp_t *po); - -static int -ignore_output(const void *data, size_t size, void *app_key) { - (void)data; - (void)size; - (void)app_key; - return 0; -} - -asn_enc_rval_t -uper_encode(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_per_outp_t po; - asn_enc_rval_t er = {0,0,0}; - - /* - * Invoke type-specific encoder. - */ - if(!td || !td->op->uper_encoder) - ASN__ENCODE_FAILED; /* PER is not compiled in */ - - po.buffer = po.tmpspace; - po.nboff = 0; - po.nbits = 8 * sizeof(po.tmpspace); - po.output = cb ? cb : ignore_output; - po.op_key = app_key; - po.flushed_bytes = 0; - - er = td->op->uper_encoder(td, constraints, sptr, &po); - if(er.encoded != -1) { - size_t bits_to_flush; - - bits_to_flush = ((po.buffer - po.tmpspace) << 3) + po.nboff; - - /* Set number of bits encoded to a firm value */ - er.encoded = (po.flushed_bytes << 3) + bits_to_flush; - - if(_uper_encode_flush_outp(&po)) ASN__ENCODE_FAILED; - } - - return er; -} - -/* - * Argument type and callback necessary for uper_encode_to_buffer(). - */ -typedef struct enc_to_buf_arg { - void *buffer; - size_t left; -} enc_to_buf_arg; -static int encode_to_buffer_cb(const void *buffer, size_t size, void *key) { - enc_to_buf_arg *arg = (enc_to_buf_arg *)key; - - if(arg->left < size) - return -1; /* Data exceeds the available buffer size */ - - memcpy(arg->buffer, buffer, size); - arg->buffer = ((char *)arg->buffer) + size; - arg->left -= size; - - return 0; -} - -asn_enc_rval_t -uper_encode_to_buffer(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, void *buffer, size_t buffer_size) { - enc_to_buf_arg key; - - key.buffer = buffer; - key.left = buffer_size; - - if(td) ASN_DEBUG("Encoding \"%s\" using UNALIGNED PER", td->name); - - return uper_encode(td, constraints, sptr, encode_to_buffer_cb, &key); -} - -typedef struct enc_dyn_arg { - void *buffer; - size_t length; - size_t allocated; -} enc_dyn_arg; -static int -encode_dyn_cb(const void *buffer, size_t size, void *key) { - enc_dyn_arg *arg = key; - if(arg->length + size >= arg->allocated) { - size_t new_size = arg->allocated ? arg->allocated : 8; - void *p; - - do { - new_size <<= 2; - } while(arg->length + size >= new_size); - - p = REALLOC(arg->buffer, new_size); - if(!p) { - FREEMEM(arg->buffer); - memset(arg, 0, sizeof(*arg)); - return -1; - } - arg->buffer = p; - arg->allocated = new_size; - } - memcpy(((char *)arg->buffer) + arg->length, buffer, size); - arg->length += size; - return 0; -} -ssize_t -uper_encode_to_new_buffer(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, void **buffer_r) { - asn_enc_rval_t er = {0,0,0}; - enc_dyn_arg key; - - memset(&key, 0, sizeof(key)); - - er = uper_encode(td, constraints, sptr, encode_dyn_cb, &key); - switch(er.encoded) { - case -1: - FREEMEM(key.buffer); - return -1; - case 0: - FREEMEM(key.buffer); - key.buffer = MALLOC(1); - if(key.buffer) { - *(char *)key.buffer = '\0'; - *buffer_r = key.buffer; - return 1; - } else { - return -1; - } - default: - *buffer_r = key.buffer; - ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); - return ((er.encoded + 7) >> 3); - } -} - -/* - * Internally useful functions. - */ - -/* Flush partially filled buffer */ -static int -_uper_encode_flush_outp(asn_per_outp_t *po) { - uint8_t *buf; - - if(po->nboff == 0 && po->buffer == po->tmpspace) - return 0; - - buf = po->buffer + (po->nboff >> 3); - /* Make sure we account for the last, partially filled */ - if(po->nboff & 0x07) { - buf[0] &= 0xff << (8 - (po->nboff & 0x07)); - buf++; - } - - return po->output(po->tmpspace, buf - po->tmpspace, po->op_key); -} - -asn_enc_rval_t -aper_encode_to_buffer(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, void *buffer, size_t buffer_size) { - enc_to_buf_arg key; - - key.buffer = buffer; - key.left = buffer_size; - - if(td) ASN_DEBUG("Encoding \"%s\" using ALIGNED PER", td->name); - - return aper_encode(td, constraints, sptr, encode_to_buffer_cb, &key); -} - -ssize_t -aper_encode_to_new_buffer(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, void **buffer_r) { - asn_enc_rval_t er = {0,0,0}; - enc_dyn_arg key; - - memset(&key, 0, sizeof(key)); - - er = aper_encode(td, constraints, sptr, encode_dyn_cb, &key); - switch(er.encoded) { - case -1: - FREEMEM(key.buffer); - return -1; - case 0: - FREEMEM(key.buffer); - key.buffer = MALLOC(1); - if(key.buffer) { - *(char *)key.buffer = '\0'; - *buffer_r = key.buffer; - return 1; - } else { - return -1; - } - default: - *buffer_r = key.buffer; - ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); - return ((er.encoded + 7) >> 3); - } -} - -static int -_aper_encode_flush_outp(asn_per_outp_t *po) { - uint8_t *buf; - - if(po->nboff == 0 && po->buffer == po->tmpspace) - return 0; - - buf = po->buffer + (po->nboff >> 3); - /* Make sure we account for the last, partially filled */ - if(po->nboff & 0x07) { - buf[0] &= 0xff << (8 - (po->nboff & 0x07)); - buf++; - } - - if (po->output) { - return po->output(po->tmpspace, buf - po->tmpspace, po->op_key); - } - return 0; -} - -asn_enc_rval_t -aper_encode(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_app_consume_bytes_f *cb, void *app_key) { - asn_per_outp_t po; - asn_enc_rval_t er = {0,0,0}; - - /* - * Invoke type-specific encoder. - */ - if(!td || !td->op->aper_encoder) - ASN__ENCODE_FAILED; /* PER is not compiled in */ - - po.buffer = po.tmpspace; - po.nboff = 0; - po.nbits = 8 * sizeof(po.tmpspace); - po.output = cb; - po.op_key = app_key; - po.flushed_bytes = 0; - - er = td->op->aper_encoder(td, constraints, sptr, &po); - if(er.encoded != -1) { - size_t bits_to_flush; - - bits_to_flush = ((po.buffer - po.tmpspace) << 3) + po.nboff; - - /* Set number of bits encoded to a firm value */ - er.encoded = (po.flushed_bytes << 3) + bits_to_flush; - - if(_aper_encode_flush_outp(&po)) - ASN__ENCODE_FAILED; - } - - return er; -} diff --git a/e2sim/src/ASN1c/per_encoder.h b/e2sim/src/ASN1c/per_encoder.h deleted file mode 100644 index b615ef0..0000000 --- a/e2sim/src/ASN1c/per_encoder.h +++ /dev/null @@ -1,93 +0,0 @@ -/*- - * Copyright (c) 2006-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _PER_ENCODER_H_ -#define _PER_ENCODER_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * Unaligned PER encoder of any ASN.1 type. May be invoked by the application. - * WARNING: This function returns the number of encoded bits in the .encoded - * field of the return value. Use the following formula to convert to bytes: - * bytes = ((.encoded + 7) / 8) - */ -asn_enc_rval_t uper_encode( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - asn_app_consume_bytes_f *consume_bytes_cb, /* Data collector */ - void *app_key /* Arbitrary callback argument */ -); - -asn_enc_rval_t aper_encode( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - asn_app_consume_bytes_f *consume_bytes_cb, /* Data collector */ - void *app_key /* Arbitrary callback argument */ -); - -/* - * A variant of uper_encode() which encodes data into the existing buffer - * WARNING: This function returns the number of encoded bits in the .encoded - * field of the return value. - */ -asn_enc_rval_t uper_encode_to_buffer( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - void *buffer, /* Pre-allocated buffer */ - size_t buffer_size /* Initial buffer size (max) */ -); - -asn_enc_rval_t aper_encode_to_buffer( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - void *buffer, /* Pre-allocated buffer */ - size_t buffer_size /* Initial buffer size (max) */ -); -/* - * A variant of uper_encode_to_buffer() which allocates buffer itself. - * Returns the number of bytes in the buffer or -1 in case of failure. - * WARNING: This function produces a "Production of the complete encoding", - * with length of at least one octet. Contrast this to precise bit-packing - * encoding of uper_encode() and uper_encode_to_buffer(). - */ -ssize_t uper_encode_to_new_buffer( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - void **buffer_r /* Buffer allocated and returned */ -); - -ssize_t -aper_encode_to_new_buffer( - const struct asn_TYPE_descriptor_s *td, - const asn_per_constraints_t *constraints, - const void *sptr, - void **buffer_r -); - -/* - * Type of the generic PER encoder function. - */ -typedef asn_enc_rval_t(per_type_encoder_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, const void *struct_ptr, - asn_per_outp_t *per_output); - -#ifdef __cplusplus -} -#endif - -#endif /* _PER_ENCODER_H_ */ diff --git a/e2sim/src/ASN1c/per_opentype.c b/e2sim/src/ASN1c/per_opentype.c deleted file mode 100644 index 28f3cb6..0000000 --- a/e2sim/src/ASN1c/per_opentype.c +++ /dev/null @@ -1,533 +0,0 @@ -/* - * Copyright (c) 2007 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include -#include - -typedef struct uper_ugot_key { - asn_per_data_t oldpd; /* Old per data source */ - size_t unclaimed; - size_t ot_moved; /* Number of bits moved by OT processing */ - int repeat; -} uper_ugot_key; - -static int uper_ugot_refill(asn_per_data_t *pd); -static int per_skip_bits(asn_per_data_t *pd, int skip_nbits); -static asn_dec_rval_t uper_sot_suck(const asn_codec_ctx_t *, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd); - -/* - * Encode an "open type field". - * #10.1, #10.2 - */ -int -uper_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - void *buf; - void *bptr; - ssize_t size; - - ASN_DEBUG("Open type put %s ...", td->name); - - size = uper_encode_to_new_buffer(td, constraints, sptr, &buf); - if(size <= 0) return -1; - - ASN_DEBUG("Open type put %s of length %" ASN_PRI_SSIZE " + overhead (1byte?)", td->name, - size); - - bptr = buf; - do { - int need_eom = 0; - ssize_t may_save = uper_put_length(po, size, &need_eom); - ASN_DEBUG("Prepending length %" ASN_PRI_SSIZE - " to %s and allowing to save %" ASN_PRI_SSIZE, - size, td->name, may_save); - if(may_save < 0) break; - if(per_put_many_bits(po, bptr, may_save * 8)) break; - bptr = (char *)bptr + may_save; - size -= may_save; - if(need_eom && uper_put_length(po, 0, 0)) { - FREEMEM(buf); - return -1; - } - } while(size); - - FREEMEM(buf); - if(size) return -1; - - return 0; -} - -static asn_dec_rval_t -uper_open_type_get_simple(const asn_codec_ctx_t *ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - asn_dec_rval_t rv; - ssize_t chunk_bytes; - int repeat; - uint8_t *buf = 0; - size_t bufLen = 0; - size_t bufSize = 0; - asn_per_data_t spd; - size_t padding; - - ASN__STACK_OVERFLOW_CHECK(ctx); - - ASN_DEBUG("Getting open type %s...", td->name); - - do { - chunk_bytes = uper_get_length(pd, -1, 0, &repeat); - if(chunk_bytes < 0) { - FREEMEM(buf); - ASN__DECODE_STARVED; - } - if(bufLen + chunk_bytes > bufSize) { - void *ptr; - bufSize = chunk_bytes + (bufSize << 2); - ptr = REALLOC(buf, bufSize); - if(!ptr) { - FREEMEM(buf); - ASN__DECODE_FAILED; - } - buf = ptr; - } - if(per_get_many_bits(pd, buf + bufLen, 0, chunk_bytes << 3)) { - FREEMEM(buf); - ASN__DECODE_STARVED; - } - bufLen += chunk_bytes; - } while(repeat); - - ASN_DEBUG("Getting open type %s encoded in %ld bytes", td->name, - (long)bufLen); - - memset(&spd, 0, sizeof(spd)); - spd.buffer = buf; - spd.nbits = bufLen << 3; - - ASN_DEBUG_INDENT_ADD(+4); - rv = td->op->uper_decoder(ctx, td, constraints, sptr, &spd); - ASN_DEBUG_INDENT_ADD(-4); - - if(rv.code == RC_OK) { - /* Check padding validity */ - padding = spd.nbits - spd.nboff; - if (((padding > 0 && padding < 8) || - /* X.691#10.1.3 */ - (spd.nboff == 0 && spd.nbits == 8 && spd.buffer == buf)) && - per_get_few_bits(&spd, padding) == 0) { - /* Everything is cool */ - FREEMEM(buf); - return rv; - } - FREEMEM(buf); - if(padding >= 8) { - ASN_DEBUG("Too large padding %d in open type", (int)padding); - ASN__DECODE_FAILED; - } else { - ASN_DEBUG("No padding"); - } - } else { - FREEMEM(buf); - /* rv.code could be RC_WMORE, nonsense in this context */ - rv.code = RC_FAIL; /* Noone would give us more */ - } - - return rv; -} - -static asn_dec_rval_t CC_NOTUSED -uper_open_type_get_complex(const asn_codec_ctx_t *ctx, - const asn_TYPE_descriptor_t *td, - asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - uper_ugot_key arg; - asn_dec_rval_t rv; - ssize_t padding; - - ASN__STACK_OVERFLOW_CHECK(ctx); - - ASN_DEBUG("Getting open type %s from %s", td->name, - asn_bit_data_string(pd)); - arg.oldpd = *pd; - arg.unclaimed = 0; - arg.ot_moved = 0; - arg.repeat = 1; - pd->refill = uper_ugot_refill; - pd->refill_key = &arg; - pd->nbits = pd->nboff; /* 0 good bits at this point, will refill */ - pd->moved = 0; /* This now counts the open type size in bits */ - - ASN_DEBUG_INDENT_ADD(+4); - rv = td->op->uper_decoder(ctx, td, constraints, sptr, pd); - ASN_DEBUG_INDENT_ADD(-4); - -#define UPDRESTOREPD do { \ - /* buffer and nboff are valid, preserve them. */ \ - pd->nbits = arg.oldpd.nbits - (pd->moved - arg.ot_moved); \ - pd->moved = arg.oldpd.moved + (pd->moved - arg.ot_moved); \ - pd->refill = arg.oldpd.refill; \ - pd->refill_key = arg.oldpd.refill_key; \ - } while(0) - - if(rv.code != RC_OK) { - UPDRESTOREPD; - return rv; - } - - ASN_DEBUG("OpenType %s pd%s old%s unclaimed=%d, repeat=%d", td->name, - asn_bit_data_string(pd), - asn_bit_data_string(&arg.oldpd), - (int)arg.unclaimed, (int)arg.repeat); - - padding = pd->moved % 8; - if(padding) { - int32_t pvalue; - if(padding > 7) { - ASN_DEBUG("Too large padding %d in open type", - (int)padding); - rv.code = RC_FAIL; - UPDRESTOREPD; - return rv; - } - padding = 8 - padding; - ASN_DEBUG("Getting padding of %d bits", (int)padding); - pvalue = per_get_few_bits(pd, padding); - switch(pvalue) { - case -1: - ASN_DEBUG("Padding skip failed"); - UPDRESTOREPD; - ASN__DECODE_STARVED; - case 0: break; - default: - ASN_DEBUG("Non-blank padding (%d bits 0x%02x)", - (int)padding, (int)pvalue); - UPDRESTOREPD; - ASN__DECODE_FAILED; - } - } - if(pd->nboff != pd->nbits) { - ASN_DEBUG("Open type %s overhead pd%s old%s", td->name, - asn_bit_data_string(pd), asn_bit_data_string(&arg.oldpd)); - if(1) { - UPDRESTOREPD; - ASN__DECODE_FAILED; - } else { - arg.unclaimed += pd->nbits - pd->nboff; - } - } - - /* Adjust pd back so it points to original data */ - UPDRESTOREPD; - - /* Skip data not consumed by the decoder */ - if(arg.unclaimed) { - ASN_DEBUG("Getting unclaimed %d", (int)arg.unclaimed); - switch(per_skip_bits(pd, arg.unclaimed)) { - case -1: - ASN_DEBUG("Claim of %d failed", (int)arg.unclaimed); - ASN__DECODE_STARVED; - case 0: - ASN_DEBUG("Got claim of %d", (int)arg.unclaimed); - break; - default: - /* Padding must be blank */ - ASN_DEBUG("Non-blank unconsumed padding"); - ASN__DECODE_FAILED; - } - arg.unclaimed = 0; - } - - if(arg.repeat) { - ASN_DEBUG("Not consumed the whole thing"); - rv.code = RC_FAIL; - return rv; - } - - return rv; -} - - -asn_dec_rval_t -uper_open_type_get(const asn_codec_ctx_t *ctx, const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - return uper_open_type_get_simple(ctx, td, constraints, sptr, pd); -} - -int -uper_open_type_skip(const asn_codec_ctx_t *ctx, asn_per_data_t *pd) { - asn_TYPE_descriptor_t s_td; - asn_TYPE_operation_t s_op; - asn_dec_rval_t rv; - - s_td.name = ""; - s_td.op = &s_op; - s_op.uper_decoder = uper_sot_suck; - - rv = uper_open_type_get(ctx, &s_td, 0, 0, pd); - if(rv.code != RC_OK) - return -1; - else - return 0; -} - -/* - * Internal functions. - */ - -static asn_dec_rval_t -uper_sot_suck(const asn_codec_ctx_t *ctx, const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - asn_dec_rval_t rv; - - (void)ctx; - (void)td; - (void)constraints; - (void)sptr; - - while(per_get_few_bits(pd, 1) >= 0); - - rv.code = RC_OK; - rv.consumed = pd->moved; - - return rv; -} - -static int -uper_ugot_refill(asn_per_data_t *pd) { - uper_ugot_key *arg = pd->refill_key; - ssize_t next_chunk_bytes, next_chunk_bits; - ssize_t avail; - - asn_per_data_t *oldpd = &arg->oldpd; - - ASN_DEBUG("REFILLING pd->moved=%ld, oldpd->moved=%ld", - (long)pd->moved, (long)oldpd->moved); - - /* Advance our position to where pd is */ - oldpd->buffer = pd->buffer; - oldpd->nboff = pd->nboff; - oldpd->nbits -= pd->moved - arg->ot_moved; - oldpd->moved += pd->moved - arg->ot_moved; - arg->ot_moved = pd->moved; - - if(arg->unclaimed) { - /* Refill the container */ - if(per_get_few_bits(oldpd, 1)) - return -1; - if(oldpd->nboff == 0) { - assert(0); - return -1; - } - pd->buffer = oldpd->buffer; - pd->nboff = oldpd->nboff - 1; - pd->nbits = oldpd->nbits; - ASN_DEBUG("UNCLAIMED <- return from (pd->moved=%ld)", - (long)pd->moved); - return 0; - } - - if(!arg->repeat) { - ASN_DEBUG("Want more but refill doesn't have it"); - return -1; - } - - next_chunk_bytes = uper_get_length(oldpd, -1, 0, &arg->repeat); - ASN_DEBUG("Open type LENGTH %ld bytes at off %ld, repeat %ld", - (long)next_chunk_bytes, (long)oldpd->moved, (long)arg->repeat); - if(next_chunk_bytes < 0) return -1; - if(next_chunk_bytes == 0) { - pd->refill = 0; /* No more refills, naturally */ - assert(!arg->repeat); /* Implementation guarantee */ - } - next_chunk_bits = next_chunk_bytes << 3; - avail = oldpd->nbits - oldpd->nboff; - if(avail >= next_chunk_bits) { - pd->nbits = oldpd->nboff + next_chunk_bits; - arg->unclaimed = 0; - ASN_DEBUG("!+Parent frame %ld bits, alloting %ld [%ld..%ld] (%ld)", - (long)next_chunk_bits, (long)oldpd->moved, - (long)oldpd->nboff, (long)oldpd->nbits, - (long)(oldpd->nbits - oldpd->nboff)); - } else { - pd->nbits = oldpd->nbits; - arg->unclaimed = next_chunk_bits - avail; - ASN_DEBUG("!-Parent frame %ld, require %ld, will claim %ld", - (long)avail, (long)next_chunk_bits, - (long)arg->unclaimed); - } - pd->buffer = oldpd->buffer; - pd->nboff = oldpd->nboff; - ASN_DEBUG("Refilled pd%s old%s", - asn_bit_data_string(pd), asn_bit_data_string(oldpd)); - return 0; -} - -static int -per_skip_bits(asn_per_data_t *pd, int skip_nbits) { - int hasNonZeroBits = 0; - while(skip_nbits > 0) { - int skip; - - /* per_get_few_bits() is more efficient when nbits <= 24 */ - if(skip_nbits < 24) - skip = skip_nbits; - else - skip = 24; - skip_nbits -= skip; - - switch(per_get_few_bits(pd, skip)) { - case -1: return -1; /* Starving */ - case 0: continue; /* Skipped empty space */ - default: hasNonZeroBits = 1; continue; - } - } - return hasNonZeroBits; -} - -static asn_dec_rval_t -aper_open_type_get_simple(const asn_codec_ctx_t *ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - asn_dec_rval_t rv; - ssize_t chunk_bytes; - int repeat; - uint8_t *buf = 0; - size_t bufLen = 0; - size_t bufSize = 0; - asn_per_data_t spd; - size_t padding; - - ASN__STACK_OVERFLOW_CHECK(ctx); - - ASN_DEBUG("Getting open type %s...", td->name); - - do { - chunk_bytes = aper_get_length(pd, -1, -1, &repeat); - if(chunk_bytes < 0) { - FREEMEM(buf); - ASN__DECODE_STARVED; - } - if(bufLen + chunk_bytes > bufSize) { - void *ptr; - bufSize = chunk_bytes + (bufSize << 2); - ptr = REALLOC(buf, bufSize); - if(!ptr) { - FREEMEM(buf); - ASN__DECODE_FAILED; - } - buf = ptr; - } - if(per_get_many_bits(pd, buf + bufLen, 0, chunk_bytes << 3)) { - FREEMEM(buf); - ASN__DECODE_STARVED; - } - bufLen += chunk_bytes; - } while(repeat); - - ASN_DEBUG("Getting open type %s encoded in %ld bytes", td->name, - (long)bufLen); - - memset(&spd, 0, sizeof(spd)); - spd.buffer = buf; - spd.nbits = bufLen << 3; - - ASN_DEBUG_INDENT_ADD(+4); - rv = td->op->aper_decoder(ctx, td, constraints, sptr, &spd); - ASN_DEBUG_INDENT_ADD(-4); - - if(rv.code == RC_OK) { - /* Check padding validity */ - padding = spd.nbits - spd.nboff; - if (((padding > 0 && padding < 8) || - /* X.691#10.1.3 */ - (spd.nboff == 0 && spd.nbits == 8 && spd.buffer == buf)) && - per_get_few_bits(&spd, padding) == 0) { - /* Everything is cool */ - FREEMEM(buf); - return rv; - } - FREEMEM(buf); - if(padding >= 8) { - ASN_DEBUG("Too large padding %d in open type", (int)padding); - ASN__DECODE_FAILED; - } else { - ASN_DEBUG("No padding"); - } - } else { - FREEMEM(buf); - /* rv.code could be RC_WMORE, nonsense in this context */ - rv.code = RC_FAIL; /* Noone would give us more */ - } - - return rv; -} - -int -aper_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - void *buf; - void *bptr; - ssize_t size; - size_t toGo; - - ASN_DEBUG("Open type put %s ...", td->name); - - size = aper_encode_to_new_buffer(td, constraints, sptr, &buf); - if(size <= 0) return -1; - - for(bptr = buf, toGo = size; toGo;) { - ssize_t maySave = aper_put_length(po, -1, toGo); - if(maySave < 0) break; - if(per_put_many_bits(po, bptr, maySave * 8)) break; - bptr = (char *)bptr + maySave; - toGo -= maySave; - } - - FREEMEM(buf); - if(toGo) return -1; - - ASN_DEBUG("Open type put %s of length %ld + overhead (1byte?)", - td->name, size); - - return 0; -} - -asn_dec_rval_t -aper_open_type_get(const asn_codec_ctx_t *ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd) { - - return aper_open_type_get_simple(ctx, td, constraints, sptr, pd); -} - -int -aper_open_type_skip(const asn_codec_ctx_t *ctx, asn_per_data_t *pd) { - asn_TYPE_descriptor_t s_td; - asn_dec_rval_t rv; - asn_TYPE_operation_t op_t; - - memset(&op_t, 0, sizeof(op_t)); - s_td.name = ""; - s_td.op = &op_t; - s_td.op->aper_decoder = uper_sot_suck; - - rv = aper_open_type_get(ctx, &s_td, 0, 0, pd); - if(rv.code != RC_OK) - return -1; - else - return 0; -} - - diff --git a/e2sim/src/ASN1c/per_opentype.h b/e2sim/src/ASN1c/per_opentype.h deleted file mode 100644 index 1493b2d..0000000 --- a/e2sim/src/ASN1c/per_opentype.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2007-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _PER_OPENTYPE_H_ -#define _PER_OPENTYPE_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -asn_dec_rval_t uper_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd); - -int uper_open_type_skip(const asn_codec_ctx_t *opt_codec_ctx, - asn_per_data_t *pd); - -/* - * X.691 (2015/08), #11.2 - * Returns -1 if error is encountered. 0 if all OK. - */ -int uper_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po); - -asn_dec_rval_t aper_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd); - - -int aper_open_type_skip(const asn_codec_ctx_t *opt_codec_ctx, asn_per_data_t *pd); - -int aper_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po); - -#ifdef __cplusplus -} -#endif - -#endif /* _PER_OPENTYPE_H_ */ diff --git a/e2sim/src/ASN1c/per_support.c b/e2sim/src/ASN1c/per_support.c deleted file mode 100644 index 2c87a76..0000000 --- a/e2sim/src/ASN1c/per_support.c +++ /dev/null @@ -1,492 +0,0 @@ -/* - * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * X.691-201508 #10.9 General rules for encoding a length determinant. - * Get the optionally constrained length "n" from the stream. - */ -ssize_t -uper_get_length(asn_per_data_t *pd, int ebits, size_t lower_bound, - int *repeat) { - ssize_t value; - - *repeat = 0; - - /* #11.9.4.1 Encoding if constrained (according to effective bits) */ - if(ebits >= 0 && ebits <= 16) { - value = per_get_few_bits(pd, ebits); - if(value >= 0) value += lower_bound; - return value; - } - - value = per_get_few_bits(pd, 8); - if((value & 0x80) == 0) { /* #11.9.3.6 */ - return (value & 0x7F); - } else if((value & 0x40) == 0) { /* #11.9.3.7 */ - /* bit 8 ... set to 1 and bit 7 ... set to zero */ - value = ((value & 0x3f) << 8) | per_get_few_bits(pd, 8); - return value; /* potential -1 from per_get_few_bits passes through. */ - } else if(value < 0) { - ASN_DEBUG("END of stream reached for PER"); - return -1; - } - value &= 0x3f; /* this is "m" from X.691, #11.9.3.8 */ - if(value < 1 || value > 4) { - return -1; /* Prohibited by #11.9.3.8 */ - } - *repeat = 1; - return (16384 * value); -} - -/* - * Get the normally small length "n". - * This procedure used to decode length of extensions bit-maps - * for SET and SEQUENCE types. - */ -ssize_t -uper_get_nslength(asn_per_data_t *pd) { - ssize_t length; - - ASN_DEBUG("Getting normally small length"); - - if(per_get_few_bits(pd, 1) == 0) { - length = per_get_few_bits(pd, 6) + 1; - if(length <= 0) return -1; - ASN_DEBUG("l=%d", (int)length); - return length; - } else { - int repeat; - length = uper_get_length(pd, -1, 0, &repeat); - if(length >= 0 && !repeat) return length; - return -1; /* Error, or do not support >16K extensions */ - } -} - -/* - * Get the normally small non-negative whole number. - * X.691, #10.6 - */ -ssize_t -uper_get_nsnnwn(asn_per_data_t *pd) { - ssize_t value; - - value = per_get_few_bits(pd, 7); - if(value & 64) { /* implicit (value < 0) */ - value &= 63; - value <<= 2; - value |= per_get_few_bits(pd, 2); - if(value & 128) /* implicit (value < 0) */ - return -1; - if(value == 0) - return 0; - if(value >= 3) - return -1; - value = per_get_few_bits(pd, 8 * value); - return value; - } - - return value; -} - -/* - * X.691-11/2008, #11.6 - * Encoding of a normally small non-negative whole number - */ -int -uper_put_nsnnwn(asn_per_outp_t *po, int n) { - int bytes; - - if(n <= 63) { - if(n < 0) return -1; - return per_put_few_bits(po, n, 7); - } - if(n < 256) - bytes = 1; - else if(n < 65536) - bytes = 2; - else if(n < 256 * 65536) - bytes = 3; - else - return -1; /* This is not a "normally small" value */ - if(per_put_few_bits(po, bytes, 8)) - return -1; - - return per_put_few_bits(po, n, 8 * bytes); -} - - -/* X.691-2008/11, #11.5.6 -> #11.3 */ -int uper_get_constrained_whole_number(asn_per_data_t *pd, unsigned long *out_value, int nbits) { - unsigned long lhalf; /* Lower half of the number*/ - long half; - - if(nbits <= 31) { - half = per_get_few_bits(pd, nbits); - if(half < 0) return -1; - *out_value = half; - return 0; - } - - if((size_t)nbits > 8 * sizeof(*out_value)) - return -1; /* RANGE */ - - half = per_get_few_bits(pd, 31); - if(half < 0) return -1; - - if(uper_get_constrained_whole_number(pd, &lhalf, nbits - 31)) - return -1; - - *out_value = ((unsigned long)half << (nbits - 31)) | lhalf; - return 0; -} - - -/* X.691-2008/11, #11.5.6 -> #11.3 */ -int -uper_put_constrained_whole_number_u(asn_per_outp_t *po, unsigned long v, - int nbits) { - if(nbits <= 31) { - return per_put_few_bits(po, v, nbits); - } else { - /* Put higher portion first, followed by lower 31-bit */ - if(uper_put_constrained_whole_number_u(po, v >> 31, nbits - 31)) - return -1; - return per_put_few_bits(po, v, 31); - } -} - -/* - * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" - * Put the length "n" (or part of it) into the stream. - */ -ssize_t -uper_put_length(asn_per_outp_t *po, size_t length, int *need_eom) { - int dummy = 0; - if(!need_eom) need_eom = &dummy; - - if(length <= 127) { /* #11.9.3.6 */ - *need_eom = 0; - return per_put_few_bits(po, length, 8) - ? -1 : (ssize_t)length; - } else if(length < 16384) { /* #10.9.3.7 */ - *need_eom = 0; - return per_put_few_bits(po, length|0x8000, 16) - ? -1 : (ssize_t)length; - } - - *need_eom = 0 == (length & 16383); - length >>= 14; - if(length > 4) { - *need_eom = 0; - length = 4; - } - - return per_put_few_bits(po, 0xC0 | length, 8) - ? -1 : (ssize_t)(length << 14); - -} - - -/* - * Put the normally small length "n" into the stream. - * This procedure used to encode length of extensions bit-maps - * for SET and SEQUENCE types. - */ -int -uper_put_nslength(asn_per_outp_t *po, size_t length) { - if(length <= 64) { - /* #11.9.3.4 */ - if(length == 0) return -1; - return per_put_few_bits(po, length - 1, 7) ? -1 : 0; - } else { - int need_eom = 0; - if(uper_put_length(po, length, &need_eom) != (ssize_t)length - || need_eom) { - /* This might happen in case of >16K extensions */ - return -1; - } - } - - return 0; -} - -static int -per__long_range(long lb, long ub, unsigned long *range_r) { - unsigned long bounds_range; - if((ub < 0) == (lb < 0)) { - bounds_range = ub - lb; - } else if(lb < 0) { - assert(ub >= 0); - bounds_range = 1 + ((unsigned long)ub + (unsigned long)-(lb + 1)); - } else { - assert(!"Unreachable"); - return -1; - } - *range_r = bounds_range; - return 0; -} - -int -per_long_range_rebase(long v, long lb, long ub, unsigned long *output) { - unsigned long range; - - assert(lb <= ub); - - if(v < lb || v > ub || per__long_range(lb, ub, &range) < 0) { - /* Range error. */ - return -1; - } - - /* - * Fundamentally what we're doing is returning (v-lb). - * However, this triggers undefined behavior when the word width - * of signed (v) is the same as the size of unsigned (*output). - * In practice, it triggers the UndefinedSanitizer. Therefore we shall - * compute the ranges accurately to avoid C's undefined behavior. - */ - if((v < 0) == (lb < 0)) { - *output = v-lb; - return 0; - } else if(v < 0) { - unsigned long rebased = 1 + (unsigned long)-(v+1) + (unsigned long)lb; - assert(rebased <= range); /* By construction */ - *output = rebased; - return 0; - } else if(lb < 0) { - unsigned long rebased = 1 + (unsigned long)-(lb+1) + (unsigned long)v; - assert(rebased <= range); /* By construction */ - *output = rebased; - return 0; - } else { - assert(!"Unreachable"); - return -1; - } -} - -int -per_long_range_unrebase(unsigned long inp, long lb, long ub, long *outp) { - unsigned long range; - - if(per__long_range(lb, ub, &range) != 0) { - return -1; - } - - if(inp > range) { - /* - * We can encode something in the given number of bits that technically - * exceeds the range. This is an avenue for security errors, - * so we don't allow that. - */ - return -1; - } - - if(inp <= LONG_MAX) { - *outp = (long)inp + lb; - } else { - *outp = (lb + LONG_MAX + 1) + (long)((inp - LONG_MAX) - 1); - } - - return 0; -} - -int32_t -aper_get_align(asn_per_data_t *pd) { - - if(pd->nboff & 0x7) { - ASN_DEBUG("Aligning %ld bits", 8 - ((unsigned long)pd->nboff & 0x7)); - return per_get_few_bits(pd, 8 - (pd->nboff & 0x7)); - } - return 0; -} - -ssize_t -aper_get_length(asn_per_data_t *pd, int range, int ebits, int *repeat) { - ssize_t value; - - *repeat = 0; - - // First check effective_bits parameter. - if (ebits >= 0) { - if (range <= 65536 && range >= 0) - return aper_get_nsnnwn(pd, range); - } - - if (aper_get_align(pd) < 0) - return -1; - - if(ebits >= 0) return per_get_few_bits(pd, ebits); - - value = per_get_few_bits(pd, 8); - if(value < 0) return -1; - if((value & 128) == 0) /* #10.9.3.6 */ - return (value & 0x7F); - if((value & 64) == 0) { /* #10.9.3.7 */ - value = ((value & 63) << 8) | per_get_few_bits(pd, 8); - if(value < 0) return -1; - return value; - } - value &= 63; /* this is "m" from X.691, #10.9.3.8 */ - if(value < 1 || value > 4) - return -1; - *repeat = 1; - return (16384 * value); -} - -ssize_t -aper_get_nslength(asn_per_data_t *pd) { - ssize_t length; - - ASN_DEBUG("Getting normally small length"); - - if(per_get_few_bits(pd, 1) == 0) { - length = per_get_few_bits(pd, 6) + 1; - if(length <= 0) return -1; - ASN_DEBUG("l=%ld", length); - return length; - } else { - int repeat; - length = aper_get_length(pd, -1, -1, &repeat); - if(length >= 0 && !repeat) return length; - return -1; /* Error, or do not support >16K extensions */ - } -} - -ssize_t -aper_get_nsnnwn(asn_per_data_t *pd, int range) { - ssize_t value; - int bytes = 0; - - ASN_DEBUG("getting nsnnwn with range %d", range); - - if(range <= 255) { - int i; - - if (range < 0) return -1; - /* 1 -> 8 bits */ - for (i = 1; i <= 8; i++) { - int upper = 1 << i; - if (upper >= range) - break; - } - value = per_get_few_bits(pd, i); - return value; - } else if (range == 256){ - /* 1 byte */ - bytes = 1; - } else if (range <= 65536) { - /* 2 bytes */ - bytes = 2; - } else { - return -1; - } - if (aper_get_align(pd) < 0) - return -1; - value = per_get_few_bits(pd, 8 * bytes); - return value; -} - -int aper_put_align(asn_per_outp_t *po) { - - if(po->nboff & 0x7) { - ASN_DEBUG("Aligning %ld bits", 8 - ((unsigned long)po->nboff & 0x7)); - if(per_put_few_bits(po, 0x00, (8 - (po->nboff & 0x7)))) - return -1; - } - return 0; -} - -ssize_t -aper_put_length(asn_per_outp_t *po, int range, size_t length) { - - ASN_DEBUG("APER put length %zu with range %d", length, range); - - /* 10.9 X.691 Note 2 */ - if (range <= 65536 && range >= 0) - return aper_put_nsnnwn(po, range, length); - - if (aper_put_align(po) < 0) - return -1; - - if(length <= 127) /* #10.9.3.6 */{ - return per_put_few_bits(po, length, 8) - ? -1 : (ssize_t)length; - } - else if(length < 16384) /* #10.9.3.7 */ - return per_put_few_bits(po, length|0x8000, 16) - ? -1 : (ssize_t)length; - - length >>= 14; - if(length > 4) length = 4; - - return per_put_few_bits(po, 0xC0 | length, 8) - ? -1 : (ssize_t)(length << 14); -} - - -int -aper_put_nslength(asn_per_outp_t *po, size_t length) { - - if(length <= 64) { - /* #10.9.3.4 */ - if(length == 0) return -1; - return per_put_few_bits(po, length-1, 7) ? -1 : 0; - } else { - if(aper_put_length(po, -1, length) != (ssize_t)length) { - /* This might happen in case of >16K extensions */ - return -1; - } - } - - return 0; -} - -int -aper_put_nsnnwn(asn_per_outp_t *po, int range, int number) { - int bytes; - - ASN_DEBUG("aper put nsnnwn %d with range %d", number, range); - /* 10.5.7.1 X.691 */ - if(range < 0) { - int i; - for (i = 1; ; i++) { - int bits = 1 << (8 * i); - if (number <= bits) - break; - } - bytes = i; - assert(i <= 4); - } - if(range <= 255) { - int i; - for (i = 1; i <= 8; i++) { - int bits = 1 << i; - if (range <= bits) - break; - } - return per_put_few_bits(po, number, i); - } else if(range == 256) { - bytes = 1; - } else if(range <= 65536) { - bytes = 2; - } else { /* Ranges > 64K */ - int i; - for (i = 1; ; i++) { - int bits = 1 << (8 * i); - if (range <= bits) - break; - } - assert(i <= 4); - bytes = i; - } - if(aper_put_align(po) < 0) /* Aligning on octet */ - return -1; -/* if(per_put_few_bits(po, bytes, 8)) - return -1; -*/ - return per_put_few_bits(po, number, 8 * bytes); -} diff --git a/e2sim/src/ASN1c/per_support.h b/e2sim/src/ASN1c/per_support.h deleted file mode 100644 index 23079c9..0000000 --- a/e2sim/src/ASN1c/per_support.h +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _PER_SUPPORT_H_ -#define _PER_SUPPORT_H_ - -#include /* Platform-specific types */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Pre-computed PER constraints. - */ -typedef struct asn_per_constraint_s { - enum asn_per_constraint_flags { - APC_UNCONSTRAINED = 0x0, /* No PER visible constraints */ - APC_SEMI_CONSTRAINED = 0x1, /* Constrained at "lb" */ - APC_CONSTRAINED = 0x2, /* Fully constrained */ - APC_EXTENSIBLE = 0x4 /* May have extension */ - } flags; - int range_bits; /* Full number of bits in the range */ - int effective_bits; /* Effective bits */ - long lower_bound; /* "lb" value */ - long upper_bound; /* "ub" value */ -} asn_per_constraint_t; -typedef struct asn_per_constraints_s { - asn_per_constraint_t value; - asn_per_constraint_t size; - int (*value2code)(unsigned int value); - int (*code2value)(unsigned int code); -} asn_per_constraints_t; - -/* Temporary compatibility layer. Will get removed. */ -typedef struct asn_bit_data_s asn_per_data_t; -#define per_get_few_bits(data, bits) asn_get_few_bits(data, bits) -#define per_get_undo(data, bits) asn_get_undo(data, bits) -#define per_get_many_bits(data, dst, align, bits) \ - asn_get_many_bits(data, dst, align, bits) - -/* - * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" - * Get the length "n" from the Unaligned PER stream. - */ -ssize_t uper_get_length(asn_per_data_t *pd, int effective_bound_bits, - size_t lower_bound, int *repeat); - -ssize_t aper_get_length(asn_per_data_t *pd, int range, - int effective_bound_bits, int *repeat); - -/* - * Get the normally small length "n". - */ -ssize_t uper_get_nslength(asn_per_data_t *pd); -ssize_t aper_get_nslength(asn_per_data_t *pd); - -/* - * Get the normally small non-negative whole number. - */ -ssize_t uper_get_nsnnwn(asn_per_data_t *pd); -ssize_t aper_get_nsnnwn(asn_per_data_t *pd, int range); - -/* X.691-2008/11, #11.5.6 */ -int uper_get_constrained_whole_number(asn_per_data_t *pd, unsigned long *v, int nbits); - - -/* Temporary compatibility layer. Will get removed. */ -typedef struct asn_bit_outp_s asn_per_outp_t; -#define per_put_few_bits(out, bits, obits) asn_put_few_bits(out, bits, obits) -#define per_put_many_bits(out, src, nbits) asn_put_many_bits(out, src, nbits) -#define per_put_aligned_flush(out) asn_put_aligned_flush(out) - - -/* - * Rebase the given value as an offset into the range specified by the - * lower bound (lb) and upper bound (ub). - * RETURN VALUES: - * -1: Conversion failed due to range problems. - * 0: Conversion was successful. - */ -int per_long_range_rebase(long v, long lb, long ub, unsigned long *output); -/* The inverse operation: restores the value by the offset and its bounds. */ -int per_long_range_unrebase(unsigned long inp, long lb, long ub, long *outp); - -/* X.691-2008/11, #11.5 */ -int uper_put_constrained_whole_number_u(asn_per_outp_t *po, unsigned long v, int nbits); - -/* - * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" - * Put the length "whole_length" to the Unaligned PER stream. - * If (opt_need_eom) is given, it will be set to 1 if final 0-length is needed. - * In that case, invoke uper_put_length(po, 0, 0) after encoding the last block. - * This function returns the number of units which may be flushed - * in the next units saving iteration. - */ -ssize_t uper_put_length(asn_per_outp_t *po, size_t whole_length, - int *opt_need_eom); - -ssize_t aper_put_length(asn_per_outp_t *po, int range, size_t length); - -/* Align the current bit position to octet bundary */ -int aper_put_align(asn_per_outp_t *po); -int32_t aper_get_align(asn_per_data_t *pd); - -/* - * Put the normally small length "n" to the Unaligned PER stream. - * Returns 0 or -1. - */ -int uper_put_nslength(asn_per_outp_t *po, size_t length); - -int aper_put_nslength(asn_per_outp_t *po, size_t length); - -/* - * Put the normally small non-negative whole number. - */ -int uper_put_nsnnwn(asn_per_outp_t *po, int n); - -int aper_put_nsnnwn(asn_per_outp_t *po, int range, int number); - -#ifdef __cplusplus -} -#endif - -#endif /* _PER_SUPPORT_H_ */ diff --git a/e2sim/src/ASN1c/xer_decoder.c b/e2sim/src/ASN1c/xer_decoder.c deleted file mode 100644 index 5b87703..0000000 --- a/e2sim/src/ASN1c/xer_decoder.c +++ /dev/null @@ -1,369 +0,0 @@ -/* - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include /* XER/XML parsing support */ - - -/* - * Decode the XER encoding of a given type. - */ -asn_dec_rval_t -xer_decode(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const void *buffer, size_t size) { - asn_codec_ctx_t s_codec_ctx; - - /* - * Stack checker requires that the codec context - * must be allocated on the stack. - */ - if(opt_codec_ctx) { - if(opt_codec_ctx->max_stack_size) { - s_codec_ctx = *opt_codec_ctx; - opt_codec_ctx = &s_codec_ctx; - } - } else { - /* If context is not given, be security-conscious anyway */ - memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); - s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; - opt_codec_ctx = &s_codec_ctx; - } - - /* - * Invoke type-specific decoder. - */ - return td->op->xer_decoder(opt_codec_ctx, td, struct_ptr, 0, buffer, size); -} - - - -struct xer__cb_arg { - pxml_chunk_type_e chunk_type; - size_t chunk_size; - const void *chunk_buf; - int callback_not_invoked; -}; - -static int -xer__token_cb(pxml_chunk_type_e type, const void *_chunk_data, size_t _chunk_size, void *key) { - struct xer__cb_arg *arg = (struct xer__cb_arg *)key; - arg->chunk_type = type; - arg->chunk_size = _chunk_size; - arg->chunk_buf = _chunk_data; - arg->callback_not_invoked = 0; - return -1; /* Terminate the XML parsing */ -} - -/* - * Fetch the next token from the XER/XML stream. - */ -ssize_t -xer_next_token(int *stateContext, const void *buffer, size_t size, pxer_chunk_type_e *ch_type) { - struct xer__cb_arg arg; - int new_stateContext = *stateContext; - ssize_t ret; - - arg.callback_not_invoked = 1; - ret = pxml_parse(&new_stateContext, buffer, size, xer__token_cb, &arg); - if(ret < 0) return -1; - if(arg.callback_not_invoked) { - assert(ret == 0); /* No data was consumed */ - *ch_type = PXER_WMORE; - return 0; /* Try again with more data */ - } else { - assert(arg.chunk_size); - assert(arg.chunk_buf == buffer); - } - - /* - * Translate the XML chunk types into more convenient ones. - */ - switch(arg.chunk_type) { - case PXML_TEXT: - *ch_type = PXER_TEXT; - break; - case PXML_TAG: - *ch_type = PXER_WMORE; - return 0; /* Want more */ - case PXML_TAG_END: - *ch_type = PXER_TAG; - break; - case PXML_COMMENT: - case PXML_COMMENT_END: - *ch_type = PXER_COMMENT; - break; - } - - *stateContext = new_stateContext; - return arg.chunk_size; -} - -#define CSLASH 0x2f /* '/' */ -#define LANGLE 0x3c /* '<' */ -#define RANGLE 0x3e /* '>' */ - -xer_check_tag_e -xer_check_tag(const void *buf_ptr, int size, const char *need_tag) { - const char *buf = (const char *)buf_ptr; - const char *end; - xer_check_tag_e ct = XCT_OPENING; - - if(size < 2 || buf[0] != LANGLE || buf[size-1] != RANGLE) { - if(size >= 2) - ASN_DEBUG("Broken XML tag: \"%c...%c\"", - buf[0], buf[size - 1]); - return XCT_BROKEN; - } - - /* - * Determine the tag class. - */ - if(buf[1] == CSLASH) { - buf += 2; /* advance past "" */ - ct = XCT_CLOSING; - if(size > 0 && buf[size-1] == CSLASH) - return XCT_BROKEN; /* */ - } else { - buf++; /* advance past "<" */ - size -= 2; /* strip "<" and ">" */ - if(size > 0 && buf[size-1] == CSLASH) { - ct = XCT_BOTH; - size--; /* One more, for "/" */ - } - } - - /* Sometimes we don't care about the tag */ - if(!need_tag || !*need_tag) - return (xer_check_tag_e)(XCT__UNK__MASK | ct); - - /* - * Determine the tag name. - */ - for(end = buf + size; buf < end; buf++, need_tag++) { - int b = *buf, n = *need_tag; - if(b != n) { - if(n == 0) { - switch(b) { - case 0x09: case 0x0a: case 0x0c: case 0x0d: - case 0x20: - /* "": whitespace is normal */ - return ct; - } - } - return (xer_check_tag_e)(XCT__UNK__MASK | ct); - } - if(b == 0) - return XCT_BROKEN; /* Embedded 0 in buf?! */ - } - if(*need_tag) - return (xer_check_tag_e)(XCT__UNK__MASK | ct); - - return ct; -} - - -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = (num_bytes); \ - buf_ptr = ((const char *)buf_ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself; \ - if(rval.code != RC_OK) \ - ASN_DEBUG("Failed with %d", rval.code); \ - return rval; \ - } while(0) - -#define XER_GOT_BODY(chunk_buf, chunk_size, size) do { \ - ssize_t converted_size = body_receiver \ - (struct_key, chunk_buf, chunk_size, \ - (size_t)chunk_size < size); \ - if(converted_size == -1) RETURN(RC_FAIL); \ - if(converted_size == 0 \ - && size == (size_t)chunk_size) \ - RETURN(RC_WMORE); \ - chunk_size = converted_size; \ - } while(0) -#define XER_GOT_EMPTY() do { \ - if(body_receiver(struct_key, 0, 0, size > 0) == -1) \ - RETURN(RC_FAIL); \ - } while(0) - -/* - * Generalized function for decoding the primitive values. - */ -asn_dec_rval_t -xer_decode_general(const asn_codec_ctx_t *opt_codec_ctx, - asn_struct_ctx_t *ctx, /* Type decoder context */ - void *struct_key, - const char *xml_tag, /* Expected XML tag */ - const void *buf_ptr, size_t size, - int (*opt_unexpected_tag_decoder) - (void *struct_key, const void *chunk_buf, size_t chunk_size), - ssize_t (*body_receiver) - (void *struct_key, const void *chunk_buf, size_t chunk_size, - int have_more) - ) { - - asn_dec_rval_t rval; - ssize_t consumed_myself = 0; - - (void)opt_codec_ctx; - - /* - * Phases of XER/XML processing: - * Phase 0: Check that the opening tag matches our expectations. - * Phase 1: Processing body and reacting on closing tag. - */ - if(ctx->phase > 1) RETURN(RC_FAIL); - for(;;) { - pxer_chunk_type_e ch_type; /* XER chunk type */ - ssize_t ch_size; /* Chunk size */ - xer_check_tag_e tcv; /* Tag check value */ - - /* - * Get the next part of the XML stream. - */ - ch_size = xer_next_token(&ctx->context, buf_ptr, size, - &ch_type); - if(ch_size == -1) { - RETURN(RC_FAIL); - } else { - switch(ch_type) { - case PXER_WMORE: - RETURN(RC_WMORE); - case PXER_COMMENT: /* Got XML comment */ - ADVANCE(ch_size); /* Skip silently */ - continue; - case PXER_TEXT: - if(ctx->phase == 0) { - /* - * We have to ignore whitespace here, - * but in order to be forward compatible - * with EXTENDED-XER (EMBED-VALUES, #25) - * any text is just ignored here. - */ - } else { - XER_GOT_BODY(buf_ptr, ch_size, size); - } - ADVANCE(ch_size); - continue; - case PXER_TAG: - break; /* Check the rest down there */ - } - } - - assert(ch_type == PXER_TAG && size); - - tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); - /* - * Phase 0: - * Expecting the opening tag - * for the type being processed. - * Phase 1: - * Waiting for the closing XML tag. - */ - switch(tcv) { - case XCT_BOTH: - if(ctx->phase) break; - /* Finished decoding of an empty element */ - XER_GOT_EMPTY(); - ADVANCE(ch_size); - ctx->phase = 2; /* Phase out */ - RETURN(RC_OK); - case XCT_OPENING: - if(ctx->phase) break; - ADVANCE(ch_size); - ctx->phase = 1; /* Processing body phase */ - continue; - case XCT_CLOSING: - if(!ctx->phase) break; - ADVANCE(ch_size); - ctx->phase = 2; /* Phase out */ - RETURN(RC_OK); - case XCT_UNKNOWN_BO: - /* - * Certain tags in the body may be expected. - */ - if(opt_unexpected_tag_decoder - && opt_unexpected_tag_decoder(struct_key, - buf_ptr, ch_size) >= 0) { - /* Tag's processed fine */ - ADVANCE(ch_size); - if(!ctx->phase) { - /* We are not expecting - * the closing tag anymore. */ - ctx->phase = 2; /* Phase out */ - RETURN(RC_OK); - } - continue; - } - /* Fall through */ - default: - break; /* Unexpected tag */ - } - - ASN_DEBUG("Unexpected XML tag (expected \"%s\")", xml_tag); - break; /* Dark and mysterious things have just happened */ - } - - RETURN(RC_FAIL); -} - - -size_t -xer_whitespace_span(const void *chunk_buf, size_t chunk_size) { - const char *p = (const char *)chunk_buf; - const char *pend = p + chunk_size; - - for(; p < pend; p++) { - switch(*p) { - /* X.693, #8.1.4 - * HORISONTAL TAB (9) - * LINE FEED (10) - * CARRIAGE RETURN (13) - * SPACE (32) - */ - case 0x09: case 0x0a: case 0x0d: case 0x20: - continue; - default: - break; - } - break; - } - return (p - (const char *)chunk_buf); -} - -/* - * This is a vastly simplified, non-validating XML tree skipper. - */ -int -xer_skip_unknown(xer_check_tag_e tcv, ber_tlv_len_t *depth) { - assert(*depth > 0); - switch(tcv) { - case XCT_BOTH: - case XCT_UNKNOWN_BO: - /* These negate each other. */ - return 0; - case XCT_OPENING: - case XCT_UNKNOWN_OP: - ++(*depth); - return 0; - case XCT_CLOSING: - case XCT_UNKNOWN_CL: - if(--(*depth) == 0) - return (tcv == XCT_CLOSING) ? 2 : 1; - return 0; - default: - return -1; - } -} diff --git a/e2sim/src/ASN1c/xer_decoder.h b/e2sim/src/ASN1c/xer_decoder.h deleted file mode 100644 index b951c41..0000000 --- a/e2sim/src/ASN1c/xer_decoder.h +++ /dev/null @@ -1,106 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _XER_DECODER_H_ -#define _XER_DECODER_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * The XER decoder of any ASN.1 type. May be invoked by the application. - * Decodes CANONICAL-XER and BASIC-XER. - */ -asn_dec_rval_t xer_decode( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of data buffer */ -); - -/* - * Type of the type-specific XER decoder function. - */ -typedef asn_dec_rval_t(xer_type_decoder_f)( - const asn_codec_ctx_t *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, void **struct_ptr, - const char *opt_mname, /* Member name */ - const void *buf_ptr, size_t size); - -/******************************* - * INTERNALLY USEFUL FUNCTIONS * - *******************************/ - -/* - * Generalized function for decoding the primitive values. - * Used by more specialized functions, such as OCTET_STRING_decode_xer_utf8 - * and others. This function should not be used by applications, as its API - * is subject to changes. - */ -asn_dec_rval_t xer_decode_general( - const asn_codec_ctx_t *opt_codec_ctx, - asn_struct_ctx_t *ctx, /* Type decoder context */ - void *struct_key, /* Treated as opaque pointer */ - const char *xml_tag, /* Expected XML tag name */ - const void *buf_ptr, size_t size, - int (*opt_unexpected_tag_decoder)(void *struct_key, const void *chunk_buf, - size_t chunk_size), - ssize_t (*body_receiver)(void *struct_key, const void *chunk_buf, - size_t chunk_size, int have_more)); - - -/* - * Fetch the next XER (XML) token from the stream. - * The function returns the number of bytes occupied by the chunk type, - * returned in the _ch_type. The _ch_type is only set (and valid) when - * the return value is >= 0. - */ - typedef enum pxer_chunk_type { - PXER_WMORE, /* Chunk type is not clear, more data expected. */ - PXER_TAG, /* Complete XER tag */ - PXER_TEXT, /* Plain text between XER tags */ - PXER_COMMENT /* A comment, may be part of */ - } pxer_chunk_type_e; -ssize_t xer_next_token(int *stateContext, - const void *buffer, size_t size, pxer_chunk_type_e *_ch_type); - -/* - * This function checks the buffer against the tag name is expected to occur. - */ - typedef enum xer_check_tag { - XCT_BROKEN = 0, /* The tag is broken */ - XCT_OPENING = 1, /* This is the tag */ - XCT_CLOSING = 2, /* This is the tag */ - XCT_BOTH = 3, /* This is the tag */ - XCT__UNK__MASK = 4, /* Mask of everything unexpected */ - XCT_UNKNOWN_OP = 5, /* Unexpected tag */ - XCT_UNKNOWN_CL = 6, /* Unexpected tag */ - XCT_UNKNOWN_BO = 7 /* Unexpected tag */ - } xer_check_tag_e; -xer_check_tag_e xer_check_tag(const void *buf_ptr, int size, - const char *need_tag); - -/* - * Get the number of bytes consisting entirely of XER whitespace characters. - * RETURN VALUES: - * >=0: Number of whitespace characters in the string. - */ -size_t xer_whitespace_span(const void *chunk_buf, size_t chunk_size); - -/* - * Skip the series of anticipated extensions. - */ -int xer_skip_unknown(xer_check_tag_e tcv, ber_tlv_len_t *depth); - -#ifdef __cplusplus -} -#endif - -#endif /* _XER_DECODER_H_ */ diff --git a/e2sim/src/ASN1c/xer_encoder.c b/e2sim/src/ASN1c/xer_encoder.c deleted file mode 100644 index 4177ede..0000000 --- a/e2sim/src/ASN1c/xer_encoder.c +++ /dev/null @@ -1,237 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * The XER encoder of any type. May be invoked by the application. - */ -asn_enc_rval_t -xer_encode(const asn_TYPE_descriptor_t *td, const void *sptr, - enum xer_encoder_flags_e xer_flags, asn_app_consume_bytes_f *cb, - void *app_key) { - asn_enc_rval_t er = {0, 0, 0}; - asn_enc_rval_t tmper; - const char *mname; - size_t mlen; - int xcan = (xer_flags & XER_F_CANONICAL) ? 1 : 2; - - if(!td || !sptr) goto cb_failed; - - mname = td->xml_tag; - mlen = strlen(mname); - - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - - tmper = td->op->xer_encoder(td, sptr, 1, xer_flags, cb, app_key); - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - - ASN__CALLBACK3("\n", xcan); - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -/* - * This is a helper function for xer_fprint, which directs all incoming data - * into the provided file descriptor. - */ -static int -xer__print2fp(const void *buffer, size_t size, void *app_key) { - FILE *stream = (FILE *)app_key; - - if(fwrite(buffer, 1, size, stream) != size) - return -1; - - return 0; -} - -int -xer_fprint(FILE *stream, const asn_TYPE_descriptor_t *td, const void *sptr) { - asn_enc_rval_t er = {0,0,0}; - - if(!stream) stream = stdout; - if(!td || !sptr) - return -1; - - er = xer_encode(td, sptr, XER_F_BASIC, xer__print2fp, stream); - if(er.encoded == -1) - return -1; - - return fflush(stream); -} - -struct xer_buffer { - char *buffer; - size_t buffer_size; - size_t allocated_size; -}; - -static int -xer__buffer_append(const void *buffer, size_t size, void *app_key) { - struct xer_buffer *xb = app_key; - - while(xb->buffer_size + size + 1 > xb->allocated_size) { - size_t new_size = 2 * (xb->allocated_size ? xb->allocated_size : 64); - char *new_buf = MALLOC(new_size); - if(!new_buf) return -1; - if (xb->buffer) { - memcpy(new_buf, xb->buffer, xb->buffer_size); - } - FREEMEM(xb->buffer); - xb->buffer = new_buf; - xb->allocated_size = new_size; - } - - memcpy(xb->buffer + xb->buffer_size, buffer, size); - xb->buffer_size += size; - xb->buffer[xb->buffer_size] = '\0'; - return 0; -} - -enum xer_equivalence_e -xer_equivalent(const struct asn_TYPE_descriptor_s *td, const void *struct1, - const void *struct2, FILE *opt_debug_stream) { - struct xer_buffer xb1 = {0, 0, 0}; - struct xer_buffer xb2 = {0, 0, 0}; - asn_enc_rval_t e1, e2; - asn_dec_rval_t rval; - void *sptr = NULL; - - if(!td || !struct1 || !struct2) { - if(opt_debug_stream) { - if(!td) fprintf(opt_debug_stream, "Type descriptor missing\n"); - if(!struct1) fprintf(opt_debug_stream, "Structure 1 missing\n"); - if(!struct2) fprintf(opt_debug_stream, "Structure 2 missing\n"); - } - return XEQ_FAILURE; - } - - e1 = xer_encode(td, struct1, XER_F_BASIC, xer__buffer_append, &xb1); - if(e1.encoded == -1) { - if(opt_debug_stream) { - fprintf(stderr, "XER Encoding of %s failed\n", td->name); - } - FREEMEM(xb1.buffer); - return XEQ_ENCODE1_FAILED; - } - - e2 = xer_encode(td, struct2, XER_F_BASIC, xer__buffer_append, &xb2); - if(e2.encoded == -1) { - if(opt_debug_stream) { - fprintf(stderr, "XER Encoding of %s failed\n", td->name); - } - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_ENCODE1_FAILED; - } - - if(xb1.buffer_size != xb2.buffer_size - || memcmp(xb1.buffer, xb2.buffer, xb1.buffer_size) != 0) { - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "Structures XER-encoded into different byte streams:\n=== " - "Structure 1 ===\n%s\n=== Structure 2 ===\n%s\n", - xb1.buffer, xb2.buffer); - } - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_DIFFERENT; - } else { - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "Both structures encoded into the same XER byte stream " - "of size %" ASN_PRI_SIZE ":\n%s", - xb1.buffer_size, xb1.buffer); - } - } - - rval = xer_decode(NULL, td, (void **)&sptr, xb1.buffer, - xb1.buffer_size); - switch(rval.code) { - case RC_OK: - break; - case RC_WMORE: - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "Structure %s XER decode unexpectedly requires " - "more data:\n%s\n", - td->name, xb1.buffer); - } - /* Fall through */ - case RC_FAIL: - default: - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "Structure %s XER decoding resulted in failure.\n", - td->name); - } - ASN_STRUCT_FREE(*td, sptr); - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_DECODE_FAILED; - } - - if(rval.consumed != xb1.buffer_size - && ((rval.consumed > xb1.buffer_size) - || xer_whitespace_span(xb1.buffer + rval.consumed, - xb1.buffer_size - rval.consumed) - != (xb1.buffer_size - rval.consumed))) { - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "Round-trip decode of %s required less bytes (%" ASN_PRI_SIZE ") than " - "encoded (%" ASN_PRI_SIZE ")\n", - td->name, rval.consumed, xb1.buffer_size); - } - ASN_STRUCT_FREE(*td, sptr); - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_ROUND_TRIP_FAILED; - } - - /* - * Reuse xb2 to encode newly decoded structure. - */ - FREEMEM(xb2.buffer); - memset(&xb2, 0, sizeof(xb2)); - - e2 = xer_encode(td, sptr, XER_F_BASIC, xer__buffer_append, &xb2); - if(e2.encoded == -1) { - if(opt_debug_stream) { - fprintf(stderr, "XER Encoding of round-trip decode of %s failed\n", - td->name); - } - ASN_STRUCT_FREE(*td, sptr); - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_ROUND_TRIP_FAILED; - } - - ASN_STRUCT_FREE(*td, sptr); - sptr = 0; - - if(xb1.buffer_size != xb2.buffer_size - || memcmp(xb1.buffer, xb2.buffer, xb1.buffer_size) != 0) { - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "XER Encoding of round-trip decode of %s resulted in " - "different byte stream:\n" - "=== Original ===\n%s\n" - "=== Round-tripped ===\n%s\n", - xb1.buffer, xb2.buffer, td->name); - } - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_ROUND_TRIP_FAILED; - } - - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_SUCCESS; -} - diff --git a/e2sim/src/ASN1c/xer_encoder.h b/e2sim/src/ASN1c/xer_encoder.h deleted file mode 100644 index 9d75922..0000000 --- a/e2sim/src/ASN1c/xer_encoder.h +++ /dev/null @@ -1,83 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _XER_ENCODER_H_ -#define _XER_ENCODER_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* Flags used by the xer_encode() and (*xer_type_encoder_f), defined below */ -enum xer_encoder_flags_e { - /* Mode of encoding */ - XER_F_BASIC = 0x01, /* BASIC-XER (pretty-printing) */ - XER_F_CANONICAL = 0x02 /* Canonical XER (strict rules) */ -}; - -/* - * The XER encoder of any type. May be invoked by the application. - * Produces CANONICAL-XER and BASIC-XER depending on the (xer_flags). - */ -asn_enc_rval_t xer_encode(const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - enum xer_encoder_flags_e xer_flags, - asn_app_consume_bytes_f *consume_bytes_cb, - void *app_key /* Arbitrary callback argument */ -); - -/* - * The variant of the above function which dumps the BASIC-XER (XER_F_BASIC) - * output into the chosen file pointer. - * RETURN VALUES: - * 0: The structure is printed. - * -1: Problem printing the structure. - * WARNING: No sensible errno value is returned. - */ -int xer_fprint(FILE *stream, const struct asn_TYPE_descriptor_s *td, - const void *struct_ptr); - -/* - * A helper function that uses XER encoding/decoding to verify that: - * - Both structures encode into the same BASIC XER. - * - Both resulting XER byte streams can be decoded back. - * - Both decoded structures encode into the same BASIC XER (round-trip). - * All of this verifies equivalence between structures and a round-trip. - * ARGUMENTS: - * (opt_debug_stream) - If specified, prints ongoing details. - */ -enum xer_equivalence_e { - XEQ_SUCCESS, /* The only completely positive return value */ - XEQ_FAILURE, /* General failure */ - XEQ_ENCODE1_FAILED, /* First sructure XER encoding failed */ - XEQ_ENCODE2_FAILED, /* Second structure XER encoding failed */ - XEQ_DIFFERENT, /* Structures encoded into different XER */ - XEQ_DECODE_FAILED, /* Decode of the XER data failed */ - XEQ_ROUND_TRIP_FAILED /* Bad round-trip */ -}; -enum xer_equivalence_e xer_equivalent( - const struct asn_TYPE_descriptor_s *type_descriptor, const void *struct1, - const void *struct2, FILE *opt_debug_stream); - -/* - * Type of the generic XER encoder. - */ -typedef asn_enc_rval_t(xer_type_encoder_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - int ilevel, /* Level of indentation */ - enum xer_encoder_flags_e xer_flags, - asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */ - void *app_key /* Arbitrary callback argument */ -); - -#ifdef __cplusplus -} -#endif - -#endif /* _XER_ENCODER_H_ */ diff --git a/e2sim/src/ASN1c/xer_support.c b/e2sim/src/ASN1c/xer_support.c deleted file mode 100644 index 36b4bfb..0000000 --- a/e2sim/src/ASN1c/xer_support.c +++ /dev/null @@ -1,227 +0,0 @@ -/* - * Copyright (c) 2003, 2004 X/IO Labs, xiolabs.com. - * Copyright (c) 2003, 2004, 2005 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -/* Parser states */ -typedef enum { - ST_TEXT, - ST_TAG_START, - ST_TAG_BODY, - ST_TAG_QUOTE_WAIT, - ST_TAG_QUOTED_STRING, - ST_TAG_UNQUOTED_STRING, - ST_COMMENT_WAIT_DASH1, /* ""[0] */ - ST_COMMENT_CLO_RT /* "-->"[1] */ -} pstate_e; - -static const int -_charclass[256] = { - 0,0,0,0,0,0,0,0, 0,1,1,0,1,1,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,0, 0,0,0,0,0,0,0,0, - 2,2,2,2,2,2,2,2, 2,2,0,0,0,0,0,0, /* 01234567 89 */ - 0,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3, /* ABCDEFG HIJKLMNO */ - 3,3,3,3,3,3,3,3, 3,3,3,0,0,0,0,0, /* PQRSTUVW XYZ */ - 0,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3, /* abcdefg hijklmno */ - 3,3,3,3,3,3,3,3, 3,3,3,0,0,0,0,0 /* pqrstuvw xyz */ -}; -#define WHITESPACE(c) (_charclass[(unsigned char)(c)] == 1) -#define ALNUM(c) (_charclass[(unsigned char)(c)] >= 2) -#define ALPHA(c) (_charclass[(unsigned char)(c)] == 3) - -/* Aliases for characters, ASCII/UTF-8 */ -#define EXCLAM 0x21 /* '!' */ -#define CQUOTE 0x22 /* '"' */ -#define CDASH 0x2d /* '-' */ -#define CSLASH 0x2f /* '/' */ -#define LANGLE 0x3c /* '<' */ -#define CEQUAL 0x3d /* '=' */ -#define RANGLE 0x3e /* '>' */ -#define CQUEST 0x3f /* '?' */ - -/* Invoke token callback */ -#define TOKEN_CB_CALL(type, _ns, _current_too, _final) do { \ - int _ret; \ - pstate_e ns = _ns; \ - ssize_t _sz = (p - chunk_start) + _current_too; \ - if (!_sz) { \ - /* Shortcut */ \ - state = _ns; \ - break; \ - } \ - _ret = cb(type, chunk_start, _sz, key); \ - if(_ret < _sz) { \ - if(_current_too && _ret == -1) \ - state = ns; \ - goto finish; \ - } \ - chunk_start = p + _current_too; \ - state = ns; \ - } while(0) - -#define TOKEN_CB(_type, _ns, _current_too) \ - TOKEN_CB_CALL(_type, _ns, _current_too, 0) - -#define PXML_TAG_FINAL_CHUNK_TYPE PXML_TAG_END -#define PXML_COMMENT_FINAL_CHUNK_TYPE PXML_COMMENT_END - -#define TOKEN_CB_FINAL(_type, _ns, _current_too) \ - TOKEN_CB_CALL( _type ## _FINAL_CHUNK_TYPE , _ns, _current_too, 1) - -/* - * Parser itself - */ -ssize_t pxml_parse(int *stateContext, const void *xmlbuf, size_t size, pxml_callback_f *cb, void *key) { - pstate_e state = (pstate_e)*stateContext; - const char *chunk_start = (const char *)xmlbuf; - const char *p = chunk_start; - const char *end = p + size; - - for(; p < end; p++) { - int C = *(const unsigned char *)p; - switch(state) { - case ST_TEXT: - /* - * Initial state: we're in the middle of some text, - * or just have started. - */ - if (C == LANGLE) - /* We're now in the tag, probably */ - TOKEN_CB(PXML_TEXT, ST_TAG_START, 0); - break; - case ST_TAG_START: - if (ALPHA(C) || (C == CSLASH)) - state = ST_TAG_BODY; - else if (C == EXCLAM) - state = ST_COMMENT_WAIT_DASH1; - else - /* - * Not characters and not whitespace. - * Must be something like "3 < 4". - */ - TOKEN_CB(PXML_TEXT, ST_TEXT, 1);/* Flush as data */ - break; - case ST_TAG_BODY: - switch(C) { - case RANGLE: - /* End of the tag */ - TOKEN_CB_FINAL(PXML_TAG, ST_TEXT, 1); - break; - case LANGLE: - /* - * The previous tag wasn't completed, but still - * recognized as valid. (Mozilla-compatible) - */ - TOKEN_CB_FINAL(PXML_TAG, ST_TAG_START, 0); - break; - case CEQUAL: - state = ST_TAG_QUOTE_WAIT; - break; - } - break; - case ST_TAG_QUOTE_WAIT: - /* - * State after the equal sign ("=") in the tag. - */ - switch(C) { - case CQUOTE: - state = ST_TAG_QUOTED_STRING; - break; - case RANGLE: - /* End of the tag */ - TOKEN_CB_FINAL(PXML_TAG, ST_TEXT, 1); - break; - default: - if(!WHITESPACE(C)) - /* Unquoted string value */ - state = ST_TAG_UNQUOTED_STRING; - } - break; - case ST_TAG_QUOTED_STRING: - /* - * Tag attribute's string value in quotes. - */ - if(C == CQUOTE) { - /* Return back to the tag state */ - state = ST_TAG_BODY; - } - break; - case ST_TAG_UNQUOTED_STRING: - if(C == RANGLE) { - /* End of the tag */ - TOKEN_CB_FINAL(PXML_TAG, ST_TEXT, 1); - } else if(WHITESPACE(C)) { - /* Return back to the tag state */ - state = ST_TAG_BODY; - } - break; - case ST_COMMENT_WAIT_DASH1: - if(C == CDASH) { - state = ST_COMMENT_WAIT_DASH2; - } else { - /* Some ordinary tag. */ - state = ST_TAG_BODY; - } - break; - case ST_COMMENT_WAIT_DASH2: - if(C == CDASH) { - /* Seen "<--" */ - state = ST_COMMENT; - } else { - /* Some ordinary tag */ - state = ST_TAG_BODY; - } - break; - case ST_COMMENT: - if(C == CDASH) { - state = ST_COMMENT_CLO_DASH2; - } - break; - case ST_COMMENT_CLO_DASH2: - if(C == CDASH) { - state = ST_COMMENT_CLO_RT; - } else { - /* This is not an end of a comment */ - state = ST_COMMENT; - } - break; - case ST_COMMENT_CLO_RT: - if(C == RANGLE) { - TOKEN_CB_FINAL(PXML_COMMENT, ST_TEXT, 1); - } else if(C == CDASH) { - /* Maintain current state, still waiting for '>' */ - } else { - state = ST_COMMENT; - } - break; - } /* switch(*ptr) */ - } /* for() */ - - /* - * Flush the partially processed chunk, state permitting. - */ - if(p - chunk_start) { - switch (state) { - case ST_COMMENT: - TOKEN_CB(PXML_COMMENT, state, 0); - break; - case ST_TEXT: - TOKEN_CB(PXML_TEXT, state, 0); - break; - default: break; /* a no-op */ - } - } - -finish: - *stateContext = (int)state; - return chunk_start - (const char *)xmlbuf; -} - diff --git a/e2sim/src/ASN1c/xer_support.h b/e2sim/src/ASN1c/xer_support.h deleted file mode 100644 index c3a36e7..0000000 --- a/e2sim/src/ASN1c/xer_support.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2003, 2004 X/IO Labs, xiolabs.com. - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _XER_SUPPORT_H_ -#define _XER_SUPPORT_H_ - -#include /* Platform-specific types */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Types of data transferred to the application. - */ -typedef enum { - PXML_TEXT, /* Plain text between XML tags. */ - PXML_TAG, /* A tag, starting with '<'. */ - PXML_COMMENT, /* An XML comment, including "". */ - /* - * The following chunk types are reported if the chunk - * terminates the specified XML element. - */ - PXML_TAG_END, /* Tag ended */ - PXML_COMMENT_END /* Comment ended */ -} pxml_chunk_type_e; - -/* - * Callback function that is called by the parser when parsed data is - * available. The _opaque is the pointer to a field containing opaque user - * data specified in pxml_create() call. The chunk type is _type and the text - * data is the piece of buffer identified by _bufid (as supplied to - * pxml_feed() call) starting at offset _offset and of _size bytes size. - * The chunk is NOT '\0'-terminated. - */ -typedef int (pxml_callback_f)(pxml_chunk_type_e _type, - const void *_chunk_data, size_t _chunk_size, void *_key); - -/* - * Parse the given buffer as it were a chunk of XML data. - * Invoke the specified callback each time the meaninful data is found. - * This function returns number of bytes consumed from the bufer. - * It will always be lesser than or equal to the specified _size. - * The next invocation of this function must account the difference. - */ -ssize_t pxml_parse(int *_stateContext, const void *_buf, size_t _size, - pxml_callback_f *cb, void *_key); - -#ifdef __cplusplus -} -#endif - -#endif /* _XER_SUPPORT_H_ */ diff --git a/e2sim/src/DEF/CMakeLists.txt b/e2sim/src/DEF/CMakeLists.txt old mode 100644 new mode 100755 diff --git a/e2sim/src/DEF/e2sim_defs.cpp b/e2sim/src/DEF/e2sim_defs.cpp old mode 100644 new mode 100755 diff --git a/e2sim/src/DEF/e2sim_defs.h b/e2sim/src/DEF/e2sim_defs.h old mode 100644 new mode 100755 index cf4a0d6..f10cebf --- a/e2sim/src/DEF/e2sim_defs.h +++ b/e2sim/src/DEF/e2sim_defs.h @@ -20,9 +20,10 @@ #ifndef E2SIM_DEFS_H #define E2SIM_DEFS_H -// #include #include #include +#include +#include #define VERSION "1.2.0" //May 2019 #define DEFAULT_SCTP_IP "127.0.0.1" @@ -38,7 +39,20 @@ char* time_stamp(void); // #define LOG_E(...) {printf("[%s]", time_stamp()); printf(__VA_ARGS__); printf("\n");} // #define LOG_D(...) {printf("[%s]", time_stamp()); printf(__VA_ARGS__); printf("\n");} -#define LOG_I(...) {printf(__VA_ARGS__); printf("\n");} +#define LOG_I(format, ...) \ + do { \ + const char *file = __FILE__; \ + const char *fileName = strrchr(file, '/'); \ + if (fileName != NULL) { \ + fileName++; \ + } \ + else { \ + fileName = file; \ + } \ + printf("[%s:%d] ", fileName, __LINE__); \ + printf(format, ##__VA_ARGS__); \ + printf("\n"); \ + } while (0); #define LOG_E(...) {printf(__VA_ARGS__); printf("\n");} #define LOG_D(...) {printf(__VA_ARGS__); printf("\n");} diff --git a/e2sim/src/SCTP/CMakeLists.txt b/e2sim/src/SCTP/CMakeLists.txt old mode 100644 new mode 100755 diff --git a/e2sim/src/SCTP/e2sim_sctp.c b/e2sim/src/SCTP/e2sim_sctp.c old mode 100644 new mode 100755 diff --git a/e2sim/src/SCTP/e2sim_sctp.cpp b/e2sim/src/SCTP/e2sim_sctp.cpp old mode 100644 new mode 100755 index ce9d649..2c70f0e --- a/e2sim/src/SCTP/e2sim_sctp.cpp +++ b/e2sim/src/SCTP/e2sim_sctp.cpp @@ -232,10 +232,7 @@ int sctp_accept_connection(const char *server_ip_str, const int server_fd) int sctp_send_data(int &socket_fd, sctp_buffer_t &data) { - fprintf(stderr,"in sctp send data func\n"); - fprintf(stderr,"data.len is %d", data.len); int sent_len = send(socket_fd, (void*)(&(data.buffer[0])), data.len, 0); - fprintf(stderr,"after getting sent_len\n"); if(sent_len == -1) { perror("[SCTP] sctp_send_data"); @@ -269,14 +266,11 @@ Outcome of recv() int sctp_receive_data(int &socket_fd, sctp_buffer_t &data) { //clear out the data before receiving - fprintf(stderr, "receive data1\n"); memset(data.buffer, 0, sizeof(data.buffer)); - fprintf(stderr, "receive data2\n"); data.len = 0; //receive data from the socket int recv_len = recv(socket_fd, &(data.buffer), sizeof(data.buffer), 0); - fprintf(stderr, "receive data3\n"); if(recv_len == -1) { diff --git a/e2sim/src/SCTP/e2sim_sctp.h b/e2sim/src/SCTP/e2sim_sctp.h old mode 100644 new mode 100755 diff --git a/e2sim/src/SCTP/e2sim_sctp.hpp b/e2sim/src/SCTP/e2sim_sctp.hpp old mode 100644 new mode 100755 diff --git a/e2sim/src/base/CMakeLists.txt b/e2sim/src/base/CMakeLists.txt old mode 100644 new mode 100755 index 7dd379e..abda967 --- a/e2sim/src/base/CMakeLists.txt +++ b/e2sim/src/base/CMakeLists.txt @@ -21,7 +21,7 @@ add_library( base_objects OBJECT e2sim.cpp) -include_directories(../ASN1c) +include_directories(../../asn1c) target_include_directories (base_objects PUBLIC $ diff --git a/e2sim/src/base/e2sim.cpp b/e2sim/src/base/e2sim.cpp index c0abcd6..9c3ec42 100755 --- a/e2sim/src/base/e2sim.cpp +++ b/e2sim/src/base/e2sim.cpp @@ -78,6 +78,8 @@ void E2Sim::encode_and_send_sctp_data(E2AP_PDU_t* pdu) data.len = e2ap_asn1c_encode_pdu(pdu, &buf); memcpy(data.buffer, buf, min(data.len, MAX_SCTP_BUFFER)); if (buf) free(buf); + + LOG_I("Number of bytes sent via SCTP connection %d", min(data.len, MAX_SCTP_BUFFER)); sctp_send_data(client_fd, data); } @@ -221,13 +223,7 @@ int E2Sim::run_loop(int argc, char* argv[]){ memcpy(resetdata.buffer, buffer, er.encoded); - //send response data over sctp - if(sctp_send_data(client_fd, resetdata) > 0) { - LOG_I("[SCTP] Sent E2ResetRequest"); - } else { - LOG_E("[SCTP] Unable to send E2ResetRequest to RIC"); - } - + LOG_I("Test to delete ReSet code"); sctp_buffer_t recv_buf; diff --git a/e2sim/src/base/e2sim.hpp b/e2sim/src/base/e2sim.hpp old mode 100644 new mode 100755 diff --git a/e2sim/src/encoding/CMakeLists.txt b/e2sim/src/encoding/CMakeLists.txt old mode 100644 new mode 100755 index 755d00f..3b87db1 --- a/e2sim/src/encoding/CMakeLists.txt +++ b/e2sim/src/encoding/CMakeLists.txt @@ -21,7 +21,7 @@ # add_library( encoding_objects OBJECT encode_e2apv1.cpp) -include_directories(../ASN1c) +include_directories(../../asn1c) target_include_directories (encoding_objects PUBLIC $ diff --git a/e2sim/src/encoding/encode_e2apv1.cpp b/e2sim/src/encoding/encode_e2apv1.cpp index d5b0639..85d8cbf 100755 --- a/e2sim/src/encoding/encode_e2apv1.cpp +++ b/e2sim/src/encoding/encode_e2apv1.cpp @@ -929,7 +929,8 @@ void encoding::generate_e2apv1_indication_request_parameterized(E2AP_PDU *e2ap_p uint8_t *ind_message_buf, int message_length) { - fprintf(stderr, "ind1\n"); + printf("Initializing E2AP request\n"); + RICindication_IEs_t *ricind_ies = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); RICindication_IEs_t *ricind_ies2 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); RICindication_IEs_t *ricind_ies3 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); @@ -948,8 +949,6 @@ void encoding::generate_e2apv1_indication_request_parameterized(E2AP_PDU *e2ap_p ricind_ies->value.choice.RICrequestID.ricRequestorID = requestorId; ricind_ies->value.choice.RICrequestID.ricInstanceID = instanceId; - fprintf(stderr, "ind2\n"); - pres3 = RICindication_IEs__value_PR_RANfunctionID; ricind_ies2->id = ProtocolIE_ID_id_RANfunctionID; ricind_ies2->criticality = 0; @@ -977,8 +976,6 @@ void encoding::generate_e2apv1_indication_request_parameterized(E2AP_PDU *e2ap_p ricind_ies5->value.present = pres3; ricind_ies5->value.choice.RICindicationType = 0; - fprintf(stderr, "ind3\n"); - ricind_ies6->value.choice.RICindicationHeader.buf = (uint8_t*)calloc(1,header_length); pres3 = RICindication_IEs__value_PR_RICindicationHeader; @@ -991,30 +988,19 @@ void encoding::generate_e2apv1_indication_request_parameterized(E2AP_PDU *e2ap_p ricind_ies7->value.choice.RICindicationMessage.buf = (uint8_t*)calloc(1,8192); - - pres3 = RICindication_IEs__value_PR_RICindicationMessage; ricind_ies7->id = ProtocolIE_ID_id_RICindicationMessage; - fprintf(stderr, "after encoding message 1\n"); ricind_ies7->criticality = 0; ricind_ies7->value.present = pres3; - fprintf(stderr, "after encoding message 2\n"); - - fprintf(stderr, "after encoding message 3\n"); ricind_ies7->value.choice.RICindicationMessage.size = message_length; - fprintf(stderr, "after encoding message 4\n"); memcpy(ricind_ies7->value.choice.RICindicationMessage.buf, ind_message_buf, message_length); - fprintf(stderr, "after encoding message 5\n"); - uint8_t *cpid_buf = (uint8_t *)"cpid"; OCTET_STRING_t cpid_str; - printf("5.1\n"); - int cpid_buf_len = strlen((char*)cpid_buf); pres3 = RICindication_IEs__value_PR_RICcallProcessID; ricind_ies8->id = ProtocolIE_ID_id_RICcallProcessID; @@ -1027,39 +1013,16 @@ void encoding::generate_e2apv1_indication_request_parameterized(E2AP_PDU *e2ap_p memcpy(ricind_ies8->value.choice.RICcallProcessID.buf, cpid_buf, cpid_buf_len); - printf("5.2\n"); - RICindication_t *ricindication = (RICindication_t*)calloc(1, sizeof(RICindication_t)); - - int ret; - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies2); - - printf("5.3\n"); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies3); - - printf("5.35\n"); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies4); - - printf("5.36\n"); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies5); - - printf("5.4\n"); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies6); - - printf("5.5\n"); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies7); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies8); - + ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies); + ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies2); + ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies3); + ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies4); + ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies5); + ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies6); + ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies7); + ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies8); InitiatingMessage__value_PR pres4; pres4 = InitiatingMessage__value_PR_RICindication; @@ -1078,11 +1041,13 @@ void encoding::generate_e2apv1_indication_request_parameterized(E2AP_PDU *e2ap_p char error_buf[300] = {0, }; size_t errlen = 0; - asn_check_constraints(&asn_DEF_E2AP_PDU, e2ap_pdu, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); + int ret = asn_check_constraints(&asn_DEF_E2AP_PDU, e2ap_pdu, error_buf, &errlen); + + if(ret) { + fprintf(stderr, "Constraint validation of E2AP PDU message failed: %s\n", error_buf); + } - xer_fprint(stderr, &asn_DEF_E2AP_PDU, e2ap_pdu); + //xer_fprint(stderr, &asn_DEF_E2AP_PDU, e2ap_pdu); } diff --git a/e2sim/src/encoding/encode_e2apv1.hpp b/e2sim/src/encoding/encode_e2apv1.hpp old mode 100644 new mode 100755 diff --git a/e2sim/src/messagerouting/CMakeLists.txt b/e2sim/src/messagerouting/CMakeLists.txt old mode 100644 new mode 100755 index 9f85be9..dbdb6ec --- a/e2sim/src/messagerouting/CMakeLists.txt +++ b/e2sim/src/messagerouting/CMakeLists.txt @@ -24,12 +24,12 @@ add_library( messagerouting_objects OBJECT e2ap_asn1c_codec.c ) -include_directories(../ASN1c) +include_directories(../../asn1c) include_directories(../encoding) target_include_directories (messagerouting_objects PUBLIC $ - $ + $ $ PRIVATE src) diff --git a/e2sim/src/messagerouting/e2ap_asn1c_codec.h b/e2sim/src/messagerouting/e2ap_asn1c_codec.h old mode 100644 new mode 100755 diff --git a/e2sim/src/messagerouting/e2ap_message_handler.hpp b/e2sim/src/messagerouting/e2ap_message_handler.hpp old mode 100644 new mode 100755